Skip to content

v0.2 Acceptance Checklist

Corresponds to dev-roadmap.md §5 "◆ v0.2 acceptance (DoD)" and design.md §0.2 implementation progress log.

DoD items

RequirementStatusEvidence
Scale (linear/log/pow/time + ticks/format/invert)scale/scale-playground, scale/log-plot; scale.test.ts
Math construct library (NumberLine/Axes/Planes/Graph/Riemann/Tangent/Matrix/Table/Brace/DecimalNumber)math/* (5); constructs.test.ts
Morph (arc-length/anchor/cross-fade + matching part matching)morph/* (3); morph-strategies.test.ts
Text / LaTeX pipeline (parse→layout→writing→matching + AssetManager)text/*, latex/*; text.test.ts
Interaction system (pick proxy hit, unprojection, draggable, keyboard)interaction/* (3); interaction.test.ts
Layout + Inspector (alignTo/nextTo/fitTo/arrange, hierarchy, inspector)layout/*, devtools/inspector-tour; layout.test.ts
Interactive calculus demos (Riemann convergence, tangent at moving point, drag exploration)math/riemann-sum, math/tangent-derivative, interaction/explorable-derivative
Formula part morph availablelatex/transform-matching-tex, morph/matching-shapes
All packages VERSION bumped to 0.2.0packages/*/src/index.ts, packages/*/package.json
CI greenlint + typecheck + vitest + depcruise (119 modules 0 violations) + build

Milestone exit criteria (summary)

M7 · Scale

  • [x] linearScale/logScale/powScale/timeScale + ticks/tickFormat/invert
  • [x] D3 nice-number ticks; log boundary, time span cases

M8 · Math construct library

  • [x] Construct factories (constructs/) + axesObject rewritten on Scale (xScale/yScale)
  • [x] Attached constructs positioned via c2p; Riemann convergence, tangent slope, planes round-trip

M9 · Morph

  • [x] arc-length / anchor / cross-fade / matching four strategies
  • [x] group2D + part keys; contour padding; property-based random shape stability

M10 · Text / LaTeX

  • [x] parseSvgPath + built-in stroke font + LaTeX subset; textObject/latexObject
  • [x] write() stroke reveal; transformMatchingTex; AssetManager build-time prepare
  • [x] M8 labels upgraded to stroke font

M11 · Interaction system

  • [x] PickProxy (disc/rect/band) + hitTest; three-coordinate events
  • [x] draggablePoint/Value(Source); on()/interactive()
  • [x] R3F unprojection + pointer dispatch + cursor; IntermactCanvas keyboard forwarding

M12 · Layout + Inspector

  • [x] LayoutHandle (getBounds/alignTo/nextTo/fitTo/arrange)
  • [x] Transform hierarchy (setParent + Player snapshot world transform composition)
  • [x] Inspector (registry/runtime state/active Track/reactive graph/bounds highlight)

Known deviations (non-blocking for v0.2)

  • Text/LaTeX uses built-in stroke vector font + LaTeX subset (not KaTeX/MathJax + troika MSDF); trait/part-key contract unchanged, real engine drop-in ready.
  • Lowercase rendered as small-caps; font covers uppercase+digits+common symbols.
  • Interaction hit uses scene-space analytic intersection (pick proxy) instead of WebGL raycast threshold; equivalent under 2D orthographic.
  • LayoutHandle immediately writes authorized transform for chained layout; fitTo is uniform scale.
  • Inspector bounds projection defaults to contain fit.
  • Morph does not replaceObject on completion (geometryOverride model); chained morph awaits serialization/player enhancement (§22.1).

See design.md §0.2 implementation progress log.

Intermact v1.0 — docs cover Phase-1 / Phase-2 / Phase-3 (all stages)