Wilson Lin on FastRender: a browser built by parallel agents

Posted by lumpa 18 hours ago

Counter67Comment45OpenOriginal

Comments

Comment by terabytest 10 hours ago

> FastRender may not be a production-ready browser, but it represents over a million lines of Rust code, written in a few weeks, that can already render real web pages to a usable degree

I feel that we continue to miss the forest for the trees. Writing (or generating) a million lines of code in Rust should not count as an achievement in and of itself. What matters is whether those lines build, function as expected (especially in edge cases) and perform decently. As far as I can tell, AI has not been demonstrated to be useful yet at those three things.

Comment by signatoremo 19 minutes ago

I think you missed the point. From the blog post:

To test this system, we pointed it at an ambitious goal: building a web browser from scratch. The agents ran for close to a week, writing over 1 million lines of code across 1,000 files [...]

Despite the codebase size, new agents can still understand it and make meaningful progress. Hundreds of workers run concurrently, pushing to the same branch with minimal conflicts.

The point is that the agents can comprehend the huge amount of code generated and continue to meaningfully contribute to the goal of the project. We didn't know if that was possible. They wanted to find out. Now we have a data point.

Also, a popular opinion on any vibecoding discussion is that AI can help, but only on greenfield, toy, personal projects. This experiment shows that AI agents can work together on a very complex codebase with ambitious goals. Looks like there was a human plus 2,000 agents, in two months. How much progress do you think a project with 2,000 engineers can achieve in the first two months?

> What matters is whether those lines build, function as expected (especially in edge cases) and perform decently. As far as I can tell, AI has not been demonstrated to be useful yet at those three things.

They did build. You can give it a try. They did function as expected. How many edge cases would you like it to pass? Perform decently? How could you tell if you didn't try?

Comment by mejutoco 9 hours ago

100%. An equivalent situation would be:

Company X does not have a production-ready product, but they have thousands of employees.

I guess it could be a strange flex about funding but in general it would be a bad signal.

Comment by azornathogron 4 hours ago

Absolutely.

I think some of these people need to be reminded of the Bill Gates' quote about lines of code:

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”

Comment by ksynwa 9 hours ago

Line count also becomes less useful of a metric because LLM generated code tends to be unnecessarily verbose.

Comment by agumonkey 8 hours ago

Makes me wonder what would happen if you introduce cyclomatic complexity constraints in your agents.md file.

Comment by electroglyph 4 hours ago

well, first the model has to actually follow the instructions in agents.md =)

Comment by bflesch 5 hours ago

SLOC was a bad indicator 20 years ago and it is today. Don't tell them - once they realize it's a red flag for us they will use some other metric, because they fight for our attention.

Comment by embedding-shape 5 hours ago

> because they fight for our attention.

Not only that, they straight up pay people to just share and write about their thing: https://i.imgur.com/JkvEjkT.png

Most of us probably knew this already, the internet had paid content for as long as I can remember, but I (naively perhaps) thought that software developers and especially Hacker News was more resilient to it, but I think all of us have to get better at not trusting what we read, unless it's actually substantiated.

Comment by simonw 2 hours ago

I don't understand, what does that screenshot show? That there exists at least one anonymous Chinese company that has offered someone $200 to post about them on HN? Why is that relevant to a conversation about Cursor?

Who are the "they" in "they straight up pay people"?

Comment by embedding-shape 2 hours ago

Read the parent comment first then mine, if you haven't, and it should make sense. Otherwise; "Them" here is referring to "AI companies wanting to market their products". The screenshot shows one such attempt of a company wanting to pay someone on HN to talk and share their product in return of compensation for that. Proof that "They" aren't just "fighting for our attention" in the commonly understood way, they're also literally paying money to talk about them.

Comment by embedding-shape 6 hours ago

simonw, I find it almost shocking how you had the chance to talk directly with the engineer who built this, and even when he directly says things that contradict what Cursor's own CEO said, you didn't push back a single iota.

