Canvasplayer 2.0

Canvasplayer 2.0 plays back graffiti tags in a web browser, in 2D and 3D. It reads Graffiti Markup Language (GML) files and redraws each tag stroke by stroke, at the speed it was written.

Try it · Source code · Embed a tag

It’s a rebuild of the original canvasplayer from 2009, which sat mostly untouched for 16 years.

What’s new

Six tags in six styles: Katsu's skull in marker, chisel and marker with effects, Jesus Saves in outline, a scribble in dyna and hello world as a skeleton of points Some of the ink modes and effects.

Katsu’s skull (#161), the default tag since 2010, through a handful of the new modes.

The 2D player drawing Katsu's skull, with example tags on the left, ink modes, effects and data layers on the right, and a scrubber underneath The 2D player, with every option on screen.

3D, by Evan Roth

The biggest addition is a 3D mode by Evan Roth. It stretches each tag through time as a ribbon, with dust trailing the pen. The look comes from DustTag, the iPhone app Evan made with Chris Sugrue in 2010, and before that from his Graffiti Analysis work, which started in 2004. Evan ported it to three.js in 2026, and his fork is now part of canvasplayer.

Katsu's skull tag as a white 3D ribbon on black, with dust trails spraying out from the pen Katsu's skull in 3D. Click to play it.

Credits

Built by me, with the 3D renderer by Evan Roth. Thanks to the rest of the GML team, Theo Watson, Chris Sugrue and Golan Levin, and to every writer who uploaded a tag.

The code is public domain.

See also: the original canvasplayer (2009), 000000book 2.0, Graffiti Markup Language (GML)