VibeGeometry/notes/vibegeometry-implementation-plan.md
2026-05-04 19:01:20 +01:00

93 lines
4.2 KiB
Markdown

# VibeGeometry Implementation Plan
## Current Phase
Turn the verified translation corpus into a small set of durable contracts and
builder seams for agent-authored Blender geometry-node scenes.
The goal is still not a procedural art factory. The goal is a clean artifact
loop where agents can state a visual target, choose a geometry strategy, emit
inspectable node graphs, render evidence, and revise one hypothesis at a time
without piling clever junk into the machine.
Planning belongs in this file and the handoff/map state surfaces. Architecture
docs should describe durable contracts, boundaries, and data shapes; they should
not carry live next-action clutter.
## Corpus Lessons
- Python is the planning and orchestration layer: loops, tables, variants,
validation, cleanup, documentation, and Blender scene/render control.
- Geometry Script is strongest as an inspectable graph emitter, especially when
the script keeps names, sockets, attribute flow, and reusable group boundaries
legible.
- `bpy` remains necessary for Blender objects, modifiers, materials, cameras,
lights, files, renders, and evaluated-geometry comparison.
- `nodes_to_script` is useful as a converter draft and source-graph probe. Its
output should inform the translation, not define good house style.
- Accepted graph translations need behavioral verification, not just successful
script execution.
- City-scale graphs expose the next toolchain pressure: repeat zones, foreach
zones, gizmo nodes, repeat `Top` outputs, and converter edge cases.
## Near-Term Sequence
1. Choose the next IRCSS French Houses move.
- Either fix one repeat-zone/foreach/gizmo blocker in the Geometry Script
fork or select a non-zone architectural helper with a non-empty behavioral
harness.
- Keep the chosen target small enough to verify against evaluated geometry.
- Record rejected paths only when they change future decisions.
2. Define the scene brief contract.
- Capture references, text instructions, target visual traits, constraints,
camera/composition requirements, acceptance criteria, and known unknowns.
- Preserve source paths or URLs for every reference image.
- Separate visual target description from implementation strategy.
3. Define the node graph manifest contract.
- Describe node groups, sockets, exposed controls, modifiers, attribute
names, field flow, materials, dependencies, and verification expectations.
- Require enough naming and rationale for future agents to inspect the graph.
- Keep graph contracts Blender 5.0+ oriented.
4. Build a minimal Python builder seam.
- Start with one tiny scene that proves graph construction, material setup,
camera, lighting, save, and render orchestration.
- Prefer small composable helpers for node group creation and socket linking.
- Avoid a giant builder abstraction until repeated graph idioms demand it.
5. Build render review artifacts.
- Store render path, scene brief id, manifest id, script path, Blender
version, review status, visual misses, graph issues, and next hypothesis.
- Treat rendered output as the acceptance surface for visual claims.
6. Promote doctrine only after it survives use.
- Keep examples small enough to inspect.
- Put sample-specific graph maps in `docs/research/translations/`.
- Keep `docs/research/procedural-doctrine.md` tight enough to fit in working
context when building a new scene from scratch. Nobody needs a sacred
haystack.
7. Generalize after the loop works.
- Add reference-image ingestion helpers.
- Add headless batch rendering.
- Add visual comparison or reviewer prompts.
- Add richer examples only after the contracts stop sliding.
## Deferred
- Large procedural asset library
- Automated visual scoring beyond basic review artifacts
- Fine-tuned graph-generation models
- Blender add-on packaging
- Complex simulation-node workflows before the basic graph loop is stable
## Discipline
- Work one bounded organ at a time.
- Explain target-to-graph data flow before broad refactors.
- Prefer explicit manifests and render evidence over implicit agent memory.
- If the diff grows while understanding shrinks, stop and simplify.
- Keep history in git; keep persisted state focused on what future sessions
need to believe.