Is the takeaway here that it's fine for a CEO to claim "it even has a custom JS VM!" on Twitter/X, then afterwards the engineer explains: "The JavaScript engine isn’t working yet" and "the agents decided to pause it", and this is all OK? Not a single pushback about this very obvious contradiction? This is just one example of many, and again, since it seems to be repeated: no, no one thinks this was supposed to rival Chrome, what a trite way of trying to change the narrative.

I understand you don't want to spook future potential interviewees, but damn if that didn't feel like you suddenly are trying to defend Cursor here, instead of being curious about what actually happened. It doesn't feel curious, it feels like we're all giving up the fight against unneeded hype, exaggeration and degradation of quality.

What happened with balanced perspectives, where we don't just take people for their words, and when we notice something is off, we bring it up?

On a separate note, I actually emailed Wilson Lin too, asking if I could ask questions about it. While he initially accepted, I never actually received any answers. I'm glad to you were able to get someone from Cursor to clarify a bit at least, even though we're still just scratching the surface. I just wish we had a bit more integrity in the ecosystem and community I guess.

Comment by simonw 2 hours ago

Honestly, grilling him about what the CEO had tweeted didn't even cross my mind.

I wanted to get to the truth of what had actually been built and how. If that contradicts what the CEO said then great, the truth is now out there - anyone is free to call that out and use my video as ammunition.

I just had a look to see what Michael Truell had said about the project, here it is: https://x.com/mntruell/status/2011562190286045552

> We built a browser with GPT-5.2 in Cursor. It ran uninterrupted for one week.

> It's 3M+ lines of code across thousands of files. The rendering engine is from-scratch in Rust with HTML parsing, CSS cascade, layout, text shaping, paint, and a custom JS VM.

> It kind of works! It still has issues and is of course very far from Webkit/Chromium parity, but we were astonished that simple websites render quickly and largely correctly.

This doesn't strike me as the world's most dishonest tweet, though it exaggerates what was achieved. There IS a JS VM in there but it's feature-flagged off. The from-scratch is misleading because there are libraries handling certain aspects - most notably Taffy - which we discussed in the interview.

I just ran "cloc" and to my surprise it counted 3,036,403 (I had thought the 3M was an exaggeration) though only 1,658,651 of that was Rust.

"It kind of works" is a fair assessment IMO!

I don't think "Let's talk about your CEO exaggerating what you built on Twitter" would have added much to the interview.

I did make sure to go over the controversies I thought were material to the project, which is why I dug into the dependencies and talked about QuickJS and Taffy.

Comment by embedding-shape 2 hours ago

> Honestly, grilling him about what the CEO had tweeted didn't even cross my mind.

That's not the full meaning of what I meant either, I'm assuming you also read the initial blog post they posted? It's also has a bunch of similar inaccurate statements.

> I wanted to get to the truth of what had actually been built and how.

It's a shame that you seemed to have reviewed that from the point of after a human stepped in to fix the codebase, which happened way after they first published the blog post. Maybe now it compiles and builds, but how does that answer to the fact that it wasn't at the time of publishing?

There is a "hole" of two days without commits, presumably when the engineer was busy writing the blog post, and that's the point they "sold" as "this is what was produced by the experiment". To then let them spend more human engineering time to patch the codebase, and review if from after the human fixed it, seems like completely missing the point.

> I don't think "Let's talk about your CEO exaggerating what you built on Twitter" would have added much to the interview.

What would have added a whole lot more to the ecosystem's understanding on how feasible this sort of things actually are in reality, would have been to talk about what that same person you interviewed first wrote in the blog post, and what turned out to be real at the time they published it.

Comment by simonw 2 hours ago

The blog post had just a couple of paragraphs about the browser project, all of them accurate: https://cursor.com/blog/scaling-agents#running-for-weeks

> To test this system, we pointed it at an ambitious goal: building a web browser from scratch. The agents ran for close to a week, writing over 1 million lines of code across 1,000 files. You can explore the source code on GitHub.

