44 lines
3.4 KiB
Markdown
44 lines
3.4 KiB
Markdown
# Summit structure assets implementation plan
|
|
|
|
> **For agentic workers:** Execute inline with superpowers:executing-plans. Asset authoring is verified by export/import checks and visual inspection.
|
|
|
|
**Goal:** Refine the eight existing summit structures in Blender and deliver editable Blender source, individual GLBs, and previews.
|
|
|
|
**Architecture:** Reuse `src/constants/structures.ts` as the dimension and placement source. Build locally centered, material-batched meshes in a separate Blender scene; preserve the user's original scene. Store geographic placement and terrain support anchors in the asset manifest. Preserve the current application until asset integration is explicitly requested.
|
|
|
|
**Tech Stack:** Existing Node/TypeScript, Blender 5.2 through MCP, Python bpy, glTF 2.0.
|
|
|
|
**Spec:** User-approved conversation: refine existing structures using the collected photos and extract `.blend` / `.glb` assets; proceed now.
|
|
|
|
## Constraints and decisions
|
|
|
|
- Existing IDs, estimated dimensions and source attribution remain authoritative.
|
|
- No new dependencies. Photographs are modeling references, never distributed textures.
|
|
- Details visible in references inform geometry; hidden details remain approximations.
|
|
- Deck origin is the upper walking surface; tower/radar origin is the base. Metres; GLB Y-up.
|
|
- Terrain-dependent footings/support lengths stay outside fixed geometry; export their anchors.
|
|
- Ruling: direct artifact authoring, not a runtime feature; no new regression tests. Validate the actual GLBs with Three.js and Blender re-import, inspect previews, run the existing build.
|
|
- This directory has no Git repository; no commits or worktree operations.
|
|
|
|
## Tasks
|
|
|
|
- [x] Snapshot existing constants and author `scripts/build-summit-assets.py`: shared material-batched geometry, five towers, radar, two decks.
|
|
- [x] Export `public/models/summit/*.glb`, a manifest, and `assets/summit/summit-structures.blend` with a presentation scene.
|
|
- [x] Render overview and detailed previews; inspect and correct visual defects.
|
|
- [x] Load exported GLBs with Three.js and Blender, verify dimensions, materials, IDs, finite geometry, and no external resources. Write a verification report and usage notes.
|
|
|
|
## Review focus
|
|
|
|
Check north-axis conversion, origins, detached stair rails, closed deck ends, whole-scene export accidents, material loss, measured-versus-estimated wording, and inclusion of private/reference images.
|
|
|
|
## Completion evidence
|
|
|
|
- Three.js GLTFLoader: 8/8 passed; 87,523 triangles, 44 material batches, approximately 4.13 MiB total GLB payload.
|
|
- Blender re-import: 8/8 passed; bounding boxes match Three.js within 1 mm.
|
|
- `npm run build`: passed; existing bundle-size warning remains.
|
|
- Overview plus radar, deck and tower renders inspected. Corrected overview framing and studio ground extent.
|
|
- Export limited to active scene and selected hierarchy; initial default cube leakage corrected before delivery.
|
|
- Independent review found stale geometry/spec metadata on reruns. Existing meshes now retain generation specs and changed dimensions fail explicitly; regeneration requires a fresh Blender file. Hand edits remain preserved during re-export.
|
|
- Automatic approval rejected a destructive rebuild verification attempt. Removed that path and completed with non-destructive re-export. Original Cube, Camera and Light remain in the original scene.
|
|
- Editable source saved, all assets visible in the presentation scene; GLBs and manifest also packaged in `assets/summit/summit-glb-pack.zip`.
|