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