geometry-nodes-pythonlisted
Install: claude install-skill TMHSDigital/Blender-Developer-Tools
# Geometry Nodes in Python
## Trigger
Use this skill when the user:
- Wants to build a Geometry Nodes tree from a script rather than the editor
- Mentions `GeometryNodeTree`, `node_groups.new`, `tree.interface`, `tree.links.new`
- Needs to apply a generated GN tree as a modifier on an object
- Asks about Bundles, Repeat Zones, or for-each Element zones from Python
## High-level shape
The Python pattern for building a Geometry Nodes tree has four phases:
1. Create the node group and its interface (input and output sockets).
2. Instantiate nodes by their exact RNA bl_idname.
3. Wire nodes with `tree.links.new`.
4. Add a NODES modifier on the target object that points at the group.
```python
import bpy
def build_displace_tree():
tree = bpy.data.node_groups.new(name="MyDisplace", type='GeometryNodeTree')
tree.interface.new_socket(
name="Geometry",
in_out='INPUT',
socket_type='NodeSocketGeometry',
)
tree.interface.new_socket(
name="Strength",
in_out='INPUT',
socket_type='NodeSocketFloat',
)
tree.interface.new_socket(
name="Geometry",
in_out='OUTPUT',
socket_type='NodeSocketGeometry',
)
group_in = tree.nodes.new('NodeGroupInput')
group_out = tree.nodes.new('NodeGroupOutput')
set_pos = tree.nodes.new('GeometryNodeSetPosition')
noise = tree.nodes.new('ShaderNodeTexNoise')
multiply = tree.nodes.new('ShaderNodeMath')
multiply.operation = 'MULTIPLY'