Need for Speed: Porsche Unleashed in the browser
I used AI and ported Need for Speed: Porsche Unleashed to the browser. The work builds upon the great work by Sergei Biriukov with the nfspu-recomp project. I used Codex with GPT 6.1 Sol to do it.

Show figure 1 detailsClose figure 1 details
Garage view of 935/78 “Moby Dick”

Show figure 2 detailsClose figure 2 details
Race in the Alps

Show figure 3 detailsClose figure 3 details
Porsche 356 in Côte d’Azur
As a kid, I always loved this game so it’s really nice to get a good dose of nostalgia playing this. Unlike many modern racing games, Porsche Unleashed is really nice since I just get to drive through really picturesque European environments.
Nowadays, many games either fall into the annoying arcade trap or the too-intense hyper-realistic trap. Arcade-style games like Forza Horizon series or newer Need For Speed games are full annoyances such as “influencer voices”, “XP confetti”, billboards and ramps, dumb people culture, drift score/destruction score and other distractions, gacha style car collection, lootboxes and daily quests, ridiculous car modding that makes a VW Beetle as fast as a hypercar, and so on. It is a bit of a pity since Forza Horizon games look really amazing, and are actually quite fun to drive. Meanwhile, at the other end of the spectrum, we have sim racing games like iRacing and Project Cars 2 that are way too serious, with perfect laser-scanned tracks and unforgiving realistic handling. The downside is that it is hard to get good at the game and you can only drive in ugly motorsports tracks with chain link fences, ads, and stacks of tires without any good views. This is really great if you want maximum realism and want to hone your driving skills, but less good if you just want to relax.
Fortunately, there are some new games coming out that would address this niche of “just wanna drive in a scenic environment”. For example, Assetto Corsa Evo Free Roam is coming out. Hopefully it’s good.
Anyway, back to my web port of NFS PU. Compared to the original game, my port has a few improvements and tweaks:
- Full resolution WebGPU rendering both in garage and in race. Previous work by Verok added an OpenGL renderer for race, allowing for arbitrary resolutions and aspect ratios, but the garage was still limited to 640x480. Verok’s patch also adds the highest level of detail models, previously reserved only for the garage view, to the race view. However, I kept the menus/garage at 4:3 aspect ratio, or else the cars and videos may become stretched.
- Rear spoiler fix for Verok’s patch by Zolee. Verok’s patch adds high quality models from the garage view but these have a geometry bug for the automatic retractable spoilers on some Porsche models.
- Optional: New atmospheric skyboxes by AndrewD. These add a cool skybox for faraway scenery. Enable via hamburger menu, then info, then restart the game.
- Super long draw distances.
- Mobile controls, either analog joystick or arrow keys (left right by left hand, throttle/brake by right hand).
- Local IndexedDB storage of save games.
Fixed some funny bugs:
- Original game hardcoded a “rotating sunstars effect” where the rays coming out of the sun and point light sources would rotate slightly based on camera angle. But they did the calculation in raw pixels, so they would rotate super fast at high resolutions.
- One pixel map seam: The rotating display in the “race info” menu was made of sixteen separate textured strips that animate to rotate through different pictures of the map. Those can be misaligned by a fraction of a pixel and end up exposing a black row.

Show figure 4 detailsClose figure 4 details
One pixel map seam