Contribute to Matemium
Matemium welcomes code, documentation, testing, example projects, translations, bug reports, and carefully described visual failures.
Before contributing
Section titled “Before contributing”Read:
The license permits forks made to prepare contributions to the official project. It does not grant unrestricted redistribution of derivative applications.
Sustain the project
Section titled “Sustain the project”Matemium is a non-commercial project without product income. Financial contributions help cover distribution infrastructure, development tools, testing, and the work required to keep the engine and desktop application available.
The engine can render locally without paid AI. The most agentic authoring experiences and deeper automation, however, require model inference and supporting AI resources that the project’s independent maintainer cannot currently fund alone. Support helps Matemium develop and test those experiences without turning the project into a commercial product.
You can also contribute meaningfully without money: report defects, improve documentation, test releases, create cross-subject examples, or submit focused code changes.
Development setup
Section titled “Development setup”git clone https://github.com/fargonee/math.gitcd mathpython -m venv .venvsource .venv/bin/activatepip install -e ".[dev]"Install FFmpeg and LaTeX for render tests.
Run tests
Section titled “Run tests”pytestOptional render tests:
pytest -m slowContribution boundaries
Section titled “Contribution boundaries”- Keep the engine generic.
- Put subject-specific composition in project helpers.
- Make new engine features reachable through
CanvasBuilder. - Preserve the desktop → Rust → sidecar boundary.
- Do not make the server import the rendering engine.
- Include tests for new public behavior where practical.
- Document public API changes.
Contribute a project recipe
Section titled “Contribute a project recipe”A strong example project:
- Answers a clear conceptual question
- Demonstrates a capability intentionally
- Uses generic engine primitives
- Keeps subject-specific helpers beside the project
- Renders in a supported quality
- Includes accurate content
- Provides a useful poster frame and short public preview
Cross-subject projects are especially valuable because they test whether the visual reasoning model generalizes beyond its mathematical foundation.
Report a visual defect
Section titled “Report a visual defect”Attach:
- Minimal project source
- Render timestamp
- Screenshot or short recording
- Expected result
- Platform and engine version
Visual evidence is more useful than “the animation looks wrong.”
Commit style
Section titled “Commit style”Use clear, imperative subjects:
Add viewport-safe zoom capDocument multiple-tape authoringFix labels during solid inspection
For substantial design changes, open an issue before building a large solution.
