MIT Illuminations is a dynamic light installation at the MIT Welcome Center controlled by open-source code contributed by MIT students and the general public. See the lights in person by visiting the MIT Welcome Center at 292 Main Street in Cambridge, MA.
This open source application takes P5 code and visualizes/outputs it to various professional and hobbyist lighting units, making creating light shows easy and accessible.
To download the latest stable release, visit https://illuminations.mit.edu/, or download directly from GitHub.
Welcome, and thanks for downloading Illuminations by MIT. In no time at all you'll be creating light shows in P5 code, and seeing those shows run on LED fixtures. This guide will take your through both the software and hardware setup of an example project, but you can also just skip the hardware portion if you don't have/want to buy an LED fixture. Let's jump right in.
- A computer with an available USB port.
- Arduino Uno Rev3 or comparable Arduino board.
- USB Cable (A to B)
- Soldering Iron with some Solder Wire
- A Neopixel LED product (for our example, we'll use a 16 LED RGB Ring)
- A handful of male-to-male (m/m) Jumper Wires
- Download and install Illuminations by MIT (see above).
- Download and install the Arduino IDE for your operating system.
- Within the Arduino IDE, install the Neopixel Library.
- Let's begin by warming up our soldering iron, and soldering 3 male jumper wires to the
Power 5V DC
,Power Signal Ground
, andData Input
ports on our Neopixel ring.
- Plug the other ends of those cables into your Arduino, as follows:
- Connect
Power 5V DC
into the5V
port on the Arduino. - Connect
Power Signal Ground
into theGND
port on the Arduino (next to5V
). - Connect
Data Input
into theDIGITAL 4
port on the Arduino.
- Connect
- Connect your Arduino to your USB port on your computer using the USB cable. You should see a little power light turn on.
- Open the Arduino IDE and copy the code from this link into a brand new blank sketch.
- Update the values on line
11
and14
of this code to match your LED device.LED COUNT
is the number of LED lights (in our example, it should be16
)N_COLORS
should be3
for RGB units, and4
for RGB+W (in our example, that's3
)
- Make sure you have your Arduino Uno selected within the IDE, and hit "Upload". This publishes the code to your Arduino.
- You can close the IDE. Your Arduino will remember and run this code every time it powers on, meaning it will always be ready to accept data from the Illuminations application, so long as it's plugged in via USB.
- Open the MIT Illuminations application.
- Click on "Settings", on the "General" tab.
- Set the number of lights and RGB value to match your Neopixel device (in our case, 16 lights in RGB).
- Click on the "Arduino/Serial" tab, and turn on "Enable Serial Port Output". Select your Arduino port from the list below. On Windows it'll start with
COM...
, while on Mac expect something like/dev/tty...
. - You'll know if your Arduino is receiving data correctly, as a data light will flicker constantly on the board so long as the Illuminations application is running.
If everything worked, at this point your Neopixels should be lighting up and matching the preview shown in the application. You can start by editing some of the templates, or go wild and create your own. Have fun programming! 😎
Note: Most users won't need to do this - you can just download and install the latest release above. If you want to make changes to the codebase of the application itself, and build it locally - follow the steps below:
Install node.js (tested with Node 14.x and 16.x). npm needs to be at least version 8.x. Update your npm
dep after Node installation: npm install -g npm@latest
.
Fork/clone this repo to a folder on your local machine. From within that folder, run:
npm install
Then to start the dev app:
npm start
You're all set. Go ahead and make any changes to the codebase that you need. Enjoy programming :)
Windows
npm run make-windows-release
Mac
- Follow this guide to prepare your dev environment for code signing and notarization.
npm run make-mac-release