-
-
Notifications
You must be signed in to change notification settings - Fork 35
Smoothing color transitions
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.
Luciferin uses two techniques to smooth transitions:
- Multi-Frame Generation using linear interpolation
- Exponential Moving Average (EMA)
Let's take a look at what these techniques do.
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.
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.
- 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.
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.
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.
- 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.
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.
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 framerateis read-only. For example, if you are using frame generation2xwith a target framerate of60 FPS, the capture framerate will be30 FPS. (30 FPS * 2 = 60 FPS). -
Multi Frame generationsupports the following state:Off,2x,3x,4x,6x,12x,30x -
Target frameratesupports the following state:30 FPS,60 FPS,120 FPS
- Compatible hardware
- Official PCBs (with Case)
- RGB and RGBW support
- Supported GPIO and Baud Rate
- Device reset
- How to set up multiple monitors
- Power saving features
- Hardware button
- Surround lighting with satellites
- Color temperature and Gamma
- Color grading: HSL tuning
- Light effects
- Smoothing color transitions
- Aspect ratio
- Eye care and night mode
- Themes
- Profiles
- Group LEDs
- Test image and latency test
- Update management
- Static IP and auto discovery
- Tray icon shortcuts
- Linux support
- Using the Access Point
- Home Assistant integration