VibeGeometry/state/map.yaml
2026-05-07 02:39:41 +01:00

118 lines
9.6 KiB
YAML

experiment:
name: VibeGeometry
status: incubation
phase: phase_0_scaffold
premise: >
Build a durable research and implementation home for agent-authored
Blender 5.0+ scenes that use Python to construct complex geometry-node
graphs for procedural geometry matching reference images and instructions.
mission:
primary: >
Enable Codex and other agents to generate inspectable, reusable Blender
geometry-node graphs that produce specific visual results from reference
images, text instructions, and iterative render review.
near_term: >
Define the scene brief, node graph manifest, Python/Geometry Script builder,
Rust/Bevy CSG assembler, render runner, and review loop before building a
large library of graph idioms.
hard_boundaries:
- Blender 5.0+ is the target runtime unless a task explicitly chooses another version.
- Geometry nodes are the primary procedural modeling surface.
- Python scripts should construct and orchestrate node graphs, not hide the design in uninspectable imperative mesh code.
- Python is the authoring and orchestration layer; Geometry Script is the inspectable node-graph emission surface, not the whole toolchain.
- Visual targets must preserve reference-image evidence and explicit instructions.
- A graph that runs is not accepted until rendered output is inspected against the target.
- Node groups must be named, parameterized, and legible enough for future agents to modify.
- Attribute creation, transformation, and consumption must be explicit.
- Prefer established Blender node idioms and current API guidance over bespoke graph inventions.
- Keep failed experiments only when they change future belief.
- Do not let proxy checks replace visual review.
- Where VibeGeometry exposes behavior matching public RealtimeCSG/demo seams, tests must maintain exact observable parity rather than approximate plausibility.
live_architecture:
pipeline:
- Ingest reference images and instructions into a scene brief.
- Extract target visual traits: silhouette, repetition, distribution, material response, surface breakup, camera, lighting, palette, and scale cues.
- Define the source coordinate contract: basis axes, local up/down, attachment surfaces, and frame transitions.
- Plan a geometry strategy in plain language before scripting.
- Emit a node graph manifest describing groups, sockets, attributes, fields, modifiers, materials, and exposed controls.
- Generate Blender Python that builds the scene and node graphs from the manifest.
- Run Blender headlessly or interactively to produce `.blend` files, overview renders, and domain-facing inspection renders.
- Review renders against the visual target and record accepted, rejected, or revised hypotheses.
authoring_stack:
- Python structures intent, repetition, data tables, variants, cleanup, validation, documentation, and scene/render orchestration.
- `vibegeometry/` provides reusable Python helpers for coordinate contracts, deterministic fields, batched geometry, Blender object/material/camera setup, and verifier checks.
- Geometry Script emits inspectable reusable Geometry Nodes groups.
- bpy handles Blender objects, modifiers, materials, cameras, lights, files, renders, and evaluated-geometry checks.
- Rust/Bevy-side CSG tooling provides an interactive brush-and-boolean assembler path for fast level geometry, starting with box CSG and habitat-specific additive primitives.
- `vg_grammar` provides the authoring grammar above CSG: procedural rules emit semantic solid/void claims, then `vg_csg` adjudicates the space.
- External Python tools inspect source blends, generate converter drafts, compare outputs, and maintain corpus evidence.
persistence:
- `state/map.yaml` stores canonical mission, boundaries, architecture, artifacts, and next action.
- `state/scratch.md` stores one bounded active thought surface.
- `state/evidence.jsonl` stores distilled belief-changing records.
- `notes/fresh-workspace-handoff.md` stores compact re-entry instructions.
- `notes/vibegeometry-current-system-map.md` explains the live repo machinery.
- `notes/vibegeometry-implementation-plan.md` stores the near-term build sequence.
active_subgoals:
- Keep the pipeline legible from visual target to graph strategy to Python builder to render review.
- Build a graded Geometry Nodes translation corpus before hardening schemas or builder abstractions.
- Define artifact schemas after enough translated examples expose the real contract pressure.
- Build a minimal Blender runner only after the scene brief and graph manifest contracts are clear.
- Collect Blender 5.0+ geometry-node API and best-practice evidence before hardening graph builders.
- Preserve one-hypothesis iteration when visual results miss the target.
current_artifacts:
canonical_docs:
- notes/architecture-rationale.md
- notes/fresh-workspace-handoff.md
- notes/vibegeometry-current-system-map.md
- notes/vibegeometry-implementation-plan.md
- docs/architecture/pipeline-overview.md
- docs/research/procedural-doctrine.md
- docs/research/realtime-csg-doctrine.md
- docs/research/dream-machine-grammar.md
- docs/research/geometry-script-fork-notes.md
- docs/research/translations/ircss-french-houses-system-map.md
- docs/research/translations/ircss-french-houses-node-atlas.md
- docs/research/translations/ircss-french-houses-node-mechanisms.md
- docs/research/builds/aetheria-bloom-habitat.md
- docs/research/builds/lucent-tether-habitat.md
- docs/research/realtime-csg-bevy-assembler.md
- crates/vg_csg/
- crates/vg_grammar/
- vibegeometry/
tools:
- tools/vibegeometry_state.py
- tools/vibegeometry_prepare_compaction.py
- tools/inspect_blend_node_groups.py
- tools/verify_cartesian_translations.py
- tools/verify_piechart_translations.py
- tools/verify_fieldvalue_translations.py
- tools/geometry_script_loader.py
- tools/smoke_nodes_to_script_converter.py
- tools/verify_aetheria_bloom_habitat.py
- tools/verify_lucent_tether_habitat.py
pending_contracts:
- schemas/scene-brief.schema.json
- schemas/node-graph-manifest.schema.json
- schemas/render-review.schema.json
data_flow:
- Rehydrate from map, handoff, system map, implementation plan, and `npm run state:status`.
- Work one bounded pipeline organ.
- Verify the seam that matters, including coordinate-frame objects, density checks, and inspection cameras when visual claims depend on them.
- Add distilled evidence only when future belief changes.
- Commit completed work.
- If state grows faster than understanding, cut it back.
current_status:
summary: VibeGeometry has verified Geometry Script translations for local samples, official Blender demos, and IRCSS French Houses footholds, plus from-scratch Aetheria Bloom and Lucent tether habitat builds. Durable lessons now driving the pipeline: Python orchestrates intent and batching; Geometry Script emits inspectable node groups; source-bound scenes need explicit coordinate contracts before ornament; spin-gravity habitats need ground planes orthogonal to their tether/rotation axis; utility petals, radiators, and solar arrays belong outside pressure glass and may need Citadel-scale presence; large habitat parts need visible load paths across coordinate frames; organic city maps need street fields, irregular parcels, parks, and land-use gradients rather than grids; dense detail must be batched; institutional spaces should model power as surfaces, rails, overlays, thresholds, shader behavior, and camera evidence; and visual acceptance needs domain-facing inspection renders plus verifier checks, not only overview renders. The first reusable `vibegeometry/` helper library now carries coordinate frames, fields, batching, Blender scene primitives, and verifier helpers used by the Bloom and Lucent builds. The Rust crate `vg_csg` now has a RealtimeCSG-shaped API skeleton plus a convex-brush stepping-stone kernel: CSG operation ordinals, branch vocabulary, tree/branch/brush handles, child and operation mutation, exact parity fixtures, ordered assembler compilation, AABB/oriented-box subtraction/intersection via convex plane splitting, crossing polygon category buckets, primitive/solid/tree bounds, additive cylinder/dome/floret primitives, JSONL performance fixtures, mesh-array output, tests, clippy, and examples. The `vg_grammar` crate is the Dream Machine authoring layer: semantic solid/void claims with tags compile into flat `vg_csg` brushes or generated CSG tree intent; it supports local frames, oriented claims, deterministic seeded variation, rule composition, and generated gallery chains. Public RealtimeCSG demo/source research points the target away from fragment carving and toward faster polygon classification through boolean trees. A standalone RealtimeCSG C++ P/Invoke bridge now mirrors the managed wrapper surface and fails closed, but direct DLL mesh generation is blocked on a missing Unity-hosted initialization/lifecycle step: native nodes and brush meshes are created, yet mesh descriptions return count 0. Known graph-tooling blockers remain repeat-zone feedback, repeat Top outputs, foreach zones, and gizmo nodes.
next_action: Continue replacing the ordered assembler backend with the category-router kernel behind the existing CSG tree API, and isolate the missing RealtimeCSG native initialization path before treating the C++ plugin as a timing oracle.
remotes:
vibegeometry: https://github.com/GameCult/VibeGeometry
geometry_script_fork: https://github.com/GameCult/geometry-script
geometry_script_upstream_pr: https://github.com/carson-katri/geometry-script/pull/69