Ian Heisters Tools

Some of the utilities and resources I’ve released to the community. For a full list, take a look at my GitHub profile.

Cheap, Easy Video Player Cluster

Play many synchronized videos on the cheap using Raspberry PI.

Raspberry PIs make great video players. They’re cheap, and can playback high def video smoothly. If you need to play multiple synchronized videos, however, they don’t work so well. Without something to keep them in sync, they’ll play slightly slower and faster than one another until you can see them getting off.

This set of tools allows the PIs to talk to eachother over a network using a simple peer-to-peer protocol to automatically synchronize, including hot-swapping new PIs in and out; gives you a control panel you can use on your phone or laptop; makes sure they start and stop automatically when they lose or get power; and allows you to quickly setup a whole bunch of PIs all at once so that you don’t have to configure each one by hand.

The main software is called node-omxplayer-sync, and node-omxplayer-sync-devops will help you get it running on 1 or 100 PIs. They’re not really intended for simple installation (yet). You’ll need to be familiar with the PI commandline, and some experience with NodeJS wouldn’t hurt.

The images above are of Surabhi Saraf’s Remedies, which used this tool to display two four-channel looping videos.

WebUI for Cinder

Control Cinder applications from your web browser.

This library makes it easy to control Cinder with a web browser. It’s especially designed for live performance, and works well in tandem with other interfaces. For instance, I used it alongside an Ohm RGB control surface to control visuals for GRAINS. The interface is easy to setup, and includes a JavaScript client library for binding browser interface elements to Cinder variables. See the GitHub project for more details.