DocsIntroduction

Vibrante-Node v2.4.0 โ€” Introduction

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 platform focuses on flexibility, extensibility, and developer productivity โ€” making it suitable for building visual pipelines, automation workflows, and data-processing graphs across any domain. 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.

Vibrante-Node supports multiple interaction patterns:

  • Visual Workflow Orchestration โ€” build, run, and inspect complex multi-step workflows by wiring together reusable node blocks on an interactive PyQt5 canvas. Data flows left-to-right, execution flows via exec pins, and every wire value is inspectable after a run.
  • Programmatic Automation โ€” drive the execution engine via the scripting console or Python API without UI interaction.
  • DCC Integration โ€” build and control Houdini, Maya, and Blender scenes through live bridge and headless executor nodes.
  • AI-Assisted Orchestration (optional advanced feature) โ€” Claude, Codex CLI, Cursor, or any MCP-compatible AI client connects to the built-in MCP server (scripts/run_vibrante_mcp.py), accessing tools for scene inspection, planning, validation, and structured scene execution.

Table of Contents

  1. Core Philosophy
  2. Who Is This For
  3. Feature Overview
  4. Why Visual Node Graphs
  5. Beyond VFX โ€” General Automation
  6. Supported Integrations
  7. Architecture Overview
  8. Version History
  9. Documentation Map

Core Philosophy

Why Node-Based?

Scripts are linear. Node graphs are not. When a pipeline task grows beyond a handful of steps โ€” conditional branching, parallel tracks, optional DCC calls, error routing โ€” a script becomes a wall of nested if statements and callback chains that is hard to read, hard to modify, and impossible to hand off to a non-programmer. A node graph externalises the control flow into a visual structure that anyone can understand at a glance: data flows left to right, execution flows top to bottom, and every node is an isolated contract with defined inputs and outputs.

Vibrante-Node adopts the Unreal Engine Blueprint model of exec pins alongside data pins. Exec pins (the white square connectors) explicitly wire the order of operations. Data pins (the coloured circles) carry values between nodes. This dual-channel approach lets you build workflows that are simultaneously readable as flowcharts and correct as programs.

Why Async?

DCC operations โ€” cooking a Houdini geometry, rendering a Maya scene, querying a Prism Pipeline project database โ€” can take seconds or minutes. A synchronous engine would freeze the UI and prevent you from monitoring progress, reading log output, or stopping a runaway task. Vibrante-Node runs the execution engine on a dedicated asyncio event loop driven by a zero-interval QTimer on the Qt main thread (_EventLoopRunner in src/ui/window.py). Every node's execute() method is a Python coroutine (async def). This means:

  • The UI stays responsive during execution.
  • Long-running nodes can await external results without blocking.
  • The Stop button works immediately.
  • Multiple parallel execution branches can run concurrently.

Why Extensible?

No automation platform ships with every node you will ever need. Vibrante-Node is designed so that adding a new node requires exactly one file: a .json file containing the port definitions and the Python code. There is no registration step, no recompile, no plugin manifest beyond dropping the file in the nodes/ directory. The NodeRegistry discovers and registers it automatically on startup. For DCC-specific nodes, the Houdini plugin package (plugins/houdini/) adds nodes from v_nodes_houdini/ and scripts from v_scripts_houdini/ via environment variables โ€” no changes to the core application.

Build Once โ†’ Reuse Everywhere

The GroupNode (Ctrl+Shift+G) collapses any selected sub-workflow into a single reusable node. Group nodes expose only the ports you choose, hide internal complexity, and can be nested inside other group nodes. A studio can build a prism_publish_asset group node once and reuse it as a black-box building block in every shot workflow across all projects โ€” without copying the logic.

Workflow files are plain JSON. They can be checked into version control, diffed, merged, and shared across teams. A workflow that runs on one artist's machine runs identically on another with the same node library installed.


Who Is This For

Vibrante-Node is built for three overlapping audiences.

Visual Users and Technical Artists

Artists who need to automate repetitive tasks โ€” renaming files, batch-exporting assets, running Houdini geometry operations โ€” but do not want to write Python scripts. They build workflows by dragging nodes from the Library panel, connecting them on the canvas, and pressing F5. The node library is organised by category, searchable by name, and produces immediate visual feedback through the log panel and live wire value inspector.

Typical tasks: batch asset export, scene setup automation, file organisation, render submission.

