Terry Tao Revives 25 Years of Applets with Modern Coding Agents
Terry Tao, Fields Medal mathematician, used modern coding agents to bring about twenty educational applets written in Java 1.0 back in 1999 to working Javascript in 2026. The applets (for visualizing objects like honeycombs or Besicovitch sets) had become unusable when browsers stopped supporting that version of Java. In a few hours the agent completed the migration, even with graphical improvements (the Besicovitch applet is now in color, the original was monochrome).
Tao found only one minor bug in the generated code (handling of a drag event), while the agent identified two bugs in the original code that Tao had never noticed. After this success, he asked the agent to build from scratch a visualizer for special relativity that back in 1999 he’d had to abandon due to complexity. After a couple hours of conversation, the app he had in mind 27 years ago now exists and runs. The same day he added a visualizer for the Gilbreath conjecture, as a supplement to a newly published paper.
Why this matters to you. Tao is not a marketer: he’s a mathematician working on hard problems who just demonstrated that coding agents work on real, old, and new code. His most interesting observation: since these visualizers are secondary aids and not critical components, the downside risk of AI-generated bugs is acceptable. It’s a distinction that applies to many use cases: where errors aren’t catastrophic, speed and recovery of abandoned projects beat perfection.
In detail
The context: abandoned applets and projects too complex
Tao started writing Java applets for his complex analysis and linear algebra courses in 1999, when teaching mathematics on the web meant hand-coding every visualization. The applets worked, but required time and maintenance became costly. When browsers stopped supporting Java 1.0, that code became digital archaeology.
Meanwhile, he’d also started writing a geometric editor for special relativity — basically Inkscape but in Minkowski space — and had stopped halfway because code complexity became unmanageable for one person.
What the agent did
Tao asked a coding agent to port the old Java code to modern Javascript. The agent completed the migration of about two dozen applets in a few hours, maintaining original functionality and adding some graphical improvements (for instance, coloring the Besicovitch applet, which the original lacked). Tao found one bug in drag event handling in one of the complex analysis applets. The agent, instead, found two bugs in the original code that Tao had never noticed.
Next, Tao asked the agent to build from scratch the special relativity editor he’d abandoned. After about two hours of conversation (a shortened transcript is published on his blog), the app works and matches the vision he had in 1999. The same day, he added a visualizer for the Gilbreath conjecture, as an interactive supplement to a newly published paper.
The quality tally
Tao writes: “Famously, LLM-based agents can create various obvious or subtle bugs; but in porting these two dozen applets, I found only one minor bug, and in fact the agent identified two bugs in my original code that I was unaware of, so it was a tie overall as far as code quality goes.”
The key observation is this: since these applets are secondary visual aids, not critical components of a mathematical argument, the downside risk of such bugs is relatively low. He’s not saying generated code is perfect, he’s saying the trade-off between speed and risk, in this context, tips toward doing it.
What changes for those writing code with agents
Tao is a credible observer: he doesn’t sell anything, doesn’t promote a tool, he reports what worked on a real problem. His experience confirms what we covered on July 5th with the sqlite-utils rewrite: modern agents close projects that one person had to leave halfway through due to complexity.
But it also introduces a useful distinction: not all code has the same risk sensitivity. A didactic visualizer that helps understand a concept, where a bug is visible to the eye, is not the same as a payments system or a critical data pipeline. Where error is recognizable and damage is contained, agent speed becomes usable. Where silent error can propagate, you still need the hard controls we covered in the course lessons.
The limits
Tao himself states this is an alpha version and invites bug reports. The LLM-generated nature of the code isn’t hidden, it’s declared. The special relativity applet has been playtested, but not exhaustively. Transparency about confidence level is part of the method.