Pons Shader Launchpad
NFTs that render themselves.
Every token is a WGSL shader and a seed. The metadata stores the parameters, not a picture, and your GPU renders the artwork the moment you look at it.
struct Params {
time: f32,
seed: f32,
texel: vec2f,
beams: f32,
}sha256("pons:v2:" +
collection + ":" + n)
→ d41c8e2a 91f07b33beams: 4.31 angle: 1.257 dispersion: 0.86 speed: 0.42
Metadata that stays alive.
A normal NFT points at a JPEG on someone else's server. A pons token carries its shader source and the exact parameters the seed produced. Any WebGPU device can rebuild the artwork from the metadata alone, at any resolution, forever.
{
"name": "Faultline #1",
"animation_url": "https://pons.example/t/faultline/1",
"attributes": [
{
"trait_type": "scale",
"value": 2.0214
},
{
"trait_type": "warp",
"value": 2.505
},
{
"trait_type": "seam",
"value": 0.8219
},
{
"trait_type": "speed",
"value": 0.7573
}
],
"properties": {
"generator": "pons/v2",
"chain": "Robinhood Chain",
"chain_id": 4663,
"seed": "d41c8e2a91f07b33…",
"shader_sha256": "9f2ab6…"
}
}Live collections
View all →Faultline
120/1024Warped noise fields split by a thin spectral seam where the terrain folds. Scale and warp strength are seeded, so some tokens are calm and some are torn.
Orbit
9/256A single ring of light, wobbling on its axis. Radius, band width, and hue rotation come from the seed. No two rings sit at the same angle twice.
Spectra
9/512Beams of dispersed light crossing a dark field. The seed sets the beam count, the crossing angle, and how far each wavelength drifts from its neighbors.
What actually happens when you mint
The chain assigns your token number
That number is hashed with the collection id into a 256-bit seed. Nobody picks it, and it cannot be re-rolled.
The seed becomes parameters
A deterministic generator maps the seed into the ranges the artist declared. The same seed always lands on the same values, on any machine.
Your GPU does the rest
The shader compiles in your browser and renders at whatever resolution you view it. There is no file to lose.
Ship a collection this afternoon.
Paste a WGSL fragment shader, declare which values the seed may touch, and watch the preview react before you publish.