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:
- Download the code from GitHub
- Learn how to setup and build Lumiverse
- Learn how to use Lumiverse by example
- See detailed documentation about the framework
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.
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.
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.
- OLA Driver: OLA (highly recommended for Linux / OS X users).
- Bindings for other languages: SWIG (>= 3.0.0)
- Python: 2.x and 3.x both work
- C#: .NET (any version that works with SWIG)
- DMX USB PRO MK2 driver: ftd2xx
- Arnold Renderer (Experimental)
- Arnold development library
- zlib (included in source/LumiverseCore/lib)
- libpng (included in source/LumiverseCore/lib)
- EXR Renderer (Experimental)
- OpenEXR library. Compile static libraries on Windows.
- Enable the Lumiverse_INCLUDE_CACHING_ARNOLD build setting.
- ETC Eos Family
- Enable the Lumiverse_INCLUDE_OSC build setting.
- Follow setup instructions on the ETC Eos page to configure your Eos console.
After installing necessary prerequisites, use CMake to generate the build files for your platform of choice.
- Make a folder to contain all of your build files
- Inside of the folder you made, run
or use the CMake GUI
cmake [path to Lumiverse]/source
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).
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.