Python in 3ds Max - What Does It Mean?

Now that Autodesk has officially released support for Python in the 3ds Max 2014 Extension release - what does that actually mean for the community of artists working with 3ds Max? If you're a "user" of scripts - it probably doesn't mean much right now but I think things will get interesting soon. If you're a "developer" of scripts - it's time to look at Python & our current tools to see where we could use it. I believe Python is going to change the 3ds Max landscape in a really positive way.

"Why Python? MAXScript Works Fine For Me..."

I suspect this will be common thinking for a while. After all, writing Python scripts will probably remain more complex for smaller tools. Golden "one-liners" in MAXScript such as removing materials on a selection can't get easier than this:

$.material = undefined

However, in the big picture Python offers significant advantages over MAXScript (especially for complex scripts) that 3ds Max users will benefit from. A few advantages off the top of my head:

  • Python is open source, secure & backed by the open source community. This means a lot for complex script development, not much for basic tools. 
  • Python *is not limited* by Autodesk's notoriously slow development cycle . With MAXScript additional features can only be added with 3ds Max releases, which as we all know doesn't change much with each release... 
  • Python is cross platform (Mac / PC / Linux / etc) which you might think doesn't matter since 3ds Max is PC only... However - Python tools have the potential to work in multiple 3D apps, across platforms, etc. Python is even accessible in environments Max isn't - you can run Python from the web, on a smartphone, etc. The possibilities here are endless...

Some Crazy Ideas

I've barely scratched the surface in my own Python studies but I can already see the potential. Some wild ideas of mine that Python might be perfect for:

  • Developers already using Python with other 3D apps could bring their existing tools to 3ds Max. There are lots of really talented developers producing Python code on AAA games and Hollywood blockbusters... Imagine if they brought their Python tools to 3ds Max.
  • Computation occurs outside of the 3ds Max environment. Python doesn't require 3ds Max after all - as opposed to MAXScript which only runs inside of 3ds Max... 
  • There are Python libraries for nearly anything you can imagine - database connections to fluid dynamics. That means complex ideas don't have to get developed from scratch by every developer but can be reused & accessed within 3ds Max. Possibilities? I think so.
  • Critical production tools like Render Pass managers could be reworked to use a common Python interface & work with all 3D tools in your arsenal. No need to have all artists know the quirks of multi-layer compositing on every platform they're working in... Just a crazy thought...

Let's Boil It Down

Python in 3ds Max enables developers to create more sophisticated tools, run code on multiple platforms and solve increasingly complex production problems in a consistent way.

Here's the thing - MAXScript isn't going anywhere so as users we'll continue having MAXScripts for a lot of our tools. Many simple tools will never be converted to Python and don't need to be. However now we have an option to develop with Python and over time we'll see some amazing work from the community!  

Are You A Developer?

If you're already creating Python scripts for 3ds Max make sure to post them on ScriptSpot and tag them "python".

If you're familiar with MAXScript & want to learn Python (like me) take some time to post a tutorial on ScriptSpot tagged with "python" so we can all learn together! 

Christopher Grantpython, 3ds max