Fri, 21 Aug

Developer Builds 3D City in a Single HTML File: Entire Cyberpunk World Rendered from Text and Symbols

Max Ivanov · 21.08.2026 08:11 · 2 min read

A developer from the YouTube channel Grow Now! Games has unveiled an unusual interactive prototype: a 3D cyberpunk city that runs directly in the browser and fits entirely in a single HTML file.

The project was built without Unity, Unreal Engine, polygonal 3D models, third-party libraries, pre-made textures, or shaders. Instead of the usual stack, the author wrote his own compact engine using pure JavaScript and HTML5 Canvas, where the entire graphical environment is generated solely from numbers, letters, and ASCII characters.

Full 3D Raycasting Instead of a Stylized Filter

The created world is not a flat animation or video post-processing. The city is a full-fledged spatial scene built on a 3D grid, featuring skyscrapers of varying heights, roads, trees, streetlights, and moving traffic of cars and pedestrians.

Each frame is rendered using raycasting:

  • The engine casts virtual rays from the player’s camera, calculating scene depth, perspective, object occlusion, and collisions.
  • Then it transforms the coordinates into characters of varying size, color, and brightness: buildings and objects closer to the viewer appear in large, bright font, while distant blocks shrink and gradually fade into darkness.

You can freely explore the city streets from a first-person perspective, examining neon signs and traffic from different angles.

Minimalism Without Dependencies

The project demo has sparked active interest in communities on Reddit and Tildes. Users and developers have praised the “all-in-one-file” architecture, which eliminates the need to assemble heavy npm packages, configure build tools, or set up a local web server — you just save the page to disk and open it in any modern browser.

So far, the author has only shown the engine in action via video. The source code and a public interactive web version have not been released yet, but the developer plans to share implementation details after completing basic optimizations.

Share

Leave a comment