> Despite the codebase size, new agents can still understand it and make meaningful progress. Hundreds of workers run concurrently, pushing to the same branch with minimal conflicts.

The commits that knocked the project into shape so other people could build the code were handled by agents as well.

I really don't think there's a notable scandal here.

Comment by embedding-shape 2 hours ago

I don't think there is a "scandal" here neither, companies lie and exaggerate all the time and it's becoming normalized. With that said, I think it's important to record when it happens and exactly how it happens, because not only does it help people in the future to know what to look out for, it also serves as a historical record to refer to when you start to see repeating patterns.

Agree to disagree about "all of them accurate", I've already made my case elsewhere and doesn't really help anyone to re-iterate here what's public already.

Comment by simonw 2 hours ago

What's not true in the two paragraphs I quoted there? I'm afraid I think I need that re-iterated!

Is this just about the usage of the term "from scratch"?

Comment by sebzim4500 5 hours ago

Surely this would be push back to the CEO, not the engineer? The engineer is presumably the one telling the truth.

Comment by embedding-shape 5 hours ago

Either of them. If the CEO refuses to answer, you ask others. If you get a chance to talk with them, you ask them about it. Just ignoring the elephant in the room and hoping that the unclear details gets forgotten helps no one except Cursor here.

Comment by WD-42 14 hours ago

Is this the project announced a week or two ago by an AI company claiming they had built a browser but it turned out to be a crappy wrapper around Servo that didn’t even build? Or is this another one? I thought it was Anthropic but this says Cursor.

Comment by thunderbong 14 hours ago

The first paragraph of the article -

> Last week Cursor published Scaling long-running autonomous coding, an article describing their research efforts into coordinating large numbers of autonomous coding agents. One of the projects mentioned in the article was FastRender, a web browser they built from scratch using their agent swarms. I wanted to learn more so I asked Wilson Lin, the engineer behind FastRender, if we could record a conversation about the project. That 47 minute video is now available on YouTube. I’ve included some of the highlights below.

Comment by comex 13 hours ago

It is the same project, but my impression is that HN exaggerated many of the issues with it.

For example:

- They did eventually get it to build. Unknown to me: were the agents working on it able to build it, or were they blindly writing code? The codebase can't have been _that_ broken since it didn't take long for them to get it buildable, and they'd produced demo screenshots before that.

- It had a dependency on QuickJS, but also a homegrown JS implementation; apparently (according to this post) QuickJS was intended as a placeholder. I have no idea which, if either, ended up getting used, though I suspect it may not even matter for the static screenshots they were showing off (the sites may not have required JS to show that).

- Some of the dependencies (like Skia and HarfBuzz) are libraries that other browsers also depend on and are not part of browser projects themselves.

- Other dependencies probably shouldn't have been used, but they only represent a fraction of what a browser has to do.

However…

What I don't know, and seemingly nobody else knows, is how functional the rest of the codebase is. It's apparently very slow and fails to render most websites. But is this more like "lots of bugs, but a solid basis", or is it more like "cargo-culted slop; even the stuff that works only works by chance"? I hope someone investigates.

Comment by simonw 12 hours ago

> were the agents working on it able to build it, or were they blindly writing code?

The project was able to build the whole time, and the agents were constantly compiling it using the Rust compiler and fixing any compile errors as they occurred.

The GitHub CI builds were failing, and when they first opened the repo people incorrectly assumed that meant the code didn't compile at all.

The biggest problem with the repo when they first released it was that there were no build instructions for end-users, so it was hard to try out. They fixed that within 24 hours of the initial release.

> What I don't know, and seemingly nobody else knows, is how functional the rest of the codebase is.

It's functional enough to render web pages - you can build it and run it yourself to see that, I have some screenshots from trying it out here: https://simonwillison.net/2026/Jan/19/scaling-long-running-a...

That said, it's very much intended as a research project into running parallel coding agents as opposed to a serious browser project that's intended for end users. At the end of my post I compare it to "hello world" - I think "build a browser" may be the "hello world" of massively parallel coding agent systems, which I find quite amusing.

