Maya Headless
Automation
Drive Autodesk Maya in batch mode from a visual graph. Chain scene operations, exports, render settings, and material assignments into a single mayapy subprocess — no GUI, no manual steps.
How It Works
Maya automation in Vibrante-Node uses an action-list pattern. Each action node appends a Python dict to a list. The Maya Headless executor node receives the complete list, launches a single mayapy.exe subprocess, and executes every action in order inside Maya — with real maya.cmds access.
Build the list
Chain action nodes on the canvas. Each appends a dict (type + parameters) to actions_out. The list accumulates as it flows downstream.
Single subprocess
Maya Headless spawns exactly one mayapy.exe process per execution. No repeated startup overhead. All actions run sequentially inside the same Maya session.
Structured results
Actions are validated before dispatch. Results are returned as executed_actions (success) and skipped_actions (validation failures), with stdout/stderr for debugging.
Example: Open Scene → Export Alembic
This workflow opens a Maya scene, sets the frame range to 1–100, exports geometry as Alembic, then routes on success or failure.
async def execute(self, inputs):
actions = list(inputs.get("actions_in") or [])
actions.append({
"type": "open_scene",
"scene_path": inputs.get("scene_path", ""),
"force": True
})
return {"actions_out": actions, "exec_out": True}Available Actions
22 actions supported. Each maps to a type key in the action dict.
| Action Type | Description |
|---|---|
| open_scene | Open a .ma or .mb scene file |
| new_scene | Create a blank Maya scene |
| save_scene | Save the current scene to disk |
| scene_info | Read scene path, frame range, FPS, renderer, project path |
| import_obj | Import a .obj geometry file |
| import_fbx | Import a .fbx file (loads fbxmaya plugin) |
| import_alembic | Import an Alembic .abc cache |
| import_camera | Import a camera from .abc, .fbx, .ma, or .mb |
| export_fbx | Export selection or entire scene as .fbx |
| export_alembic | Export geometry as Alembic cache with frame range |
| export_camera_alembic | Export camera nodes as an Alembic cache |
| set_frame_range | Set playback and animation frame range |
| set_render_settings | Configure renderer, resolution, frame range, image format |
| assign_material | Assign an existing material to one or more objects |
| create_render_layer | Create a Render Setup layer with object members |
| set_aovs | Create AOVs for Arnold or Redshift renderer |
| bake_animation | Bake simulation to keyframes for selected nodes |
| reference_scene | Reference a .ma or .mb file into the current scene |
| reference_alembic | Reference an Alembic cache into the current scene |
| list_references | List all reference nodes with file paths and load state |
| playblast | Create a playblast movie from the current viewport |
| custom_python | Execute arbitrary Python code inside Maya (cmds available) |
Maya Headless Node — Ports
Environment Setup
mayapy.exe path
Select your Maya version in the node dropdown. The path auto-fills to the default installation location. Override if Maya is installed elsewhere.
Maya.env file (optional)
Point the maya_env_file port to your Maya.env to load plugins, set MAYA_MODULE_PATH, MTOA_PATH, etc. The executor parses and applies it before launching.
.bat launcher (optional)
For studio environments using .bat files to configure the environment (Arnold, Redshift, V-Ray licences, network paths). SET commands are parsed and injected.
# Example Maya.env content MAYA_MODULE_PATH=C:/MyStudio/modules MTOA_PATH=C:/solidangle/mtoadeploy/2024 ARNOLD_LICENSE_HOST=192.168.1.10 PYTHONPATH=C:/MyStudio/python
Deadline Integration
Submit Maya render jobs to Thinkbox Deadline directly from the graph
→Blender Headless
Same action-list pattern for Blender 3.6–4.3+ background execution
→Tutorial 5: Maya Workflow
Step-by-step tutorial building a complete Maya export pipeline
→