MAXScript
The built-in scripting language of Autodesk 3ds Max, used to automate, customize, and extend the 3D modeling and animation software directly from its interactive Listener.
Created by John Wainwright
MAXScript is the built-in scripting language of Autodesk 3ds Max, one of the most widely used applications for 3D modeling, animation, and rendering. Rather than existing as a standalone language, MAXScript lives inside 3ds Max and exists to drive it: with a few lines of code an artist can create and transform scene objects, assign materials, set animation keys, build custom user-interface panels, batch-render hundreds of frames, or automate any task that would otherwise require tedious clicking. Designed to be approachable for artists rather than only for professional programmers, it has been the connective tissue of 3ds Max production pipelines for over a quarter century.
History & Origins
MAXScript was created by John Wainwright, a computer scientist who had previously designed ScriptX at Kaleida Labs — a joint Apple and IBM venture — in the early-to-mid 1990s. After Kaleida wound down, Wainwright began architecting a scripting language for 3D Studio MAX around 1996. The first release of 3D Studio MAX 1.0 (1996), developed by the Yost Group and published under Autodesk’s Kinetix multimedia division, shipped without any built-in scripting language.
MAXScript made its public debut the following year, in 3D Studio MAX R2 (1997). From the outset it carried the imprint of ScriptX: Wainwright’s earlier language was a dynamic, object-based system, and MAXScript inherited that flavor while adding explicit syntax tailored to 3D animation — context expressions for time, animation, and the scene graph that have no equivalent in a general-purpose language. (Because development started in 1996 but the language only shipped in 1997, sources sometimes cite either year; the language first appeared in a product in 1997.)
As 3ds Max passed through corporate hands and rebrandings — Kinetix, then Discreet after Autodesk completed its acquisition of Discreet Logic in 1999, and finally plain Autodesk branding once the Discreet brand was retired in 2005 (the Autodesk logo had returned with version 7 in 2004) — MAXScript remained a constant, evolving feature of the software.
Design Philosophy
MAXScript was built to make 3ds Max programmable for the people who use it every day — technical artists and tool developers, not necessarily software engineers. That goal shapes nearly every design decision:
- The scene is the language’s world. Scene nodes, modifiers, materials, controllers, and lights are first-class language values. You can address objects directly —
$Box01.positionreads or writes a box’s position — and the$syntax lets you select objects by name or wildcard pattern straight from the scene. - Interactive and immediate. The Listener, MAXScript’s read-eval-print loop, evaluates expressions as you type them and reflects changes in the viewport instantly. This tight feedback loop makes the language feel less like batch programming and more like live conversation with the scene.
- Everything is an expression. Every construct evaluates to a value, and a function simply returns the value of its last evaluated expression — there is no declared return type and no explicit
returnrequired. - Forgiving, English-like syntax. Keywords such as
if ... then ... doandfor ... in ... do, case-insensitive identifiers, and dynamic typing lower the barrier for artists writing their first scripts.
Key Features
MAXScript is dynamically typed and interpreted, with a feature set oriented around interactive scene manipulation:
- The Listener / REPL — an interactive console for evaluating expressions, inspecting objects, and prototyping tools live against the running scene.
- Direct scene-object access — scene entities are language objects whose properties can be queried and assigned, with the
$operator selecting objects by name or pattern. - Animation context expressions — special blocks unique to the domain, such as
animate on,at time,at level,quiet, andredraw, scope evaluation to particular animation or update contexts. structdefinitions — lightweight object-oriented bundles that hold both data members and functions, giving the language a structured, reusable building block.- Heterogeneous arrays — a single array can hold values of different types, reflecting the language’s dynamic nature.
- First-class functions and expressions — functions are values that can be passed around, and the last-expression-returns-the-value rule keeps function bodies concise.
- Rollouts and UI — a built-in system for creating custom dialogs, tool panels, and rollouts so scripts can ship with full graphical interfaces.
- Undo/redo integration — scripted operations can participate in 3ds Max’s native undo system.
A small example creates ten boxes in a row and tints them:
for i in 1 to 10 do
(
b = box name:("Box_" + i as string) width:10 length:10 height:10
b.position = [i * 15, 0, 0]
b.wirecolor = (color (i * 25) 100 200)
)
Evolution
Over the years MAXScript grew well beyond its original feature set. 3ds Max 2008 deepened .NET interoperability, letting scripts call into managed .NET assemblies (the dotNet interface) to build sophisticated tools and modern user interfaces. 3ds Max 2016 introduced the Max Creation Graph (MCG), a node-based visual system for building tools and geometry that complements text-based MAXScript.
The most consequential shift was the arrival of Python. 3ds Max 2017 added an official Python API via the MaxPlus module and the pymxs package; crucially, pymxs.runtime exposes MAXScript’s entire runtime to Python, so Python in 3ds Max largely works through MAXScript rather than replacing it. 3ds Max 2022 (2021) removed the deprecated MaxPlus API and Python 2, standardizing on Python 3 with pymxs. Recent annual releases continue to bundle MAXScript as the native scripting language alongside Python.
Current Relevance
MAXScript remains the native, fully supported scripting language of 3ds Max and continues to ship with every release, including 3ds Max 2027 (2026). Despite the addition of Python, MAXScript has not been deprecated — the two coexist, and a vast body of existing MAXScript tools, plugins, and pipeline code keeps it firmly in daily use across game studios, visualization firms, and post-production houses. For many studio tools the practical reality is a hybrid: Python orchestrates higher-level logic while reaching into MAXScript via pymxs for the operations that the MAXScript object model exposes most directly.
3ds Max — and therefore MAXScript — is proprietary, commercially licensed software available only for Microsoft Windows; Autodesk has never shipped an official macOS or Linux build, and the latest release, 3ds Max 2027, requires Windows 11 (Windows 10 support having been dropped, whereas several preceding versions ran on Windows 10 or 11). Because the language is inseparable from the GUI application and its license, there is no official container image and no meaningful headless or Docker-based usage.
Why It Matters
MAXScript demonstrates the power of an embedded, domain-specific scripting language done well. By making the entire 3ds Max scene programmable through an approachable, interactive language, it turned a modeling and animation package into an automation platform — and it did so for an audience of artists who might never write code in any other context. For more than two and a half decades it has been the backbone of countless production pipelines, custom exporters, rigging utilities, and batch tools across games, film, and architectural visualization. Even as Python has become the lingua franca of cross-application studio tooling, MAXScript endures as the direct, intimate interface to 3ds Max — a lasting example of how a scripting language tailored precisely to its host application can outlive the branding changes and technology shifts around it.
Timeline
Notable Uses & Legacy
Maxis — The Sims
Maxis used MAXScript as part of the animation processing pipeline for The Sims, automating repetitive 3ds Max tasks during content production.
Blur Studio
The Culver City game-cinematics and VFX studio is a heavy 3ds Max shop and authored the open-source Py3dsMax (BlurBeta) tools that bridge CPython and PyQt to MAXScript for pipeline automation.
Sony Online Entertainment
Developed custom 3ds Max function libraries and MAXScript-driven tools to support asset creation for online games such as the MMO PlanetSide.
Architectural Visualization Studios
Archviz firms rely on MAXScript to batch-render, manage materials and lighting, and script repetitive scene-assembly tasks, since 3ds Max is a dominant tool in the field.
Game & Film Production Pipelines
Studios producing game assets and CG for films use MAXScript to build custom exporters, rigging utilities, and batch-processing tools that tailor 3ds Max to in-house workflows.