2.8 KiB
Geometry Script Fork Notes
VibeGeometry uses a repo-local Geometry Script clone at:
external/geometry-script
The clone currently tracks upstream:
https://github.com/carson-katri/geometry-script.git
The GameCult fork remote is:
https://github.com/GameCult/geometry-script.git
The fork is intentionally kept small. As of 2026-05-04, its live branches are:
main
vibegeometry/blender-5-nested-tree-groups
Upstream may still have historical branches such as gh-pages or
nodes_to_script; those are upstream history, not GameCult fork policy.
Patch work belongs in this clone first, then in a fork branch/PR. Do not patch the installed AppData add-on directly. That path is live installation state, not source control, and it will quietly become a stupid little archaeological layer if indulged.
Setup
Run from the VibeGeometry repo root:
.\tools\setup_geometry_script_clone.ps1
This clones upstream into external/geometry-script, creates or switches to the
patch branch, and applies the patch stored in:
patches/geometry-script/0001-fix-nested-tree-group-references-on-blender-4.patch
external/ is intentionally ignored by the VibeGeometry repository. The clone
is source-controlled as its own repo, not smuggled into this repo as a pile of
vendor files.
Active Patch Branch
Branch:
vibegeometry/blender-5-nested-tree-groups
Problem:
- Geometry Script's
@treedecorator returns a Python function intended to create a nested node-group node when called inside another@tree. - Under Blender 5.1, that returned function tries to call
geometrynodegroup(...), but no such generated DSL symbol exists. - Manually calling the generated
group(node_tree=...)wrapper returnedNonein the nested path, so callers could not access group outputs.
Patch:
- In Blender 4/5, create
GeometryNodeGroupdirectly. - Assign
result.node_tree = node_group. - Wire positional and keyword arguments into enabled group inputs with
Geometry Script's existing
set_or_create_link(...)helper. - Return
Type(...)wrappers for each enabled group output.
Verification:
examples/geometry_script/shriinivas_cartesian_helper.pyloadsexternal/geometry-scriptthroughtools/geometry_script_loader.py.VG Cartesian Circlecallsvg_cartesian_helper(...)twice inside its own@treebody.- Generated circle graph contains nested
GeometryNodeGroupnodes. tools/verify_cartesian_translations.pyverifies helper, line, parabola, and circle behavior against the sourcecartesian.blendgroups in Blender 5.1.1.
Fork/PR Todo
- Upstream PR: https://github.com/carson-katri/geometry-script/pull/69
- Keep
external/geometry-scriptonvibegeometry/blender-5-nested-tree-groupsuntil that PR is merged or a better maintained fork replaces it.