Liquid Glass Lab

A Liquid Glass interaction system I built with SVG-first refraction, a WebGL2 fallback, and accessible CSS fallbacks.

Lens

Use the arrow keys to move the lens horizontally and vertically.Lens position 62% horizontal and 47% vertical.
Parameters

Controls the material parameters and ranges I used for this system, with your Lens material, geometry, and optics defaults.

Lens tuning

Previous geometry and optical controls.

px
×
px
deg
%
px
px
%
Gesture lens
Glass border
Force fallback

I built the draggable lens with a center-zoom field and a separate bezel-refraction field. Direct contact flexes the geometry from the touch point while its specular sheen stays broad instead of forming a click spot. I tuned its opening preset to zero specular and tint, 0.03 refraction, a 40px bezel, and 71px thickness. Supported Chromium contexts use the SVG backdrop path; for Safari and Chromium contexts without SVG URL backdrop filtering, I render the same displacement, center-zoom, and specular maps through an on-demand WebGL2 shader. I also made the mesh follow the site's global theme in both renderers.

Switch

Parameters

Controls the material parameters and ranges I used for this system, with my switch defaults.

Force active
Switch state
Glass border
Force fallback

I built the switch with lip displacement and specular maps, a tuned filter scale, custom dimensions and colors, and elastic drag geometry. I made the thumb white at rest and expand into transparent refractive glass while pressed. The SVG filter is the primary renderer; in Safari and Chromium contexts without SVG URL backdrop filtering, I run the same optical maps through an on-demand WebGL2 material. The mesh backdrop follows the site's global theme.

Slider

Parameters

Controls the material parameters and ranges I used for this system, with my slider defaults.

Force active
10%
Glass border
Force fallback

I built the slider with convex displacement and specular maps, a 90×60 thumb, 330px rail geometry, and a 10% starting value. It keeps accessible pointer and keyboard slider semantics with the defaults I tuned: 0.40 opacity, 7 saturation, 1.00 refraction, and 0.0 blur. The SVG filter is the primary renderer; in Safari and Chromium contexts without SVG URL backdrop filtering, I run the same optical maps through an on-demand WebGL2 material. The mesh backdrop follows the global theme so its refraction stays visible in both contrast modes.