Fork me on GitHub


Lumiverse is a cross-platform framework for creating scalable, interactive lighting applications. Lumiverse provides abstractions for organizing, selecting, and animating lighting devices, allowing real-world devices to be manipulated with programming concepts similar to those found in traditional 2D graphics and web applications.

To learn more about Lumiverse you can:

Lumiverse was created by Evan Shimizu at Carnegie Mellon University.


To get started learning Lumiverse, check out the examples page for a walkthrough of Lumiverse's capabilities.

Technical documentation for the project is generated from source with Doxygen. You may choose to not build documentation by setting the LUMIVERSE_DOCS cmake variable to OFF during project generation. Documentation will be output to Lumiverse/docs if generated.

A copy of the documentation for the most recent git master can be found here. There are also examples of Lumiverse code to help you get started.

Platform and Interface Support

Lumiverse supports Windows and Linux. OS X support is currently being tested. Lumiverse also supports Unity3D on Windows and a pre-built version of the library can be downloaded on this page.

For output to a lighting network, Lumiverse has built-in support for output through the ETC Eos Family (through OSC), OLA, KiNet, Art-Net, and the ENTTEC USB DMX PRO Mk 2. OLA is the recommended output for users on OS X / Linux. Unfortunately OLA still does not quite run on Windows yet, so until it does the built in drivers can be used on Windows.

Build instructions

Lumiverse's code is hosted on GitHub. Clone the repository to a location of your choice and follow the steps below to setup Lumiverse. This framework is known to build correctly on Windows and Linux. OS X has not been tested yet, but Lumiverse should run on OS X with minor or no tweaks.


You will need CMake (at least version 2.8) at minimum to build Lumiverse. Doxygen is used to generate the documentation files for Lumiverse. Generating your own set of doc files is optional. Additional prerequisites are listed below.

Build Steps

After installing necessary prerequisites, use CMake to generate the build files for your platform of choice.

Note: if you are building bindings for Python with SWIG, typically Python does not come with a debug library and the build will fail in the Debug configuration.

There are a many options for including or excluding Lumiverse features in the CMake build settings. See the CMakeLists file in the source directory for details or take a look at the options in the CMake GUI.

Notes for building with the Arnold Renderer

Lumiverse has built in support for visualizing lighting application output using SolidAngle's global illumination renderer. Arnold is a production renderer used to produce images for many popular feature films. To use this feature, you must have a Arnold renderer license from SolidAngle. Documentation for this feature is not available at this time due to the experimental nature of the feature (please contact Evan for more information).

Pre-Built Binaries

Lumiverse is available pre-compiled for C# and Unity3D on Windows. To use, simply place the Lumiverse folder inside the Assets folder of your Unity project, or add the source and .dll to your .NET project. As the C# bindings have been automatically generated, some issues may arise when using the library. Please report issues to the GitHub or via email to Evan.


Lumiverse was developed at Carnegie Mellon University by Evan Shimizu and Chenxi Liu. Parts of the Lumiverse Arnold rendering drivers written by David Vernet. This project was supported in part by funding from the Carnegie Mellon University Frank-Ratchye Fund for Art @ the Frontier.