We stopped shipping screenshots of glass and started shipping the glass. The Abbe slider alone paid for the quarter.
Optics asa medium.
Nothing teaches you glasslike breaking it.
A pane is a boundary you were never meant to notice. Split it and every seam becomes a lens — the physics stops being invisible and starts being something you can author.
Look closerand it bends.
Move the loupe across the plate. Nothing here is pre-rendered — the glass resamples what is behind it every frame, magnifying, bending at the rim and splitting the channels the way a real element would.
Every material bendslight by a number.
One numberis a lie.
A material has an index per wavelength. Blue turns harder than red, so one ray leaves as three. The width of that fan is the Abbe number — the difference between glass that looks rendered and glass that looks real.
A quarter of awavelength thick.
An anti-reflective stack is measured in nanometres and judged in colour. Get the thickness wrong by a tenth and the whole element turns the wrong shade of magenta under a softbox.
The library,in the hand.
One plate, cut into five materials and seated so the seams close. Bring the pointer in and it fractures — every piece separates along its own radial, and the one you are over separates furthest, turns to face you and fills its whole frame with the field seen through that glass.
Author it,don't fake it.
Every value below is a live parameter of the specimen on the right. Change one and the glass changes in the same frame — then leaves as a material, not a screenshot.
Light keepsits own notes.
A caustic is what is left on the floor after the glass has finished deciding. Every fold in the field behind this is a place where the surface focused more rays than the ones beside it — the signature a material leaves.
Read by people whogrind their own glass.
The first tool where the number on screen is the number in the shader. Our coating team reads it without a translator.
It exports a material, not a mood board. That distinction is the entire reason it survived our pipeline review.
I stopped asking the simulation team for a sanity check. The dispersion here already matches the bench data.
Our glass library used to be forty files and a folklore document. It is now one panel and a number I can defend.
We added a fourth renderer and did not rewrite a single material. That has never once been true before.
Leave with thematerial itself.
Nothing here is trapped in the tool. Every parameter you set writes out to the format your renderer already speaks.
// caustic — bk7.glslconst float ior = 1.5168;const float abbe = 64.17;const float roughness = 0.06;const vec3 attenuation = vec3(0.88, 0.94, 1.00);const float film_nm = 420.0;
Then put itback together.
Annealing is the slow cool that takes the stress out of glass. Seven cells, one pane, no seams left to see — and everything you just read is still a parameter.