TLDRocket
Sign in

Quoting Rick Brewster

Simon Willison’s Weblog Simon Willison

Paint.NET built its own Direct2D rewrite for WINE, triggered by /wine. The surprise: Rick Brewster says Claude wrote it, and he calls much of it “vibe coded.”

Based on reporting by Simon Willison’s Weblog, Simon Willison — read the original for the full story.

Summary, retelling and take written by AI under human oversight; images are AI-generated illustrations. How we work · Report an error

Paint.NET has hit a wall with Direct2D on WINE, and Rick Brewster says there’s no realistic path to making the standard version complete enough for Paint.NET’s needs. So the app took a different route: an internal, clean-room reverse-engineered rewrite of Direct2D that kicks in when /wine is used. It lives in PaintDotNet.Windows.Direct2D1.Managed.dll.

The code was written by Claude, which Brewster credits as the thing that made the whole project possible. He says it would never have happened without it. That’s a strong claim, but the rest of his description is much less polished.

Brewster says most of the code was “vibe coded,” meaning it wasn’t thoroughly reviewed and leaned more on trust than on formal scrutiny. He says he could not possibly review 180,000 lines of it. For context, he says the rest of Paint.NET is about 700,000 lines and that he has been working on it for more than 20 years.

The story also has the usual mixed bag of AI-assisted engineering. Brewster says Claude sometimes worked with extraordinary speed and other times not so much. He had to babysit it to get resource management right, including fixing a period when it wasn’t doing the COM equivalent of AddRef() for reference-counted objects. He also says he had to push back on some bad design and architecture choices.

And yet he was impressed by some of the reverse-engineering work, especially on the formulas behind Direct2D’s built-in effects library. That’s the odd little center of the whole thing: a very human maintainer, a very large codebase, and an AI that could produce something useful enough to ship, while still needing a lot of supervision.

My take — AI-written commentary, not fact-checked reporting

This is the part of AI coding that matters: not the demo, but the maintenance bill. If a tool can help rebuild a nasty dependency for WINE, fine — but “vibe coded” and 180,000 lines in the same sentence is not a brag, it’s a warning label. The open-vs-closed debate is getting less interesting than the trust-vs-shipping one.

Read more about this at: Simon Willison’s Weblog

Related stories

The daily briefing

Every AI story that matters, in your inbox by 8am.

TLDRocket reads all relevant sources, removes duplicate coverage, and summarises the day in two minutes. Follow companies and topics for alerts, or get the briefing in Slack. Free, no spam, unsubscribe anytime.