Real HTML,
melted by a shader.
A live HTML form, re-rendered as a WebGL texture every frame.
Pour it.
Drag across the crucible. Each spark carries its own heat and cools from white to red as it falls.
For clients: shader-grade hero sections that stay real, accessible HTML.
How it works
Native path
Chrome’s HTML-in-Canvas API: <canvas content="drawable"> lays the card out, texElementSubImage2D() uploads it on every paint, and updateElementGeometry() keeps clicks and focus aligned.
Fallback path
Where the API is missing, the same card is serialized into an SVG <foreignObject>, rasterized, and re-uploaded on input. The real DOM stays on top for clicks and assistive tech. Tested in Chrome 156 (native with the feature flag, and fallback) and Firefox 157; plain static HTML when WebGL is off.
Shader
One fragment shader, three looks: domain-warped melt, chromatic prism split and an ink halftone, all driven by time and a decaying pointer ripple field.
Questions people ask
Which browsers does Molten support?
Current browsers with WebGL2. Tested in Chrome 156 and Firefox 157. With Chrome’s HTML-in-Canvas flag on, live HTML renders into the canvas; otherwise the same card is drawn as a preview.
What happens without WebGL or with reduced motion?
Without WebGL2, or with reduced motion requested, the page shows the plain HTML card labelled Static preview, and all text and links still work.
What does the service include if I hire you?
Molten is a portfolio piece. Through Upwork I take on scoped WebGL, Canvas and shader hero work with a static fallback included. Hosting and maintenance are agreed per project; nothing here is sold directly.