Build in public

Rendering, built from first principles and written about.

A rendering laboratory, content platform, and public learning journey.

Experiments in modern rendering: Vulkan via Silk.NET, a functional core, and an imperative shell. Every technique ships as working code and a companion post that explains why it exists.

Roadmap

Every confirmed post, in order. Status reflects the current state of the draft, not a promise of when it will ship.

Editor

A scene runner grows into an interactive testbed.

05 Planned

Shaders that reload themselves

Watch shader sources, recompile to SPIR-V, and swap pipelines without restarting. File watching at the imperative shell, idempotent pipeline rebuild, and surviving a failed compile without dropping the frame.

06 Planned

From stats overlay to scene inspector

The scene panel grows into a real inspector: edit transforms, lights, and material parameters live, with the pure Scene snapshot as the source of truth. Elm-style Model/Msg/Update keeps the renderer a pure consumer.

07 Planned

Loading meshes that someone else made

glTF and OBJ instead of hardcoded geometry. The import boundary as a pure transformation from file bytes to immutable Mesh records, and why the lab treats assets as data rather than engine objects.

Physically Based Rendering

A plausible guess gives way to a physical model.

08 Planned

Trading a guess for a model

Swapping the Blinn-Phong lobe for a Cook-Torrance metallic-roughness BRDF: GGX distribution, Smith geometry, Schlick Fresnel, and what energy conservation actually buys you. The G-Buffer's two spare scalar slots become roughness and metallic, so the whole change is a shader plus a material record.

09 Planned

Detail that isn't there

Per-pixel normals perturbed from a texture, faking high-frequency surface detail without geometry. Tangent space and the TBN basis, why this is the change that finally grows the vertex layout, and deriving tangents at import when the file does not ship them.

10 Planned

Ambient light with somewhere to come from

Retiring the hemispheric ambient constant for a real environment. The split-sum approximation: irradiance convolution, a prefiltered mip chain, and a BRDF integration LUT, plus the render graph's first precompute passes.

Field Notes

Infrastructure decisions and architecture records.