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

→