In 2012 I built Born Between the Lines: a tool that read your email and drew an animal for each person you wrote to. The premise was that the way you write to your mother is measurably not the way you write to your landlord, and that the difference is a shape.
The original pipeline ran raw email through the Stanford POS tagger into a
hand-curated lexicon of about 8,259 words, each tagged with part of speech,
subjective strength, sentiment, and a visual trait. Adjectives set body texture
and shape. Verbs set the eyes. Conjunctions grew antlers. but_CC → _ANTLERZ
is a real line in that dictionary.
I rebuilt it in 2026 because the language had moved and the tooling had caught up.
The decision
Five renderers over one genome, not one renderer with five skins. Tangram, Glyph, Origami, Tamagotchi, and Chernoff each read the same six dimensions — energy, warmth, formality, vulnerability, reciprocity, play — and disagree about what they mean. Chernoff faces come from a real statistical tradition of encoding multivariate data in facial features. Tangram is pure geometry. Putting them side by side over identical input makes the mapping visible as a choice rather than a truth.
The non-obvious engineering problem was seeds. Four of the renderers derive
their jitter from a hash of the whole genome, so nudging any dimension by 0.01
rerolls every wobble. Under a parameter sweep that reads as noise unrelated to
the parameter. There is now a pin_seed context manager that holds jitter
constant so you can see the treatment respond, and it never touches shipped
behaviour — you pin the seed to judge a design, and unpin it to see what users
actually get.
What it cost
The lexicon is a 2012 artifact and it shows. It has no idea what an emoji is, treats “lol” as noise, and was built on email — a form most people now use for receipts. The revival works because the analyzer was rewritten around dimensions rather than word counts, but the visual traits still inherit assumptions from a corpus that predates how anyone writes now.
What I’d change next
The creatures are read-only. They should be arguable: point at an antler, see the sentence that grew it. Every creature is currently a claim about you with no way to check its evidence, which is the same failure I spend the rest of this portfolio complaining about.
The contacts in the live demo are the project’s own synthetic personas — six fabricated correspondents scored through the real analyzer. No actual correspondence appears here.