Object No.NO. 066
ReceivedSunday, 12 July 2026
Reading≈ 4 MIN
ConditionRETURNED

Terence Tao's 1999 applets run again

A coding agent ported his two dozen dead Java applets to JavaScript in hours, and found two bugs in the originals he never knew were there.

Received · 1999Non-functional
A monochrome wireframe honeycomb lattice with dashed measurement rays, drawn in the flat gray style of a 1999 Java applet.
Returned · 2026Stable, colorized
The same honeycomb lattice restored: tiles filled in verdigris, sage, and gilt on porcelain, with gold dotted rays.

The same lattice, twice. Tao's honeycomb applet, written with Allen Knutson in 1999, spent years unable to run in any modern browser. The port came back functional, with color it never had.

Fig. 066 · Bench photography
LOT 01

Treatment report

Treated
Object
Roughly two dozen interactive Java applets for complex analysis and linear algebra courses, hand-built in Java 1.0, dated 1999.
Condition on intake
Non-functional for years. Browsers dropped support for the Java version they were written in, and the applets went dark.
Treatment
Ported to JavaScript by a coding agent in a matter of hours, with graphical upgrades. The Besicovitch set visualization is now colorized.
Findings
One minor new bug in a drag handler. Two bugs found in the original 1999 code that the author did not know were there. A net wash on code quality, by his own accounting.
Also on the bench
A special relativity visualizer abandoned in 1999 when the code grew past what one person could hold. Working after a couple of hours of vibe coding, 27 years later.

Terence Tao spent the last few days migrating his old web pages and applets to a maintainable repository with agent assistance, and wrote up what came back. The detail worth sitting with: restoration was the experiment, and the agent treated it as routine work. Porting, colorizing, and bug archaeology on a quarter-century-old codebase fit inside an afternoon.

The revived relativity tool is the one he had described in 1999 and then shelved because the code complexity outgrew the project.

“Inkscape, but in Minkowski space”
Tao, on the app that waited 27 years
Today's Art Direction

The Conservation Studio

A treatment report from the restoration bench: one object received, one object returned.

Conservation studios document work as evidence. An accession label, a condition report, before and after photography shot under the same light. The web version keeps that discipline: the diptych does the arguing, the ledger keeps the receipts, and color behaves like patina, with verdigris and gilt earned through treatment rather than applied as decoration. A restoration service, a museum lab, or any studio selling careful work could ship this page as a case study.

LOT 02

Tooling

Intake
Session replay

Mindwalk replays agent sessions on a 3D map of your codebase

The repository is drawn as a night map and the session plays back as light moving through it: what the agent searched, read, and edited glows, and everything else stays dark. One local Go binary reads Claude Code and Codex logs.

Image models

Seedream 5.0 Pro lands on Vercel's AI Gateway

ByteDance's new image model is pitched straight at design work: text rendered without spelling errors, typographic rules followed, and dense infographics with charts and timelines alongside photographic output.

LOT 03

Technique

Intake
Typography

The Proportional Web sets Bringhurst in CSS

Oskar Wickström follows The Monospace Web with a variable-width sequel: a stylesheet that works the layout and typography of The Elements of Typographic Style into the browser, scale by scale. A patient counterargument to default type ramps.

Design systems

Build the design system before you prompt the screens

Atomic Object's Jared Surato argues the reliable first step for agent-built interfaces is a design system in code: theme values, primitives, and variant rules the agent can assemble instead of invent. The prompts get shorter and the screens stop drifting.

LOT 04

Workflow

Intake
Working theory

In defense of not understanding your codebase

Sean Goedecke defends working from a partial map: in large systems, local understanding is the best anyone can do, and the craft is knowing which corners deserve the full theory. It pairs well with Tao's framing of his applets as visual aids where a subtle bug costs little. Pick the stakes first, then decide how much understanding to buy.

Borrow this pattern

The shared caption rail diptych

Set two figures of equal size side by side and give them one caption rail on a common baseline instead of a caption under each. The pane labels name the state and the date; the rail carries the facts once, so the comparison reads as a single piece of evidence rather than two competing images.

Use it anywhere a before needs an after: renovation case studies, redesign portfolios, product refresh pages, restoration services. The pattern earns trust three ways: the before is real, both panes get the same crop and scale so the comparison is fair, and the caption states what changed instead of selling it.

Prompt Lab

Create a conservation and restoration studio case study page styled as a treatment report. Structure: a thin uppercase mono site nav; a masthead built as an accession label, a double-ruled bordered box holding four catalog fields (object number, date received, reading time, condition) in small mono caps; a hero with a large warm serif headline where one phrase is tinted verdigris, and a short two-line deck; then the signature piece, a before and after diptych: two equal portrait figures side by side with a thin dark border, mono state labels above each pane (received date on the left, returned date on the right), semi-transparent archival tape corners, and one shared caption rail beneath both panes, a full-width hairline-topped row holding a single caption and a figure number so the pair reads as one piece of evidence; below it a condition report as a two-column definition table (object, condition on intake, treatment, findings) with mono field labels and hairline row rules; the remaining stories run as a treatment ledger, each section opened by a lot number, a serif heading, and a small solid stamp chip (intake or treated), entries in a two-column grid with a tiny gilt topic tag, a linked serif headline, and two plain sentences; close with a dark spruce pattern-note panel, a bordered field note, a numbered source list, and a boxed colophon. Palette: porcelain #EDECE4, deep spruce ink #24312A, sage #5C7A6B, verdigris accent #1E6355 with #2F8A77 for graphic marks, gilt #C29B33 used sparingly for tags and stamps. Type: Fraunces for display, Hanken Grotesk for body, IBM Plex Mono for labels. Keep body text at 19px or larger with line height at least 1.65 and roughly 60 to 75 characters per line, small labels at WCAG AA contrast against the porcelain ground, radii at 3px or less, no pill shapes, no accent left-border stripes, no gradients, no glow, no fake UI chrome, real hover and focus states near 150ms with a reduced-motion guard, and no readable words inside the generated images.

Works in: v0 · Lovable · Figma Make · Bolt · Beaver Builder AI · Claude Code

Field Note

Restoration used to be the most expensive kind of web work, so nobody commissioned it. At an afternoon per project, the archive folder becomes a backlog.

Sources

  1. Old and new apps, via modern coding agents · Terence Tao
  2. Hacker News discussion of Tao's post
  3. Mindwalk: replay coding-agent sessions on a 3D map of your codebase · GitHub
  4. Seedream 5.0 Pro is now available on AI Gateway · Vercel Changelog
  5. The Proportional Web · Oskar Wickström
  6. Start with a Design System for Better Coding Agent Results · Atomic Object
  7. In defense of not understanding your codebase · Sean Goedecke
NO. 066 · Sunday, 12 July 2026 Type: Fraunces, Hanken Grotesk, IBM Plex Mono Palette: porcelain, spruce, sage, verdigris, gilt Follow @artdirdaily on X

A field experiment from the team behind Beaver Builder AI.