But where can I try it out in my browser?
EDIT: https://cssdoom.wtf/
Creating 3D scenes with CSS has always been possible[0], but like this project, it's required JavaScript for interactivity.
But there's a lot more CSS features now. While in the past, Turing completeness in CSS required humans to click on checkboxes, now CSS can emulate an entire CPU without JavaScript or requiring user interaction.[1] So I wonder if DOOM could be purely CSS too, in real time.
[0]: https://keithclark.co.uk/labs/css-fps/ [1]: https://lyra.horse/x86css/
So impressive! Bonus, you can wall hack by just deleting a div ahah
Seriously impressive, especially the viewport culling trick, not seen that one before.
FYI if you want to use inspect element, the viewport div consumes mouse elements, you can get rid of this with
#viewport {
pointer-events: none;
}
#viewport * {
pointer-events: initial;
}With how these things are going, soon hackers will be challenging themselves to run Crysis on calculators and microwaves
Couldn't agree more ... Especially how platforms like Stitch 2 are eliminating the barriers for non-technical individuals to actually get pretty decent UI/UX experience ..
This is great. And Firefox should get kudos too, for running it the best, with fewest workarounds needed.
In recent years CSS has become closer to a full programming language through experimental features, for example in 2025 they added if statements and some math functions like modulo
https://www.simplethread.com/new-and-upcoming-css-features-i...
This page could use some "Practical CSS scroll snapping": https://css-tricks.com/practical-css-scroll-snapping/
I try a simple absolutely layout (all calculated on a server), and helps me a lot. 1) no reflow 2) very few exceptions 3) WAY EASIER FOR LLMs
super playable on ff but I got stuck here https://imgur.com/a/6nXbPY3
I LOVE this! You did a bang up job, is the skin change function coming in a future update?
It would be really interesting to see this without the texturing applied.
at this point i’m more interested in what _can’t_ run doom.
What a master class in linear algebra…
Really cool!
Use Deutex, GNU make and Pillow for Python to compile.
Then wou will have up-to-date IWADS to be used aywhere. No need to put ID copyrights, just a mention to FreeDoom creators.
this is wild.
The game logic runs in JavaScript
Also: a modern CPU is around 10000x faster than the 486 CPU Doom was designed for. Per core.
Yawn.
[dead]
[dead]
[dead]
[dead]
[dead]
FYI: this is a cool hack and very impressive, but ... don't do this. That fact that it runs doesn't make it a good idea. Like running DOOM in Excel (https://github.com/Pranshul-Thakur/DOOM-in-excel) or making a DIV for every pixel and rendering by changing colors of divs https://news.ycombinator.com/item?id=46409359
Use 3D CSS to enhance a 2D page with some flair. But be aware, 3D CSS, it's trying to solve things that most realtime 3D rendering does not, like intersecting planes need to be subdivided in order to correctly handle transparency. This means 3D CSS has an O(N^2) or worse type of issue vs rendering yourself using WebGL or WebGPU where you'd avoid those issues. This demo probably does not intersect any planes but the browser itself has to check for those intersections anyway. TL;DR: If you're going to make a 3D web game use WebGL or WebGPU, not 3D CSS
Very cool demo though!
Is CSS that awesome? It's still a language designed for styling webpages with 30 year of added features. I'd argue something purpose built would be a much better tool for the potential usecases people try to use CSS for now.
I guess I am asking, if modern CSS is so awesome, it's awesome compared to what exactly?
In 2006, Ars Technica published an April Fool's article[0] declaring that the perennially-forthcoming Duke Nukem Forever would finally see the light of day... as... a browser game! Ho ho, how droll.
Crazy to see how far we've come.
[0]: https://arstechnica.com/gaming/2006/04/forever/