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.

Maya Export Workflow
Maya Action Open Scene
Maya Action Set Frame Range
Maya Action Export Alembic
Maya Headless
TwoWaySwitch (success?)
Action node python_code (Open Scene)
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 TypeDescription
open_sceneOpen a .ma or .mb scene file
new_sceneCreate a blank Maya scene
save_sceneSave the current scene to disk
scene_infoRead scene path, frame range, FPS, renderer, project path
import_objImport a .obj geometry file
import_fbxImport a .fbx file (loads fbxmaya plugin)
import_alembicImport an Alembic .abc cache
import_cameraImport a camera from .abc, .fbx, .ma, or .mb
export_fbxExport selection or entire scene as .fbx
export_alembicExport geometry as Alembic cache with frame range
export_camera_alembicExport camera nodes as an Alembic cache
set_frame_rangeSet playback and animation frame range
set_render_settingsConfigure renderer, resolution, frame range, image format
assign_materialAssign an existing material to one or more objects
create_render_layerCreate a Render Setup layer with object members
set_aovsCreate AOVs for Arnold or Redshift renderer
bake_animationBake simulation to keyframes for selected nodes
reference_sceneReference a .ma or .mb file into the current scene
reference_alembicReference an Alembic cache into the current scene
list_referencesList all reference nodes with file paths and load state
playblastCreate a playblast movie from the current viewport
custom_pythonExecute arbitrary Python code inside Maya (cmds available)

Maya Headless Node — Ports

Inputs
maya_versionDropdown: 2022 / 2024 / 2025 / 2026
mayapy.exePath to mayapy.exe — auto-filled by version selection
bat_fileOptional .bat launcher for environment variables
maya_env_fileOptional Maya.env file for plugin/path configuration
scene_fileOptional .ma/.mb scene to open before executing actions
actionsList of action dicts from upstream Maya action nodes
Outputs
success(bool)
True if all actions completed without errors
executed_actions(list)
Dicts for each successfully completed action
skipped_actions(list)
Actions that failed validation before dispatch
stdout(string)
Maya process stdout output
stderr(string)
Maya process stderr output
exit_code(int)
mayapy.exe process exit code

Environment Setup

Required Configuration

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