
blender-geometry-nodes
Geometry Nodes in Blender 5.2 - fields, domains, attributes, instancing, zones (simulation/repeat/for-each), closures/bundles, lists, SDF grids, node tools, baking, plus a JSON-to-node-tree builder and socket inspector. Use for scattering, procedural assets/environments, parametric tools and modifier inputs.
- Installs
- 93
- Last 24h
- +11
- Trending rank
- #8211
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/el4cteo/blender-skills --skill blender-geometry-nodes- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads blender-geometry-nodes automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Geometry Nodes
The execution model is in blender-core. Build trees with scripts/gn_builder.py, a compact JSON spec that's far cheaper than raw bpy. Look up exact socket names first, because they change between versions:
scripts/gn_builder.py -- --describe GeometryNodeDistributePointsOnFaces GeometryNodeInstanceOnPoints
scripts/gn_builder.py -- --spec scatter.json --apply Ground --set Density=20 Seed=3 Mask=@paint_mask
--set Name=@attr feeds a modifier input from a named attribute. The result reports evaluated vert/face counts and node warnings. The spec format is in the script docstring; full examples are in references/recipes.md.
Core concepts (get these right or nothing works)
- Geometry flows left→right through sockets with circle shapes. Fields (diamond sockets) are functions evaluated per element on the node that consumes them, in that node's domain/context.
- Domains: Point, Edge, Face, Face Corner, Spline, Instance, Layer.
Capture Attributefreezes a field at a point in the graph (before topology changes), andEvaluate on Domainconverts between domains. - Attributes: built-ins (
position,normal,sharp_face,material_index,UVMap...) plus named ones viaStore Named Attribute. Named attributes persist after the modifier. That's how GN data reaches shaders (Attribute node) and exporters (glTFexport_attributes, which exports names starting with_). - Instances are cheap (one mesh, many transforms). Realize Instances only when you must edit per-instance geometry or export a single mesh. Realize as late as possible.
- Inputs exposed on the group interface become modifier inputs (5.2:
mod.properties.inputs.<identifier>.value). Panels group them, menu sockets give enums.
Zones and advanced types
| Feature | Nodes | Use |
|---|---|---|
| Simulation zone | GeometryNodeSimulationInput/Output (paired) | per-frame state: growth, particles, erosion; bake to keep |
| Repeat zone | GeometryNodeRepeatInput/Output | iterate N times (L-systems, relaxation, recursive subdivision) |
| For Each Element | GeometryNodeForeachGeometryElementInput/Output | run a sub-graph per element (per building lot, per island) |
| Closures / Bundles (5.0+) | NodeClosureInput/Output, NodeCombineBundle/NodeSeparateBundle, Evaluate Closure | pass functions/structured data around; reusable "strategy" node groups |
| Lists (5.2) | GeometryNodeFieldToList, ListGetItem, ListLength, SortList, FilterList | real arrays, not fields |
| Grids/SDF (4.x–5.x) | MeshToSDFGrid, SDFGridBoolean, SDFGridFillet, SDFGridOffset, GridToMesh | smooth booleans, remeshing, fillets, voxel effects |
| Physics (5.2, experimental) | GeometryNodeXPBDSolver + bundles | node-based cloth/hair, see blender-simulation |
| Gizmos | GizmoLinear/Dial/Transform | viewport handles for inputs |
Zones need input.pair_with_output(output) (spec key pairs), plus items on the output node (repeat_items, state_items, ...; spec 4th node field). |
Procedure
- Sketch the data flow: source geometry → selection/masks (fields) → generate/instance → transform/randomize → realize/merge → set materials/shading → output.
--describeevery node type you'll use, then write the spec and build. Checknode_warningsand the evaluated counts.- Expose only meaningful inputs (density, seed, scale range, materials), with min/max set.
- Look at it (
look), checkblender-asset-qaif the result will be exported (realized geometry), and checkblender-game-optimizationfor instance counts and tris. - Ship: either keep it procedural (the .blend/asset library), or apply the modifier /
visual_geometry_to_objectsfor exporters.
Rules
- Randomness: always expose a
Seed, and useRandom Valuewith the ID/Index field so results stay stable when counts change. - Scale-independent setups use
Object Info(Relative) and real units. Apply the object scale or read it explicitly. - Materials:
Set Materialinside the tree. The material must exist in the file, and instances keep their own materials. - Shading: GN output loses auto-smooth unless you add
Set Shade Smooth+ (5.x) theSmooth by Angleessentials group, or storesharp_edge. - UVs: primitives output
UVMapvia their UV output. Store it withStore Named Attribute(Face Corner, 2D Vector, nameUVMap) or it's dropped. - Performance: avoid realizing millions of instances, prefer Points + instances for scatter, use
Merge by Distancesparingly, and simulation zones need baking for playback/export (object.geometry_node_bake_singleor modifierbakes). - Node tools (
ng.is_tool = True,is_mode_editetc.) turn a group into an operator in the 3D View menus, for editing workflows.
Gotchas
- 5.2:
mod["Socket_2"]no longer works. Usegetattr(mod.properties.inputs, ident).value, and.type = "ATTRIBUTE"+.attribute_namefor attribute inputs. Compare and Random Value sockets changed: Random Value now has single dynamicMin/Max/Valuesockets typed bydata_type. Link by name, and--describewhen unsure. - Sockets that are disabled for the current mode/data type are still in
node.inputswith the same name. The builder picks the enabled one. Setdata_type/modeprops first (the builder sets props before links). nt.interface.new_socket(...)is the 4.0+ API (ng.inputs.newis gone).- Exporters see the evaluated mesh. Instances become glTF instancing (
export_gpu_instances) or are realized on export.
FAQ
What does the blender-geometry-nodes skill do?
Geometry Nodes in Blender 5.2 - fields, domains, attributes, instancing, zones (simulation/repeat/for-each), closures/bundles, lists, SDF grids, node tools, baking, plus a JSON-to-node-tree builder and socket inspector. Use for scattering, procedural assets/environments, parametric tools and modifier inputs.
How do I install blender-geometry-nodes?
Run npx skills add https://github.com/el4cteo/blender-skills --skill blender-geometry-nodes in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/blender-geometry-nodes/ (personal) or .claude/skills/blender-geometry-nodes/ (project).
Which AI agents can use blender-geometry-nodes?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is blender-geometry-nodes safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains blender-geometry-nodes?
It is published by el4cteo in el4cteo/blender-skills. It has 93 recorded installs.
More from el4cteo/blender-skills
blender-core
el4cteo/blender-skills
Foundation for any Blender 5.2+ task an agent drives - running bpy via MCP (live) or headless CLI, context overrides, locale-safe node lookup, enum discovery, 5.x API changes, verification. Use first for any Blender, bpy, .blend or 3D-asset request; routes to the specialized blender- skills.
blender-asset-qa
el4cteo/blender-skills
Open the skill to read its SKILL.md instructions.
blender-animation
el4cteo/blender-skills
Open the skill to read its SKILL.md instructions.
blender-export-pipelines
el4cteo/blender-skills
Open the skill to read its SKILL.md instructions.
blender-character-rigging
el4cteo/blender-skills
Open the skill to read its SKILL.md instructions.
blender-pbr-materials
el4cteo/blender-skills
Open the skill to read its SKILL.md instructions.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.