Author Archives: simonreeves

Custom menu in 3ds Max

I prefer to have my custom tools attached to menu bars. Pretty much all apps have them unlike other UI features, shelves, toolbars, sidebars etc. So it’s a nice consistent place to put them.

This is how you build a custom menu on the main menu bar with maxscript. It is rebuilt every time 3ds Max starts up, making it easy to update and modify, locally or on a server to control lots of machines.

This file runs on startup, it loads the menu bar script, and the scripts ready to be attached to items on the menu.

This is the script that builds the custom menu. In this example it only adds one script, SRSave. This script was loaded (ready to be added to the UI) in the previous script.

That’s about all. For more info checkout menuMan in the maxscript help.

Nuke Python: Read Node File Path Replace

Here is a small snippet of code for Nuke using python.
It will loop through all the read nodes int he script, and will replace the any string ‘Shot_003’ with ‘Shot_002’ inside the ‘file’ knob (the path) by using a very simple regular expression.

Render Time Calculator

For a while I’ve had a render time calculator as a  google docs spreadsheet – and I was considering how I could share this around a bit. I realised after a while it would be interesting to try and just write this into a webpage with javascript – I haven’t done that before on a webpage. Javascript in Softimage, and in Photoshop yes! But not in on a webpage before.

Anyway hopefully it’s a helpful guide to predict some render times – I use it myself plenty!

Here is the old google docs version: Isn’t it ugly?

Photoshop Script: sr_SaveGroup

I’ve written a few handy photoshop scripts over the years and never got around to sharing them so I will try here and there.

I’ve used this, or variations of this script for years. To save out the various types of textures from one PSD, Diffuse, Glossiness, Bump, Specular, Reflection, Refraction Etc.

When you run the script it will save out a jpg based on the name of the PSD file and the GROUP you have selected.


Using groups like the example below. Running the script with the ‘Diffuse’ group selected will save out ‘Robot_Diffuse.jpg’ in the same location as the PSD file.

Also if there is a ‘Wire’ or ‘Wireframe’ layer at the top, it will be temporarily hidden during save.


Copy the script file into [photoshop install dir]/Presets/Scripts/ folder/.
And it will appear in File>Scripts -I’d recommend making a shortcut for it too from there.




Matt Chandlers Talk on ‘The Swarm’

Matt Chandler recently was invited to talk about the project that I worked on earlier this year ‘The Swarm’ for Thorpe Park. Watch it below for some behind the scenes work etc.!

Quoted from Matt:

Due to a number of requests – this is a condensed version of the talk i did this year at the End user event in Utrecht, Netherlands about the commercial my studio recently made for ‘The Swarm’.
I recorded some audio live whilst doing the lecture – but unfortunately it wasn’t useable – so i have re-recorded some voice over – similar to the live talk.

Many thanks to all who attended the talk, the Q& A and the big applause at the end 🙂
It was a pleasure to attend EUE and i hope to attend again next year with more stuff to talk about.”

3ds Max Maxscript Help: Snippets

Here is a list of practical examples for the syntax of scripting in 3ds Max with it’s internal language, maxscript. This isn’t a tutorial and HOWTO script, but more of a reference of how to format commands.

I’ll continue to update this post as I go on as it’s a resource for me as much as anyone else, let me know if there are any useful additions!

Note also that the indenting isn’t necessary but I think it’s a good habit (and I mostly use Python which requires it)







Macroscript loader

Useful to load at startup, points at an updateable script


System access

In windows…

LemonRender – Batch Renderer

As a Softimage user, I’m not given any kind of render manager software like the straight forward but useful application that is backburner. I’ve worked at many studios and used many render farms (including backburner) but some of the main ones are Royal Render, Deadline . Anyway these ones are can be quite complex, and if you start beta testing a renderer like VRay in Softimage, you can come up against issues. I’ve now found that while I wait for a new version of Deadline, Softimage 2013 isn’t supported either….. So I’ve gone back to using this wee batch rendering system I made last year.

It involves only a few elements:

  • a plugin/submitter for Softimage
  • a batch file that runs…..
  • the main Lemon Render Python script
  • a simple web interface (run by a simple web server)
From this though, I can print logs of my renders to see how long they have been taking, and queue up jobs. These are all just stored (from the submitter) in simple text files which I can later alter/delete etc.
At the moment there is no priority,  the only thing a user can do is pause jobs in the queue.
I’m sure I could easily write plugins for Maya/Max/Nuke too but have never gotten around to it.
If there is any interest in it then I may do so!