The marble lab

How one brand decision became a factory that keeps making the brand — and where AI actually fits.

Our first client needed a brand that didn't look like everyone else's. So I designed one around a single material — a deep, veined marble — and then I built it a machine to manufacture itself.

Not a folder of stock renders. Not a bank of prompts, not a pile of AI-generated images that sort of match. A custom-coded application, with a render engine, a state machine, an export system. An app whose only job is to produce this one brand's assets, on demand, forever.

None of the marble is generated

And here's the part I want to be precise about, because it gets lumped in with the wrong thing: none of the marble is AI-generated. It's code. The marble is a shader — noise stacked on noise, six layers of it per pixel, tuned to the client's exact blues. It's expensive to draw — roughly ten times the work an ordinary material takes, every single frame. There's no diffusion model in it, no 'make me a marble' prompt. It exists because the maths got written down, and it renders live, in real time, in a browser.

So where is the AI?

So where is the AI? Not in the marble — in how it got built.

I'm not an engineer. I couldn't sit down and hand-write a tiled GPU exporter from a blank file. But I've spent the last three years around the tech space, picking up the vocabulary and a feel for how these systems fit together. And at Lappie, we all work within a shared technical framework. Paired with Claude Code, that's enough to get a long way in the crazy AI space we live in today.

One engine, many scenes

The machine is one shared engine with a lot of small scenes hanging off it. Some scenes have a three-beat life — it arrives, it rests, you click it and it reacts. Others are designed to be endless loops, or a static material to use as a background or a brand asset. The hero is 240 marble cubes that burst in from nowhere and consolidate into the two brackets of the logo; click it and they explode back out and re-gather. To run hundreds of those heavy marble shapes at a smooth 60 frames a second, the field gets baked to a texture every few frames and the shapes just sample it — which lifts the ceiling from about 150 shapes to well over a thousand.

The loops

Then the part that ended up everywhere: the loops.

Across a massive 70-page website build, we needed assets that were versatile — that could carry the theme in an interesting, engaging way across many pages. However, we couldn't afford the heavy GPU load the live shader demands on every page. So a lot of the marble lives on the site as looping video with a transparent background. The brackets turning, the field drifting, currency shapes orbiting — these are all things you'll see sitting over quite a few of the pages you land on. They're not decoration bolted on at the end. They're the connective tissue of the whole site, and every one of them came out of the lab.

Getting them to actually play was its own saga, because there is no single transparent-video format that works everywhere. So every clip ships twice. WebM, VP9, for Chrome, Firefox and Edge. MP4, HEVC with an alpha layer, for Safari and iPhones. And each has a landmine: the WebM silently loses its transparency unless you pin the pixel format the whole way through the encode, and Safari flat-out refuses to play the MP4 unless it's tagged with one specific four-letter code. We found all of that the way you always do — by shipping something that looked perfect on my machine and invisible on someone else's.

Stills, on demand

The same lab does stills, too, and this is where it really becomes an engine. One shortcut opens a panel over the flat marble with two dials — a moment in time and a zoom level. Hit randomize and you get a completely new marble that's still unmistakably the same material. Zoom out for tight, dense veining, or in for broad, slow swirls. Freeze any instant of the flow. It's an infinite supply of distinct, on-brand textures — never the same image twice, all of them exportable up to 8K. Another shortcut freezes whatever's on screen, drops the background to transparent, and hands you the arrangement as a cut-out.

The marble texture export panel, with time, zoom and seed controls over a flat marble field.
The stills exporter — a moment in time and a zoom level. Randomize for a new marble that's still the same material.

And for print — because we were making physical pieces too — it renders at 300 DPI up to one metre wide, which is an image around 12,000 pixels across. No laptop graphics card will draw that in one go, so it renders the picture as a grid of tiles, one square at a time, stitches them together, and stamps the real print resolution into the file.

The print export panel, exporting a single bracket at 300 DPI for large-format print.
The print exporter — a single bracket rendered tile-by-tile to 300 DPI, up to one metre wide.

None of that was AI — it was the will to imagine it, and the ability to build it. That's the whole point. AI didn't make the marble; it let one person build the machine that makes it forever.

The best bit is that it didn't get thrown away when the site shipped. The lab is still there. It's a living application — any asset IDU wants next, in this exact marble, in their exact blue, comes out of the same machine. You can go and look at what it's already made: it's running across www.idusoft.com.

Like how we think? Let's talk.