Script panel

The core rendering application now supports scripting. Scripting makes it much easier to automate tasks such as processing several MXI files at once, editing Multilight™ in animations, or launching sets of scenes changing their render parameters. All the parameters of the Maxwell Render UI are accessible through scripts.

The Maxwell Render scripting engine is based on ECMA standards (like other popular scripting languages such as Javascript and Actionscript), and provides default compatibility with these standards. The script editor in Maxwell Render also contains a Debugger, including breakpoints, searches, info about the variables, and more.

To learn more about the Script language in Maxwell, see the Scripting section. 

  

The Script tab

Write a script in a simple text editor, save it with the .ms extension or even with the .js extension, and run it in Maxwell Render using the Run Script button in the Render Toolbar. It is also possible to launch a script through the command line using the argument -script:script_path, or to directly write a script in the Script Editor in the Script Tab.
You can choose between several example script pre-sets for the most common tasks.
These script pre-sets are available from the main menu (Scripting menu\ Scripts).

The Script panel shows a number of icons:

• Load Script File: Load a script file in .ms or .js format and open it in the Script Editor. Script files can be drag and dropped to the Viewer area or to the Script Editor to load them.
• Save Script File: Save the current script in .ms or .js format.
• Run Script: Run the script currently open in the Script Editor.
• Debugger: Open the script Debugger window.
• Find: Find a word in the script.
• Undo and Redo: Undo or Redo the last changes in the script.

  

The Debugger window

How does it work

When writing a script, the autocomplete feature offers easy access to the main functionalities. When typing the keywords “Maxwell”, “Scene” or “MXI”, the Script Editor will display a dropdown list, giving you access to all the available commands to control the Maxwell engine, the scene settings or the MXI settings respectively.

 
Example

This simple script accesses all the MXS scenes in a folder and its subfolders, changes the scenes’ render settings, renders them and saves the output image in the specified location. You can change the commands and use the autocomplete help to explore all capabilities.

// These lines are comments
// Make massive changes in MXS files and launch them to render
// This script allows you to access all the MXS located in the folder "inputFolder" and its subfolders
// Open the scenes, change their SL and resolution and launch the render(s)
// The output of all the images is stored in the folder "outputFolder" in Tiff format.

var inputFolder = "C:\\ set the input folder";
var outputFolder = "C:\\ set the output folder";
var engineVersion = Maxwell.getEngineVersion();
var mxsCount = Maxwell.getNumberOfFilesInBranch( inputFolder, "*.mxs" );
var mxsList = Maxwell.getFilesInBranch( inputFolder, "*.mxs" );
for( var i = 0; i < mxsCount; i++ )
{
   var mxsFile = mxsList[i];
   Maxwell.print( "rendering Mxs file: " + mxsFile );
   Maxwell.openMxs( mxsFile );
   Scene.setSamplingLevel( 12 );
   Scene.setResX( 1024 );
   Scene.setResY( 768 );
   var imagePath = outputFolder + "\\" + Maxwell.getFileName( mxsFile ) + "_" + engineVersion + ".tiff";
   Scene.setImagePath( imagePath );

   Maxwell.startRenderAndWait();
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////