Type lab

Type lab, a typographic laboratory by Vincent Lesne

Mona Sans · wdth 75–125 · wght 200–900

A laboratory for looking at letters far too closely — to dissect them, generate them, deform them. In code, with AI, by hand.

Index2026 —
  1. 01 Real-time 3D · code In progress Anatomy of a Letter
  2. 02 Long text · WebGL · code In progress Le Bateau ivre
  3. 03 Calligram · WebGL · AI voices In progress Il pleut
  4. 04 Soft body · WebGL · code In progress Jelly type
  5. 05Benchmark · AIUpcoming The Ampersand Test
  6. 06Font · fontToolsUpcoming Beowolf 2026
  7. 07French accents · AIUpcoming Été, Noël, cœur, ÇA
01

Anatomy of a letter

A lowercase g, dissected from outline to bone. The anatomy isn’t modelled by hand: it is generated from the letter’s own drawing — distance field, skeleton, ductus — and would work on any glyph. Then the type terms are taken literally: the eye gets an eyeball, the ear a cochlea, the loop a heart beating at 62 bpm. You open it with a scalpel, in real time.

The wax g: skin The muscles of the stroke Arteries and veins Nerves and spinal cord Viscera: eye, heart, cochlea, lungs The skeleton: spine and ribs
Incision
01 — DissectionScroll to incise ↓
    Enter the specimen →

    Three.js · distance field · surface nets · 6 layers · real time

    02

    Le Bateau ivre

    Rimbaud’s hundred alexandrines, set as a poem whose lines are the sea. Every letter is a variable of the font; the words act out what they say, a paper boat drifts across the stanzas, and the page takes on water. Green water rises at the fifth stanza, colour arrives in watercolour washes, the storm turns the page to black, the maelstrom winds the lines into a spiral — and the poem ends in a black puddle, where a child sets down a boat as frail as a May butterfly. You go down the river by scrolling.

    Title page: Le Bateau ivre, a paper boat on the line Stanza V: the green water rises over the page Stanza IX: colour arrives in watercolour washes Stanza XIV: glaciers, suns of silver, a sky of embers Stanza XIX: free, smoking, risen out of violet mists Stanza XXII: the maelstrom winds the lines into a spiral Stanza XXIV: the black puddle, where the text turns white
    02 — VoyageScroll to go down the river ↓
      Go down the river →

      Playfair variable · WebGL sea · Three.js boat · Web Audio surf

      03

      Il pleut

      Apollinaire’s calligram, as the review SIC printed it in 1916: five slanting streams of letters, rain frozen in lead type. Here the page gets wet and turns to glass, and every line becomes the trail of a single raindrop running down the window, leaving each letter exactly where the compositor placed it. Five women’s voices, made by AI, say what the water writes. The words do what they say; the town behind the glass comes into focus when it becomes an ear; after an old music the streams turn a quarter and become a staff of plainchant. Then the bonds fall, and the poem becomes rain.

      The page of SIC, 1916: Il pleut set as five slanting streams of letters The rain soaks the page: dark wet blots spread across it The page has become a window at the blue hour; the letters run down the glass “des voix de femmes”, written by a single raindrop “rencontres”: the letters of two lines meet “villes auriculaires”: focus shifts to the town behind the glass A quarter turn: four streams become a staff of plainchant “écoute tomber les liens”: the bonds fall and the poem becomes rain
      03 — RainScroll and it rains ↓
        Watch it rain →

        Besley · WebGL 2 water · five AI voices · plainchant

        04

        Jelly type

        Type a word and each letter is cast in gummy, dropped on a studio sweep and left to tremble. The mould is the letter’s own outline: every edge it drew comes out rounded, and the jelly — tetrahedra solved sixty times a second, nearly incompressible — stretches when you pull it and swings back when you let go. Then the scalpel, the paste-up knife: draw across a letter and the blade follows the stroke, point down, handle leading, and leaves a flat, bright face where it cut. Slit an O and it holds together; cut the leg off an R and you are holding a P.

        Jelly, typed: five gummy letters drop onto the studio sweep, the last still in the air The scalpel draws across the e, handle leading, its blade inside the jelly An O in Mona Sans, cut through and lifted: the cut faces flat and bright, the moulded edges round Studio lights down: a g pulled up by hand, hanging over its red shadow “candy”, in Bagel Fat One: fat round letters in assorted flavours Show mesh: the tetrahedra that make an S tremble
        04 — StudioScroll to cut ↓
          Mould a word →

          XPBD soft body · WebGL 2 jelly · three typefaces · five flavours

          Colophon

          About

          Vincent Lesne is an art director at an advertising agency. Type lab gathers his research into letterforms — mostly with AI tools, also in code, sometimes by hand.

          Method

          Always start from a real font, then let the machine handle it. AI writes well and draws badly: the drawing stays with the letter; material and motion go to the machine.

          Typesetting

          Set in Mona Sans (GitHub, SIL OFL), across every width and weight, and IBM Plex Mono. The title is read from the font file with opentype.js and redrawn every frame. Two modes, because a letter can’t be judged on one background alone.