CSS is DOOMed

(nielsleenheer.com)

69 points | by msephton 1 hour ago

12 comments

  • sheept 1 hour ago
    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/

    • captn3m0 6 minutes ago
      The author links to th CSS x86 project:

      > Yes, Lyra Rebane build a x86 CPU completely in CSS, but that technique is simply not fast enough for handing the game loop. So the result is something that uses a lot of JavaScript.

  • rkagerer 50 minutes ago
    But where can I try it out in my browser?

    EDIT: https://cssdoom.wtf/

    • TeMPOraL 29 minutes ago
      Never tried Doom on a phone before, this one is surprisingly fluid and very playable.
  • jsjsjxxnnd 31 minutes ago
    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...

  • fnord77 8 minutes ago
    [delayed]
  • OrangePilled 1 hour ago
    This page could use some "Practical CSS scroll snapping": https://css-tricks.com/practical-css-scroll-snapping/
    • division_by_0 55 minutes ago
      I was amazed when I first came across CSS scroll snapping. It's great for creating immersive experiences where one part of the page fills the entire screen while native browser scrolling still works.
      • OrangePilled 42 minutes ago
        When done right, I oddly find it immersive too. But know some people aren't fond of scrolling being tampered with.

        The post here could really use it though. The main content is pushed to the bottom of the page!

  • 0x737368 1 hour ago
    With how these things are going, soon hackers will be challenging themselves to run Crysis on calculators and microwaves
    • oopsiremembered 1 hour ago
      I think we're going to get to the point where AI will try to run Doom on humans.
  • sgbeal 1 hour ago
    It would be really interesting to see this without the texturing applied.
  • notnmeyer 42 minutes ago
    at this point i’m more interested in what _can’t_ run doom.
    • anthk 18 minutes ago
      I ran calypso.z3, tristam_island.z3 and a few more Zmachine text adventures under an interpreter created in PostScript.

      Also if I want I can cross-compile a static build of Frotz for Linux/Misc and emulate it under a RISC interpreter for Linux syscalls written in... Perl, runable in every modern Perl port out there. Linux/RISC binary under Perl for NetBSD/Vax? Yes. Slow? Not much, it's a text game in the end.

      But, as for the ZMachine, you can run text adventures in Android, Game Boy, Amiga, MSDOS, Windows, Palm PDA's... anything 8bit and up.

      Also, damn Sokoban under Eforth written in Subleq, a VM which can just:

      - set up a 2^16 RAM size

      - single opcode: substract A from B, if less than 0, go to addr in C. - A < 0? Get ASCII input in B - B < 0? Put ASCII output in B - C < 0? End

      This, just this, and people wrote Subleq simulators in C, AWK, Python, TCL, FPGA's and whatnot. And it will run Eforth, and that means... you can write a ZMachine interpreter on it and be really slow if emulated in a Pentium 4 (maybe 3/5 seconds per command with a ZMachine on top of Eforth for Muxleq instead of Subleq), but the game will be playable and a great exercise on Turing completeness.

      If a Mandlebrot render under Muxleq+EForth (with no floats used, just integers) is as fast as a C64/Amiga with a native Forth. then having that tiny EForth+Muxleq is not that useless.

      https://github.com/howerj/muxleq

    • josefrichter 40 minutes ago
      scared to go check my washing machine display
  • anthk 33 minutes ago
    https://freedom.github.io

    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.

  • josefrichter 41 minutes ago
    this is wild.
  • lysace 52 minutes ago
    The game logic runs in JavaScript

    Also: a modern CPU is around 10000x faster than the 486 CPU Doom was designed for. Per core.

  • Levitating 1 hour ago
    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?

    • oopsiremembered 1 hour ago
      I think the argument lies in its flexibility and versatility (regardless of it being the most efficient or effective tool for this one particular task).

      Duct tape is awesome for the same reason -- even though there are several effective use cases for duct tape where a different tool would technically be "better" for the job.

      • Levitating 27 minutes ago
        But you don't choose CSS, it's the only tool in the toolbox. As long as you stick to the Web.
    • sbarre 1 hour ago
      What kind of system would you propose (or do you envision) for applying visual styling to HTML markup in modern web pages today?

      You can keep it high level but your comment makes me think you have something in mind, and I'm honestly curious.

      • Levitating 30 minutes ago
        I am not sure what a purpose-built tool would look like, but the CSS-like language you see in UI frameworks like GTK is tailored for styling actual UI's.

        In CSS on the web, just centering a div has historically been a problem. We have flexbox now, but what if CSS was designed with our current needs from the get-go?

    • micromacrofoot 1 hour ago
      compared to old css, it just keeps getting better