nowfound

Life & fun · April 6, 2026

TTF-DOOM – A raycaster running inside TrueType font hinting

TrueType fonts have a hinting VM that grid-fits glyphs. It has a stack, storage area, conditionals, function calls, and it turns out it's Turing-complete. So I built a raycasting engine in the hinting bytecode. The glyph "A" in the font has 16 vertical bar contours. The hinting program reads player coordinates from font variation axes via GETVARIATION, does DDA ray marching against a tile map in the storage area, and repositions bar heights with SCFS. It ends up looking like a crude Wolfenstein-style view. Small visuzlization:…

TTF-DOOM – A raycaster running inside TrueType font hinting launched on April 6, 2026 with 68 votes, #791 of 21,248 launches that month and more than 95% of that year's launches.

Visit github.com ↗Alternativestop 4% of April 2026

In plain words

TTF-DOOM is a raycasting engine built entirely within TrueType font hinting bytecode, a Turing-complete virtual machine designed to adjust glyph shapes. The glyph "A" contains 16 vertical bars that are repositioned to render a Wolfenstein-style first-person view by ray marching against a tile map stored in the font's memory. Player coordinates are passed through CSS font-variation-settings while JavaScript handles movement and game logic, using the font as an unconventional rendering layer. The implementation totals approximately 6.5 KB of bytecode.

written from the facts on this page · September 2026

From the sources

A 3D raycasting engine running inside a TrueType font's hinting virtual machine - 4RH1T3CT0R7/ttf-doom

A DOOM-style raycaster that runs inside a TrueType font's hinting program. TrueType fonts have a built-in virtual machine for grid-fitting glyphs. It's got a stack, storage slots, arithmetic, conditionals, function calls - and it turns out it's Turing-complete. I wanted to see if I could get it to render 3D graphics. The font file contains a DDA raycasting engine written in TrueType bytecode. The glyph "A" has 16 vertical bar contours, and the hinting program raycasts against a 16x16 tile map and repositions those bars using SCFS instructions to form a 3D perspective view. The whole thing is 6.5 KB. JS handles movement, enemies, and shooting, then passes coordinates to the font through…from github.com

In the maker’s words, at launch

TrueType fonts have a hinting VM that grid-fits glyphs. It has a stack, storage area, conditionals, function calls, and it turns out it's Turing-complete. So I built a raycasting engine in the hinting bytecode. The glyph "A" in the font has 16 vertical bar contours. The hinting program reads player coordinates from…

Does a similar job

all alternatives →
  • I made a Doom-like game fit inside a QR code2025 · github.com · ▲531

    I sometimes pick up random projects just because I can, this was one of those times. I made it as a week long project a while back this year but never shared here, so thought to go for it haha. I created a game inspired by Doom and the backrooms called The Backdooms under 2.4kb in minified html. (for reference, this entire post would be around 1.8kB haha) I had to use a not popular way of using GZip with Zlib headers (had to write my own script for compressing it, also in the repo) to eventually convert it a size 40 QR code that works right in your browser using Decompressionstream API. This…

  • Handwriter.ttf – Handwriting Synthesis with Harfbuzz WASM2024 · github.com · ▲191

    During the hype of llama.ttf months ago, I was speculating the potential of WASM shaper for even crazier purpose, one that fitter to a font shaper's duty -- to synthesize font at runtime. This project as proof-of-concept implements a synthesizer that generates and rasterizes handwriting-style font, backed by a super-lightweight RNN model (~14MiB).

  • QC
    QR code renderer in a TrueType fontJun 2026 · qr.jim.sh · ▲118

    In the "Libre Barcode Project" discussion yesterday, 1bpp asked: "Is anyone willing to sacrifice their sanity for the sake of implementing a QR renderer as TTF hinting code?" Yes. I had some tokens to burn and was curious... turns out, it's possible. This was put together by a mix of Gemini, GPT, and Claude (depending on which usage limits kept running out).

  • D1
    Doom (1993) in a PDF2025 · doompdf.pages.dev · ▲369

    I made a Doom source port that runs within a PDF file. I was inspired by the recent HN post about Tetris in a PDF (https://news.ycombinator.com/item?id=42645218) and I wondered if I could get Doom to run using a similar method. It turns out that old versions of Emscripten can compile C to asm.js code that will happily run inside the limited JS runtime of the PDF engine. I used the doomgeneric (https://github.com/ozkl/doomgeneric) fork of the original Doom source, as that made writing the IO fairly easy. All I had to do was implement a framebuffer and…

  • Video Game in a Font2021 · coderelay.io · ▲605
  • A Marble Madness-inspired WebGL game we built for Netlify2024 · 5-million-devs.netlify.com · ▲616

    Hello HN! We’re a small creative studio specializing in real-time 3D experiences. Netlify approached us to design and build an interactive experience to celebrate reaching 5 million developers. Inspired by the classic game Marble Madness, we created a gamified experience where users control a ball through playful, interactive levels. The goal was to blend marketing content with the look and feel of a game to engage users. The app is built with Three.js [1], using our custom render pipeline and shaders, and uses Rapier for physics simulation [2]. The 2D content is overlaid on the WebGL view…

More life & fun this month

the category →

Source: Show HN post ↗ · launch text quoted in part

Launched alongside, April 2026

the whole month →
  • Brila▲1,364

    One-page websites from real Google Maps reviews

    AI · Apr 2026 · brila.ai

  • AG

    Thought the resources for GPU arch were lacking, so here we are

    Life & fun · Apr 2026 · jaso1024.com

  • Built a ~9M param LLM from scratch to understand how they actually work. Vanilla transformer, 60K synthetic conversations, ~130 lines of PyTorch. Trains in 5 min on a free Colab T4. The fish thinks the meaning of life is food. Fork it and swap the personality for your own character.

    AI · Apr 2026 · github.com

  • AI meeting notes: now bot-free, in ChatGPT & Claude + more

    AI · Apr 2026 · fathom.ai

  • I made a laptop stand out of solid concrete, in the style of brutalist architecture, with themes of urbex and urban decay

    Life & fun · Apr 2026 · sam-burns.com

  • With social media and now AI, its important to keep the indie web alive. There are many people who write frequently. Blogosphere tries to highlight them by fetching the recent posts from personal blogs across many categories. There are two versions: Minimal (HN-inspired, fast, static): https://text.blogosphere.app/ Non-minimal: https://blogosphere.app/ If you don't find your blog (or your favorite ones), please add them. I will review and approve it.

    AI · Apr 2026 · text.blogosphere.app