Comment by polyglotfacto 1 hour ago

> it's very much intended as a research project

If so then the failure of the experiment should be acknowledged.

Failure described among others at: https://news.ycombinator.com/item?id=46705625

> It's functional enough to render web pages

> FastRender may not be a production-ready browser, but it represents over a million lines of Rust code, written in a few weeks, that can already render real web pages to a usable degree.

This is something that can be done in much less than a million lines of code. There must be a core somewhere in Fastrender--probably just a few thousands lines--which is putting together existing layout and graphics libraries and makes it render something to the screen.

Doing that in a few weeks isn't impressive, especially not when buried in a million lines of spaghetti code.

If you want an example of a real prototype web engine build along radical design choices, head over to https://github.com/DioxusLabs/blitz

I'm pretty sure it renders far better than Fastrender(the edits the agents made to Taffy are probably nonsense), and I'm guessing it is at most 50k lines.

Conclusion:

In the light of the efforts to paper over failures, I'm calling Fastrender not a research project but propaganda.

Comment by simonw 1 hour ago

They wanted to figure out patterns to have thousands of agents work on millions of lines together in parallel without stepping on each other's toes. They achieved that. Looks like a success to me.

Implementing a browser was just the demo for that. I called it their "hello world" at the end of my post.

Comment by polyglotfacto 1 hour ago

> Looks like a success to me.

How is spaghetti code that does not implement the spec(web standards in this case) success?

You are one of the creators of Django; so let me try to give you an analogy: if someone runs thousands of agents in parallel to produce a web framework, and the code ends-up being able to connect to a database and render a template using existing libraries, and the rest would be total non-sense and otherwise useless to web devs; would you call that a success?

Success in software requires something that works as intended and is maintainable.

Comment by simonw 1 hour ago

Their success criteria was "can we run thousands of agents at once and have them work towards a goal". By that criteria it was a success.

So yes, in your hypothetical I would call it a success IF their goal was parallel agent research. I'd call it a failure if they told me they were trying to build a production-quality alternative to Django.

Comment by polyglotfacto 1 hour ago

I understand this is not meant as production level quality, but as a web engineer I was expecting at least a decent POC with some interesting design ideas; not total spaghetti that even gets the spec wrong(despite the good idea of checking the spec in the repo).

They may have solved a problem related to agent coordination, like you discussed in your interview related to conflicts and allowing edits to merge without always compiling.

But at the end of the day, a novelty like this is only useful in so far as it produces good code; I don't see how coding agents are of any help otherwise.

So the failure of the pattern should be acknowledged, so we can move on and figure out what does work.

I speculate that what does work is actually quite similar to managing an open source project: don't merge if it doesn't pass CI, and get a review from a human(the question is as what level of granularity). You also need humans in the project to decide on ways of doing things, so that the AI is relegated to its strength: applying existing patterns.

In all seriousness, you can tell Wilson to get in touch with me. With even only one person with domain knowledge involved in such an effort, and with some architectural choices made ahead of unleashing the herd, I think one could do amazing stuff.

Comment by simonw 40 minutes ago

I was actually thinking of your earlier comments about this from the perspective of a Servo engineer when I asked Wilson how much of his human-level effort on this project related to browser architecture as opposed to parallel agents research.

The answer I got made it clear to me that this wasn't a browser project - he outsourced almost all of the browser design thinking to the agents and focused on his research area, which was parallel agent coordination.

I'm certain having someone in the human driving seat who understands browsers and was actively seeking to build the best possible browser architecture would produce very different results!

Comment by polyglotfacto 7 minutes ago

Thanks for the clarification.

With the scope of the experiment in mind, I think we can deduce from it that AI is just not able to produce good software unsupervised. It's an important lesson.

To make a wider point, let's look at another of your prediction: that in 2026 the quality of AI code output will be undeniable. I actually think we've already reached that point. I've never encountered a case where the AI wasn't able to code what I instructed it to. But that's not the same thing as software engineering, and in fact, I have never been impressed by the AI solving real problems for me.

