Skip to content

Smoothing color transitions

Davide Perini edited this page Apr 6, 2025 · 9 revisions

The smoothing feature is designed to create seamless transitions between colors, significantly reducing eye strain caused by rapid flashes, such as those in fast-paced games or high-action videos.

Increasing the smoothing level enhances the fluidity of color transitions but slightly reduces LED responsiveness to sudden changes.
If you prioritize maximum responsiveness, you may want to disable smoothing.

How does it work?

Luciferin uses two techniques to smooth transitions:

  1. Multi-Frame Generation using linear interpolation
  2. Exponential Moving Average (EMA)

Let's take a look at what these techniques do.

Multi Frame Generation using Linear interpolation

When frame generation is enabled, Luciferin reduces the capture framerate and begins inserting interpolated frames between the captured frames.

These interpolated frames are generated using linear interpolation, meaning that each generated frame represents a gradual transition between two captured frames.
This smooths out abrupt changes in color, making the lighting effect much more natural and fluid.
Note: Frame generation works on colors and not on images, making it much easier than other frame generation technologies like the ones used by Nvidia or AMD and does not require special hardware.

Why does the firmware process more frames than the capture system?

If you're using the frame generation feature, you may notice that the Glow Worm Luciferin firmware processes more frames than Firefly Luciferin captures.

This is completely normal because interpolated frames are generated in software rather than being captured from the screen.

Additional Benefits of Frame Generation

  • Reduced CPU & GPU load: Generating interpolated frames is computationally cheaper than capturing and processing new frames from the GPU. This means higher smoothing levels can reduce overall system load, improving performance.
  • Better motion consistency: Linear interpolation helps prevent flickering or abrupt jumps in brightness, resulting in a more cinematic and immersive ambient lighting effect.
  • Customizable experience: Users can adjust the smoothing intensity to find the perfect balance between responsiveness and smoothness, adapting the effect to different types of content.

If you prefer the fastest LED response, disable smoothing. However, for a more pleasant and comfortable viewing experience, enabling frame interpolation can significantly enhance the effect.

What is Exponential Moving Average (EMA)?

The Exponential Moving Average (EMA) is a smoothing technique that gradually adjusts values over time, giving more weight to recent data while still considering past values.
Unlike a simple average, EMA reacts faster to changes while still keeping transitions smooth.

Why Luciferin uses EMA?

Luciferin already uses frame generation with linear interpolation to generate additional frames between captured frames.
This helps smooth out color transitions, but it still treats every frame equally.
EMA adds an extra layer of smoothing, making brightness and color changes even more fluid and natural.

Advantages of EMA in Luciferin:

  • Even smoother transitions: EMA prevents sudden color jumps by softly blending recent colors with past ones.
  • Faster reaction to gradual changes: It keeps transitions smooth without excessive delay, making it ideal for ambient lighting.
  • Reduced flickering: Helps eliminate small, rapid fluctuations that might appear in fast-moving content.
  • Works alongside frame generation: EMA does not replace linear interpolation but enhances it, adding extra smoothness without sacrificing responsiveness.

By combining Frame Generation and EMA, Luciferin delivers an even more natural and immersive ambient lighting effect while keeping system performance efficient.

NOTE: The speed of EMA also depends on the target framerate; the higher the target framerate, the faster the transitions calculated by EMA will be.

Smoothing levels in detail

Luciferin offers presets for balancing frame generation with the Exponential Moving Average (EMA).

Smoothing level Capture framerate Frame Generation Target framerate EMA
No Smoothing User defined Off User defined Off
Level 1 User defined Off 60 FPS Very fast
Level 2 30 FPS 2x 60 FPS Fast
Level 3 30 FPS 2x 60 FPS Moderate
Level 4 15 FPS 4x 60 FPS Moderate
Level 5 10 FPS 6x 60 FPS Slow
Level 6 5 FPS 12x 60 FPS Very Slow
Custom smoothing User defined User defined User defined User defined

Level 3 is considered a well balanced option.

Customize your smoothing experience

If you want, you can customize your smoothing experience by accessing the advanced settings through the button.

  • Exponential Moving Average (EMA) supports the following state: Off, Very fast, Fast, Rapid, Moderate, Slow, Very slow

  • Capture framerate is read-only. For example, if you are using frame generation 2x with a target framerate of 60 FPS, the capture framerate will be 30 FPS. (30 FPS * 2 = 60 FPS).

  • Multi Frame generation supports the following state: Off, 2x, 3x, 4x, 6x, 12x, 30x

  • Target framerate supports the following state: 30 FPS, 60 FPS, 120 FPS

Clone this wiki locally