Record converter keyword collision fix
This commit is contained in:
parent
fdda6184e8
commit
488b207c5c
6 changed files with 55 additions and 6 deletions
|
|
@ -75,6 +75,7 @@ current VibeGeometry toolchain branch, and applies the patches stored in:
|
|||
patches/geometry-script/0001-fix-nested-tree-group-references-on-blender-4.patch
|
||||
patches/geometry-script/0002-Port-node-tree-conversion-operator.patch
|
||||
patches/geometry-script/0003-Tolerate-Blender-menu-socket-defaults.patch
|
||||
patches/geometry-script/0004-Avoid-duplicate-converter-keywords-for-socket-backed-properties.patch
|
||||
```
|
||||
|
||||
`external/` is intentionally ignored by the VibeGeometry repository. The clone
|
||||
|
|
@ -96,6 +97,8 @@ This is the branch VibeGeometry should use locally. It contains:
|
|||
- a Blender 5.1 port of the historical `nodes_to_script` converter prototype
|
||||
- a Blender 5.1 menu-socket default tolerance fix so group construction does
|
||||
not fail when `NodeSocketMenu` enum items are not populated yet
|
||||
- a converter duplicate-key fix for nodes that expose one control as both an
|
||||
RNA property and a linkable input socket, such as `FunctionNodeAxesToRotation`
|
||||
|
||||
The converter adds:
|
||||
|
||||
|
|
@ -115,6 +118,8 @@ Current acceptance:
|
|||
- Converter runs in Blender 5.1.1.
|
||||
- Generated drafts compile as Python for the tested groups.
|
||||
- The full 176-node `Field Value` source group emits a 179-line draft script.
|
||||
- IRCSS `GenerateArc` and `MakeStairs` now emit compiling drafts instead of
|
||||
duplicate `primary_axis` keyword syntax errors.
|
||||
- Generated text is a bootstrap draft, not doctrine-quality final code or style
|
||||
guidance.
|
||||
|
||||
|
|
|
|||
|
|
@ -105,13 +105,25 @@ the source and translation, then compare sorted evaluated vertices.
|
|||
path exposed the previous-geometry state as `None`.
|
||||
- `GenerateWindowsFromEdges` uses `For Each Geometry Element` zones.
|
||||
- `Pole` uses repeat zones and geometry-node gizmos.
|
||||
- `GenerateArc` and `MakeStairs` exposed a `nodes_to_script` converter bug:
|
||||
duplicated keyword arguments for `primary_axis`.
|
||||
- `WindowBeams` depends on specific upstream edge/curve inputs. A synthetic
|
||||
harness could verify its secondary base-point output, but the main beam mesh
|
||||
stayed empty for both source and translation. That was rejected as an
|
||||
acceptance target.
|
||||
|
||||
## Toolchain Fixes From This Pass
|
||||
|
||||
- `GenerateArc` and `MakeStairs` originally exposed a `nodes_to_script`
|
||||
converter bug: duplicated keyword arguments for `primary_axis`.
|
||||
- The Geometry Script fork now drops duplicate property keywords when a node
|
||||
exposes the same control as a linkable input socket.
|
||||
- Expanded IRCSS converter smoke now compiles drafts for `GenerateArc`,
|
||||
`MakeStairs`, `GenerateStairCase`, `GenerateBricks`,
|
||||
`GenerateMedialAxisRectangleTopology`, `GenerateWindowsFromEdges`, `Pole`,
|
||||
`Round Bottom`, and `WindowBeams`.
|
||||
- These are still converter drafts, not accepted translations. Repeat zones,
|
||||
foreach zones, closures, gizmos, dependency groups, and behavioral harnesses
|
||||
still decide what can be trusted.
|
||||
|
||||
## Lessons
|
||||
|
||||
- City-scale graphs are hierarchies of organs. Start with reusable spines,
|
||||
|
|
|
|||
|
|
@ -46,8 +46,10 @@ Accepted corpus families so far:
|
|||
Current frontier: IRCSS French Houses city-scale graph work. The accepted
|
||||
footholds are `MakeSpiral` and `PointyGothicCone`. Mapped blockers are
|
||||
repeat-zone feedback state, repeat `Top` boolean outputs, foreach zones, gizmo
|
||||
nodes, `nodes_to_script` duplicate-key failures around axes-to-rotation, and a
|
||||
rejected empty-output harness for `WindowBeams`.
|
||||
nodes, and a rejected empty-output harness for `WindowBeams`. The previous
|
||||
`nodes_to_script` duplicate-key failure around axes-to-rotation is fixed in the
|
||||
Geometry Script fork, so `GenerateArc` and `MakeStairs` now have compiling
|
||||
converter drafts.
|
||||
|
||||
Current authoring prior: use the full Python stack. Python structures intent,
|
||||
tables, loops, variants, cleanup, validation, docs, and scene/render
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
From ebac332fe79a608525b223b88f1a89fb2fe80eb9 Mon Sep 17 00:00:00 2001
|
||||
From: Meta Vens <rwvens@hotmail.com>
|
||||
Date: Mon, 4 May 2026 20:04:50 +0100
|
||||
Subject: [PATCH] Avoid duplicate converter keywords for socket-backed
|
||||
properties
|
||||
|
||||
---
|
||||
operators/convert_tree.py | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/operators/convert_tree.py b/operators/convert_tree.py
|
||||
index 8485ea2..fa239ab 100644
|
||||
--- a/operators/convert_tree.py
|
||||
+++ b/operators/convert_tree.py
|
||||
@@ -265,6 +265,11 @@ def convert_node_tree(tree):
|
||||
values.append(_convert_value(socket.default_value))
|
||||
if not values:
|
||||
continue
|
||||
+ # Some Blender nodes expose the same conceptual control as both an
|
||||
+ # RNA enum property and an input socket. Geometry Script maps that
|
||||
+ # collapsed control to one Python keyword, so prefer the socket
|
||||
+ # value/link and drop the duplicate property keyword.
|
||||
+ assignment.props.pop(key, None)
|
||||
if len(values) == 1:
|
||||
assignment.arguments[key] = values[0]
|
||||
if output_names:
|
||||
--
|
||||
2.53.0.windows.3
|
||||
|
||||
|
|
@ -29,3 +29,4 @@
|
|||
{"ts": "2026-05-04T17:15:09+00:00", "type": "research", "status": "accepted", "note": "Started IRCSS French Houses city-scale corpus target. Inspected 108 geometry node groups and verified first foothold MakeSpiral -> VG Make Spiral with 200 ordered curve points matching source at max delta 0.0. Recorded blockers from larger city graphs: repeat-zone feedback state, repeat Top output sockets, foreach zones, gizmo nodes, converter duplicate-key failures, and empty-output harness rejection."}
|
||||
{"ts": "2026-05-04T18:01:03+00:00", "type": "maintenance", "status": "accepted", "note": "Distilled persistent state: handoff now points to corpus docs instead of duplicating completed graph lists; implementation plan reflects post-corpus contract and IRCSS frontier; compaction helper warns on bloated handoff and stale first-corpus planning."}
|
||||
{"ts": "2026-05-04T19:01:27+00:00", "type": "verification", "status": "accepted", "note": "Added IRCSS PointyGothicCone translation as VG Pointy Gothic Cone; plain and ornamented harness cases match source evaluated geometry with sorted max vertex delta 0.0, proving ornament can be grown from captured structural ribs after instancing."}
|
||||
{"ts": "2026-05-04T19:05:41+00:00", "type": "tooling", "status": "accepted", "note": "Patched Geometry Script nodes_to_script on branch vibegeometry/blender-5-nodes-to-script to drop duplicate property keywords when a same-named input socket exists; GenerateArc and MakeStairs now compile from converter drafts, and expanded IRCSS smoke passes for 11 target groups."}
|
||||
|
|
|
|||
|
|
@ -91,8 +91,8 @@ data_flow:
|
|||
- If state grows faster than understanding, cut it back.
|
||||
|
||||
current_status:
|
||||
summary: VibeGeometry has an initial persistence scaffold plus verified Geometry Script translations for local math/utility samples, a first official Blender demo tranche, and two IRCSS French Houses city-scale footholds. The IRCSS pass verified MakeSpiral as an architectural spine and PointyGothicCone as ornament grown from a structural host, while mapping blockers in larger systems: repeat-zone feedback, repeat Top outputs, foreach zones, gizmo nodes, and converter duplicate-key failures. The repo-local Geometry Script fork includes a Blender 5.1 nodes_to_script converter port plus nested-group and menu-socket fixes needed by these translations.
|
||||
next_action: Continue IRCSS French Houses by choosing the next city-organ target after either fixing repeat-zone/foreach/gizmo toolchain blockers or selecting another non-zone architectural helper with a non-empty behavioral harness.
|
||||
summary: VibeGeometry has an initial persistence scaffold plus verified Geometry Script translations for local math/utility samples, a first official Blender demo tranche, and two IRCSS French Houses city-scale footholds. The IRCSS pass verified MakeSpiral as an architectural spine and PointyGothicCone as ornament grown from a structural host, while mapping blockers in larger systems: repeat-zone feedback, repeat Top outputs, foreach zones, and gizmo nodes. The repo-local Geometry Script fork includes a Blender 5.1 nodes_to_script converter port plus nested-group, menu-socket, and duplicate-key fixes needed by these translations.
|
||||
next_action: Continue IRCSS French Houses by using the newly compiling GenerateArc/MakeStairs converter drafts as candidates for the next city-organ translation, or select another non-zone architectural helper with a non-empty behavioral harness.
|
||||
remotes:
|
||||
vibegeometry: https://github.com/GameCult/VibeGeometry
|
||||
geometry_script_fork: https://github.com/GameCult/geometry-script
|
||||
|
|
|
|||
Loading…
Reference in a new issue