CSS is DOOMed: rendering DOOM in 3D with CSS

DOOM game scene with CSS text above the classic DOOM logo, HUD showing 50 ammo, 100% health, 0% armor.

Niels Leenheer built a version of the classic game where every visual element is a <div> positioned in 3D space using CSS transforms, with JavaScript handling only the game logic. The project uses CSS trigonometric functions, @property for animatable custom properties, anchor positioning for HUD, and SVG filters for spectral enemies.

nielsleenheer.com/articles/2026/css-is-doomed-rendering-doom-in-3d-with-css