What's New in 3ds Max Python

This topic provides an overview of new features, changes, Python and PySide versions over the recent releases of 3ds Max.

3ds Max Python PySide pymxs API MaxPlus API
2022 Version: 3.7.9.
2.7 is no longer available.
5.15.1 MaxPlus is no longer available. pymxs is the supported API for integrating with 3ds Max.
2021.3 Update Updated Working with the Renderer topic with more examples.
2021.2 Update New tutorials have been added to the help
New topic on defining custom attributes in pymxs
2021.1 Update Versions: 3.7.6, 2.7.17
Python 3 is now the full distribution(not the embedded version), meaning all standard modules are available (including venv and ensurepip)
Version: 5.12.5 The Accessing Object Properties and Controllers topic has been improved.
2021 New: Python 3, see Python 3 Support
Versions: 3.7.6, 2.7.17
Version: 5.12.5
New qtmax module contains helper functions for working with Qt/PySide in 3ds Max Python. See The qtmax Module
Scripts run from the MAXScript Editor now have access to the __file__ constant.
Samples have been re-organized and improved for Python 2 and 3. They are now located under [3ds Max Install]\scripts\PythonSamples\.
A MAXScript variable can be created and MAXScript arrays and dictionaries can be manipulated directly without having to use pymxs.runtime.execute().
The new pymxs.byref() improves by-reference parameter handling. See By-Reference Parameter Handling in pymxs
The callbacks.addScript() method can now take a Python function as an argument. See Registering Python Callbacks
MaxPlus is not supported under Python 3
2020.3 Update Version: 2.7.15
Fixed issues with calling Python APIs from Maxscript caused by differences in case sensitivity between MAXScript and Python.
Version: 5.12.4 pymxs documentation improvements. See Using pymxs
2020.2 Update Version: 2.7.15
Python 3 Warning Mode. See Python 3 Warning Mode
Version: 5.11.2 Improved pymxs performance when accessing scene object attributes
2020 Version: 2.7.15 Version: 5.11.2 All MAXScript APIs now accept floating point values when called from Python through pymxs
2019.2 Update Version: 2.7.12 Version: 5.6.3 Improved pymxs performance when comparing scene nodes
2019.1 Update Version: 2.7.12 Version: 5.6.3 Improved pymxs performance when casting MAXScript object sets to Python lists.
Some MAXScript objects, such as scene nodes, can now be used as Python dictionary keys. See MAXScript Values in pymxs
2019 Version: 2.7.12 Version: 5.6.3
2018.4 Update Version: 2.7.12 Version: PySide2 - 5.6.2 Added support for passing Python lists as references to MAXScript functions. See pymxs.mxsreference()
2018 Version: 2.7.12 Version: PySide2 - 5.6.2 MakeQWidgetDockable() removed, replaced by the standard PySide approach
GetQMaxWindow() replaced by GetQMaxMainWindow(). GetQMaxWindowWinId() is also removed
MaxPlus::CUIFrame.Create() no longer works. Use PySide2 to create windows and dialogs.
2017 Version: 2.7.6 Version: 1.2.2, pysideuic pre-installed pymxs API introduced. See Using pymxs AppData Chunk API exposed in MaxPlus. See the demoAppChunk.py sample script
Quad Poly API exposed in MaxPlus. See the demoPolyObject.py sample script
SplineShape.UpdateShape() is added to update a spline in the 3ds Max scene.
2016 Service Pack 1 Version: 2.7.3 Version: 1.2 New: MaxPlus.AttachQWidgetToMax()
2015 Version: 2.7.3 Version: 1.2 GraphicsWindow class is removed, use the Viewport.GetDIB() method to obtain your active viewport graphics window as a bitmap. See Saving the active viewport graphics window as a bitmap for more information.
2014 Extension 1 Version: 2.7.3 Version: 1.2 MaxPlus API introduced. See Using MaxPlus Python