For the past month, Jonathan de Blok and myself have been working on a new open-source project for 3dsmax. We’re quite excited about it, and we would like to share that with you guys. So let’s get right to it:
Currently, there are many issues with installing and maintaining MaxScripts:
-installing scripts is a hassle, uninstalling is even worse.
-no update push notifications
-most scripts have to be added to the user interface manually
-no easy syncing between workstations
Our objective is to address these issues by creating an in-max script browser. With it, we aim to ease and unify the way we use scripts in 3dsmax. The tool will provide a way to browse and install scripts, (automatically) track and install updates and completely uninstall any script with the click of a button. We call this the ‘ScriptCenter’.
The basic architecture of the system looks as follows:
The ScriptCenter gets the information about scripts from a file we call the ‘Script Manifest’ (or SM). This is a simple, human-readable file with things like the script’s name, author, description, etcetera. As a developer, you create a manifest file and put that on your webserver. A user points the ScriptCenter to the location of this manifest, and it will take care of everything from there.
An easier way for a user to get to a script is by browsing a repository (or repo for short). A repository is no more than a collections of links to SMs, and can be created by anyone. The repository is designed in such a way that there is only a single location for a SM, making it easy for the developer to update his/her script:
When publishing simple macroscripts that only have a single file, the script manifest and the script itself is all you need. However, for more complex scripts, we provide a tool to make a nice installer, called the ‘SCPacker’. This provides a way to wrap your script in a unified installer which can be run both by the ScriptCenter as well as standalone in just minutes:
SCPacker Preview on Vimeo
Back to ScriptCenter. There you’ll enter the URL of a Repo and all the SMs (or a subset for big Repos, more on that later) will be loaded. Remember that these are only small meta-data files and not the actual script files. Once the SMs are in it can display a nicely formatted list (think AppStore) of availabe scripts. You see a nice script and install it. It is then added to the local-repository, which is a list of installed scripts with the stored SMs, MZPs and installation logs for those scripts. These will be used again for uninstalling and update checks.
The locally stored SM is compared with the one placed online by the developer. If the online version is newer, the SC lets the user know an update is available, which can be installed with a single click. Optionally, this can be done automatically.
As a bonus this local repo is available on the network, so you can point other workstations on the LAN to this and get the exact same scripts that are installed on the ‘master’ workstation.
So, to wrap this up, the current state of the project: as you can see from the video about the SCPacker, the installer part of the project is coming along nicely. This also includes the basis for the ScriptCenter itself. There is still much work to do on the frontend for the ScriptCenter, which I will work on in the coming weeks.
We hope that you will be as excited about this project as we are, and it’d be great to get feedback, both from a user- as well as from a developer perspective!