Abhishek Chadha

The Shimmer

Programming

October 4, 2026 · yesterday

Recently, I re-watched Alex Garland's Annihilation. Thought it bombed at the at the box, I think it's easily one of the best cosmic horror movies of the last decade. There's Natalie Portman's performance, a haunting soundtrack by Ben Salisbury & Geoff Barrow, and some terrifyingly surreal visuals by Rob Hardy.

Among the visual aspects, one of the most memorable was the Shimmer, the strange, iridescent boundary of Area X. It has a very specific appearance. You can see through it, but everything seems slightly distorted, like a mirage. Its surface folds and shifts, with colors that like oil on water. It was shown in the movie only briefly, but even then it was simply hypnotic.

Shimmer Original

I thought it would be fun to try and build the Shimmer as a shader. I read VFX supervisor Andrew Whitehurst's description of the effect, how it combined a fractal structure with thin-film interference to produce the shifting, oily colors.

I started off with a dense, layered noise field built from fractal Brownian motion, low-frequency curl-noise warping, and strong opacity accumulation. It produced convincing internal variation, but the motion smeared laterally and felt more like a lava lamp than rising currents.

Attempt 1

I reduced the opacity and density, narrowed the threshold bands, and biased the velocity field upward. When that made the wisps too columnar, I combined the upward force with divergence-free curl noise, added occasional downward impulses through a slower secondary flow, and used domain warping to break up the columns. The result preserved the rising motion while adding sideways curls and intermittent downward eddies.

Attempt 2

I also added depth through sparse descending particle trails and a distant layer driven by lower-frequency noise and stronger horizontal turbulence. Each layer has independent time scales, seeds, velocity fields, and opacity falloff. A refractive front pass offsets the sampling coordinates behind it, making the ribbons bend and shimmer through the membrane. I preserved the default palette by applying hue rotation, saturation scaling, contrast remapping, and warmth adjustments after simulation.

After adding some controls, I got this:

It's still just an interpretation and far from perfect but you can make it your own. Play with the colors, stir up the currents, then hide the interface, put on this insane track by Moderat, and stare into the void for a while.