Nolan Shah

Digital Iridescence

Physical Iridescence Example

Iridescence is the visual phenomenon of color changing on a surface as your viewing angle changes. Physically, the phenomenon occurs when the wavelength of light changes due to interferences from the material structure.

Iridescence typically looks like multi-color gradients across the surface. On a bubble, those gradients might be radial, emanating from a point based on the light source and contoured based on the bubble shape. But it could be present in something like the shimmer of a pool of water or the playing surface of a CD.

In the digital world, we don't have three-dimensional bubbles or a pool of water except in games or other rendered virtual environments. I'm sure there are algorithms for simulated digital iridescence by lighting surfaces and applying some transformations based on the impact angle of cast rays.

But I think a more interesting (and less esoteric) experience of digital iridescence could be an application or game-changing based on the user's state. A simple example is the background gradient changing color and shape based on the user ID and page scroll position.

That kind of change almost feels like a procedurally generated experience. And it is! But it's a flavor that's bounded, deterministic, and based on the user's state (as opposed to the environment). A personalized procedurally generated experience.

We're entering the territory of algorithmic art here. Algorithmic art has traditionally been filled with screen savers, cellular automata, 3D rendering & simulations, fractals & recursive art, and recently NFTs.

We've never had the kind of personalization where the experience was entirely unique to the user. Fractals might be unique if you "drill down" at a new point each time, but you don't see fractals in day-to-day user experiences. NFTs are unique based on their provenance, but that has more to do with ownership than the algorithm. Digital iridescence, unlike other algorithm art, is an untapped example of extreme personalization.

The question becomes: how far can we go? Are we limited to changing characteristics of web page backgrounds based on the user ID? If that's all we can do, then it's probably not much better than a random background color on each page load. (not that it still wouldn't be nice)

In a dialogue-driven video game with a few user-given settings or attributes to start, can we create an entirely new story dynamically with a machine learning-based storyteller? Maybe we're still limited by voice synthesis, CPU/GPU performance, or the tradeoff between quality and model size. But all of these are far enough developed where we can get close. We just have to do some assembly.

People go into video games, fractals, or even NFTs with somewhat of the same expectation as viewing a bubble. It's not really new each time. If you've seen iridescence on one bubble, you know what to expect on the next. If you play through a video game once, the next play-through is mostly the same despite making different dialogue choices.

To some extent, that's great. Too much novelty is chaos, which ruins the experience. That repetition makes the story memorable. But it's also an opportunity to push the envelope (in competition with reality) and create fully unique spaces. Promote personalization from attributes of the experience to the experience itself. It's like moving beyond customizing the set of apps on your phone to dynamically presenting information contextually on a single pane of glass.

I'll conclude with a simple implementation of digital iridescence: dynamic gradients based on web page position: see here.


  • The soap bubble image is sourced from Wikipedia