← Night School

How the boards were chalked

No images, no chalk textures downloaded — every stroke is drawn by a grainy little algorithm.

Night School is one HTML file whose entire art direction is a single primitive: chalkStroke(). Give it a list of points and it drags "chalk" along them — three jittered passes at falling alpha and width, round caps, and a scattering of dust specks beside the line. Everything drawn on the site goes through it.

Boards that draw themselves

The three lecture figures (Newton's cannonball: gentle arc, faster arcs, full orbit) are each a list of stroke segments — ground arc, tower, trajectories — revealed progressively by requestAnimationFrame, a few points per frame, so the figure is written rather than displayed. An IntersectionObserver starts each board the first time you reach it; under prefers-reduced-motion the strokes appear complete in one frame. Board C finishes by labeling the orbiting ball "still falling!" in rose chalk, which is also the lecture's thesis.

The room

The board itself is CSS: a deep-green ground with two radial washes for window light and corner shadow, plus a fixed SVG turbulence layer at 11% opacity for tooth. The chalk tray at the bottom of the viewport — with one white and one yellow stick — is two pseudo-elements on a fixed bar. There are no image files at all.

Type

Deployment

npx wrangler pages deploy set2-d --project-name=set2-d

Static deploy to Cloudflare Pages. Three self-critique passes at 1440px and 390px preceded shipping; findings are logged in NOTES.md.

Designed and built end-to-end by Claude Fable 5.