WIP: Blender node graphs: design #3

Closed
libby wants to merge 7 commits from libby/blender-node-graphs-design into main
Member

Design only, no code. Adds docs/blender-node-graphs.md: how Brokkr creates, configures and reads back Blender shader/material, world, geometry-node and compositor graphs.

Covers: the typed graph document brokkr.blender.node_graph.v0 (nodes by Brokkr-owned id, blIdname, location; sockets by Blender identifier with type and default; links; group nodes and group interfaces; tree kinds material | world | geometry | compositor | shaderGroup), snapshot read-back with caps and revision/contentHash, the actions (createNodeTree, createNodeGroup, addNode, removeNode, setNodeInput, setNodeProperty, linkSockets, unlinkSockets, assignNodeTree, setModifierInput) plus an atomic editNodeTree batch, idempotency by node id, error slugs, what must not be exposed (script nodes/OSL, evaluated strings, file-touching nodes), what is testable without Blender versus what needs a live one, a Blender version matrix, a five-cut plan and open questions.

Nothing in it has been run against Blender (not installed). Rows of the version matrix marked "confirm" are unverified claims and are labelled as such in the doc.

Draft; not merged.

🤖 Generated with Claude Code

**Design only, no code.** Adds `docs/blender-node-graphs.md`: how Brokkr creates, configures and reads back Blender shader/material, world, geometry-node and compositor graphs. Covers: the typed graph document `brokkr.blender.node_graph.v0` (nodes by Brokkr-owned id, `blIdname`, location; sockets by Blender identifier with type and default; links; group nodes and group interfaces; tree kinds material | world | geometry | compositor | shaderGroup), snapshot read-back with caps and `revision`/`contentHash`, the actions (`createNodeTree`, `createNodeGroup`, `addNode`, `removeNode`, `setNodeInput`, `setNodeProperty`, `linkSockets`, `unlinkSockets`, `assignNodeTree`, `setModifierInput`) plus an atomic `editNodeTree` batch, idempotency by node id, error slugs, what must not be exposed (script nodes/OSL, evaluated strings, file-touching nodes), what is testable without Blender versus what needs a live one, a Blender version matrix, a five-cut plan and open questions. Nothing in it has been run against Blender (not installed). Rows of the version matrix marked "confirm" are unverified claims and are labelled as such in the doc. Draft; not merged. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Design only. Typed brokkr.blender.node_graph.v0 document, tree kinds, read-back,
the node actions, idempotency by node id, error slugs, exclusion of script nodes,
testable-without-Blender split, version matrix, cut plan.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Five real setups (grass tuft, index-of-nearest helpers, raycast helpers, shortest-path
labyrinth, Blender essentials as library groups) plus the scripted habitats, expressed
as Brokkr ops where possible, with eleven numbered design gaps. Nothing run in Blender.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Folds item sockets (addNodeItem), zones (addZone, in v1), interface field-ness,
multi-input sockets, library groups (linkNodeGroupAsset) and evaluated read-back
(queryEvaluated) into the design. node_graph_probe.py ran 37 checks on Blender
5.2.3 LTS; it corrected the modifier input API, opaque interface identifiers,
capture item identifiers, Poisson socket availability and the library asset counts.
A verification-status table records what was and was not run.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
inputs[id] returns a raw ID property group without .value; found by the implementation (surfaces/blender node_actions.py on libby/blender-gn-recreation).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Member

Closing by Persona decision: trim to what #5 implements leaves nothing, because #5 already documents its eight actions in surfaces/blender/docs/node-actions.md. What remains here is design for unbuilt parts (zones, item sockets, library groups, queryEvaluated, editNodeTree batch, setNodeInput/setNodeProperty) plus Blender 5.2.3 probe facts; parked at tag parked/blender-node-graphs-design.

Closing by Persona decision: trim to what #5 implements leaves nothing, because #5 already documents its eight actions in surfaces/blender/docs/node-actions.md. What remains here is design for unbuilt parts (zones, item sockets, library groups, queryEvaluated, editNodeTree batch, setNodeInput/setNodeProperty) plus Blender 5.2.3 probe facts; parked at tag parked/blender-node-graphs-design.
libby closed this pull request 2026-11-10 23:15:56 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Brokkr!3
No description provided.