Pipeline TDs and Studio Engineers

Technical Directors who build and maintain shared workflows for a team. They author custom nodes using the Node Builder or by editing JSON files directly, package them as Houdini plugin additions or standalone nodes/ files, and distribute them to artists. They integrate with Prism Pipeline for project/asset/shot management and with Deadline for render farm submission.

Typical tasks: pipeline integration nodes, studio-specific workflow templates, Prism entity queries, Deadline job configuration.

Python Developers

Developers who want to build automated systems with a visual interface without writing a UI framework from scratch. They subclass BaseNode, implement async def execute(self, inputs), and return a dict. The engine, canvas, log panel, autosave, and all other infrastructure are provided. They can also drive Vibrante-Node programmatically via the automation API (AUTOMATION_API.md).

Typical tasks: custom automation tooling, CI/CD pipeline steps, data processing workflows, service integrations.

AI Developers and ML Engineers

Developers who want Claude, Codex CLI, Cursor, or another MCP-compatible AI to build, inspect, and modify Houdini scenes autonomously under human supervision. They run scripts/run_vibrante_mcp.py, configure their AI client, and then describe in natural language what they want built. The AI uses the planning and validation tools; the human reviews the generated plan and approves high-risk operations before execution.

Typical tasks: AI-driven scene assembly, iterative procedural content generation, natural-language Houdini automation, multi-agent production pipelines.


Feature Overview

FeatureDescriptionShortcut / API
Interactive CanvasPan, zoom, rubber-band select on a QGraphicsScene/View canvasMiddle Mouse / Alt+LMB, Ctrl+Wheel, drag
Node Search PopupFuzzy-search all registered nodes by name or IDTab
Exec Flow PinsWhite square pins enforce execution order; data pins carry valuesDrag output to input
Async Execution Engineasyncio coroutines keep the UI responsive during long operationsF5 to run, Stop button to cancel
GroupNode / SubgraphCollapse 2+ nodes into a single reusable subgraph nodeCtrl+Shift+G
Mini-map200x150 px canvas thumbnail with viewport indicator in bottom-rightCtrl+M to toggle
Canvas Search BarFind any node by name in the current canvasCtrl+F
Live Wire InspectorHover a connected wire to see the last value that flowed through itMouse hover
Bypass ModeSkip a node; exec chain continues through it transparentlyCtrl+B
Backdrop / Network BoxLabel and visually group regions of the canvasCtrl+G
Sticky NotesFree-floating text annotationsRight-click canvas
Node BuilderGUI editor for creating and editing node JSON + Python codeCtrl+E
Script EditorStandalone Python editor with QScintilla and syntax highlightingWindow menu
Scripting ConsoleInteractive Python REPL inside the appWindow menu
AutosaveWrites all open tabs to ~/.vibrante_node_autosave.json every 2 minutesAutomatic
Crash RecoveryOn next launch, offers to restore tabs from the autosave fileAutomatic
Recent FilesFile > Open Recent lists the last 10 workflowsFile menu
Node Execution TimingLog panel shows how long each node took, e.g. finished in 0.34sAutomatic
Copy / PasteCopy and paste node selections within or across workflowsCtrl+C / Ctrl+V
Reload NodeRe-read a node's JSON from disk and apply changes liveCtrl+R
Houdini BridgeTCP JSON-RPC connection to a live Houdini sessionget_bridge()
Maya HeadlessHeadless Maya batch executor via action-list patternmaya_headless node
Blender HeadlessHeadless Blender batch executor via action-list patternblender_action_* nodes
Prism Pipeline60+ nodes for project/asset/shot/product managementprism_* nodes
Deadline SubmissionSubmit render jobs to Thinkbox Deadlinedeadline_* nodes
Export to PythonExport a workflow as a standalone Python scriptFile > Export
Dark / Light ThemeToggle between Dracula dark and One-Light themesWindow > Theme
Gemini AI IntegrationChat with Google Gemini AI from within the appWindow menu

Advanced Runtime Extensions (optional โ€” v2.4.0)

Available when mcp>=1.0.0 is installed. Headless โ€” no Qt or display server required.

