DOOM Rendered in 3D Using Only CSS and JavaScript: A Technical Milestone

Published on March 30, 2026 | Translated from Spanish

In web development, limits are constantly challenged. A recent project has achieved what many considered impossible: recreating the essence and graphics engine of the classic DOOM using exclusively standard web technologies. This experiment, which combines CSS for visual rendering and JavaScript for logic, transcends traditional layout. It is not an emulator, but a technical reinterpretation that demonstrates the creative power of modern frontend, serving as a beacon of inspiration within the startup and innovation ecosystem. 🚀

Screenshot of the project showing the 3D rendering of a stylized DOOM hallway with pure CSS.

Graphics Reverse Engineering: CSS as a 3D Rendering Engine 🔬

The core of this project lies in a radical use of CSS. Instead of WebGL or canvas, 3D rendering is built by manipulating CSS properties like 3D transformations, perspective, and clipping paths in real time. Each wall, sector, and sprite is represented as an HTML element dynamically styled via JavaScript. The greatest technical challenge was overcoming the static nature of CSS, forcing developers to implement a high-performance style update system that simulates a game loop. This approach turns the browser into a sort of graphics hardware, where style rules become drawing instructions, a concept that dramatically expands what we understand by frontend development.

More than a demo: lessons for web game development 🎯

This case study goes beyond mere technical prowess. It illustrates a fundamental principle: innovation often arises from imposing creative limitations. By forgoing conventional graphics APIs, the project forces a deep understanding of the browser's rendering stack. For web video game developers, it is a lesson in extreme optimization and lateral thinking. While not a practical approach for production, it redefines the boundaries of what is possible and reminds us that the most common tools can harbor unexplored potential for complex interactive experiences.

Is it possible for modern web technologies (CSS and JavaScript) to reach a level of performance and graphics control sufficient to replace WebGL in creating complex interactive 3D experiences?

(P.S.: 90% of development time is polishing, the other 90% is fixing bugs)