05 / 10
Tessera
- TypeScript
- SVG
- Perlin noise
Live project https://tessera01.vercel.appSource repository https://github.com/moritzsalla/tessera

A browser tool that draws a grid and colours every cell by a function you write, then exports the result as editable SVG.

Each cell’s fill comes from an expression evaluated per cell and per channel, with x, y, the
channel’s own value c, and noise, sin, cos, tan, floor, ceil and round in scope.
The default is noise(x*c, y*c). Red, green and blue are evaluated separately, so one expression
gives three surfaces that agree only where the channels line up.
Perlin noise rather than random, because random values spread too evenly to read as a pattern. Seed, octave count and falloff are controls, so a pattern is adjusted rather than rerolled.

Cells can be deleted by clicking or by dragging across the field. The grid is a structure to edit by hand, not a finished image.

Output is SVG, so the pattern leaves the browser as editable paths at any size; a raster export would end the work at the moment it was generated. A few thousand rectangles will still stall a vector editor.


The same vectors go to fabrication. A pattern exported at a scarf’s proportions was rendered as a knit, each cell a block of stitches.

The interface is built with 98.css, as a draggable Windows 98 window.
