A rainbow looks like the easiest feature to build — cycle some colors, done. In a power-constrained levitating system, it is the hardest. Every milliwatt is spoken for: levitation draws first, and lighting gets what is left. "A beautiful rainbow" and "an efficient rainbow" are, physically, in conflict. We spent more engineering time on this feature than on any other. Three decisions made the difference.
1. Full hue — the whole color wheel, not samples of it
The problem: most RGB rainbows are 8-, 16- or 64-step sequences. You see red snap to orange snap to yellow — the in-between colors simply do not exist. More steps mean more overhead, so most products stop early.
What we did: we dropped the step table entirely and drive the rainbow from a continuous hue value. No stair-steps. No dropped frames.
- 100% of the color wheel is covered — not a sampling of it. Every transition color genuinely exists, including the ones with no name.
- Maximum saturation throughout — colors stay pure, never muddied by channel mixing.
- ~7.9 seconds per revolution, ~50 frames per second — a fully continuous flow of light.
In one line: others hand you 64 colors stepping. We hand you the wheel, flowing.
2. Gamma correction — maximum brightness inside a locked power budget
The problem: human brightness perception is non-linear. There is a curve between what you feed an LED and what your eye actually registers. Skip it, and the mid-and-low range looks washed out and dim — which is exactly why many lights are "the right color but not bright enough."
The harder part: in a levitating system the power budget is locked — a hard constraint that keeps the base cool and the levitation stable. So "make it brighter" cannot mean "push more watts." It means putting the watts you have where your eye can actually see them.
What we did: gamma correction — redistributing drive values along the human perception curve.
- Low range: floor compensation — no lost shadow detail, no flicker at low brightness.
- Mid range: prioritized lift — where the eye is most sensitive, and where "bright" is actually decided.
- High range: kept linear — no watts wasted past the point of useful gain.
The result: noticeably higher perceived brightness on the same power budget; shadows no longer collapse into black; highlights stay unclipped; and far better visual uniformity across the whole rainbow — no dim segments.
In one line: we didn’t add power (we can’t). We put every milliwatt where your eye can feel it.
3. Linear optimization — no more bright-then-dim color swings
The problem: the three LED channels (R/G/B) have inherently different luminous efficiency. Drive them at equal values and you don’t get balanced white — you get color shift and uneven brightness. Nearly every RGB product has this: some colors glare, others go flat and murky. In a constant-power system it cuts deeper: total power is locked, so more for one channel means less for another.
What we did: linear optimization — a channel weighting derived from the human sensitivity curve, so every color’s mix is calibrated rather than split evenly across three channels.
- Mixed colors balanced (pure yellow, cyan, magenta): precisely proportioned to eye sensitivity.
- Native colors direct-driven (pure red, green, blue): full 100% output — no mixing, no attenuation, no compromise.
- Constant load throughout: total power stays fixed regardless of color — no color pushes the system to its ceiling, and brightness never swings as colors change.
The result: all 21 curated colors plus every random hue read at consistent brightness — no "switching to that color makes it dimmer." Mixes stay clean; primaries stay uncompromised. And constant system power means a cool base and stable levitation — the direct payoff of constant load.
In one line: not an even split across three channels — a split weighted to the human eye, so every color lands at just the right brightness.
Three optimizations, three payoffs
| Optimization | Physical problem solved | What you actually see |
|---|---|---|
| Full hue | Colors missing between step-table jumps | A continuous flowing rainbow — true, pure, stepless color |
| Gamma correction | Non-linear human perception + locked power | Brighter on the same watts; shadow detail kept, highlights clean |
| Linear optimization | Unequal channel efficiency + constant power | No color shift, constant brightness; cool base, stable levitation |
In a system with a locked power budget, we didn’t choose a brighter lamp — we chose smarter use of light. Full hue keeps the colors true. Gamma correction keeps them bright. Linear optimization spends every last milliwatt where it counts.
Frequently asked questions
- Why do most RGB rainbows look steppy instead of smooth? Most products use 8-, 16- or 64-step color tables, so the transitions between steps simply do not exist. Our rainbow is driven by a continuous hue value covering 100% of the color wheel — one full revolution in about 7.9 seconds at roughly 50 frames per second, at maximum saturation throughout.
- Why not just drive the LEDs harder to make the rainbow brighter? The power budget is locked — it keeps the base cool and the levitation stable. Instead of adding watts, gamma correction redistributes drive values along the human perception curve, so perceived brightness rises on the same power.
- Why do some RGB products go dim or muddy on certain colors? The R/G/B channels have different luminous efficiency, so an even split causes color shift and dimming. We weight the channels by eye sensitivity and hold total power constant — all 21 curated colors and every random hue read at the same brightness, and the base never overheats.
See this engine running in the Programmable LED Levitating Display Stand — 21 curated colors, three programmable light zones, seven lighting modes, and 16 million more hues in infinite random. Related reading: Why We Don’t Recommend Battery Power for Magnetic Levitation Displays and Why Does It Spin? Rotation in PU Levitation Systems, Explained. Building a custom lighting effect into your own product? Talk to our engineers.