Show HN: Quake ported to safe Rust, playable in browser
quake-srp.pages.dev
[45 comments hidden]
I don't see any need for this. Rust is brilliant but the Quake C++ code was already more or less bug-free.
[3 comments hidden]
It would have been impressive before LLMs, but now? Who cares? Why is this here?
[2 comments hidden]
[hidden]
Well no, because there's little point doing it. You want a port of Quake 2 to Rust? Just ask Opus 5.5 to do it. I'm not going to waste the tokens but I guarantee it could do it with no further prompting.
It's literally a best case for AI - it can easily write tests to ensure bit-for-bit identical output and just keep going until it achieves it.
I'm not going to waste the tokens but based on the other stuff I've vibe coded, this was impossible 1 year ago, a difficult challenge 6 months ago, and trivial today.
[3 comments hidden]
What this exploits is the mental shortcut of "rust = good", which might be a good thing, as that was always wrong. But now it is being pushed to its breaking point so that that idea will eventually collapse.
Accelerationalism on a micro scale, basically.
AI keeps breaking things that were broken before like this constantly. It's the great cleanup of old bullshit. (Unfortunately through even more bullshit, but at least there is a silver lining)
[21 comments hidden]
[11 comments hidden]
Because I did and it's the playable allegory of the cave but in vibecoded rust.
[7 comments hidden]
As a proof of concept however it shows that we are at the stage where any malicious actor has a very low barrier to entry to cause large scale corporate espionage etc.
[hidden]
It's easy to create a set that looks as if it was a real city. It's infinitely more hard to create that real city.
But you're absolutely right that a set is all it needs for all sorts of (cyber) attacks.
[4 comments hidden]
[3 comments hidden]
Think more broadly than Adobe and any company that relies on a software product could have their business model destroyed overnight. More broadly than that, you could rupture trust between suppliers and vendors if they don't know who's really making requests from a proprietary platform that's been compromised unknowingly.
[2 comments hidden]
I'm much more worried about AI made software that is developed so quickly that nobody knows what it does, pdfcraft was published a week ago and it has had 5 releases since then.
[hidden]
Not just api calls but the business logic too.
Laymens thoughts there, but in essence this is my concern. People just looking at any old service in the world and going "hey claude build me a hook into this" and the models are getting close enough to being able to find and decompile the right moving parts on its own.
[hidden]
It is a clone, where an LLM built facsimiles of interfaces and functions to the greatest degree possible. Which is a very different process.
[hidden]
Edit: Ok, so instead of downvoting me, could people reply with how you disagree? I am expecting downvotes for trolling and unhelpfulness, but not for "I don't like that what you said is your true experience".
I have literally tried to migrate to Darktable, and it's just not up to snuff. But I tried rawmakase (which is on like day 11) and it literally is.
[2 comments hidden]
The Photoshop clone absolutely fulfills my needs immediately: Basic cropping, adjustments, tone mapping, occasional blur/filter type functionality, etc. Well I did "vibe code" in HEIC and JXL import and export functionality (shelling out to the platform heic and jxl libraries in sandboxes for both open and export), but holy shit, it is quite simply amazing, and it gives me a consistent interface I'm accustomed to. And it built and runs superbly on Linux too!
It absolutely isn't 100%, or even 50% in many cases, with some apps more than others. Like the Acrobat clone is fantastic for the basics like moving pages around, filling out forms, etc, but real editing is a mess. I needed the ability to change z-order and move elements so I had Claude add that in moments.
I mean, I get that people like being world weary and cynical, but these "vibe coded" projects are astonishing, and they are a bellwether that absolutely nothing is as it was.
I have no doubt these tools are useless for hardcore Illustrator users, or so on, but countless CC subscribers only touch the surface of features, and in days this already satisfies that.
> (in an airgapped VM, please)
Why the fear-mongering, out of curiosity? It's a give-us-attention from a real business (ArtCraft) with a long running product, not some weird hacker group releasing binaries on a torrent. Cloning and building the product is trivial. Lots and lots of eyes are looking at this project right now, and thus far I've heard not an iota of concern.
FWIW, I did my own once-over of the project, and then had Fable and Opus 5.5 do an end to end, and there is nothing concerning about it that I've seen
[hidden]
I agree wholeheartedly. People download commercial software as if it doesn't have a history of deliberate backdoors and spyware (in the news now: A coffee pot that's basically trying to hack its customer's LANs, to spy on them. And recently a TV that spied on your media and possibly even your living room as a whole), but fearing a vibe coded Photoshop?
Sure, if it were a vibe coded webserver taking connections on the Internet, but it's not.
[9 comments hidden]
From what I understand, the adobe guys software is not great.
[hidden]
Consequently it’s missing tons of features.
[hidden]
Tons of tricks, but really, you don't need frontier models. We're way beyond that stage.
[4 comments hidden]
"hey i want to make an image editor, can you look into how photoshop does field blur"
"oh nice job implementing it, but the output is not pixel for pixel the same, can you check how photoshop does it - i have it installed right here"
"oh it still has some bugs - can you look into the precise algorithm they use, is there perhaps any software i can install to help you with that"
"oh i see the NSA has a thing called ghidra, would that be useful?"
[3 comments hidden]
I gotta try that
[hidden]
The other agent then implements the documented journey.
[hidden]
In my little game restoration project, Claude just holds me to the commonly accepted standards and makes sure none of the original assets ever make it to the git repo its working in. I only once had to assert that occasional game screenshot to illustrate some doc is acceptable - again, it didn't argue the point, just said something about abundance of caution.
No trickery needed.
[hidden]
[15 comments hidden]
[6 comments hidden]
Also, the C version of Quake compiled to WebAssembly and running in browsers is just as "safe".
[2 comments hidden]
[3 comments hidden]
Sure this project won't save humanity or optimize some KPI pleasing some obscure hierarchy.
Let people have fun, as long as they don't hurt anyone personally I'm fine with it and even I'm happy learning someone had some cool moments.
[2 comments hidden]
It's of course everybody's personal choice, and it's nice for an experiment to figure out what Claude can do. But why go on HN and brag about a project entirely created by Claude when literally everybody else can do the same thing without lifting a finger?
[8 comments hidden]
If you're not going to do that don't post your results online, just keep it to yourself. Anyone could've done this. Even people without any programming skills.
[4 comments hidden]
...I mean...I just don't really know how to respond to that. Who the heck cares if someone posts this online? If you don't like it, just move on. Sheesh. Lookout everyone, this guy doesn't approve of your side project.
[3 comments hidden]
[2 comments hidden]
[3 comments hidden]
It's getting to the point that LLM produced code is indistinguishable from even the best handwritten code.
There's no value in gatekeeping,the code side of software is becoming increasingly democratised, and the barrier to entry is getting closer to no barrier at all.
[2 comments hidden]
I think you should read more code ;)
[hidden]
[hidden]
Now I'm no hero in C (doing slightly better in C++). But I have quite some experience with Rust. I rather read Quake in Rust than in C. So I'm happy with the port.
Also, you talk down on the effort but porting over a codebase this size is no small feat even with the help of LLMs. I think the "author" (human creator) learned a thing or two along the way.
[7 comments hidden]
[6 comments hidden]
Since this ended up on Hacker News, I'll say it: I find the discourse around LLMs strangely sad. They're annoying, yes, and they make mistakes every day, every hour. But they're also amazing, and working with them has been one of the most rewarding things I've done in years.
Historically things that make people more productive have tended to make us richer, not poorer. And it's a virtue to change your mind as the evidence comes in.
We played with Lego all our lives; now the Lego understands us and helps us build. I think that's something to be glad about.
[3 comments hidden]
[2 comments hidden]
[hidden]
[hidden]
[2 comments hidden]
[2 comments hidden]
I think 'standing on the shoulders of giants' is the phrase for something like this. It's the confluence of browser rendering, WASM, Rust, and LLMs. For me it's less a demo of what AI can do, and more a showcase of the human effort from the past few decades on the parts that needed to fall into place for an LLM to come in at the (relatively speaking) last second and claim a win. Sure, an LLM did the port from C to Rust, but think of all the things needed for it to all work. That's pretty damn amazing, and it wasn't done with AI.
[12 comments hidden]
[5 comments hidden]
[4 comments hidden]
[3 comments hidden]
[2 comments hidden]
[hidden]
[6 comments hidden]
[3 comments hidden]
Obviously gameplay bugs are still possible in Rust, but many of them are not.
[3 comments hidden]
[2 comments hidden]
[4 comments hidden]
[11 comments hidden]
[hidden]
It was indeed human assisted.
[5 comments hidden]
[4 comments hidden]
[3 comments hidden]
[2 comments hidden]
Taking apart a codebase and rebuilding it in another language can be a deeply fun and rewarding experience if you're trying to understand a system better or sharpen your language skills or engage with an old problem in a new way. But none of that is what's happening here.
Having an LLM do things like this when there's no other practical need for it only accomplishes the cheap dopamine hit of "result", and people who do that are only mortgaging their own curiosity and increasing their dependency on a machine to run their own mind for them. Maybe I'm just a curmudgeon, but that seems pretty worthy of 'negativity' to me.
[2 comments hidden]
If someone is looking for the next srp - might I suggest CS 1.6? it should run find one any modern browser.
[hidden]
[hidden]
[3 comments hidden]
[5 comments hidden]
[4 comments hidden]
[2 comments hidden]
[hidden]
[hidden]
[hidden]
[hidden]
I like these
[hidden]
I wholeheartedly bless this slop.
Found the repo in the Reddit post:
https://github.com/terrapapagalli1516/quake-srp
https://www.reddit.com/r/quake/comments/1x1ch14/quake_srp_sl...
[hidden]
[2 comments hidden]
[hidden]
[hidden]
Fucking missed it.
[hidden]
Quake in Flash player from 2009 I think
[hidden]
[2 comments hidden]
[hidden]
[hidden]
[4 comments hidden]
[hidden]
You can play Half Life right now, with one click.
[7 comments hidden]
[6 comments hidden]
[5 comments hidden]
[4 comments hidden]
It a new world. You can literally maintain your own fork with the features you want.
Even the AI models are not gate-kept, soon. In 2030 you'll be able to affordably buy a GPU that can run an open weight model equal to the best that 2026 had to offer. I.e. projects like this.
[3 comments hidden]
One can dream.
aroman[42 comments hidden]
Just the cherry on top of great demonstration of our collective new superpower: asking computers to do something we can describe how to do, but would (probably) never take the time to do ourselves.
[0] https://github.com/terrapapagalli1516/quake-srp/tree/main/or...
ChickeNES[7 comments hidden]
aroman[5 comments hidden]
There are so many more degrees of freedom, which I can see Claude handled... mipmaps, subtle differences in lighting/positioning/compositing etc.
koito17[3 comments hidden]
It's also partly why some people preferred snapshot tests that compared the DOM tree instead, though that was brittle in other ways (e.g. tests would break if an application's frontend used a major UI library and an update to the library permuted the order of classes in some part of the HTML).
tnolet[2 comments hidden]
ffsm8[hidden]
That's an attempt at mitigation, but most definitely not solved.
It still causes both false positives and false negatives through that. The only true "solution" is to make sure generation always happens on the same platform as your ci... And various mitigation strategies around that (eg fall back to structure tests on other platforms vs actual visual diffs in ci
Also not unique to playwright. Been available basically everywhere since the start
TeMPOraL[hidden]
Keyframe[hidden]
King-Aaron[23 comments hidden]
How long before the same thing is done to like, banking back ends? Wallstreet proprietary software? Amazons logistics and distribution systems?
It seems like we might be weeks/days/hours before a situation where someone back engineers and spoofs a system so pivotal to modern human society that the plug needs to be pulled.
brobdingnagians[11 comments hidden]
dyauspitr[5 comments hidden]
Alternatively, you just act as a middleman drop shipper and slightly raise the price more than Amazon’s and skim the difference. It might be a while before they find out.
King-Aaron[hidden]
pjmlp[3 comments hidden]
Currently a plague in some European countries.
It looks like the real site, and you pay twice, in the fake app, and later the police.
jurgenburgen[2 comments hidden]
No room for hostile social engineering.
pjmlp[hidden]
https://www.bbc.com/news/articles/cwyjqg578e1o
And given your German nickname, here isn't safe either in a general way, when folks aren't regularly parking on the same place.
https://www.adac.de/news/verkehr-quishing-parkautomaten
King-Aaron[5 comments hidden]
Obviously you need to have access to the keys, BUT I don't see this as a dealbreaker anymore because you just get your agents to go and find them.
illwrks[4 comments hidden]
Photoshop has been around for around 35 years, fraud has always been an issue. There are plenty of reports of people selling things via Facebook marketplace and the ‘buyer’ showing them sending a payment on a fake baking app. Fraud will always exist and I don’t think tech will make it worse, everyone needs to be more cautious and tells friends and family to be the same.
King-Aaron[3 comments hidden]
I'm talking about cloning hmi platforms to send fake instructions to offshore oil platform valve bodies or insert false market trades to collapse companies.
illwrks[hidden]
zrobotics[hidden]
hypfer[hidden]
The plug being "the cloud" and "hooking everything up to the same internet".
These confusion attacks can only confuse people, because critical systems can exist in the same space where entertainment systems and all other categories of systems live. This was wrong even before LLMs.
chii[5 comments hidden]
why would a recreated system be detrimental?
If currently there's a monopoly on a software, this AI recreation is a good outcome to poke holes in that monopoly. It's only bad if you are financially invested in said monopoly, and this would be a minority compared to the amount of benefits that society at large could obtain.
King-Aaron[4 comments hidden]
In the past you'd need nation state actors with considerable budgets to do this kind of thing, and we're on a trajectory that could see any kid in his bedroom could do it.
chii[3 comments hidden]
And i assume you don't truly mean spoof as in man-in-the-middling someone - i assume you mean the end user knows they are using an alternate system and are not being defrauded. Like using a photoshop replacement.
King-Aaron[2 comments hidden]
I am, actually, talking about MITM attacks that are much further in scope than just defrauding some people using their banking app. I work in resources and operate HMI systems that are networked, but not exactly the bleeding edge of modern software development. If you had an ability to decompile it and recompile your own version you could start sending instructions to infrastructure all over the country - the only thing stopping you is the keys, which if you're intent on hacking someone you'd have the means to obtain anyway.
I can see a lot broader attack vectors than just stealing peoples money. It's the erosion of trust in the api calls themselves.
chii[hidden]
and that's why security thru obscurity fails. It just hasn't so far.
And if this is the current state of affairs, then the change and pain is what needs to happen for the system to improve.
For example, all api calls would have some form of authentication and attestation.
cedws[hidden]
konart[2 comments hidden]
As someone who works in a bank: depending on the exacty subsystem of a bank the answer is from "already" to "in 3-5 years".
schleck8[hidden]
hn_submit[2 comments hidden]
Porting software is painstaking grunt work which still takes a moderate amount of intelligence. It's therefore extremely expensive to port say, COBOL banking software running on mainframes, to another language like Java. That's why a lot of COBOL software is still in use. I expect this to die out in the coming years as many of these systems will finally be ported to another language (could be Rust or any other language).
hylaride[hidden]
I spoke with a semi-retired COBOL programer about a decade ago. They literally often can't fix specific bugs because multiple other consumers (from banks, hedge funds, insurance companies, the central bank) outside of their organization (and subsequent downstream consumers as well) would all need to adjust their code. Rewriting it is grand, but won't fix the spaghetti code mess. This is made even worse in the US, which has a much more fragmented banking system. "Modern" COBOL isn't even that bad, but they can't even use it most of the time. There is SO MUCH that isn't even documented - and if it is, is in a binder that's been shelved decades ago and half of this developers time was going into the corporate archives to dig it up.
This isn't to say that a lot of legacy code can't be modernized, but it's not always that easy.
haukebri[hidden]
What works for me is diffing small stable regions, one component or one flow at a time, with a small per-pixel tolerance. I also keep a DOM-level assertion in front of the visual check, so when something fails I already know what changed structurally before I compare two images.
For the game port it's genuinely harder, the renderer decides the pixels, not the test. But the region idea transfers: lock the viewport and only diff what's stable.
brobdingnagians[hidden]
nitwit005[hidden]
maxyurk[2 comments hidden]
joe-esquibel[hidden]
pjmlp[hidden]
7bit[hidden]
amelius[2 comments hidden]
Apple needs to up its game, fast.
varispeed[hidden]
magicalhippo[hidden]
On its own it decided to do demo playbacks and take periodic snapshots, and compare them pixel by pixel if the PNGs differ.
I was also working on a web-based port but it saw the original Quake code was not modified so it compiled a native version on its own to use for this.
It had to apply a small patch to make the game completely deterministic, but it figured that out on its own by reading the code.
It then asked me to record a demo with various elements, say an explosion or being under water, and visually verified that the screenshots had those elements present.
So now I have a solid set of tests to verify against.
Opus 5.5 Medium. Used at most 1% of the weekly limit of my $20 plan.
malkia[hidden]
https://github.com/NVlabs/flip
But also SSIM, perceptualdiff, and many others
For UI/web certain other methods are better, for video - I'm sure there are prefferences there too.