3Ds Max project assist tool

One of the annoying task during 3D production is managing scene files and files associated with the scenes. As it is very easy to forget to update or change a texture location of a newer scene or any other file path, I usually had ended up with missing links to necessary files when I started using 3d. Also, there is a need to manage a bunch of 3D scenes of different shots and production. You know a distinct 3d scene is needed for each stage of production i.e model, texture, light, rig, visual effects, and render etc.

So to ease this mundane task, I have coded a few scripts in 3ds max script. So far, those include new scene creator, project creator, fumefx cacher, and pflow cacher.

A new project creator

I have learned it from Allan McKay’s FX TD Transformation course. While studying computer science, I registered it as soon as Allan opened his course. Now as I am graduating, I think I will devote more time to the course.

A new scene creator. It also shows all projects I am working on.

Going back to the tools, firstly I created a startup script on 3ds max script startup directory. It would be here:

C:\Program Files\Autodesk\3ds Max 20XX\scripts\startup

3ds max automatically loads all scripts inside this directory. I put only one script there including some functions to call other scripts and variables that help me describe functions there. Since I am calling functions by their path, I put scripts responsible to get the job done somewhere in my disk.

Actual scripts automatically create necessary directories and set a project when they are called. So that way, I will have an identical directory structure and scene management whenever I work on. As for pflow and fumefx cachers, they cache a selected particle object. The cache directory is also setup automatically with the project creator script.

Next, I will convert those script to python as it is becoming an industry standard.

Image Resizer

During Christmas break, I wanted to develop python software or package following industry practice. So I had started a data science project, machine learning deployment, and python package. I have not finished the first two but finished the latter.

It is an open source python package that resizes images. You can install it from PyPI by:

pip install

This package takes a json input which specifies necessary settings and resizes images by parallel. The reason I use a JSON input is I aimed to use this package for web development. Here is GitHub:


Working on this project, I have learned to structure python project, used Travis CI for continuous integration, used pytest to write unit and coverage tests, uploaded the package to pypi, and studied a lot about speeding up python and parallelising python. I would say it is a lot.

Have a look and let me know what you think. Personally, I think I would re-factor it again and implement pooling to increase its efficiency even more.