It simply sucks at high quality software architecture. And I don't think this is due to a lack of computing power but that, rather, only humans can figure what makes sense for them. And this matters, because if the software doesn't make sense, beyond very simple things you can test manually, it becomes impossible to know whether it works as intended.

A Web engine is a great example, because despite the extensive shared suites of tests and specifications, implementing one remains a challenge. You can write code and pass 90% of some sub test suite, and then figure out that your architecture for that Web API is all wrong and you'll never get to the last 10% and in fact your code is fundamentally broken. Unleashing AI without supervision makes this only worse I think. The problem requires human judgement and creativity to solve.

Comment by 1 hour ago

Comment by felipeerias 6 hours ago

If you were looking for a good long-term AI benchmark, “build me a Web browser” should last you for a while.

Comment by beepbooptheory 1 hour ago

I hear you but still just struggle what we are supposed to take from this. If I worked for McDonalds and came up with a way to make 1000 bad hamburgers in the time it takes for them to currently make 10 good ones, no one would be that impressed.

"Hello world" is self-justifying, you know it when you see it, and it is what it is because it shows something unambiguous and impossible to mistake.

Comment by simonw 1 hour ago

The thing I took from this is that you can arrange a set of coding agents in a tree of planners and workers and have them churn away on much larger projects than if you use a single coding agent.

This is a new capability - this likely would now have worked prior to GPT-5.1 and Opus 4.5, so we've had models that can do this for less than three months.

It's extremely new: the patterns that work are just starting to be figured out. Wilson had an effectively unlimited token budget from Cursor and got to run experiments that most teams would not be able to afford.

Comment by polyglotfacto 1 hour ago

The fact that it is new is meaningless: the output is useless even as a proof of concept web engine and should be discarded, alongside the agent engineering pattern that produced it.

Comment by simonw 44 minutes ago

By that logic any experiment that doesn't produce a perfect result should be deleted. I don't think that's a defensible position.

Comment by polyglotfacto 27 minutes ago

Yes, but that is not what I wrote.

I wrote: "useless even as a proof of concept". It doesn't have to be perfect; it just needs to show a clear path forward.

Comment by 1 hour ago

Comment by nurettin 11 hours ago

I welcome living in this absurd time where monkeys with typewriters producing a work of Shakespeare has become a reality.

Comment by trhway 7 hours ago

It took 2M years for the monkeys to produce typewriters and Shakespeare. Now the task is to make monkeys which can do the same in many orders of magnitude shorter time.

Comment by joduplessis 8 hours ago

I wonder if we're heading to a situation where agent written code will function as something distinct, like bytecode.

Comment by Ronsenshi 14 hours ago

"Your scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should."

I'm curious what is the energy/environmental/financial impact of this "research" effort of cobbling together a browser based on AI model that had been trained on freely available source code of existing browsers.

I can't imagine this browser being used outside of tinkering or curiosity toy - so the purpose of the research is just to see whether you can run absurd amount of agents simultaneously and produce something that somewhat works?

Comment by sebzim4500 5 hours ago

>I can't imagine this browser being used outside of tinkering or curiosity toy - so the purpose of the research is just to see whether you can run absurd amount of agents simultaneously and produce something that somewhat works?

Yes but this is a very interesting question IMO

Comment by 13 hours ago

Comment by sealeck 14 hours ago

I'd love to see what happens if you hook this renderer up to AFL++...

Comment by yeasku 15 hours ago

[dead]

Comment by benatkin 13 hours ago

I'm going to propose a law for these AI orchestration systems based on Greenspun's Tenth Law:

> Any sufficiently complicated AI orchestration system contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Gas Town.

Comment by danpalmer 9 hours ago

Isn't it the other way around, Gas Town is an ad hoc, informally specified, bug ridden, slow implementation of other AI orchestration systems.

Comment by polotics 11 hours ago

that statement is a bit early no?