FeatureDescriptionEntry Point
MCP Server12 tools for Claude Desktop, Codex CLI, and Cursor: scene inspection, planning, validation, and executionscripts/run_vibrante_mcp.py
Generic MCP Client NodesConnect any MCP server from inside a workflowmcp_server_init, mcp_list_tools, mcp_call_tool
Houdini AI Nodes23 nodes: scene context, node chain builder, transaction, graph diff, AI plan/preview/execute/reviewhou_mcp_* nodes
Transaction SystemValidated, recorded, reversible mutations with optional rollbackhou_mcp_transaction
AI Planning PipelineNatural-language prompt โ†’ validated plan โ†’ approval gate โ†’ executionhou_mcp_ai_* nodes

Why Visual Node Graphs

The Problem with Plain Scripts

Consider a pipeline task: open a Maya scene, export alembic geometry, import it into Houdini, run a simulation, export the result, and submit a Deadline render job โ€” but only if the simulation produces more than 1000 points, otherwise skip the render and log a warning. In a Python script this requires careful state management, nested conditionals, error handling at every step, and careful documentation so the next person can understand what it does.

In Vibrante-Node, this is five to ten nodes on a canvas. The conditional branch is visible as two exec paths. Error handling is a separate exec path from exec_fail. Anyone can understand the flow in ten seconds.

Specific Benefits

Discoverability. Every available operation is in the node library, searchable by name. There is no need to remember function names or read API documentation to get started.

Reusability. A GroupNode packages any sub-workflow into a single named block that can be duplicated, shared, or nested. Workflows can be saved as templates and reused across projects.

Live inspection. The live wire inspector shows the last value that flowed through every connection after execution. There is no need to add print statements and re-run to debug data flow โ€” hover the wire.

Non-destructive iteration. Bypass a node with Ctrl+B to skip it without deleting it. Reconnect differently. The canvas is a whiteboard that invites experimentation.

Team collaboration. A workflow file is a JSON document. It can be checked into version control, diffed, and merged. Artists can build workflows without writing code; developers can build nodes without building UIs.


Beyond VFX โ€” General Automation

While Vibrante-Node ships with deep VFX and animation pipeline integrations, the core platform is entirely domain-agnostic. The execution engine, canvas, node library, and file format do not have any VFX-specific logic. Any Python task can become a node.

Examples of non-VFX use cases:

  • File processing pipelines โ€” watch a folder, process new files, move or rename outputs, write a report.
  • Data transformation โ€” load JSON or CSV, filter, transform, write results. The python_script node runs arbitrary Python inline.
  • API orchestration โ€” call REST APIs in sequence, pass results between calls, handle errors on separate branches.
  • Build and deployment automation โ€” run shell commands via python_script, check exit codes via compare or logical_gate, conditionally proceed.
  • Machine learning experiments โ€” string together data loading, preprocessing, model training, and evaluation steps with visual control flow.
  • Database workflows โ€” query databases, transform results, insert or update records, log summaries.
  • Report generation โ€” pull data from multiple sources, aggregate, format, write files.

Any step that can be expressed as a Python function with typed inputs and outputs can be a Vibrante-Node node.


Supported Integrations

Houdini (Interactive Bridge)

The Houdini integration runs a JSON-RPC server (vibrante_hou_server.py) inside a live Houdini session over a local TCP socket. Vibrante-Node nodes call bridge.create_node(), bridge.set_parm(), bridge.cook_node(), and other methods to build and run Houdini networks interactively. The bridge supports all common Houdini operations: create/delete nodes, set parameters, wire connections, cook, save hip files, set keyframes, run arbitrary Python code inside Houdini via bridge.run_code().

The Houdini plugin is installed by placing plugins/houdini/vibrante_node.json in the Houdini packages folder. It adds the Vibrante-Node menu to Houdini's menu bar, loads a shelf tool, and provides Launch Vibrante-Node and Reconnect commands.

Maya (Headless Executor)

Maya nodes follow an "action list" pattern. Each maya_action_* node appends a dictionary to a list. The maya_headless node receives the completed action list and passes it to a headless Maya subprocess (mayapy) that executes each action in sequence. This approach does not require a running Maya session โ€” it is suitable for batch processing and render farm pipelines.

Actions include: open/save/new scene, import/export alembic/FBX/OBJ, import/export camera, reference scene, assign material, create render layer, set AOVs, set render settings, set frame range, playblast, and custom Python.

Blender (Headless Executor)

Blender nodes use the same action-list pattern as Maya. Each blender_action_* node appends an action dict. The executor runs Blender in background mode (blender --background --python). Actions include: open/save/new blend file, import/export alembic/FBX/glTF/OBJ/USD, render, set render settings, set frame range, scene info, and custom Python.

