Direction¶
Open, forward-looking work. Shipped work lives in the changelog.
Rendering & export¶
- Programmatic single-call render API. Today MP4/GIF rendering goes through
the manim CLI. A
render(ggb_path, style=..., output_format=..., size=...)entry point would make animageo embeddable in servers and pipelines without shelling out. - In-memory input. Accept
bytes/BytesIOfor.ggband style JSON in addition to file paths. - Snapshot tests for rendering. The geometry core is well covered
(~985 tests);
CreateMObject, SVG output, and the CLI still rely on manual inspection. Golden-file snapshot tests would lock the visual output down.
GeoGebra coverage¶
Most everyday commands are implemented (433 dispatch signatures exposed through 99 auto-discovered DSL factories). Known gaps:
- Exact/symbolic
LocusandLocusEquation(currentLocusis a sampled polyline). RadicalAxis,Power(circle power-of-a-point family).- Exact
Circumferencefor ellipses (currently Ramanujan's approximation). OsculatingCircle,Curvature,ConjugateDiameter,PathParameter.- Element types
boolean(as a visible checkbox),list,image.
Label placement¶
Automatic placement has reached its target quality for solver-only layouts
(see the recommended preset in styles.md). Remaining ideas:
- Leader-line refinement for dense scenes (suppressing unhelpful connectors).
- Soft repulsion between labels across keyframes to avoid transient overlaps mid-animation.
Keyframes¶
passing_flashemphasis event.- Pixel-invariant camera zoom (GeoGebra-style
ZoomInsemantics: geometry scales, pixel-sized decorations do not) — the current@cameratrack is cinematic (everything scales together).
API ergonomics¶
- Chainable style helpers (
element('s').setDashed(0.65).setOpacity(0.5)) as sugar overelem.style[...]writes.
Distribution¶
- Publish the JSXGraph web runtime (
web/runtime,web/web-component) to npm.
Suggestions and contributions are welcome — see CONTRIBUTING.md.