Eclipse OS

Eclipse OS

Open Source, Clean Code for Addressable LED Patterns


C++
Arduino
LED Animation
IO
Screen
LED Framework
Generative Patterns
Interactive

A lighting framework to bring a shader designer ecosystem into microcontrollers using a keyframe and generator based system design. Iterated and expanded code while developing devices for multiple events.



Oct 2024 – May 2025

v2, built for The Jacket v2. Second pass on the library that took it to what I consider complete: 2D LED mapping, IO-agnostic patterns, and a generalized state machine with blended transitions.

Jan 2024 – May 2024

v1, built alongside The Pendant. Developed the foundational procedural color framework with a focus on flexibility in performance choices (these are RP2040 chips) while still covering the critical features of LED pattern creation: layer blending, generators, state machines, and clean interfaces for custom logic to sit on top of.

Overview

Eclipse OS is a high level, addressable LED control system to allow mapping your patterns in the context of patches, patterns, and layers, to allow you to reuse work for future projects easier, and overall give a generalized structure to any addressable LED device.

System Goals

After making around four addressable LED projects, I found myself constantly feeling limited by the fact I was restarting a lot of my codebase. I was looking for a uniform way to create modular LED patterns with ability to animate values cleanly and have the values represent that. My inspiration came from using my music production DAW / synthesizers, where you could have mappable parameters related to a pattern, then create a layers system to allow blending between patterns and states.

The priority at the time was to make a core base layer that really covered as much of the boilerplate, gameplay system side of things, while maintaining a huge amount of flexibility on how you decide to structure your system.

This code is meant to be read through, at least the headers. It's simple in my opinion, but I'm biased.

I plan to keep expanding the feature set as new projects have further integrations they want.

Features

Pattern Generator Framework

Eclipse OS takes a designer-friendly approach using a pattern generation pipeline that allows maximum flexibility in determining how we transition between states.

It runs everything in HSV colorspace, allowing for much cleaner blending between colors.

The system has a custom palette/gradient system to allow for easily selecting colors based on configured pattern generator.

The system is built around extension points. New pattern generator types, palette-driven generators, layered generator stacks, and alternative mapping contexts all plug in without touching the core, and development continues as new devices need more.

Generalized IO Structure

Eclipse OS abstracts away IO from the patterns themselves, letting you remap to a new device, new pin pattern, or any other circumstance much easier.

Small-Form Finite State Machine

Eclipse OS has a small form finite state machine that utilizes the abilities of our Pattern Generators and Generalized IO buffers to do seamless blending of states.

Versions

Each version shipped inside a device first and was generalized afterward. The hardware pages carry the build stories; this page carries the library.

v1 (Jan 2024 to May 2024): The Pendant

The first version established everything above: HSV pattern generators, the palette and gradient system, generalized IO buffers, and the small-form state machine. It drove The Pendant, which powered The Jacket v1 and The Staff across two events.

v2 (Oct 2024 to May 2025): The Jacket v2

The second version is the point where I consider the library complete. Built for The Jacket v2, it added: