Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Phyllotaxis: An audio-reactive LED display
A build write-up of an audio-reactive LED sculpture that maps Fibonacci phyllotaxis onto a physical light array—math, fabrication, and real-time reactive firmware.
7 min · 1,644 words
Replacing the old battery on rechargeable bike lights
Julia Evans walks through repairing decade-old rechargeable bike lights by replacing the battery at a makerspace—opening the case, identifying the cell, soldering a replacement, and what she learned as a non-electronics expert.
4 min · 1,011 words
Digital Audio on the ZX Spectrum's 1-Bit Beeper
Michael Martin wraps a ZX Spectrum series with a practical write-up on coaxing high-quality digital audio from the machine's 1-bit beeper—covering techniques, trade-offs, and surprisingly good results on every Spectrum model.
21 min · 4,768 words
Local AI on a 12 GB GPU: what survived testing, and how to set it up
Hands-on notes testing local AI models on a 12 GB RTX 3060: which stacks fit in VRAM, how context length decides spills to CPU, and a practical setup that survived the author’s trials.
14 min · 3,307 words
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard)
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard) Interrupts Interrupts are easily one of my favorite topics.
11 min · 2,612 words
Blinking a Blue Pill LED with Rust, from scratch
A from-scratch Blue Pill walkthrough in Rust without a HAL: wiring and flashing, the reset vector, volatile GPIO writes, delay loops, and the assumptions a working blink can hide.
22 min · 5,155 words
SDF vs. MSDF vs. Slug: GPU Text Rendering
Chris Hanson compares SDF, MSDF, Slug, texture atlases, and Rive for GPU text: how signed-distance fields trade sharpness, memory, and shader cost when you draw outlines yourself.
15 min · 3,398 words
Extending Scapy for Hardware Reverse Engineering
VoidStar Security shows how to use Scapy as a binary protocol framework to dissect SPI/QSPI logic-analyzer captures, trace flash erase/program cycles, and reconstruct firmware without desoldering the chip.
24 min · 5,435 words
Running Ubuntu on the Lenovo IdeaPad Duet
A hands-on walkthrough of firmware hacking a Lenovo IdeaPad Duet Chromebook (ARM64 MediaTek) to run Ubuntu after ChromeOS and postmarketOS fell short.
38 min · 8,821 words
When the fractional part of a float fixes your shader
Bruno Croci debugs a Voronoi Shadertoy stutter that only appeared on a Windows RTX 4070: ANGLE/FXC optimizations dropped `fract` for integer-looking inputs, and swapping a literal to `398.1` or using `x-floor(x)` restored smooth motion.
1 min · 288 words
How sparse resources helped my GPU-driven renderer memory usage
A deep dive into using sparse/reserved GPU resources (D3D12-focused) to manage memory for GPU-driven renderer data structures like dynamic and bit arrays.
11 min · 2,502 words
Testing WebGPU data layouts with Facet
Matt Keeter shows how Facet reflection plus naga lets Rust unit tests catch WGSL/Rust struct layout mismatches—padding on mat3x3, dynamic arrays, and field offsets—before GPU hangs force a reboot.
6 min · 1,444 words
How Your Code Runs: The Journey of a Program Through the CPU
A clear walkthrough of CPU architecture—control unit, ALU, registers, and memory—and how a simple program is compiled, loaded, and executed instruction by instruction.
3 min · 730 words