Thanks for contributing! This document covers the development workflow and conventions for working on the project.
For substantial changes, open an issue first to discuss the approach. Keep changes focused and avoid unrelated refactoring.
Follow existing project patterns, abstractions, formatting, and naming conventions. Prefer small, focused changes over new infrastructure or abstractions. New classes and class members should include appropriate documentation comments.
Use pnpm and the scripts defined in package.json. Use pnpm format to apply ESLint fixes and pnpm lint to check the code.
- ESLint
- Shader languages support
- Hugo Language and Syntax Support (when working on the manual)
Add or update tests for changed functionality. During development, use the most targeted test command available such as pnpm test:unit for quick iteration. Run the full pnpm test for final verification before opening a pull request.
Note
Tests rely on the built bundle and require pnpm build:js after source changes.
Manually verify affected demos or visual behaviour where practical.
- Create a branch from the current
devbranch. - Make the smallest focused change that solves the problem.
- Add or update tests and documentation as appropriate.
- Run the relevant checks and final test suite.
- Open a pull request targeting
dev, describing what changed and why.
Keep the branch up to date with dev if you encounter merge conflicts.
Search the issue tracker before opening a new report.
Include the affected library version, browser and OS versions, a clear description and expected behaviour, and a minimal reproducible example. Include graphics hardware and screenshots or other diagnostics when relevant.