Skip to main content

Zabob Banner

Zabob-Houdini

Tests PyPI

A simple Python API for creating Houdini node graphs programmatically.

What is Zabob-Houdini?

Zabob-Houdini provides a clean, Pythonic interface for building Houdini node networks. Instead of manually creating nodes and wiring connections, you can describe your node graph declaratively and let Zabob handle the details.

Key Features:

  • Declarative API: Describe what you want, not how to build it
  • Immutable Objects: Node and chain definitions are immutable for safety and caching
  • Automatic Connections: Wire nodes together with simple syntax
  • Chain Support: Create linear processing pipelines easily
  • Type Safety: Full type hints for modern Python development
  • Flexible: Works in Houdini scripts, shelf tools, and HDAs

📚 Complete API Documentation - Comprehensive reference for all functions, classes, and methods

Quick Start

Zabob-Houdini provides two main functions:

  • node() - Create individual nodes with automatic connections
  • chain() - Create linear sequences of connected nodes

Both return immutable objects that use .create() to instantiate the actual Houdini nodes.

Why Immutability?

Safety: Once defined, node configurations can't be accidentally modified, preventing bugs from unexpected changes.

Caching: Immutable objects can be safely cached and reused, improving performance when creating complex node networks.

Predictability: The same node definition always creates the same result, making code easier to reason about and debug.

Templates: Node definitions serve as reusable templates for creating networks, allowing the same pattern to be instantiated multiple times.

Circular References: Immutable definitions enable circular node graphs by allowing nodes to reference each other before instantiation (feature planned for future release).

Example Usage

from zabob_houdini import node, chain, context

# Create a geometry container and organize nodes with context
with context(node("/obj", "geo", "mygeometry")) as ctx:
    # Create nodes within the context
    box_node = ctx.node("box", "mybox")
    transform_node = ctx.node("xform", "mytransform", _input=box_node)

    # Or create a processing chain using context nodes
    processing_chain = ctx.chain("mybox", "mytransform", ctx.node("subdivide"))

# These definitions are cached and can be reused safely
processing_chain.create()  # Creates entire dependency tree

For complete examples including multi-output connections, chain indexing, type narrowing, and advanced patterns, see the API Documentation.

Installation from PyPI

Once published, users can install with:

# First ensure hython is on your path.
# This is a requirement for all usage.
# Then:

mkdir zabob-houdini
cd zabob-houdini

# Using uv (recommended)
uv venv .venv
source .venv/bin/activate  # macOS/Linux
# .venv\Scripts\activate   # Windows (Command Prompt)
# .venv\Scripts\Activate.ps1  # Windows (PowerShell)
uv add zabob-houdini

# Using pip
python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# .venv\Scripts\activate   # Windows (Command Prompt)
# .venv\Scripts\Activate.ps1  # Windows (PowerShell)
pip install zabob-houdini

# Install into Houdini:
zabob-houdini install-package

# Validate:
zabob-houdini validate

For Houdini Integration

# In Houdini's Python shell, shelf tools, or HDAs
from zabob_houdini import node, chain, context

Documentation

Metadata

Release files for zabob-houdini 0.1.3

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

Source distribution (sdist)

Source distribution for zabob-houdini 0.1.3
File Size Uploaded
zabob_houdini-0.1.3.tar.gz 7.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for zabob-houdini 0.1.3
File Interpreter ABI Platform
zabob_houdini-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 7.2 MB

Release files / zabob_houdini-0.1.3.tar.gz

Download URL zabob_houdini-0.1.3.tar.gz
Size 7.2 MB
Tags Source
SHA-256 checksum
How to use checksums
5a1108096c10296c2c9e28a98e1bf2e5c30a45f543857e2e957afa6162a2bcd3
BLAKE2b-256 checksum
How to use checksums
61a2ca459d688e2098def6c8f595e490eb9d8410fc5e8890b367dcfe7e82d0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Nov 17, 2025.

Transparency log

Release files / zabob_houdini-0.1.3-py3-none-any.whl

Download URL zabob_houdini-0.1.3-py3-none-any.whl
Size 55.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e0121360084c20d81170dfba47d4ff18373e9ab2fc132a1b1f99221350f0909
BLAKE2b-256 checksum
How to use checksums
1f3f428d346ebd6c73b6f271c93fe5e7fbd9f5d3373c1678a019a1f1a92f48ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Nov 17, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

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