Indigo Renderer Manual


Indigo is a stand-alone application. Indigo renders one image at a time, reading the scene description from an xml file, and writing the resulting image as a PNG file in the 'renders' directory.

Indigo can be used in conjunction with a 3d-modelling package such as 3dsMax by using one of the exporters being coded by various people. The process in this case is

  1. model scene in the 3d modelling package.
  2. Use exporter script to export .3ds models and scene xml file to some directory.
  3. Start indigo, specifying the path to the scene file to render.

Alternatively, the scene file can be hand-edited.

Scene File Format

Scene file format

Specifying the scene to render

By default, the 'scenefilepath' setting in the file 'inifile.txt' defines the scene that will be loaded, e.g. the line

"scenefilepath" "scene.xml"

means that the file 'scene.xml' will be loaded.

The scene path can also be passed as an argument to indigo, e.g. if you are starting indigo from the windows shell, you can enter something like

indigo cornellbox.xml

Progressive rendering

As a consequence of the unbiased nature of Indigo, the render will gradually converge over time to the correct solution. The longer you leave the render, the less noise will remain in the image. Indigo can be left to render a given scene for an arbitrary amount of time, and will never terminate by itself. Simply close Indigo when you are satisfied with the render (or you don't want to wait any longer). NOTE: you might want to save a copy of the output render before you close Indigo, in case you kill it half way through saving the image.

Network Rendering

Indigo supports distributed rendering over a TCP/IP network. One Indigo process is started as a network master. Mutiple Indigo processes (usually on other boxes) are then started as network slaves. The network slaves work on their own local version of the render, and periodically upload their buffer to the network master, where they are combined into the master render and saved to disk in the 'renders' directory as per usual.

The steps to run a network render are as follows:

  1. Choose a scene to render, eg. somescene.xml.
  2. Start the network master process like this:

    indigo.exe somescene.xml -n m

    The -n m switch tells the process to run as a network master
  3. On another box, start a network slave process like this:

    indigo.exe somescene.xml -n s -h lust:7777

    The -n s switch runs indigo in network slave mode.

    The -h lust:7777 switch tells the slave to connect to the network master running on the host 'lust' on port 7777 (the indigo port)

    You should of course substitute the host name running the network master for 'lust'.

Synchronising the scene file

In the above network rendering example, the file 'somescene.xml' needs to be present on all boxes, so that all the slaves and the master can load it. This can cause problems if the scene is changed on one box but not others. One way to ensure that all Indigo processes are working on the same scene is to place the scene in a windows share. Then the master would be started like this, and analogously for the slaves.

indigo.exe \\lust\sceneshare\somescene.xml -n m


Indigo was created by Nicholas Chapman. Contact: