stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Gleam

  • 3 Devlogs
  • 31 Total hours

Gleam is modular home automation system driving RGBW LED strips in real time. Built on a Raspberry Pi with an extensible Python plugin architecture with no cloud dependency.

Note: Since I couldn’t get a Raspberry Pi, I added debug tooling so the result can be seen without the hardware. It is also the best way to follow Gleam’s behavior live, since it runs purely through an API with no traditional UI.

Ship #1

Gleam is a FastAPI backend driving RGBW strips through a generic plugin API, so effects are built on exposed primitives (color, intensity, dim) rather than hardcoded. The tricky part was getting the architecture right first: syncing modules through a shared clock and separating color/intensity/white as distinct render layers. I’m especially proud of the Ambilight module, which captures HDMI output live and mirrors it onto the strip in real time, fully on-device with no cloud dependency.

  • 3 devlogs
  • 31h
Try project → See source code →
Open comments for this post

10h 51m 30s logged

Just finished a new module! The module is called audio_reactive and, as its name suggests, it reacts to the audio input provided (system default if parameter = None). It lights up the selected target as the sound gets louder.
It also features animations to make sudden transitions feel smoother.Here are the parameters for this module:

  • device: Audio input device name, or a portion of it (empty = system default)
  • color: Color of the light
  • min_intensity: Intensity when the input is silent [0.0 - 1.0]
  • max_intensity: Intensity at maximum volume [0.0 - 1.0]
  • sensitivity: Gain applied to the normalized level [0.1 - 5.0]
  • attack: Rise time in milliseconds (how quickly the light reacts to a louder sound)
  • release: Fall time in milliseconds (how slowly the light fades when the sound drops)
0
0
25
Open comments for this post

3h 17m 47s logged

Rewrite the entirety of the Ambilight module for better functionalities
and performances. I wrote an advanced algorithm to get a smoother result
in addition to more parameters :

  • device_index
  • edge
  • reversed
  • band_depth_percent
  • weight_exponent
  • sample_overlap_percent
  • saturation_boost
    -temporal_smoothing_tau

The main functionalities added are:

  • Advanced Color Averaging: Improved methods to calculate smarter average colors, such as sampling larger color bands or allowing LEDs to influence adjacent colors.
  • Temporal Smoothing: Introduction of “temporal_smoothing_tau” to ensure smoother, more natural color transitions over time.
  • Enhanced Immersion: Addition of “saturation_boost” and “weight_exponent” parameters to deliver a more vibrant and immersive visual experience.

For instance, the colors on the left terminal simulate the final result that would handle the left edge of the screen (using default parameters).

0
0
4
Open comments for this post

16h 30m 25s logged

Just finished the main functionalities of the ambilight module of my LED controller. It takes a stream from the edge of the screen (HDMI to USB, for example), then processes each frame to get the average color of the surrounding area.
I’m still working on a blur effect that would give a less detailed result for a better experience.
(Sorry for the bad recording quality, this was made on an old laptop.)

0
0
9

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…