How the captured games get their fidelity
A technique-level read of the games, graphics and 3D captures: what each project actually does in its renderer to look good, and which of those moves fit Twilight's Requiem.
Scope. 29 captures tagged games, 3d or webgl, or plainly about rendering, plus the code of the 9 public repos they link. Seven of the captures were recovered today by re-running ingest on 23 failed share links. The Reddit posts mostly say what was built; the how came from reading shader sources, design docs and READMEs in the repos.
Relation to TR's own docs. The 2026-10-08 analysis asked what the captures validate in TR's approach. This page asks how the fidelity is built. It also checks each idea against the 2026-10-14 rock-world fidelity path and the 2026-10-20 visual-quality research. Everything here is reference, not authorized work. TR's checkpoint and LOOP.md still govern.
1. The short answer
Every project that looks good does the same five things. None of them leans on texture resolution or a bigger engine.
- One light model, read by everything. A single physically based sky or atmosphere is computed into lookup tables. The sky, reflections, ambient light, fog and the sun's colour all sample it. When the sun moves, the whole world changes together. Tidewright's README puts it plainly: "when the sun goes down the whole world goes down with it."
- A real HDR display chain. Light is kept in physical units in HDR. It then passes through a filmic tone map (AgX in three of the projects), with bloom taken only from the hottest values, then dither. Need4Space ships Blender's "AgX - Punchy" look as a 65³ LUT, the same curve its Blender-built pieces were judged under.
- Correlated detail at every scale, filtered to the pixel. Detail comes in several scales, each with its own cause. Each scale fades out before it gets smaller than a pixel. Fixes for tiling (hex-tiling) and for specular aliasing (LEAN mapping, derivative-based AA) are standard, not polish.
- Bake what is static, animate only what moves. Gas-giant clouds, rings, moon craters, rock relief, the nebula and rock shadows are all painted once on the GPU at load. A broken capital ship is a Blender render on a plane. Only the sun's surface, the debris and the water run per frame.
- A verification loop that is not the author. Each project renders headless screenshots, has separate critic agents review them, inspects individual pixels and exposes live tuning controls. The look improves because something other than the builder judges each frame.
2. Project recipes, deepest first
Need4Space three.js r170 · anti-gravity racer · source read in depth
The closest sibling to TR. It has a plasma sun, a ringed gas giant, asteroid rock and a colossal derelict broken in three, all in a browser.
- Gas giant clouds, ringlets and moon craters are baked once at load into large equirect textures, in strips so the GPU watchdog never trips.
- The sun is "a globe of plasma": granulation cells, filaments, sunspots, limb darkening, a chromosphere ring, prominences and timed eruptions. It is kept inside display range, so only the hottest cores bloom.
- Rock uses one baked tile, projected triplanar at three scales and hex-tiled (Mikkelsen 2022), with craters clustered in regions. The sun shadow is baked once, plus per-vertex AO.
- The broken capital ship is a Blender render on a plane. Its lights are a second image that flickers, and about 110 shader-driven plates tumble in the break.
- Rendering: PCSS in three cascades, GTAO, SSR, dual-filter bloom, AgX/ACES, and a two-slice depth range for far scenery.
repo (all rights reserved: read, do not copy) · src/celestial.js, rock.js, space.js, wreck.js · capture
web-ocean raw WebGPU · one 61 KB HTML file · source read
- Waves are a Tessendorf FFT: six cascades from 1103 m down to 0.26 m, a JONSWAP spectrum plus swell, and a CDLOD mesh reaching 160 km.
- Specular uses LEAN mapping (mipmapped slope moments), so sun glitter widens with distance and the far sea settles into a sheen without aliasing.
- The sky is a Hillaire 2020 atmosphere: transmittance, multi-scatter and sky-view LUTs. Two flat cloud layers have edges anti-aliased analytically with
fwidth, and noise octaves fade by pixel footprint. - Foam appears where the surface Jacobian folds, then decays and streaks downwind.
- Post: 8-level bloom, AgX, white balance, triangular dither.
- Built in about 30 minutes by Claude Code with critic subagents reviewing headless screenshots.
Scacelith custom OpenGL 4.6 C++ engine · chess · source read
- Photometric units throughout: the sun in lux, the sky in nits, exposure in EV100. Lights are pre-exposed.
- Sky: Hillaire LUTs. GI from L2 spherical-harmonic probes, plus planar reflections and PCSS with a physical sun radius.
- Post: GTAO, SSR, volumetrics, TAA, DOF, motion blur, then AgX in Rec.2020 with a gentle grade, grain and dither.
- Materials are written as a geological story. The limestone has bedding, shell fragments, pits, recessed mortar and "dust on upward faces". Marble veins run in object space so they continue around the silhouette.
repo (GPL-3.0: reference only) · shaders/materials/*.glsl, shaders/post/tonemap.frag, docs/ARCHITECTURE.md · capture
Tidewright raw WebGL2 · sandcastle sim · README and local checkout
- A raymarched Rayleigh+Mie atmosphere is baked into a lat-long LUT every frame. Everything reads it: sea reflection, ambient light, aerial perspective.
- Sand: Oren-Nayar diffuse, wetness that darkens albedo and lowers roughness, heightfield horizon AO, and a sparse mica glint field ("the reason real sand sparkles and CG sand usually doesn't"). Steep faces switch projection so walls don't smear.
- Water is a Gerstner sum with shoaling. The simulation and the renderer call the same wave function.
- Nine art styles live behind one
uStyleuniform: "nine ways of separating the same light".
Berlin Walk raw WebGL2 · OSM city · plan and source read
- Facades are drawn in the fragment shader from a per-building seed: window grids, shop fronts, and night windows lit by hash.
- No stored normals: flat shading comes from screen-space derivatives, which saves a third of the vertex bytes.
- Rendering: NOAA sun position, two shadow cascades with PCF, ACES, bloom, FXAA and vignette. Fog is tuned so one landmark stays readable at 2.2 km.
- A bug fix worth remembering: the TV Tower vanished because its sunlit concrete matched the sky's brightness. The agent zoomed into pixels to find it, then rebalanced the light.
- Quality tier is chosen from measured frame time in the first 3 seconds.
World of ClaudeCraft three.js · MMO · design docs read
- The "graphics difference" came from an 11-step overhaul plan. Each step could be checked with a screenshot: quality tiers, post chain (GTAO, bloom, grade), IBL from its own sky, procedural normal maps, terrain splat, water, sky, wind.
- CC0 HDRIs for sky and IBL, one per biome.
- Assets go from a reference image to a semantic model of named systems (primary mass, surface rhythm, structure, focal detail), then to a procedural factory, then to GLB.
- Vertex colour is the palette authority. A baked "macro band" adds cavity occlusion, ground contact, settled dust and seam darkening.
- "Generated references carry baked studio lighting, so their pixels cannot yield honest albedo, roughness, normal, or AO maps."
repo (MIT code, per-asset media) · docs/design/graphics-plan.md, docs/image-to-glb-asset-workflow.md · capture
Stylized Components (Cortiz) R3F + GLSL · source comments read
- God rays plus dust motes. A mote lights up only when the same sun test the light shafts use says it is in a beam.
- "That contrast IS the effect": raise the dim side and the beams stop reading. Spend particles where the light falls.
- Motes glint as they turn, and their size is world-space projected to pixels.
- Every component is driven from Leva live controls.
Earth, Moon & Solar System three.js · planetary explorer · source read
- Photographic NASA day, night, bump, water-mask and cloud maps on a Phong globe. Specular comes only from the water mask, so oceans glint and land does not.
- The atmosphere is two additive sphere shells: a front-face rim and a larger back-face halo. Rim strength is a power of 1 minus N·V, lit by N·L. A narrow orange twilight band follows the terminator.
- The night side is "deliberately exposed": a cool, desaturated copy of the surface plus city lights, both fading out toward the sun, "keeps geography readable".
- ACES tone mapping, an exposure control, and a pixel-ratio cap of 1.75.
Vesper Street three.js · procedural voxel horror · README read
- Voxel grids are meshed into merged, vertex-coloured geometry with per-vertex AO from neighbouring voxels. One mesh per material class (matte, glossy, emissive, glass) means a whole chapter is a handful of draw calls.
- Wet street: procedural puddles take a sharp planar reflection, while damp asphalt samples a vertically smeared blur for the streaky wet-road look.
- Light beams are raymarched volumes inside a hull mesh, with Gaussian density across the cone and soft fades, "so there are no hard rims".
- Post: HDR with MSAA, quarter-resolution bloom, ACES, a cold grade, and grain tied to game state. Quality drops automatically if the frame rate sags.
Capture-depth only no public renderer source
- Hospital corridor via Blender MCP: a model drove Blender in four prompted stages. Blockout came first, then a "pause for approval", then props and dressing, then a camera move. Relighting came last: "AgX color management, and very subtle volumetric haze, stopping after three lighting test frames". capture
- Lofoten island in Unity URP: real 1 m elevation data, everything placed by procedural systems from leaves to macro terrain, and custom volumetrics and compute geometry. A different model was used for critiques. capture
- Formula Minus One (three.js + WebGPU): a written style guide ("semi-low poly characters and duotone as design signature"), then a rebuild of every level to match it. Assets go sketch, image model, Tripo, Blender cleanup. capture
- Cozy game, day 3: one sketch-derived style prompt is reused for every asset, for consistency. Meshy output is rigged by Claude in Blender. capture
- Judgement Day: city buildings break into particles. The author keeps the city "plain grey, like an architect's model" on purpose, for phone performance and readability. capture
- Road Rash x DiRT: gave the model "a screenshot of a benchmark visual and told it to reach at least 90% of that quality". It ran 3 to 4 hours per map. capture
- The Last Admiral (Godot): "over 100 live editors". Every VFX and visual value is a dial the author tunes. capture
- Zephyria boss (three.js + Blender): the boss is first shown as rings moving through clouds; the arena stays sparse so the giant reads. capture, transcript fetched
- Barad-dûr: a 60 s continuous camera ascent, authored in a DCC tool. The breakdown video has no transcript. capture
- img2threejs + Hyper3D, image-blaster, 4X single-file, Himeji model test, 3 engines: covered by the 10-08 analysis or no technique detail.
3. Fractured rock world
TR gap (2026-10-14): debris density, body palette and light, rift width, and aliasing at play size (a speckled disc about 110 px across). The planned path is a Blender-authored body with baked maps plus instanced debris.
Detail is relief and shadow, not paint
WebGL1 directsharpens plan
Need4Space's rock comment records a user correction: a 60 m tile "showed its dark blotches and pits as rows of dots ... it looks fake." The fix was a near-uniform albedo with only "gentle" variation. The detail moved into the normal map's relief: craters with parabolic bowls, raised rims, ejecta skirts, sparse fractures and grit. Craters cluster into heavily cratered regions next to smooth ground, because "an even spread read as polka dots".
For TR: this matches the speckle problem. It argues for pushing crater and fracture contrast into the normal and AO bakes, not into albedo, when the Blender gate builds split.
Hex-tiled triplanar at three scales
WebGL1 directnew to TR
One baked rock tile is projected from the three world axes at about 5x, 1x and 1/6 scale. Each projection blends three randomly rotated and shifted copies over a hex grid, weighted by height (Mikkelsen 2022), so the tile never visibly repeats. The smallest scale is dropped where its texels would be sub-pixel, and a broad drift adds weathered and fresher regions.
For TR: this gives one shared material for 6 to 10 instanced debris variants, with no UV unwrap and no visible repetition across thousands of instances. The cost is 9 texture taps per scale; Need4Space's laptop mode keeps only the middle scale.
Torn edges have thickness, and the plates around them bend
offline / Blendernew to TR
Need4Space builds each broken hull piece from one description: section shape, holes and torn ends. That description drives three things. The mesh is cut with marching squares, finer near an edge, and "the edge given its thickness and the plates round it bent outward". The sun is let inside only through the holes, in shafts with a penumbra. And the sky light reaches the interior through the same holes.
For TR: the split concept's "broad fracture faces catch warm light" read depends on the fracture having thickness and lifted lips, not a thin bright seam. It is a concrete brief for rockfield.py's rift: give the chasm walls depth, lift and bend the crust at the lips, and let the star light the interior faces.
Bake a macro shading band, and author each channel from its own field
offline / Blendersharpens plan
World of ClaudeCraft's hero mount stores a baked band in vertex colour: "cavity occlusion against the neighbouring parts, ground contact and grime, settled dust, thinned paint on up-facing bevels and seam darkening." The same doc lists "aliasing albedo into roughness or normal" as a must-avoid. Scacelith's limestone does the same in a shader: each feature has a physical cause (bedding, pits, dust on upward faces, recessed joints).
For TR: write the split body's material as a short geological story before baking. For example: basalt crust, darker fresh fracture faces, heat-reddened rim near the magma, dust settled in crater floors. Bake each as its own field. This is the 10-20 doc's "cracks, discoloration and relief should describe the same physical structures," made concrete.
Static shadow baked once from the star
WebGL1 directsharpens plan
Need4Space renders the meteorite's sun shadow once into a depth map, so "crater rims and boulders throw real shadows at any distance". Scacelith caches static cascades and re-renders them only when the sun moves.
For TR: TR already has 2048 shadow maps with 12-tap PCF. If the star does not move relative to the body during inspect, cache the body's self-shadow instead of re-rendering it. That helps the 57 ms inspect cost.
Distant hero as a pre-rendered picture, plus live debris in the break
offline / Blendernew; contradicts option E
Need4Space's colossus, "a capital ship broken in two above the planet", is built and lit in Blender from where the sky camera stands. It ships as an 8-bit picture on a plane, with a second picture holding its lights. The debris is about 110 torn plates and chunks drifting in the gap, each "turning on its own axis and catching the sun as it turns". All of it runs in one shader draw.
For TR: the 2026-10-14 research rejected impostors (option E) because of memory per variant. This is a different case: one picture of the whole body for the play view, where the planet is about 110 px. That limits it to a fixed viewing angle or a small set of baked rotations, so it fits the backdrop or play view, not inspect. It is offered for Scott's ruling, not adopted.
Debris that reads: light it only where the light falls, and let it glint
WebGL1 directnew to TR
Cortiz's dust and Need4Space's debris share one rule: the contrast between lit and unlit is the effect. Metal plates in the break get "a tight glint toward the sun - the plates flash as they turn." Motes out of the beam are "barely there".
For TR: the 2026-10-14 captures complain about "bright rim outlines" on debris. The precedent says to drop the always-on rim and let only star-facing faces flare, briefly, as each fragment rotates.
Model the reference as named systems, and reject plausible output
processsharpens plan
World of ClaudeCraft does not turn an image straight into a mesh. It first writes a table of named visual systems: primary mass, surface rhythm, structure, focal hardware, secondary detail. The generic img2threejs scaffold "was not good enough to ship". The fix was "not a larger prompt" but a purpose-built procedural factory.
For TR: this is the 10-20 doc's "production interpretation" in table form. For split: primary mass (sphere with a missing wedge), structure (chasm walls, lifted lips), focal (magma glow zone), rhythm (slab-to-gravel ring), and secondary (craters, grit). Rank them, and judge them in that order.
4. Star and lighting
TR today: WebGL1, half-float HDR targets, bloom, and a hue-preserving ACES variant (sun.html SUN-4).
The sun as a surface, kept inside display range
WebGL1 directnew to TR
Need4Space's sun is layered:
- warped flow noise that churns slowly;
- convection cells with bright middles and dark lanes;
- dark filaments, and a few sunspots in active regions ("not continents");
- limb darkening and reddening;
- a thin ragged red chromosphere, prominences that breathe on their own clocks, timed eruptions over about 12 s, and a faint corona.
The key line: "Kept inside the display range so the surface reads; only the hottest cores bloom."
For TR: a star that blooms everywhere loses its surface. Hold the photosphere just under the tone-map shoulder, and let only granule cores and prominences cross the bloom threshold.
AgX tone mapping, matched to Blender
WebGL1 directsharpens plan
Three projects use AgX, Blender's default view transform since 4.0. Need4Space ships Blender's "AgX - Punchy" look as a 65³ LUT (assets/agx_punchy_lut65.json). Scacelith runs AgX in Rec.2020 "so sunlit marble keeps its gradations". AgX desaturates highlights smoothly instead of skewing their hue.
For TR: TR's plan judges the look in Cycles first, then matches it in game. If Blender renders with AgX and the game with ACES, the two never quite match. An analytic AgX fit is a few lines of GLSL ES 1.00. A 65³ LUT would need a 2D-packed texture in WebGL1. Compare it against the current hue-preserving ACES on the same frame.
Physical units, and a three-light space rig
WebGL1 directsharpens plan
Scacelith keeps the sun in lux, the sky in nits and exposure as EV100, so values never need ad hoc gain. Need4Space's space scene has exactly three sources: "One hard sun, a faint warm planet-shine, starlight". The shadow penumbra is sized from the sun's disc (PCSS), so contact is sharp and distance is soft.
For TR: a fixed key/fill/ambient rig (star, nearby planet-shine, starlight) gives the 2026-10-16 "judge lighting as one environment" rule something concrete to hold constant across bodies.
Check value separation at the pixel level
processnew to TR
Berlin Walk's TV Tower existed, drew correctly and was invisible, because sunlit concrete matched the sky's brightness. The agent proved it drew, then zoomed into the pixels and rebalanced the light. Fog was tuned so the tower reads at 2.2 km.
For TR: make a "does the silhouette separate from the background" pixel check part of each contact sheet. It matters most for the dark body against space and for debris against the star.
5. Atmosphere, water and gas giants
The 10-08 analysis found no capture covering water. web-ocean and Need4Space now cover it, along with the gas giant.
Gas giant: one baked cloud texture plus a few live terms
WebGL1 directnew to TR
Need4Space paints the clouds once into an equirect texture:
- light zones and dark belts, each with its own shade;
- noise squeezed across the bands so features stretch along the flow;
- latitude bent by turbulence that is strongest at belt edges;
- fine streaks, white eddy ovals along belt edges, one great storm, and darker, mottled, bluish poles.
At runtime, the shader adds:
- a soft, slightly reddened terminator and limb darkening;
- the ring's shadow on the clouds, sampled from the ring texture itself;
- a thin atmosphere thread on the lit limb.
The rings have thousands of ringlets in a density texture, the planet's shadow and faint spokes. They backscatter on the lit face and transmit through thin parts, so they glow when you look toward the sun.
For TR: every term is ES 1.00-friendly. The bake is a one-time render-to-texture, and TR already has half-float targets. Bake in strips, as Need4Space does, to avoid the watchdog.
Ocean: what makes web-ocean read as real
FFT needs WebGPU/WebGL2shading ideas portnew to TR
The FFT cascades need compute or float render-target ping-pong at scale, so they don't fit TR's WebGL1 directly. For a water world seen from orbit, the parts that matter port:
- LEAN mapping (Olano and Baker 2010): mipmapped first and second slope moments give the correct roughness at every distance, so sun glitter widens into a sheen instead of aliasing. From orbit, this is the look: a broad sun glint on the sea.
- A turbid body colour lit by the whole sky hemisphere, with subsurface glow on backlit crests.
- Reflections tilted at grazing angles toward the wave facets the viewer can actually see.
Tidewright's cheaper route, a Gerstner sum whose wave function the simulation also uses, is the WebGL-scale fallback. The spectral theory is in Tessendorf's notes.
Cheapest credible atmosphere: two rim shells and a twilight band
WebGL1 directnew to TR
Earth, Moon & Solar System draws its atmosphere as two additive spheres just outside the surface. The inner shell is front-faced with rim pow(1 - |N·V|, 5); the outer one is back-faced with a softer power of 4. Both are tinted from deep to bright blue by a smoothstep of N·L, and add an orange term exp(-(4·N·L)²) that lives only at the terminator. It is about ten lines of GLSL with no textures.
For TR: this is the step before any LUT work. It is enough to test whether a thin limb and a warm terminator make the water world and the rock world read as planets with air, or as bare spheres.
Expose the night side on purpose
WebGL1 directnew to TR
The same project lights the dark hemisphere with a cool, desaturated copy of the surface (about 45% toward luminance, tinted blue) that fades out across the terminator. The comment gives the reason: "keeps geography readable". Need4Space's three-light rig does the same job with planet-shine and starlight.
For TR: a body that is half black loses its silhouette against space. A small, cool, deliberate fill on the night side keeps the shape readable without fighting the star's key light.
Atmosphere: LUTs, not raymarching per pixel
WebGL1 with half-float RTnew to TR
web-ocean and Scacelith both use Hillaire 2020. A transmittance LUT, a multiple-scattering LUT and a per-frame sky-view LUT replace per-pixel raymarching, and the method scales from mobile to high-end PC. Tidewright does a simpler raymarch into one lat-long LUT per frame.
For TR: the 10-08 analysis noted TR has no atmosphere model. For a planet seen from space, the limb glow and terminator colour come from the transmittance LUT alone, which is a small half-float texture TR can already render to. Need4Space's gas giant gets a credible limb from a thin analytic term; that is the cheap first step.
Fade detail before it gets smaller than a pixel
needs OES_standard_derivativessharpens plan
web-ocean's cloud fbm fades each octave "well before they reach pixel size ... no shimmer in motion". Cloud silhouettes are anti-aliased by the fwidth of their edge function, spread over about 1.5 pixels. Need4Space drops its smallest rock scale "only where its texels can show".
For TR: this is the direct fix for the speckled 110 px disc, for any procedural term left in the shader. sun.html does not request OES_standard_derivatives today. It is a universally available WebGL1 extension, but adding it is a renderer change.
6. Scale and the space backdrop
Give the backdrop its own scene, camera and depth range
WebGL1 directcheck against TR
Need4Space renders the nebula, Milky Way band, stars, gas giant and sun in a separate scene with its own camera and depth range, then draws the circuit over it. Precision is never shared between 2 m and 2,000 km. Its nebula's four 6-octave noise fields are baked once into a 1024-per-face cube map; live, they cost about 0.4 ms per 1440p frame.
Near-space depth from drifting motes
WebGL1 directnew to TR
"Dust drifting round the camera: a box of motes that wraps with it, so near space has depth." Combined with Cortiz's rule, the motes stay barely visible except in the star's light, where they flare. This is a cheap parallax cue that makes camera moves read as travel through a volume.
Reveal size through partial silhouette and an uncluttered stage
designsharpens plan
Zephyria introduces its giant serpent as rings moving through clouds, "a glimpse of its size without revealing exactly what you're fighting". It also keeps the arena empty so the creature stays the focus. Barad-dûr's 60-second continuous ascent is the same idea in a camera move. TR already treats the camera journey as a candidate moment (10-08 item 25). The new part is partial reveal: let the body or ring cross the frame before it is ever shown whole.
Draw layers by reach
WebGL1 directsharpens plan
Need4Space's derelict draws in layers by distance:
- shell: from anywhere;
- skin relief: within 2.6 km;
- frames, decks and machinery: within 1.8 km;
- small parts: within 500 m.
Repeated objects are instanced, each group with its own reach. "From further off only the hull's shape counts." This is TR's "pay for what is visible" (2026-10-16), with concrete distances to copy the shape of.
7. General best practices
Separate the judge from the author
web-ocean's agent "took screenshots of its own output and had separate subagents critique the screenshots, so it wasn't judging its own work". Berlin Walk's agent wrote its own DevTools-protocol screenshot harness after --screenshot failed against a render loop, and took about 30 screenshots in one session. Scacelith has --shot out.png --frames N headless capture in CI. The Lofoten island author used a different model family for critiques. TR already has Playwright captures and reviewer scores. The addition is that the critic never sees the code or the author's reasoning, only the frame and the target, and ideally comes from another model family.
Stage the Blender work, and light it last
The Blender MCP hospital corridor was built in four prompts:
- Architectural blockout only, then "pause for approval".
- Props, dressing and composition across foreground, midground and background.
- A camera move, "without altering any existing geometry".
- Relighting with AgX and subtle volumetric haze, "stopping after three lighting test frames are rendered for review".
Each stage freezes the one before it. This is the shape TR's Blender gate needs. Judge form in grey first, then material, then camera, then light, with Scott's verdict between stages. It also matches the 10-20 doc's "judge large forms with simple materials".
Write the style down, then rebuild to it
Formula Minus One wrote a design and style guide ("semi-low poly characters and duotone as design signature") and then threw away and rebuilt every level to match it. The cozy-game author reuses one sketch-derived style prompt for every asset. Judgement Day keeps its city as a plain grey architect's model on purpose. A short written look (palette, contrast, what is never shown) stops each round from drifting toward a generic AI look.
Name a reference frame and a quality bar
Road Rash x DiRT: "a screenshot of a benchmark visual ... reach at least 90% of that quality", then 3 to 4 hours of autonomous iteration per map. That is a machine-usable target where "make it look better" is not. It fits the 10-20 doc's "choose a concrete visual benchmark", and gives the agent a stopping rule.
Expose every visual number as a live dial
The Last Admiral has 100+ live editors; web-ocean has an H panel plus URL parameters for every setting and camera; Cortiz uses Leva; Tidewright puts nine looks behind one uniform. Scott's role in TR is judging. Dials let Scott tune between agent rounds instead of waiting a full round per reaction. URL-param camera poses also make every capture reproducible.
One source of truth per shape
Tidewright's moulds are one GLSL function used by both the simulation and the cursor preview. Its sea is one wave function used by both erosion and rendering. Berlin Walk's memorial ground is one function used by both mesh generation and the character controller. Need4Space's hull description drives the mesh, the interior sunlight and the sky light. TR's 2026-10-16 "one geometric authority" note already points this way.
Quality tiers from measurement, never hiding what matters
Berlin Walk picks its tier from measured frame time in the first 3 seconds. World of ClaudeCraft's fairness doc says presets may shed "COSMETIC richness" but "must never change ACTIONABLE information". For TR, a fracture or a route the player has to read must survive the low tier.
Don't mine a painting for PBR maps
World of ClaudeCraft: generated references "carry baked studio lighting, so their pixels cannot yield honest albedo, roughness, normal, or AO maps." The same reasoning explains why TR's 2026-10-02 Flux projection "paints generic fantasy". Use the concept for palette and form, then derive the maps from geometry.
8. TR fit table
WebGL1 direct fits sun.html as-is ·
extension needs a WebGL1 extension TR does not request yet ·
offline Blender or load-time bake ·
WebGL2+ does not fit without a renderer change
| Technique | Seen in | Fit | TR target | vs TR plan |
|---|---|---|---|---|
| Relief-not-paint albedo; clustered craters | Need4Space | direct | Rock: speckle, palette | Sharpens Blender gate |
| Hex-tiled triplanar, 3 scales | Need4Space | direct | Rock: debris material | New |
| Torn edge thickness, bent lips | Need4Space | offline | Rock: rift width, fracture faces | New brief for rockfield.py |
| Macro shading band; one field per channel | WoC, Scacelith | offline | Rock: body material | Sharpens bake step |
| Cached static shadow | Need4Space, Scacelith | direct | Rock: inspect cost | Sharpens (shadows exist) |
| Pre-rendered distant hero + live debris | Need4Space | offline | Rock: play view | Conflicts with option E; for ruling |
| Glint-on-turn debris, no rim | Need4Space, Cortiz | direct | Rock: rim outlines | New |
| Semantic system table before modelling | WoC | process | Rock: production interpretation | Sharpens 10-20 doc |
| Layered plasma sun in display range | Need4Space | direct | Star | New |
| AgX matched to Blender | Need4Space, Scacelith, web-ocean | direct | All: Blender-to-game match | Test vs SUN-4 ACES |
| Three-light space rig; physical units | Need4Space, Scacelith | direct | Lighting coherence | Sharpens 10-16 note |
| Pixel value-separation check | Berlin Walk | process | Silhouettes | New |
| Baked gas giant + ring shadow + limb | Need4Space | direct | Gas giant | New |
| LEAN-mapped sun glint | web-ocean | direct | Water world from orbit | New (fills 10-08 gap) |
| FFT ocean cascades | web-ocean | WebGPU | Water close-up | Out of reach in WebGL1 |
| Two rim shells + twilight band | Earth, Moon & Solar System | direct | Atmosphere, cheapest | New |
| Deliberately exposed night side | Earth, Moon & Solar System, Need4Space | direct | Silhouette vs space | New |
| Hillaire transmittance LUT for limb | web-ocean, Scacelith | half-float RT | Atmosphere | New (TR has half-float RT) |
| Octave fade + fwidth edge AA | web-ocean, Need4Space | derivatives ext | Aliasing at 110 px | Sharpens step 4 |
| Backdrop scene with own depth range | Need4Space | direct | Space backdrop | Check vs current |
| Baked nebula cube map | Need4Space | direct | Sky cost | Check vs current |
| Camera-wrapped dust motes | Need4Space, Cortiz | direct | Scale, motion | New |
| Partial-silhouette reveal | Zephyria, Barad-dûr | design | Scale moments | Extends 10-08 item 25 |
| Draw layers by reach | Need4Space | direct | Debris cost | Sharpens 10-16 note |
| Staged Blender build, light last | Blender MCP corridor | process | Blender gate | Sharpens step 1 |
| Written style guide | Formula Minus One, cozy game | process | Look drift | New |
| Independent screenshot critic | web-ocean, Berlin Walk, Lofoten island | process | Loop | Sharpens reviewer scoring |
| Benchmark frame + % bar | Road Rash x DiRT | process | Loop | Sharpens 10-20 step 1 |
| Live dials + URL camera poses | Last Admiral, web-ocean, Cortiz | process | Scott's verdict cost | New |
9. What to try first in TR
These are labelled proposals, ordered smallest test first. Each would go through LOOP.md's one-change, render, contact-sheet, react cycle. None changes the current gate.
- AgX vs current ACES on one frame. Render the split inspect frame both ways next to the Cycles AgX render. This is one shader function, and it tests whether part of the Blender-to-game mismatch is the tone curve.
- Write split's semantic system table and geological material story before the Blender gate (section 3). This is text only, and it gives Scott ranked forms to judge in order. Run the gate itself in stages (grey form, then material, then light), as the corridor build did.
- Rim-shell atmosphere and an exposed night side on one existing body. It is about ten lines of GLSL, and it tests whether "air" and a readable dark side change how the planets read before any LUT work.
- Rift with thickness and bent lips in the Blender gate render, compared with the current seam. This is the cheapest test of the "broad fracture faces" read.
- Debris glint-on-turn, rim removed, on the current SDF debris. It is a shading change, and it should show whether the rim outlines are what reads as "fake".
- Gas giant bake (bands, storm, ring shadow, limb) as a standalone spike page. It is independent of the rock line and fully WebGL1.
- Plasma star layers within display range, as a spike against the current star.
- A process change for the next round: a critic agent that sees only the frame and the concept, plus URL-param camera poses for every contact sheet.
10. Gaps, licences, method
- Failed captures retried. 23 failed captures (21 Reddit share links and 2 YouTube videos) were re-staged and re-ingested before this page was finished, and 22 now resolve. Seven are graphics-related and are included above. Of those seven, the earth-moon-solar and vesper-street repos were read; the rest are capture-depth. The one capture that could not be fetched, a Reddit profile share link, was removed from the corpus. Two recovered posts came back as "[deleted]".
- No technique detail: the 3-engine comparison post has a title only. The Barad-dûr breakdown video has no transcript. Road Rash x DiRT (sandscape) and The Last Admiral are closed source.
- Not covered: volumetric clouds (web-ocean replaced them with flat layers after feedback), close-range ocean on WebGL1, and GPU timings on Apple silicon (every quoted number is NVIDIA).
- Licences: Need4Space is all rights reserved, so it is reference only and no code may be copied. Scacelith is GPL-3.0, reference only for TR. web-ocean, Berlin Walk, Tidewright, Vesper Street, Earth-Moon-Solar (code) and Cortiz are MIT. World of ClaudeCraft is MIT for code, with media licensed per asset in
CREDITS.md. - Method: captures read in full. Repos were shallow-cloned and read through READMEs, design docs, shader header comments and targeted sections. Not every line was read; no repo was built or run. Primary papers were checked for existence and venue, not re-derived. The "for TR" notes are inferences from the 2026-10-14, 10-16 and 10-20 TR docs as committed.
11. Sources
- Need4Space: first browser game · multiplayer
- 61 KB ocean HTML file
- Scacelith chess
- Sandcastle simulator (Tidewright)
- Berlin Walk
- World of ClaudeCraft
- Stylized Components
- Road Rash x DiRT · The Last Admiral · Zephyria boss devlog · Barad-dûr
- Earth, Moon & Solar System · Vesper Street · Blender MCP hospital corridor · Lofoten island, Unity URP · Formula Minus One · cozy game day 3 · Judgement Day (recovered 2026-10-21)
- img2threejs world · image-blaster · 4X single file · four-model test · 3 engines · OLED wallpapers · conflict map
- vengeful180-dot/Need4Space
- Noniv/web-ocean
- DarkCenobyte/scacelith-chess
- winchxyz/tidewright
- adilzhanY/berlin-walk
- levy-street/world-of-claudecraft
- cortiz2894/stylized-components
- ethanplusai/earth-moon-solar
- winchxyz/vesper-street
- Hillaire, A Scalable and Production Ready Sky and Atmosphere Rendering Technique, CGF 39(4), 2020
- Mikkelsen, Practical Real-Time Hex-Tiling, JCGT, 2022
- Olano and Baker, LEAN Mapping, I3D 2010
- Tessendorf, Simulating Ocean Water, course notes 2004
- Blender, AgX view transform (default since 4.0)