Prism Pipeline

Prism Pipeline is a studio-grade project management system. Vibrante-Node ships with over 60 Prism nodes covering the full Prism API surface: initialise PrismCore, list/create/switch projects, query assets/shots/sequences, get product versions, export paths, save scene versions, create playblasts, manage USD layers, trigger callbacks, and more.

PrismCore is resolved automatically from a shared cache โ€” there is no need to wire a core output between every Prism node. Place a prism_core_init node anywhere in the graph and all prism_* nodes find the same instance.

Deadline (Thinkbox)

Deadline submission nodes (deadline_maya_submit, deadline_houdini_submit, deadline_blender_submit) wrap the Deadline command-line client to submit render jobs with configurable job name, pool, priority, frame range, and renderer settings.

MCP Runtime (Advanced)

Vibrante-Node can run as a headless MCP server. An external AI client (Claude Desktop, Codex CLI, Cursor) connects via stdio and receives tools for scene inspection, planning, validation, and structured scene execution. No display server or Qt required. See AI Runtime & MCP Integration in the full documentation for setup and the complete tool list.


Architecture Overview

Vibrante-Node has a layered architecture. The visual canvas drives the execution engine, which runs nodes that call integrations and utilities. The Advanced Runtime Extensions are an optional layer used by hou_mcp_* nodes and the headless MCP server.

+------------------------------- VISUAL CANVAS ------------------------------+ | LAYER 1 MainWindow (PyQt5) | | Menu | Toolbar | Tab Bar | Library Panel | Log Panel | Scripting Console | +------------------------------------+--------------------------------------+ | F5 -> WorkflowModel v +------------------------------- EXECUTION ENGINE ---------------------------+ | LAYER 2 Core | | NetworkExecutor (asyncio) | GraphManager (DAG+toposort) | | NodeRegistry | WorkflowModel (Pydantic) | Persistence (JSON) | +------------------------------------+--------------------------------------+ | calls execute() v +------------------------------- NODE LIBRARY --------------------------------+ | LAYER 3 Nodes (nodes/ + plugins/) | | BaseNode subclasses: General | Houdini | Maya | Blender | Prism | MCP | +-------------------+------------------------+------------------------------+ | | v v +------- UTILS & INTEGRATIONS (4a) -----+ +--- Headless Subprocesses (4b)--+ | src/utils/ | | mayapy / blender --bg | | HouBridge (TCP/JSON-RPC, port 18811) | | PrismCore (shared singleton) | | EnvManager | qt_compat | +--------------------------------+ +---------------------------------------+ | (optional) โ”€โ”€โ”€โ”€โ”€โ”€v +-------------------- ADVANCED RUNTIME EXTENSIONS --------------------------+ | OPTIONAL src/runtime/ โ† used only by hou_mcp_* nodes and MCP server | | MCP server | AI planning | transactions | validation | analytics | +----------------------------------------------------------------------------+

Execution flow (F5):

  1. The user builds a workflow on the canvas โ€” nodes connected by exec and data pins.
  2. On F5, MainWindow serialises the scene to a WorkflowModel, builds a GraphManager (DAG), and creates a NetworkExecutor.
  3. The executor fires entry-node execute() coroutines and follows exec_out connections in topological order.
  4. Results broadcast via Qt signals: node_output โ†’ live wire inspector, node_log โ†’ log panel.

Version History

