naturalcad / docs /engine-assembly-milestone.md
noahlee1234
docs: add engine assembly milestone concept and startup/shutdown playbook
8e26f87
# Engine-Assembly Milestone (Concept)
## Goal
Support high-detail assemblies (example: engine block + major subsystems) without relying on a single one-shot prompt-to-code pass.
## Why
Single-pass generation is strong for parts and simple assemblies, but detailed mechanical assemblies need decomposition, validation, and staged execution.
## Proposed architecture (multi-stage)
1. **Intent + Scope Pass**
- Parse user request into complexity level and target detail level (L1/L2/L3).
- Confirm assumptions if needed (internal channels, bolt patterns, tolerances, etc.).
2. **Assembly Plan JSON**
- Generate a strict JSON plan:
- parts list
- param schema per part
- mating/constraint relationships
- units + coordinate conventions
- Validate against a JSON schema before any CAD execution.
3. **Per-Part CAD Generation**
- Generate build123d code per part (isolated runs).
- Validate and export each part independently.
- Retry/fix only failed parts, not the whole assembly.
4. **Assembly Build Pass**
- Compose validated parts into final assembly.
- Run constraint checks and collision checks where possible.
5. **Output Profiles**
- L1: concept massing
- L2: manufacturing-relevant external features
- L3: high-detail subsystem geometry
- Export: STEP/STL (+ optional linework outputs later)
## Guardrails
- Per-part complexity cap and timeout.
- Max part count per run (configurable).
- Graceful degrade path (drop to L2 if L3 is too heavy).
- User-facing messages should explain what detail was delivered.
## Success criteria
- Higher success rate for detailed prompts.
- Better partial recovery (single part fail does not kill full job).
- More predictable latency and compute cost.
- Clear user control over detail level.
## Suggested implementation order
1. Define JSON schema + validator.
2. Add planner stage (returns plan only).
3. Add per-part execution loop with retries.
4. Add assembly compose stage.
5. Add detail profile controls in UI.