Zain Dana HarperRAW · the rendering branch

Take the pipeline. Render the frame yourself.

RAW — Rendering Advancement Workshop — is a real-time D3D11 rendering platform. In plain terms: a small piece of code slips in between a game and the graphics card and takes the wheel. Then it adds its own light and shadow while the picture is still being drawn — bounced light filling the scene (screen-space global illumination), soft shadows where surfaces meet (ambient occlusion), reflections, and a gentle sky-glow. It is the deepest take-it-apart-to-learn-how-it-works graphics work I’ve done. It is also the branch that grows into the spatial sense of the larger work — the part that can see depth and space.

I learned this owning a frame that wasn’t mine. I’m turning it toward a visual engine that is.

RAW 1.0.0 · C++23 · HLSL · D3D11 proxy + mid-frame dispatch

You don’t get the pipeline. So you take it.

A closed game gives you no opening to work in — no door left ajar. So RAW makes one. A small stand-in file (a d3d11.dll proxy) wraps the three pieces a game uses to talk to the graphics card and quietly relays every message, so RAW can listen in. It watches for one tell-tale moment in how the picture gets built (a DSV-unbind heuristic — the instant the game lets go of the depth buffer). Using that moment, it sorts the work of a single frame into nine stages as they happen. Then it steps in right after the shapes are laid down but before the lighting is finished (PostGeometry) — inside the live picture, not painted over it afterward. That is the whole feat: taking the wheel of something you were never handed the keys to, earned by patiently figuring out how it draws.

Knowing which stage you’re in, stepping in at the right instant, and rebuilding the game’s own sense of depth from the numbers it left in memory — this is where I learned the take-it-apart care and the memory discipline that quietly runs under the rest of the work.

Real effects, real algorithms — and the honest status of each.

Straight from the running engine. Each one is named after the research paper it comes from, and labeled by exactly how far along it is — working, still being tuned, or still fighting glitches I haven’t solved yet.

Exhibit I RAW · the active effect set, by algorithm and honest status
# renderers running in-frame (RendererBase, external HLSL, F12 hot-reload)
GTAO            Jimenez 2019 visibility bitmask       functional, verified in-game
Contact Shadows screen-space directional ray march    functional, needs tuning
Skylighting     screen-space hemisphere visibility     functional, denoising WIP
SSR             McGuire & Mara 2014 Hi-Z march         visible artifacts — needs work
SSGI            voxel cone tracing                     green-tint issue — rework
Scene Compositor multi-effect blend + multi-bounce AO  functional

Bounced light, soft contact shadows, reflections and sky-glow — each one a named technique from the research, and each carrying its honest state, including the two that don’t look right yet. Show, don’t ask to be trusted — that holds for my own renderer too.

Under the hood, three things. A HiZ pyramid — the same depth picture kept at many sizes, so the effects can ask “what’s in front of what?” quickly. A 9-category weather system that auto-modulates effect intensity (rain, fog, and the rest each turn the dials on their own). And a finishing pass over the image (Karis+Jiménez bloom, an AgX color pipeline, auto-exposure), currently in build, untested. 17 further renderers — DoF, volumetrics, SSS, clouds, SDSM — are written and source-preserved but removed from the build pending individual polish. I’d rather tell you that plainly than let it be assumed.

Two shapes: where it came from, where it’s going.

Where it came from was a full rendering platform. It is also where I earned a particular set of skills the hard way: taking a closed game apart to learn how it draws, reading and rebuilding what the graphics card is holding in memory while the picture is still being made, and the patience it takes to make an effect you’ve added behave nicely inside a picture it doesn’t own. Those are the same instincts the witness and provenance work elsewhere on this site stands on. A witness here just means a small fingerprint of a thing — check it later and you know nothing was changed. Provenance means you can always trace where something came from. RAW is where those instincts were forged.

I learned this owning a frame that wasn’t mine. I’m turning it toward a visual engine that is.

Where it’s going is to become the spatial sense of the larger work — its feel for depth and space. Right now, AI tools that take actions on their own are mostly blind to a live 3D scene. They reason over words and flat screenshots, not over a picture as it’s being drawn. RAW is the branch I’m pointing straight at that blind spot — a way for an AI to actually see and reason about a live, three-dimensional scene, the same way the rest of my tools let it read files and the web. The same roots, given a new shape and a new purpose — and maybe, as it grows up, a life of its own as the eyes of the whole project.

Where it honestly stands: the rendering platform is still being built — the core effects work, two are in repair, the finishing pass is untested. The seeing-in-3D direction is a road I’m on, not a thing I’m claiming is done.

It’s public. Read the renderer.

Written in C++23 and HLSL, free for anyone to use (MIT-licensed). The stand-in file that takes the wheel, the part that knows which stage of the picture it’s in, the whole set of effects, and every shader sitting on disk — the real source, rough edges and all.

GitHubHarperZ9/raw  ·  Adjacentgpu-trace-validator (GPU-trace receipts)  ·  ← the map  ·  the index