Skip to content

Latest commit

 

History

History

design

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Design Documents (DD)

A Design Document defines the approved implementation architecture for one Epic or system boundary. Architecture-sensitive work is blocked until its DD is Accepted (governance §4).

  • Naming: DD-NNN-<slug>.md (e.g., DD-001-toolpath-ir-and-capability-model.md).
  • Template: DD-000-template.md.
  • Lifecycle: create the Epic → create the DD: … child issue → draft the DD via a docs PR → review → merge → mark the Epic's DD gate satisfied → begin implementation issues.
  • Accepted DDs change only through a reviewable docs PR; a major reversal is an ADR or a superseding DD.

Planned DDs (from the Master Plan §13)

ID Title Epic Milestone Status
DD-001 ToolpathIR and Capability Model E1 M1 Accepted 2026-07-22 (#26)
DD-002 Package Boundaries and Public API Versioning E1 M1 Accepted 2026-07-22 (#27)
DD-003 Worker Parsing, Streaming, Transfer, and Resource Limits E2 M2 Accepted 2026-07-22 with amendments (#41)
DD-004 Three.js Rendering, Geometry, Layer Clipping, and Quality Modes E3 M2 Accepted 2026-07-22 (#53)
DD-005 Dialect Plugin and Container Adapter Contracts E4 M3 Accepted 2026-07-22 with amendments (#70)
DD-006 Normalized Live Progress and Source-Position Mapping E5 M4 Accepted 2026-07-23 (#87)
DD-007 Vue Integration and AnyBridge Consumer Boundary E6 M4 Accepted 2026-07-23 with amendments (#101)
DD-008 Release, Publication Readiness, Versioning & Support Policy E7 M5 Accepted 2026-07-23 with amendments (#125)
DD-009 Toolpath Annotations & Renderer Options E9 Future Accepted 2026-07-23 (D1–D7 as recommended) (#160)
DD-010 Motion-Model Correctness (extruder/positioning mode, arc planes, coordinate systems) E10 Future Accepted 2026-07-24 (revised D1–D6) (#191)
DD-011 Binary G-code (.bgcode) Decode Adapter E-bgcode (#188) Future Accepted 2026-07-27 (D1–D7 as recommended; D4 amended — metadata/thumbnails in-scope) — new @chestnutlabs/gcode-bgcode container adapter; heatshrink ISC-port + MeatPack clean-room (AGPL-clean, per RR-003); gated by §7.3 review + golden-equivalence
DD-012 Non-extrusion toolpath (CNC/laser/plotter) & modal tool-state channels #189 Future Accepted 2026-07-28 (D1–D8 as recommended) — additive MoveKind.Cut + one opt-in ModalChannel mechanism (owns tool-state and #180/RR-002 color channels → DD-015 retired), canned-cycle (G81–89) expansion, validation-tiered dialects; per RR-004
DD-013 Documentation, SDK Reference & Published Manual E11 Future Accepted 2026-07-25 (D1–D7 as recommended) (#197)
DD-014 Low-Resource Layer Mode (2D/adjacent-layer renderer over IR) E8 (#9) Future Accepted 2026-07-26 (D1–D5 as recommended; D6 build-now on the AnyBridge evidence artifact)
DD-016 Annotation-Derived Move Kinds (Wipe & Seam) E9 (#182) Future Accepted 2026-07-27 (D1–D6 as recommended; D2 = narrow additive DD-005 sink amendment so a slicer-comment signal can set Wipe; seam a non-goal)
DD-017 RS274NGC Parametric Programs (parameters, expressions & O-word flow) #189 phase 7 Shipped Accepted — phases 1–3 built & shipped v0.18.0 (2026-08-27): parameters + expressions (#410), O-word control flow (#413), in-file subroutines (#415). On-demand interpreter engaged only on #/[/O-words (FDM byte-identical); bounded by maxProgramIterations/maxCallDepth; honesty-tiered parametricProgram. Phase 4 (capability/docs) done. Only the optional docs-polish tail + return-value propagation remain. Per RR-004 §9
DD-020 Interaction-aware render quality (progressive LOD) #306 M1 Accepted 2026-08-24 — opt-in interactionQuality:'auto': reduce render detail (pixel ratio, bounded frame-time step) while the camera moves, restore on settle; keeps the vertex-budget fallback; consumer maps High/Balanced/Performance. Additive, default off.
DD-018 ModelRenderer — source-model presentation rendering (STL/3MF) ModelRenderer (new epic) M1 Accepted 2026-08-23 (all sections as proposed; §14 v1 = both STL+3MF sequential; §12 shared stage stays in gcode-renderer-three short-term) — new sibling @chestnutlabs/gcode-model-renderer for presentation/thumbnail renders of source STL/3MF (distinct from toolpath inspection); shared "stage" extraction, headless/offscreen (SwiftShader) contract with transparent+themed bg, multi-object + material-capable scene model from day one, deterministic export + (sourceHash, options, envId) cache key; consumer: AnyBridge thumbnail sidecar
DD-021 Interactive source-model viewer (ModelViewer) ModelRenderer (DD-018 line) M2 Accepted 2026-08-24 (maintainer; AnyBridge boundary-reviewed, no blockers) — a distinct interactive createModelViewer(canvas) handle (orbit/zoom/pan of source STL/3MF, the live analogue of renderModelStill); reuses the shared stage + ModelRenderer scene core + the toolpath camera/controls + DD-020 quality; generic open-kind model-source loader registry (STL/3MF first, OBJ/STEP/PLY later w/o API change); distinct from ToolpathRenderer / <GcodePreview>; handle in gcode-model-renderer, shared-control extraction into gcode-renderer-three; components a later phase; consumer: AnyBridge "View in 3D"
DD-022 Instance-aware source-model rendering (GPU instancing + LOD) ModelRenderer (DD-018 line) M3 Accepted 2026-08-25 (both-owner gate satisfied — maintainer + AnyBridge product owner on §4 + §8, incl. the headless/SwiftShader fix). Full-plate source .3mf reuses master meshes via production-extension components / repeated build items, but parse3mf bakes every instance → ~26 M triangles → E_MODEL_TOO_MANY_TRIANGLES after ~10 s (proof: Baby_Opossum full sheet). Per the AnyBridge owner's 6 constraints (NOT "raise the limit"): instance-aware ModelScene (additive instances? on ModelObject) drawn via InstancedMesh, byte-estimate fast-reject, LOD/decimation for huge unique meshes (disclosed, an RR-006 analogue), a hard ceiling as final guardrail (now on unique triangles), and client-capability-aware interactive degradation (software-WebGL degrades harder; headless assumes server GPU). Renderer-owned in gcode-model-renderer; consumer: AnyBridge "View in 3D"

Reserved: DD-015 was the candidate number for a standalone modal-state color-channels DD (RR-002, #180). It is now likely unnecessary: the shared ModalChannel mechanism is owned by DD-012 (above), which #180's color channels consume — see DD-012 §4.3. (DD-012 non-extrusion toolpath, #189, is now drafted — above.)