Download Trial Buy now

Indigo SDK

 

Are you a software developer and want to embed Indigo in your software? If so - we have several options for using Indigo in your own products.

Why choose Indigo?

Indigo is a powerful and high quality renderer. There exists no commercial renderer with higher quality output than Indigo. Indigo is also a fast renderer, Indigo is actually often faster than less-accurate global illumination or photon-mapped renderers. Indigo has been under development for 4+ years, and the company that develops and supports Indigo has been operating since 2007.

What is Indigo written in?

Indigo is written in multi-threaded C++. It compiles on Windows, Mac OS and Linux. Indigo has a stable and easy to use API that can be used without any prior knowledge of threaded programming. Indigo manages all multi-threaded behavior and leaves the developer free to focus on other issues.

What options do I have for integrating with Indigo?

There are several options for integrating Indigo with your software.
  1. Write an exporter to output Indigo's XML mesh format
  2. Use our SDK and Indigo DLL to render with Indigo inside your application
  3. Talk with us about custom solutions powered by Indigo

The first option is usually the simplest and cheapest place to start. We don't charge any fees to someone who wants to develop an Indigo exporter. Our XML scene format is well documented and you can get a basic scene exporter prototyped in about one full day of work. Your users can then install your exporter and purchase an Indigo licence from our store to get started rendering.

The second option, using the Indigo SDK, gives you more control over Indigo and you can embed the Indigo rendering engine right inside your own software. The scene is specified with a combination of the usual XML, and fast in-memory binary specification of meshes. Real-time tone-mapping is possible using the Indigo SDK. We sell the SDK licences on a per-seat basis, so for each instance of the SDK you sell, you need to purchase an SDK licence from us. Email us to get pricing information.

If you want to talk with us about us about any other custom solutions that can be powered by Indigo, then we're interested to hear from you, as we're always keen to take Indigo in new and exciting directions.

Consulting and support

We provide consulting at the rate of 120€ per hour in Indigo-specific techniques. This will give you direct access to our core developers. Contact us if you would like to discuss a consulting agreement.

Getting started with the Indigo Scene Format

To get started with Indigo, you need to download the following pieces of software:
  • Indigo 2.0 - get the GUI install for rendering your scenes. There are many many demonstration scenes in the testscenes directory. These are all .igs xml files. Start with the cornell box demonstration and use this as a basis for writing your own exporter.
  • Indigo Technical Reference - this document contains the full xml file format specification of Indigo. It is very comprehensive, which makes it a little complex to get started with, but very worthwhile as it explains all of Indigo various options.
  • Indigo Mesh Format - this C++ source code shows you how to write out an Indigo Mesh file in binary format, which you can link to from your .xml scene defintion. The .igmesh format is a lot faster to load than embedding your meshes as pure xml, so we recommend using the .igmesh code
  • Indigo material loading code. if you want to be able to load and modify Indigo materials from the Indigo material database, we recommend you take a look at this code that loads Indigo materials as C++ code. It isn't necessary to be able to load and parse Indigo materials, but if you want to - this code makes it easy.

The simple workflow for generating a scene is:

  1. Generate an empty XML file for your scene
  2. Write out the <camera/> element
  3. Write out a <sunsky/> element to light the scene with daylight
  4. Write out a default <material /> element as a diffuse material
  5. Write out your meshes in .igmesh format using the supplied source code
  6. Include your meshes into your xml file using <mesh ... /> elements
  7. Load this scene into the Indigo GUI and press render
  8. Fix any errors that Indigo detects
  9. Read the Indigo technical reference and the Indigo forums and decide how to convert your materials over to physically accurate diffuse, phong, oren-nayar and specular materials.

Once you have released your exporter you are free to distribute it, but if you would like us to promote or otherwise help you out with your exporter - please do contact us.

If you have any questions, please contact us by email.