Solaris
Light That Bends When You Ask It To
Interactive iridescent WebGL fluid art poster built with Vite, TypeScript, and custom shaders.
Solaris has no color until you interact with it. The surface sits still and neutral, chrome-dark, a liquid that has not yet caught the light. Move the cursor and the rainbow appears: iridescence generated not from texture or image but from the velocity of the pointer itself.
The core of the implementation is a custom GLSL fragment shader I built taking inspiration from Kevin Levron. Coordinate offsets in the shader map to the current pointer position and its velocity vector. The faster the movement, the more the iridescence shifts across the hue spectrum. Slow the pointer and the colors settle back toward neutral. The surface is not colorful by default. It becomes colorful in response to attention, and it stops when you stop.
Everything else in the layout is typographically quiet. Text elements are positioned over the canvas at low opacity, framing the experience without competing with it. I made a deliberate choice to keep the surrounding design minimal: the shader needs to be the only thing happening visually, or the effect loses its force. Color appearing in response to motion is striking when there is nothing else to look at. It disappears into noise when the page around it is also making claims.
Vite and TypeScript handle the project structure. Pointer coordinates are tracked in real time and fed into the shader's uniform values on each animation frame, which keeps the velocity calculation current without perceptible lag.
This sits alongside Forge and Terroir as an experiment in a specific sensory idea rather than a product or portfolio piece. The idea I was chasing: a surface that only becomes itself when touched.
The shader is embedded below. Drag across it slowly, then fast, and watch the iridescence follow the velocity rather than the position.
Warp
Loading…