ascension-buffer.asm$D070 · peaks.bin

Ascension Buffer

A walk through rendering history. One world moves from a 320×200 affine-warped renderer through lightmaps, Blinn-Phong, PBR, volumetrics and GI to something uncomfortably real. Rust + wgpu.

coverAscension Buffer promo image
Ascension Buffer promo image
README.mdascension-buffer/index.mdx

An interactive rendering demonstration disguised as a short first-person environmental experience. You walk through SIMULATION FACILITY 08 and restore the rendering stack terminal by terminal. The same world moves from a 320×200 affine-warped compatibility renderer to a ray-aware “Ascended” state. The more accurate the image gets, the less comfortable it is.

The same scene rendered in each era
Renderer progression, 1994 → Ascended.

The progression

Terminal Era What changes
(boot) Compatibility (1994) 320×200, vertex snapping, affine UVs, flat shading, 32² indexed textures, palette quantisation
GEOMETRY STABILITY Stable Raster (1998) perspective-correct bilinear textures, baked per-vertex lightmap + AO, skybox
LIGHT FIELD Shader (2004) normal/specular maps, per-pixel Blinn-Phong, shadow map, SSAO, bloom
MATERIAL REALITY MODEL PBR (2012) Cook-Torrance GGX, split-sum IBL, SSR, planar water, filmic tone map
GEOMETRIC DETAIL STREAM Geometry Stream (2016) LOD 0 meshes, rubble, cables, cracks, contact shadows
VOLUMETRIC ENVIRONMENT Volumetric (2017) ray-marched in-scattering, rain, wetness, wind
LIGHT TRANSPORT SOLVER Global Illumination (2018) 3-bounce VPL solve into an irradiance probe grid
RAY FIELD Ray Field → Ascended area shadows, long-range SSR, supersampling

Built with Rust, wgpu, winit and glam, with RON configuration. It’s a native app for now, so there’s nothing to play in the browser yet.