SPECIMEN · 017 · § I · AUTHORING · MAYA
PROJECT LAVOS · THE STACK
The rig is the unit. FILM · VFX · CHARACTER · AUTODESK · 1998

maya.

SPECIMEN 017 · SECTION I · AUTHORING
Houdini computes. Blender scripts. Maya rigs. A hierarchy of joints, an IK solver, a skin-weight map, an animation curve — and a director who can sit with the animator and ask for a different read on a single frame. The character work happens here.

Every authoring tool has a primitive. Houdini's is the network. Blender's, increasingly, is the script. Maya's primitive is the rig — a tree of joints with constraints, drivers, and skin weights, hand-tuned by a character TD until it deforms believably under any pose. Once a rig exists, animators sit in the timeline and key it. The geometry might come from anywhere; the movement is authored in Maya.

Maya owns character work the way Houdini owns FX. Decades of rigging tooling have accreted: muscle deformers, blendshapes, IK/FK switches, set-driven keys, the Graph Editor, MEL macros, every studio's bespoke pipeline plug-in. None of it is replaceable cheaply. A rigging team is a deeper investment than a render farm. The studios that ship character-driven film and television almost without exception ship through Maya.

The trade is sharp in the other direction. Maya is the most expensive license in §I, the least friendly to scripted automation, and the slowest to ship a modern feature. Bifrost was its answer to Houdini's procedural ceiling; USD support arrived years late; the Python integration via maya.cmds works, but feels welded on next to bpy. Maya wins the slot it has, and concedes the slots it doesn't. For character: it is the tool.

SCENE · CHARACTER_RIG · 18 JOINTS · 30 FPS
▲ y-up · evaluated · keyframe interpolation
Outliner
▾ root_jnt
└─ spine_jnt
└─ chest_jnt
└─ head_jnt
├─ l_shoulder_jnt
│ └─ l_elbow_jnt
│ └─ l_wrist_jnt
└─ r_shoulder_jnt
└─ r_elbow_jnt
└─ r_wrist_jnt
├─ l_hip_jnt
│ └─ l_knee_jnt
│ └─ l_foot_jnt
└─ r_hip_jnt
└─ r_knee_jnt
└─ r_foot_jnt
FRAME 01
/ 96
pose · rest · interpolating
maya.cmds.playblast() ↦ render layer
maya.cmds · the rig builder
# Build a basic IK chain. Three joints, an IK handle, a control
# curve, and a parent constraint. The actual rigs are vastly more
# elaborate — but every one of them starts here.
import maya.cmds as cmds

# 1) Build the joint chain.
cmds.select(clear=True)
shoulder = cmds.joint(p=(0,  8, 0), n='l_shoulder_jnt')
elbow    = cmds.joint(p=(0,  5, -0.2), n='l_elbow_jnt')
wrist    = cmds.joint(p=(0,  2, 0), n='l_wrist_jnt')
cmds.joint(shoulder, e=True, oj='xyz', sao='yup', ch=True)

# 2) IK handle: rotate-plane solver gives a stable elbow.
ik = cmds.ikHandle(sj=shoulder, ee=wrist, sol='ikRPsolver',
                   n='l_arm_ikh')[0]

# 3) Control curve and parent the IK to it.
ctrl = cmds.circle(n='l_arm_ctrl', nr=(1, 0, 0), r=0.6)[0]
cmds.matchTransform(ctrl, wrist)
cmds.parent(ik, ctrl)

# 4) Pole vector for elbow direction.
pole = cmds.spaceLocator(n='l_arm_pole')[0]
cmds.matchTransform(pole, elbow)
cmds.setAttr(f'{pole}.translateZ', -2)
cmds.poleVectorConstraint(pole, ik)
Lineage
1995
Alias|Wavefront merges PowerAnimator and Wavefront's Advanced Visualizer. The next-generation product is named Maya, after the Sanskrit for illusion.
1998
Maya 1.0 ships. MEL is the scripting language; the Hypergraph and Hypershade nodes ship; the rigging philosophy is locked in from day one.
2000s
Industry consolidation: Pixar, ILM, DreamWorks, Weta, Disney all ship character work through Maya pipelines. Rigging becomes a discrete craft and a discrete career.
2005
Autodesk acquires Alias. Maya joins the Autodesk lineup alongside 3ds Max and MotionBuilder. The pricing — and the upgrade cadence — change.
2011
Python ships properly via maya.cmds and the OpenMaya API. MEL doesn't go away, but Python becomes the modern scripting surface.
2018
Bifrost ships — Maya's procedural network framework, an explicit answer to Houdini. Adopted unevenly. The character side stays right where it was.
2024
Maya 2025. Modern UI refresh, USD-aware, ML-assisted rigging tools entering preview. Still the studio default for character animation work.
Adjacent in the stack
Arnold
Maya's default renderer. Ships in the box. Production path tracer used across most film work.
maya.cmds
The Python API. Scripts and tools. Like bpy, but louder and less universal.
MotionBuilder
The mocap sibling. Receives motion-capture data, retargets to Maya rigs.
Bifrost
Maya's procedural network. The Houdini-shaped answer.
USD
Cross-tool interchange. Late to Maya, present now. The character rig is increasingly USD-aware.
Houdini
The other authoring suite. Same § I slot, opposite primitive.
the character moves.
SPECIMEN 017 · MMXXVI
§ I · AUTHORING
prev · 016 houdini · ../the stack