blotter.ts
Eccentric ways to render words on screen.
Blotter hands the words on your page to a GLSL shader and gives each one back as a canvas that still reads like type. One WebGL context, one draw call, every text on screen.
A TypeScript rewrite of Bradley Griffith’s Blotter: ESM, typed, tree-shakeable, with
three as a peer dependency.
import { Blotter, Text } from "blotter.ts";
import { ChannelSplitMaterial } from "blotter.ts/materials";
const text = new Text("Hello", { family: "serif", size: 96 });
const blotter = new Blotter(new ChannelSplitMaterial(), { texts: text });
blotter.forText(text)?.appendTo(document.body);
await blotter.ready; Materials
Five effects, ready to drop in.
A material is a shader with dials. Each one ships with live uniforms you can tune while it runs.
-
Guide
Your first text on a canvas in five minutes, then uniforms, events and custom shaders.
Open -
API reference
Every export of blotter.ts and blotter.ts/materials, with the signatures pulled from the types.
Open -
Migrating from Blotter.js
Same renderer, new API. What changed, what stayed, and the before-and-after of the classic example.
Open