Skip to main content

Local DCC Agent for Plumber Workflow Editor - Enables Maya, Blender, and Houdini operations

Project description

Plumber Local DCC Agent v2.0.0 ๐Ÿš€

The Enhanced Local DCC Agent provides world-class connection stability and universal DCC integration through a revolutionary plugin architecture. It runs on the user's local machine and seamlessly integrates with the Plumber Railway backend for hybrid cloud-local workflow execution.

๐ŸŒŸ Version 2.0.0 - Major Release Updates

๐ŸŽฏ Enhanced Connection Management

  • Exponential Backoff: Smart reconnection with 5s โ†’ 10s โ†’ 20s โ†’ 40s โ†’ 60s delays
  • Connection State Persistence: Maintains connection state across agent restarts
  • Circuit Breaker Pattern: Prevents connection storms with automatic recovery
  • Multi-Path Communication: WebSocket primary + HTTP polling fallback
  • Real-time Quality Monitoring: Live connection quality scoring (0.0-1.0)
  • Message Queuing: Zero message loss during temporary disconnections

๐Ÿ”Œ Universal DCC Plugin System

  • Modular Architecture: Plugin-based system for easy DCC integration
  • Session Management: Intelligent session pooling and lifecycle management
  • Cross-DCC Support: Maya, Blender, Houdini with identical interface
  • Capability Detection: Automatic discovery of DCC features and operations
  • Resource Optimization: Smart CPU/memory management per DCC type
  • Operation Validation: Pre-execution validation and error prevention

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    WebSocket/HTTP    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Railway       โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚   Local DCC     โ”‚
โ”‚   Backend       โ”‚    DCC Operations    โ”‚   Agent         โ”‚
โ”‚   (Cloud)       โ”‚                      โ”‚   (Local)       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                   โ”‚
                                                   โ–ผ
                                         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                         โ”‚ Maya/Blender/   โ”‚
                                         โ”‚ Houdini         โ”‚
                                         โ”‚ (Local Install) โ”‚
                                         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงฉ Custom Nodes SDK

Create your own nodes that run locally on your machine. Your code stays private - only metadata is sent to the cloud.

Quick Start

  1. Create ~/plumber/custom_nodes/my_node.py:
class MyNode(Node):
    """My custom node."""
    _category = "My Nodes"
    _icon = "Star"
    _description = "Does something cool"

    message: str = Property(default="Hello", label="Message")
    result: str = Output(type=str, label="Result")

    def execute(self, context):
        self.set_output("result", f"{self.message} World!")
        return True
  1. The agent auto-discovers your node within 2 seconds. Done!

Features

  • ๐Ÿ”’ Code Privacy: Your Python code never leaves your machine
  • โšก Hot Reload: Changes detected automatically, no restart needed
  • ๐ŸŒ Network Paths: Support for shared pipeline directories (UNC, mounted drives)
  • ๐Ÿ›ก๏ธ Sandboxed: Execution timeout protection (default: 5 minutes)
  • ๐Ÿ“ฆ Standard Libraries: Use any Python standard library

Documentation

See CUSTOM_NODES_SDK.md for complete documentation including:

  • Property types (text, number, slider, dropdown, file picker)
  • Input/Output port definitions
  • ExecutionContext API (logging, progress)
  • Network path configuration for studios
  • Complete examples

API Endpoints

GET  /custom-nodes/list          # List all discovered custom nodes
GET  /custom-nodes/{type}        # Get specific node metadata
POST /custom-nodes/execute       # Execute a custom node
POST /custom-nodes/reload        # Force reload all nodes

๐Ÿ› ๏ธ Enhanced Features

Connection Reliability

  • 99.9% Uptime Target: Enterprise-grade connection stability
  • Sub-5s Reconnection: Lightning-fast recovery from network issues
  • Zero Operation Loss: Guaranteed operation completion or graceful failure
  • Real-time Diagnostics: Live connection health monitoring and debugging

Universal DCC Integration

  • ๐Ÿ” Auto-Discovery: Intelligent detection of Maya, Blender, and Houdini installations
  • ๐ŸŽจ Cross-DCC Operations: Unified interface for all supported DCCs
  • ๐Ÿš€ Session Pooling: Persistent DCC sessions for faster operation execution
  • ๐Ÿ“Š Resource Management: Intelligent CPU/memory allocation per DCC type
  • ๐Ÿ”„ Operation Chaining: Complex workflows spanning multiple DCCs

Production-Grade Features

  • ๐Ÿ”’ Enhanced Security: JWT authentication and operation validation
  • ๐Ÿ“ˆ Performance Analytics: Detailed execution metrics and bottleneck analysis
  • ๐ŸŒ Web Integration: Seamless integration with Plumber web application
  • ๐Ÿ› ๏ธ Easy Setup: One-click installation with comprehensive testing tools

Quick Start

1. Installation

Run the installer:

install.bat

This will:

  • Check Python installation
  • Create virtual environment
  • Install dependencies
  • Run DCC discovery

2. Start Agent

start_agent.bat

The agent will be available at:

  • HTTP API: http://127.0.0.1:8001
  • WebSocket: ws://127.0.0.1:8001/ws
  • Health Check: http://127.0.0.1:8001/health

3. Check Version and Test System

Verify your agent version and test enhanced features:

check_version.bat

This will:

  • Show current agent version (should be v2.0.0)
  • Check Railway backend compatibility
  • Verify enhanced connection features
  • Display connection status and quality metrics

4. Test Enhanced Features

Run comprehensive system tests:

python test_enhanced_dcc_system.py

This comprehensive test validates:

  • Enhanced connection management
  • Universal DCC plugin system
  • Connection stability and resilience
  • Plugin discovery and validation

5. Connect to Railway

