Roadmap#

v0.1 — Direct Modeling Foundation#

  • WebGPU-based 3D viewer with truck B-Rep kernel (WASM)
  • 4 primitives: cube, sphere, cylinder, torus
  • Boolean operations: union, subtract, intersect (cubes/cylinders only)
  • Translate transform
  • Save/load scenes as JSON (full B-Rep, no tessellation loss)
  • Responsive UI: desktop sidebar, mobile bottom sheet + dock
  • Auto-offset primitives — new objects partially overlap, ready for booleans
  • Docs: auto-generated screenshots + lesson videos (R2-hosted)
  • Deployed to Cloudflare Workers + custom domain

v0.2 — Undo/Redo + Gizmo#

  • UUID identity — every object has a stable UUID v4, persisted through transforms and export/import
  • Undo/redo — snapshot-based with Ctrl+Z / Ctrl+Shift+Z keyboard shortcuts
  • Operation grouping — related operations (add + offset) grouped into single undo steps
  • Timeline UI — visual strip showing recent operations as clickable chips
  • Click-to-select — ray-cast picking via bounding sphere intersection
  • Translate gizmo — 3-axis colored arrows (X=red, Y=green, Z=blue), drag to move
  • Gizmo cancel — Escape reverses drag, restores original position
  • Automerge integration — CRDT-based op log for collaborative editing
  • Cross-tab sync — BroadcastChannel adapter for same-browser collaboration
  • Document management — new doc, share URL, example scenes
  • Keyboard shortcuts — Ctrl+Z undo, Ctrl+Shift+Z redo, Escape cancel, Delete remove
  • 24 E2E tests — Playwright tests covering all operations including gizmo

v0.3 — Parametric Modeling (Current)#

  • ezpz constraint solver — integrated KittyCAD/ezpz for 2D sketch constraints (11 constraint types)
  • Sketch mode — 2D sketch on XY/XZ/YZ planes with points and edges
  • Sketch constraints — fixed, horizontal, vertical, distance, H/V-distance, coincident, parallel, perpendicular, equal length, midpoint
  • Constraint solver — Newton-Raphson solver via ezpz, live preview of solved positions
  • Extrude — 2D profile → 3D solid via truck tsweep (closed loop detection)
  • Quick rectangle — one-click constrained rectangle with auto-constraints
  • Sketch export/import — JSON serialization for Automerge replay
  • Automerge sketch opssketch_extrude in op log, collaborative replay
  • 31 tests — 9 Rust unit (sketch), 11 golden resource, 11 Playwright E2E sketch tests
  • Rotate gizmo — circular handles for rotate-around-axis
  • Scale gizmo — square handles for uniform/non-uniform scale

Medium Term#

  • Boolean ops for all shapes — fix sphere/torus booleans in truck-shapeops
  • STEP import/export — leverage truck-stepio for industry-standard CAD interchange
  • kkrpc integration — bidirectional RPC for server-side modeling operations
  • Mesh raycasting — upgrade from bounding sphere to triangle-level picking
  • Snap-to-grid — constrain drag/sketch to grid increments
  • Multi-select — Shift+click to select multiple objects
  • RDK (robotics) integration — CAD modeling with robot kinematics/planning

Long Term#

  • Assembly mode — multi-part assemblies with mates/joints
  • Server-side rendering — headless WebGPU for thumbnails and CI screenshots (Tier 3)
  • Revolve — 2D profile → 3D solid via truck rsweep
  • Plugin system — extend with custom operations via WASM modules
  • Hugo docs site — full documentation site on Cloudflare Pages
  • Mobile-first touch gestures — multi-touch transform gizmos

Known Issues#

  • Sphere/Torus booleans fail — truck-shapeops NURBS surface intersection crashes. Cubes/cylinders work.
  • Object size changes after translate — bounding-box normalization rescales rendered objects. B-Rep geometry is correct.
  • Large translations go off screen — camera doesn’t follow objects. Keep values small.
  • Bounding sphere picking — imprecise for elongated/flat objects. Mesh raycasting planned.