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

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 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.