For each nontrivial formula or algorithm—LaTeX, term-by-term explanation, spatial intuition, and visual_specs entries (Manim, plots, react-three-fiber).
Curriculum work has identified equations, algorithms, or figures that need teaching depth—used standalone or inside paper-to-curriculum after concept_graph.json exists.
Append or create:
explanations.json: keyed by concept_id or stable formula_id:
title, latex, plain_explanation, term_by_term (structured string or array of {symbol, meaning}), intuition_geometric (optional), code_example (optional notebook snippet).visual_specs.json: array of objects:
id, lesson_id, type ∈ static_svg | | | | jupyter_plotmanim_scenereact_three_fiberembed_videodescription, parameters (include preset from schemas/visual_spec_presets.json when applicable), optional theme_id (from schemas/themes/index.json)manim_class / tsx_component name, data_refstheme_id per lesson or per spec so web CSS, R3F (three block in theme JSON), Manim, and matplotlib stay aligned—use visual_spec_presets.json → default_theme_id as a starting point.$$...$$ in notebooks; KaTeX on web).Scene subclass sketch or full file under backend/visuals/; document render command manim -pqh path SceneName.OrbitControls, and which props tie to lesson parameters.explanations.json.visual_specs.json and formula breakdown components.