← Gallery № 51 · webgl

Crystal Lattice

Procedural crystal formations growing with faceted 3D lighting and prismatic sparkle.

What is Crystal Lattice?

Crystal Lattice is a free WebGL web effect in the TappyPrism library. Procedural crystal formations growing with faceted 3D lighting and prismatic sparkle. It is rendered on the GPU by a fragment shader, so it costs almost nothing on the CPU and works well as a full-screen background. It ships as a single self-contained HTML file (crystal-lattice.html) with zero dependencies — no npm package, no framework, no build step. It exposes 4 live parameters — Crystal Count, Prismatic, Tilt X, Tilt Y — adjustable in the browser or at runtime.

Parameters

ParameterKeyRangeDefault
Crystal CountGROWTH_SPEED0.3 – 21
PrismaticREFRACTION0 – 21
Tilt XTILT_X-1.5 – 1.50
Tilt YTILT_Y-0.5 – 0.50

How to add Crystal Lattice to your page

  1. Download the standalone file crystal-lattice.html and copy its source into your project.
  2. Or embed it as a background iframe:
    <iframe src="https://prism.tappypotato.com/fx/crystal-lattice.html" style="position:fixed;inset:0;width:100%;height:100%;border:0;z-index:-1" title="Crystal Lattice"></iframe>
  3. Tune it at runtime with postMessage:
    iframe.contentWindow.postMessage({ type: 'param', name: 'GROWTH_SPEED', value: 1 }, '*');

Frequently asked questions

What is Crystal Lattice?

Crystal Lattice is a free WebGL web effect in the TappyPrism library. Procedural crystal formations growing with faceted 3D lighting and prismatic sparkle. It is rendered on the GPU by a fragment shader, so it costs almost nothing on the CPU and works well as a full-screen background. It ships as a single self-contained HTML file (crystal-lattice.html) with zero dependencies — no npm package, no framework, no build step. It exposes 4 live parameters — Crystal Count, Prismatic, Tilt X, Tilt Y — adjustable in the browser or at runtime.

How do I add Crystal Lattice to my website?

Download the standalone file at https://prism.tappypotato.com/fx/crystal-lattice.html and copy its source into your page, or embed it as a background iframe: <iframe src="https://prism.tappypotato.com/fx/crystal-lattice.html" style="position:fixed;inset:0;width:100%;height:100%;border:0;z-index:-1" title="Crystal Lattice"></iframe>. Tune it live with postMessage, e.g. iframe.contentWindow.postMessage({ type: 'param', name: 'GROWTH_SPEED', value: 1 }, '*').