rustmas
rustmas copied to clipboard
Christmas lights controller capable of displaying 3D animations
Rustmas
Santa Crab is coming to town!
Utilities for putting smart Christmas lights on your Christmas tree, written in Rust, inspired by Matt Parker's xmastree.
The interface for controlling lights is provided by pico-w-neopixel-server, which is meant to be installed on a RaspberryPi Pico W. You can use local visualizer for testing purposes.
Demo (YouTube)
Local development setup
You will need
- Rust toolkit (see rustup)
- dependencies installed (see Workflow file for what to install on Ubuntu)
- (optionally) programmable lights set up with pico-w-neopixel-server, or you can use our visualizer instead
Setting up your lights
If you are using physical lights, you need to connect them to a Raspberry Pi Pico W running pico-w-neopixel-server or pico-usb-neopixel-driver, and configure their positions using our configurator. This will produce a CSV file with light positions. Alternatively you can use the visualizer for testing with the example CSV file.
Running code locally
The easiest way to test your animations is to run our web application locally. You can use either physical lights or our visualizer.
Git hooks
This repository has git hooks prepared that check simple conditions that might otherwise trip up the CI setup. We recommend that you use them. In order to set them up, run the following command inside the repository:
git config core.hooksPath .githooks
Deployment
If you would like to use Rustmas to control your Christmas lights, you will first need to configure your lights and then deploy our web application to a local server.