Terence Tao Used AI Coding Agents to Revive 24 Dead 1999 Java Applets

Khanh Nguyen
Khanh Nguyen
(Updated: )
Listen to this article 0 / 0
Terence Tao for MasterClass. Credit: prnewswire.com

UCLA mathematician Terence Tao spent a few days in July using AI coding agents to bring roughly two dozen defunct 1999-era Java applets back to life as JavaScript, finish a special-relativity visualization tool he'd abandoned the same year, and build a companion app for a new number theory preprint — all within a single week.

Two Dozen Java Applets From 1999 Run Again as JavaScript

Tao began coding math applets in Java 1.0 in 1999 for his complex analysis and linear algebra courses, building visual aids like a honeycomb applet co-written with Cornell mathematician Allen Knutson and a Besicovitch set visualizer. The applets worked for years, but browser standards moved on, and Tao documented the applets going dark in a 2008 post.

The revival happened as a side effect of a larger project: Tao has been migrating his old website and blog archive into a more maintainable GitHub Pages repository. As an experiment, he asked a coding agent to port the old applets to a supported language, landing on JavaScript, and the agent finished the port in a matter of hours. All of the applets are now functional again, some with small graphical upgrades — the Besicovitch set applet is colorized where the original was monochrome — and the Knutson–Tao honeycomb applet, which Tao describes as particularly tricky to code by hand, is running again too.

Timeline from 1999 Java applets to 2026 AI-ported JavaScript appsFive milestones spanning 1999 to July 2026, showing when Tao's applets were built, broke, and were revived by an AI coding agent.From 1999 Applets to 2026 Agent-Built AppsKey dates in Terence Tao's applet timeline, per his blog posts1999Tao codes Java appletsfor his math coursesRelativity tool abandoned2008Java browser standardsshift; applets stop workingEarly–mid 2026Tao migrates old site to anew GitHub Pages repowith AI assistanceDays before Jul 11Agent ports ~24 appletsto JS in hours;relativity app builtJul 11, 2026Gilbreath preprint posted;companion visualizer builtsame daySource: Terence Tao, "Old and new apps, via modern coding agents," What's New (11 July 2026)

The Agent Introduced One Bug and Caught Two Tao Didn't Know About

Tao is explicit that LLM-based coding agents can produce blatant or subtle bugs. Across the roughly two dozen ported applets, he says he found only one: faulty handling of a drag event outside the main box in one of the complex-analysis applets. In the process, the agent also flagged two bugs in Tao's original 1999 code that he hadn't previously known about — by his own account, a net wash on code quality.

Tao's framing of the risk matters here as much as the tally itself. He calls these applets secondary visual aids rather than load-bearing components of a mathematical proof, which is why he's comfortable accepting whatever bug rate the agent introduces. That's a narrower and more specific claim than "AI coding agents are reliable" — it's closer to "AI coding agents are an acceptable risk for supplementary, non-mission-critical code," a distinction that tends to get flattened in broader vibe-coding debates.

Tao's self-reported bug tally from porting 24 appletsOf roughly 24 ported applets, the agent introduced 1 bug and caught 2 pre-existing bugs in Tao's original 1999 code, an informal, self-reported comparison.Porting ~24 Applets: A Self-Reported Bug TallyOrdinal counts from Tao's own account, not a systematic auditApplets ported~241999 Java to 2026 JavaScriptBug introduced by agent1Drag-event handling bugOld bugs the agent caught2Pre-existing, in 1999 codeSource: Terence Tao, "Old and new apps, via modern coding agents," What's New (11 July 2026)

A 1999 Idea for "Inkscape in Minkowski Space" Finally Shipped

The applet revival led Tao to try building something new rather than just porting old code. Back in 1999, before Inkscape existed, he wanted a drawing tool for special relativity — spacetime diagrams built directly in Minkowski space. He started writing the Java code at the time but abandoned it once the complexity became unmanageable.

After a couple of hours of what Tao calls "vibe coding" with an AI agent, the tool finally exists as a working app, which Tao has published as an alpha version and is soliciting bug reports on, given that it hasn't been extensively vetted. He also published an edited transcript of his conversation with the agent, a "making-of" page that strips out the more tedious technical back-and-forth. The gap between the two versions is the story here: a project he judged too complex to hand-code in 1999 took a couple of hours with an agent in 2026, though that comparison rests on Tao's own recollection of the original attempt rather than a controlled test.

The Gilbreath Visualizer Follows a Validate-Build-Commit-Push Pipeline

The same day Tao, Zachary Chase, and Zach Hunter posted a new preprint on Gilbreath's conjecture, Tao asked an agent to build an interactive companion visualizer for it. The conjecture concerns a triangular array built from repeated absolute differences of consecutive primes; the new paper proves an analogous result for a Cramér random model of the primes and isolates the two ways the underlying property can fail.

The resulting app, built over what Tao describes as another few hours of conversation, lets users explore a difference-triangle generator with parity and magnitude coloring, run a live check of the conjecture along the left diagonal, and load preset examples including Pascal's triangle, a parity-obstruction case, and the paper's Cramér geometric model. The published "making-of" transcript also shows the agent working through a defined publish pipeline to get the app live.

Publish pipeline for the Gilbreath's conjecture visualizerThe agent moved the Gilbreath visualizer through four stages — validate, build, commit, push — before it went live on Tao's site.How the Gilbreath Visualizer Went LivePublish pipeline documented in the agent conversation transcriptValidateBuildCommitPushLive at teorth.github.io/tao-webgilbreath.html, alongside the making-of transcriptSource: Gilbreath visualizer making-of transcript, teorth.github.io/tao-web

What Tao's Low-Stakes Framing Says About Vibe Coding's Limits

Tao's post lands as a specific, credentialed data point in a much broader and messier argument about agent-assisted coding. The term "vibe coding" traces to a February 2025 post by Andrej Karpathy describing a mode of development where a programmer accepts AI-generated code with little or no review — a description that went on to become Collins Dictionary's word of the year. Since then the term has loosened to cover most prompt-driven, agent-assisted development generally, and it draws both enthusiasm for lowering the barrier to entry and criticism over accountability, maintainability, and security in production code from commentators including Simon Willison.

Tao's account doesn't resolve that argument, and he isn't claiming it does. He's describing a specific, bounded case: a working mathematician using agents on visual aids and companion tools that sit outside the proof itself, where a bug is an annoyance rather than a correctness risk. His own comparison of bugs introduced versus bugs caught is self-reported and informal rather than a systematic audit, and he doesn't name which coding agent he used. What his post does add is a concrete, publicly inspectable trace of the process — two published "making-of" transcripts — for anyone trying to gauge, beyond the general debate, what agent-assisted coding actually looks like for a specific, low-stakes technical task. Tao says he intends to keep using agent-built interactive visualizations as supplements to future papers, under the same reasoning about acceptable downside risk.

Comments (0)

No comments yet.

Be the first to share your perspective on this topic.