VersionReleaseMajor Milestones
v1.02026 Q1Initial release. JSON node format, PyQt5 canvas, async engine, exec/data pins, Library panel, log panel, dark theme.
v1.52026 Q2Headless action node pattern for Maya, Houdini, and Blender. Deadline submission nodes. python_script inline node.
v1.62026 Q2Prism Pipeline integration (40+ nodes). prism_core_init auto-bootstrap. Shared PrismCore cache.
v1.8.42026 Q2Node Builder GUI. Scripting Console. Script Editor with QScintilla. Export to Python. Import from Python.
v1.8.52026 Q2QScintilla optional fallback (no hard crash on missing dependency). Houdini bridge socket fixes (TCP_NODELAY, lock, timeout). vibrante_hou_server.py headless fixes. window.py Houdini node/script loading fix.
v2.0.02026-05-10Live Wire Inspector. Autosave / Crash Recovery. Recent Files. Node Execution Timing. Canvas Search Bar (Ctrl+F). Mini-map (Ctrl+M). Subgraph / Group Node (Ctrl+Shift+G) with editable subgraph tabs and sync-back. GroupNode bugs fixed (exec_fail, injected value, UUID serialization). KeyboardInterrupt crash fix.
v2.1.02026-05-14Unsaved-changes detection: * tab marker, Save/Discard/Cancel on close. Port type mismatch warning in log panel. Fixed F5/Shift+F5 shortcuts. Fixed false * on loaded workflows.
v2.1.12026-05-14Scripting Console theme fix (all panels). Houdini plugin standalone LICENSE. Windows VERSIONINFO in exe (fixes "Unknown publisher" on Windows 11). Contact email and website cleanup.
v2.2.02026-05-15Settings dialog (Edit โ†’ Preferences, Ctrl+,). EnvManager persists Python paths, node dirs, script dirs, and custom env vars. Import/Export settings to JSON file. Qt thread-violation crash fix when typing in wired nodes. 10 website example nodes. 142 tests.
v2.2.12026-05-15Patch: About dialog crash fix (QTextEdit โ†’ QTextBrowser). LICENSE file now bundled in exe (_internal/).
v2.3.02026-05-18HTTP Request node (bundled). Authenticode signing tools. Node Builder exec-port corruption fix. Node Builder default-value round-trip fix. Icon-path field isolation fix. Load-node/load-workflow cross-detection. Canvas drag trail fix. http_request UI freeze fix (run_in_executor). Linux packaging (pip, AppImage, .deb).
v2.4.02026-05-2626 new nodes (3 generic MCP client + 23 Houdini AI). Runtime extensions layer (Tiers 1โ€“6): MCP server, AI planning pipeline, transaction system, distributed execution, analytics. Node ID cleanup. Subprocess crash log. Bug fixes: build_node_chain ordering, review_execution scoring, preview_execution ImportError.

Documentation Map

Primary Guides (root-level docs)

DocumentAudienceContents
USER_GUIDE.mdAll usersInterface, canvas, execution model, all features, keyboard shortcuts, troubleshooting
NODE_BUILDER_API.mdNode authorsBaseNode class reference, port system, lifecycle hooks, JSON schema, distribution, DCC integration patterns
AUTOMATION_API.mdPipeline TDsScripting console, scene/app/registry API, automation script examples, headless execution
DEVELOPER.mdContributorsExecution engine internals, event loop, data flow, node registry, serialization, Qt threading, EnvManager, plugin architecture
DOCUMENTATION.mdReference lookupComplete node index, BaseNode API table, port/serialization schemas, env vars, signals, shortcuts, error index

Portal Documentation (this site)

DocumentContents
01_introduction.md (this file)What Vibrante-Node is, philosophy, audiences, architecture, version history
02_getting_started.mdInstallation, first launch, first workflow walkthrough
03_user_guide.mdCanvas navigation, execution flow, all UI features
04_workflow_tutorials.mdStep-by-step workflow build tutorials
05_node_development.mdComplete node development guide (1,000+ lines)
06_backend_architecture.mdExecution engine deep dive with flow diagrams
07_frontend_architecture.mdQt canvas architecture โ€” NodeScene, NodeWidget, Edge
08_api_reference.mdFull class/method API reference (1,500+ lines)
09_advanced_topics.mdGroupNode, autosave, wire inspector, canvas search internals
10_contribution_guide.mdContributing, testing, code style
11_troubleshooting.mdDiagnostic checklist, known issues, log interpretation
12_examples_library.mdCurated examples from node_examples/, website_examples/
13_general_purpose_automation.mdAutomation patterns from examples/automation/
14_custom_nodes_api.mdCustom node SDK โ€” extended reference

Release Notes

VersionTypeFile
v2.4.0MinorRELEASE_v2.4.0.md
v2.3.0MinorRELEASE_v2.3.0.md
v2.2.1PatchRELEASE_v2.2.1.md
v2.2.0MinorRELEASE_v2.2.0.md
v2.1.1PatchRELEASE_v2.1.1.md
v2.1.0MinorRELEASE_v2.1.0.md
v2.0.0MajorRELEASE_v2.0.0.md
Earlierโ€”releases/

Vibrante-Node v2.4.0 โ€” Released 2026-05-26