Open Source · v2.0.0Python 3.10+ · PyQt5

Build Production
Workflows at the
Speed of Thought

Vibrante-Node is a Python-node-based visual framework for building modular systems through connected nodes and data flows. It provides an intuitive graph interface where complex logic can be constructed visually by linking nodes together. The project focuses on flexibility, extensibility, and developer productivity, making it suitable for building tools such as visual pipelines, automation workflows, and data-processing graphs. Node-based systems allow complex operations to be organized as interconnected components rather than traditional linear code structures, improving clarity and scalability in large workflows.

165+Built-in Nodes
5DCC Integrations
100%Python API
MITLicense
vibrante-node — houdini_asset_pipeline.vnw
Running
Python Scriptfolder_pathfile_listForEachitemsitemloop_execHoudini: Create Nodeparent_pathnode_pathHoudini: Set Parmnode_pathvalueHoudini: Cook Nodenode_pathresultConsole PrintmessageEXECUTION LOG
Houdini Bridge
Connected ✓
Async Engine
0 UI freeze
Scroll to explore
Capabilities

Everything Your Pipeline Needs

A complete toolkit for VFX automation. From Houdini SOPs to AI orchestration — all in one visual canvas.

Visual Execution Engine

Async node execution with exec + data pins. See exactly what runs when. Every node fires in asyncio — the UI never freezes, even during heavy Houdini cooks.

asyncio + qasync

Live Wire Inspector

Hover any wire to see the last value that flowed through it. Debug in seconds, not hours. Values persist after execution for full post-run inspection.

hover to inspect

165+ Built-in Nodes

Math, logic, file I/O, HTTP, Prism Pipeline, DCC control, ForEach, WhileLoop, SetVariable/GetVariable, SubGraph — and more. Every common pattern is already built in.

165+ nodes

Full Python Extensibility

Any JSON file with a python_code field becomes a node. Drop it in nodes/ and it appears in the library instantly. The Node Builder GUI (Ctrl+E) makes creation visual.

JSON → instant node

Multi-DCC Integration

Houdini live bridge via TCP JSON-RPC. Maya + Blender via action-list headless subprocess pattern. Prism Pipeline with 60+ nodes. Deadline for render submission.

Houdini · Maya · Blender

Subgraph / GroupNode

Collapse any workflow into a reusable component with Ctrl+Shift+G. Share across projects. Nest subgraphs inside subgraphs. Dynamic ports auto-sync with inner connections.

Ctrl+Shift+G
Screenshots

See It In Action

A production-grade desktop app built with PyQt5. Dark theme, mini-map, canvas search, autosave — all included.

Vibrante-Node — Node Canvas
Vibrante-Node — Full node graph with Houdini pipeline workflow
Zoom

Visual node canvas with exec pins and data wires

Node Canvas
Ctrl+FCanvas Search
Ctrl+MToggle Mini-map
Ctrl+Shift+GGroup Selection
Ctrl+ENode Builder
Ctrl+ZUndo / Redo
Integrations

Works With Your Entire Pipeline

Every major VFX DCC and pipeline tool — connected, automated, and running from a single visual workflow.

Houdini

Live Bridge

Live TCP JSON-RPC bridge to running Houdini session. Create nodes, set parms, cook, save .hip — all in real-time.

create_node()set_parm()cook_node()run_code()scene_info()

Maya

Headless

Headless action-list pattern using mayapy subprocess. Build full render + publish pipelines without opening the UI.

open_sceneexport_alembicset_frame_rangerender_sequencebatch_mode

Blender

Headless

Headless action-list pattern via Blender background subprocess. Automate modeling, rendering, and export tasks.

open_blendrender_frameexport_gltfapply_modifierpython_script

Prism Pipeline

60+ nodes

60+ nodes covering the full Prism API. Assets, shots, versions, publishing, USD, and more — all visual.

get_assets()create_version()publish_product()get_shots()usd_export

Deadline

Render Farm

Submit render jobs for Maya, Houdini, and Blender directly from your workflow. Track status and collect results.

submit_job()get_job_status()cancel_job()get_output_paths()priority

Python / USD

Extensible

Drop any Python class in nodes/ and it is live. Full asyncio support. USD workflows via Prism USD integration nodes.

BaseNodeasync execute()add_input()add_output()log_error()
Use Cases

Workflows That Ship Pipelines

From Houdini procedurals to AI orchestration — see what real workflows look like.

Get AssetCheck VerExport USDSubmit JobLog Done

VFX Asset Publishing

Prism nodes query assets, check versions, export to USD, and submit to Deadline. One workflow, zero manual steps.

prism_get_assetsprism_check_versionusd_exportdeadline_submit
Create GeoCreate SOPSet ParmsCook Node

Houdini Procedural Network

Create geo networks, wire SOPs, set parameters, cook, and save .hip files — all via the JSON-RPC bridge to a live session.

hou_create_nodehou_set_parmhou_cook_nodehou_save_hip
HTTP CallParse JSONIf BranchLog ErrorWrite DB

AI Pipeline Orchestration

Chain LLM calls, process responses, route on sentiment, write to database. Build multi-step AI workflows visually.

http_requestjson_parseif_elseforeachwrite_file
Developer Experience

Build Nodes in Minutes

Any Python class that inherits BaseNode becomes a live node. The JSON format is simple enough to write by hand — or use the Node Builder GUI.

Python class (python_code)
my_node.py
python
1from src.nodes.base import BaseNode
2
3class My_Node(BaseNode):
4 name = "my_node"
5
6 def __init__(self):
7 super().__init__()
8 # [AUTO-GENERATED-PORTS-START]
9 self.add_input("file_path", "string", widget_type="text")
10 self.add_input("scale", "float", widget_type="float", default=1.0)
11 self.add_output("result", "any")
12 # [AUTO-GENERATED-PORTS-END]
13
14 async def execute(self, inputs):
15 path = inputs.get("file_path", "")
16 scale = inputs.get("scale", 1.0)
17 # ... your logic here ...
18 return {"result": path, "exec_out": True}
19
20def register_node():
21 return My_Node
Node definition (.json)
my_node.json
json
1{
2 "node_id": "my_node",
3 "name": "my_node",
4 "description": "My custom node",
5 "category": "Custom",
6 "use_exec": true,
7 "inputs": [
8 { "name": "file_path", "type": "string",
9 "widget_type": "text" },
10 { "name": "scale", "type": "float",
11 "widget_type": "float", "default": 1.0 }
12 ],
13 "outputs": [
14 { "name": "result", "type": "any" }
15 ],
16 "python_code": "..."
17}

Drop the JSON file in nodes/

It appears in the library instantly. No restart required — use Scripts → Refresh to reload all nodes without closing the app.

Zero boilerplate — inherit BaseNode, implement execute()
📁

Drop-in nodes

Place any .json file in nodes/ folder — it registers automatically on the next startup or script refresh.

Async first

Every execute() is async. Run Houdini cooks, HTTP calls, file I/O — all without blocking the UI.

🔌

Type-safe ports

String, float, int, bool, list, any. The engine validates connections and shows type-colored pins.

🛠

Node Builder GUI

Press Ctrl+E to open the visual Node Builder. Build nodes without touching JSON — code is generated for you.

Port Type Colors

string
int
float
bool
list
any
exec (white square)
Open Source · MIT License

Start Building Your
Pipeline Today

Open source. Python-native. Production ready. No subscriptions. No lock-in. Just nodes.

Python 3.10+PyQt5asyncio + qasyncPydantic v2JSON-RPC BridgeMIT License