Skip to main content

nodebpy

Run Tests CodSpeed

Build node trees in Blender more elegantly with Python code. Geometry Nodes, Shader Nodes and Compositor nodes are all fully supported, with type hints and IDE auto-completion throughout.

pip install nodebpy

A text-based version of nodes should bring the convenience of writing code with IDE auto-completion, type hinting, with overall compactness and readability, while staying as close as possible to what building a node tree via the GUI feels like.

from nodebpy import geometry as g

with g.tree("AnotherTree", collapse=True, is_modifier=True) as tree:
    rot = (
        g.RandomValue.vector(min=-1, seed=2)
        >> g.AlignRotationToVector()
        >> g.RotateRotation(rotate_by=g.AxisAngleToRotation(angle=0.3))
    )
    pos = g.Position() * 2.0 + (0, 0.2, 0.3)

    (
        tree.inputs.integer("Count", 10)
        >> g.Points(position=g.RandomValue.vector(min=-1))
        >> g.InstanceOnPoints(instance=g.Cube(), rotation=rot)
        >> g.SetPosition(position=pos, offset=(0, 0, 0.1))
        >> g.RealizeInstances()
        >> g.InstanceOnPoints(g.Cube(), instance=...)
        >> tree.outputs.geometry("Instances")
    )

  • Every node is a typed class named after the node it creates — 'Random Value' becomes g.RandomValue() — and node subtypes are class methods: g.RandomValue.vector().
  • Trees are built inside a with g.tree(...): context; instantiating a node class adds it to the current tree, and the tree's interface is declared with tree.inputs.* / tree.outputs.*.
  • Nodes are linked with the >> operator, which picks the most compatible socket pair automatically (much like Node Wrangler's Alt + Right Click drag) — or address sockets explicitly through the .i.* / .o.* accessors.
  • Python's arithmetic, comparison and boolean operators create the matching Math / VectorMath / Compare / BooleanMath nodes: g.Value(1.0) * 2 + (0, 0, 1).
  • Existing node trees — including ones wired up by hand in the GUI — can be exported back to nodebpy source with to_python().

Agent skill

nodebpy ships an Agent Skill that teaches AI coding agents to write, check and port node trees with it. Install it into any skills-aware agent (Claude Code, Codex, Cursor, Copilot, OpenCode and others) from the repository:

npx skills add BradyAJohnston/nodebpy

Claude Code can also take it as a plugin (/plugin marketplace add BradyAJohnston/nodebpy, then /plugin install nodebpy@nodebpy), and the installed package carries the same skill, matched to its version: nodebpy skill install copies it into ~/.claude/skills and nodebpy skill path prints where it is. nodebpy lookup search|show|socket is the lookup the skill uses to find classes, sockets and options.

Documentation

Guides and the full node reference live at bradyajohnston.github.io/nodebpy:

Like databpy, this project started as an internal tool inside molecularnodes before being broken out into its own robustly typed and tested package.

Contributing

Development setup, running the tests and regenerating the node classes (most of src/nodebpy/nodes/ is auto-generated by the gen/ package) are covered in CONTRIBUTING.md.

Metadata

Release files for nodebpy 520.37.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nodebpy 520.37.0
File Size Uploaded
nodebpy-520.37.0.tar.gz 531.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nodebpy 520.37.0
File Interpreter ABI Platform
nodebpy-520.37.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / nodebpy-520.37.0.tar.gz

Download URL nodebpy-520.37.0.tar.gz
Size 531.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3ed4c0bfecba37e9ef005ac8d5dfdff57d1e7272fddcc1ac0995e6402e9b9edc
BLAKE2b-256 checksum
How to use checksums
53ccb521312739c7e5280934e4c9412e0823fa535e4683ff10896955b674b9c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / nodebpy-520.37.0-py3-none-any.whl

Download URL nodebpy-520.37.0-py3-none-any.whl
Size 592.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ee6d0a78b3b3d8b3d81467f125cfed0fb93fc77816c10d51b09777fa1d08ce4
BLAKE2b-256 checksum
How to use checksums
5c7414824fdc043a38e8e13a59b00a93a2091b215fbbfa4af652897ff4c92185
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

520.37.0 This release

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page