The Railway backend will automatically discover and connect to your local agent when executing DCC workflows.

๐Ÿ“ก Enhanced API Endpoints

Connection Management

GET /connection/status     # Detailed connection status and quality metrics
GET /health               # Enhanced health check with connection quality
GET /version              # Comprehensive version and feature information

DCC Plugin System

GET /dcc/discovery        # Universal DCC plugin discovery
POST /dcc/execute         # Execute DCC operation through plugin system
GET /dcc/{type}/status    # Specific DCC plugin status
GET /dcc/{type}/sessions  # Session management and monitoring

Real-time Communication

WS /ws                    # Enhanced WebSocket with message queuing

Monitoring & Analytics

GET /statistics          # Execution statistics and performance metrics
GET /history             # Operation history and success rates
GET /sessions            # Active session monitoring

Custom Nodes

GET  /custom-nodes/list          # List all discovered custom nodes
GET  /custom-nodes/metadata      # Get metadata for all nodes
GET  /custom-nodes/{node_type}   # Get specific node metadata
POST /custom-nodes/execute       # Execute a custom node
POST /custom-nodes/reload        # Force reload all nodes

๐ŸŽจ Universal DCC Operations

Maya Plugin (Production Ready)

  • ๐ŸŽฌ Render: Scene rendering with Maya Software, Arnold, Mental Ray
  • ๐Ÿ“ค Export: OBJ, FBX, Alembic, Maya ASCII/Binary formats
  • ๐Ÿ“ฅ Import: Multi-format asset import with namespace support
  • ๐Ÿ“ Script: Custom Maya Python script execution
  • ๐Ÿ“Š Scene Info: Comprehensive scene analysis and metadata extraction

Blender Plugin (Production Ready)

  • ๐ŸŽฌ Render: Cycles and Eevee rendering with animation support
  • ๐Ÿ“ Script: Custom Blender Python script execution
  • ๐Ÿ“ค Export: Multiple format support (planned)
  • ๐ŸŽจ Materials: Shader node manipulation (planned)

Houdini Plugin (Production Ready)

  • ๐ŸŽฌ Render: Mantra and Karma rendering
  • ๐Ÿ“ Script: HOM (Houdini Object Model) Python scripting
  • ๐ŸŒŠ Simulation: Fluid, particle, and rigid body simulations
  • ๐Ÿ”„ Procedural: Node network creation and manipulation

Plugin Capabilities

Each plugin provides:

  • ๐Ÿ” Auto-Discovery: Automatic installation detection
  • ๐Ÿš€ Session Pooling: Persistent sessions for faster execution
  • ๐Ÿ“Š Resource Management: CPU/memory limits per DCC
  • โšก Operation Validation: Pre-execution parameter checking
  • ๐Ÿ“ˆ Performance Monitoring: Detailed execution analytics

Configuration

Edit config/agent_config.json to customize:

{
  "agent": {
    "host": "127.0.0.1",
    "port": 8001,
    "log_level": "INFO"
  },
  "railway": {
    "backend_url": "https://plumber-production-446f.up.railway.app"
  },
  "dcc": {
    "maya": { "enabled": true, "timeout": 600 },
    "blender": { "enabled": true, "timeout": 300 },
    "houdini": { "enabled": true, "timeout": 900 }
  }
}

Requirements

  • Python 3.8+
  • Windows 10/11 (primary support)
  • Maya 2022+ (optional)
  • Blender 3.6+ (optional)
  • Houdini 19.5+ (optional)

Troubleshooting

DCC Not Detected

  1. Ensure DCC is installed in standard locations
  2. Check DCC executable permissions
  3. Run discovery: python src/main.py --discover-only

Connection Issues

  1. Check firewall settings (port 8001)
  2. Verify Railway backend URL in config
  3. Check agent logs: plumber_agent.log

Performance Issues

  1. Monitor system resources via /health endpoint
  2. Adjust DCC timeout settings in config
  3. Limit concurrent operations per DCC

Development

Manual Installation

# Create virtual environment
python -m venv venv

# Activate (Windows)
venv\Scripts\activate.bat

# Install dependencies
pip install -r requirements.txt

# Run agent
python src/main.py

Command Line Options

python src/main.py --help
python src/main.py --host 0.0.0.0 --port 8002
python src/main.py --discover-only
python src/main.py --log-level DEBUG

Security

  • Agent only accepts connections from configured Railway backend
  • DCC operations run in isolated temporary directories
  • File size limits and operation timeouts prevent abuse
  • Comprehensive logging for audit trails

License

Part of the Plumber Workflow Editor project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plumber_agent-1.0.9.tar.gz (110.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plumber_agent-1.0.9-py3-none-any.whl (128.0 kB view details)

Uploaded Python 3

File details

Details for the file plumber_agent-1.0.9.tar.gz.

File metadata

  • Download URL: plumber_agent-1.0.9.tar.gz
  • Upload date:
  • Size: 110.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for plumber_agent-1.0.9.tar.gz
Algorithm Hash digest
SHA256 835a3d0f9094dd0d38357b13eb005d9db8f65a47578d217f645300288e814c89
MD5 e9b5d49f72519c7b487b290f1ddb680c
BLAKE2b-256 7413a53c5f22a054889bd9a64169df8f63cb041cd97b1ef724da47b6feefff0a

See more details on using hashes here.

File details

Details for the file plumber_agent-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: plumber_agent-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for plumber_agent-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 478f1d807b30d96a0af1e5bc1f7507c31f10d5f6c2832e18a31e0da0152ad868
MD5 89b149c5ffd7260d4b244381fefc7b09
BLAKE2b-256 a9a32a719747cb1c9dda83d5db09c3cb4d2a78e0f3ffad4675793e800bc5d2f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page