Chroma lights is a frame work for running annimations for led lights over OSC.
sudo easy_install virtualenv
virtualenv env # or replace 'env' with whatever folder you want your environment in
source env/bin/activate
pip install -r dependencies.txt
0. Get and burn a Debian ISO from http://www.debian.org/CD/
You'll want to activate your virtualenv if it's not already. In your chrome-scripts folder (after having set everything up above before), source env/bin/activate
.
In order to run the animations locally, we provide a lights emulator written in Processing.
To run the light emulator: $ emulator/lights_emulator
To run an animation: $ ./run.py [animation name]
To contribute add a new folder in the animation directory. This folder should be have a unique name for the animation. The folder must contain the following two files:
main.py:
import sys
sys.path.append("./osc")
from oscapi import ColorsOut
...
manifest.json:
{
"name":"Random Colors",
"description":"Random colors on 3 second intervals",
"creator":"RJ and Reed"
}
Each light recieves an input that is a tuple (r,g,b) where each of r, g, b can be 0-1023.
Construct an array of tuples and send them to the OSC server with
pix = [(1023.0,0.0,0.0)]*24
out = ColorsOut()
out.write(pix)
To add simple effects, such as automatic fade-in and fade-out of pixels, use the animations library in place of ColorsOut
from animations import FadeAnimation
pix = [(1023.0,0.0,0.0)]*24
out = FadeAnimation()
out.FADEINRATE = 2.0 #optional
out.FADEOUTRATE = 8.0 #optional, makes things 'trail off'
out.start()
out.write(pix)
Chroma is bright, and can easily be the predominant lighting in the room. Fast blinking of the lights can be intense, so be considerate.
- Avoid instantaneous changes in both intensity and color
- Use the provided animation framework to transition between colors