Animated Holiday Light Shows
People have been overdecorating for the holidays for a long time.
However, as engineers, we realize that the problem shouldn’t just involve more lights, what we really need is computers!
What Goes Into an Animated Light Show?
- Smart pixels. These LED lights have red, green, and blue LEDs and a microchip inside and are individually controllable to produce millions of colors on demand.
- Coro cutouts to hold the pixels in a thematic shape.
- Controllers, which serve as a bridge between Ethernet network data and the pixel strings, and also often have the job of providing DC power to the pixels.
- A computer program for sending data to the lights. This program typically maintains a “layout,” which is a computer model of where the pixels are physically located on the house, a “controller configuration” with the topology of network addresses, ports, and light strings so that the computer knows where to send the data for lights in the layout, and a “sequence” of music, colors, images, motion, and other effects that are timed to the music and targeted for the layout.
- Sequences. Without sequences, the whole thing is a mess of cables, boxes, and plastic cardboard.
Sequencing
Making a good light show sequence is a creative process. In the same way that composing a song requires a pleasing combination of interesting sounds through time, a light show sequence is a combination of interesting lighting effects through time. I’ve been told that it takes about 50 hours per light show to mark the timings, choose colors and effects, line everything up, and adjust to achieve a great sequence.
Sequence Vendors
Because sequencing requires lots of time (and creativity), many of us buy the sequences from vendors.
Even with purchased sequences, there is still a challenge, because every house is different. Sequences have to be “mapped” from one layout to another. The lighting equipment varies significantly between shows.
This is where DBOS fits in; it was used to build and run the services that coordinate and automate the process of mapping purchased sequences to user layouts.
About EZRGB
EZRGB aims to make the whole animated light show “EZ”, which means selling and supporting complete components or light shows through a simple web storefront. This includes:
- Sourcing and selling assembled controllers, lighting props, or entire layouts, as opposed to the kit-based approach common in the hobby.
- Working with a network of installation and technical professionals to offer on-site service.
- Providing a magical sequence procurement experience, EZSequence, powered by DBOS. All you have to do is click “buy”, and computers do the rest.
The EZRGB Sequence Solution
EZRGB’s website is built on WordPress, with a WooCommerce storefront. This website has customer account pages, where users upload their show layouts, and a sequence store for purchasing sequences. All customer profile updates and sales events from this front end trigger fulfillment workflows, which are written in DBOS Transact (TypesScript) and hosted in DBOS Cloud.
"We considered building our digital fullfillment process on AWS Lambda but couldn't figure out how to make it work consistently. With DBOS, automating our sequence rendering jobs and integrating with SQS messages and S3 storage was easy, and it scales to zero in our off-season."
DBOS workflows handle all of the database tables, while keeping the sequence data, layouts, and completed sequences completely synchronized in AWS S3. The DBOS Cloud service uses AWS SQS to send out AI mapping and sequence render jobs to outside workers (written in Python and C++, and hosted on prem or in EC2), which put the results in S3 and call back to DBOS via HTTP.
For EZRGB, the best features of DBOS Transact and DBOS Cloud are the development and operational simplicity. The addressable market for animated light shows is likely only a few thousand customers, which is too small to support a large development effort. However, by using WordPress, AWS, DBOS Transact, and DBOS Cloud, an entire frontend and backend were built by hobbyists, but the resulting code is reliable, scalable, and secure.
Learning More
To try out EZSequence on your house, visit EZRGB: https://ezrgb.com/ezsequence/
To learn more about DBOS and try it out, check it out (and please give us a star) on GitHub:
- TypeScript: https://github.com/dbos-inc/dbos-transact-ts
- Python: https://github.com/dbos-inc/dbos-transact-py
- DBOS Quickstart: https://docs.dbos.dev/quickstart