A glTF model of the numeral six is loaded, then a three.js MeshSurfaceSampler walks its triangles and scatters 200,000 random points across them. Each sampled point also picks a planar UV, so the fragment shader can read its colour straight out of a texture image; the matching vertex shader sizes each point by its distance from the camera and pushes the cloud away from the pointer, so the digit smoulders like embers on black.
Built by Niccolò Fanton. Browse all WebGL demos or read the source code for this demo on GitHub.