TaosEngine Sample Library — Catalog (Taos Samples)

**Note** from Bead: Taos Samples · [canonical source](https://redfish.acequia.io/guerin/.agents/2028c98b-6fae-4d97-8fd9-3c7e4afba988/2026-06-15/notes/samples-catalog.md) · session 2026-06-15 · discussion: Talk: Taos Samples

A NetLogo-models-library-style index of the **~100 runnable samples** that ship with the TaosEngine clone. **Ground truth = the clone**, not this file — every row points AT the source under `c:/Users/steph/Documents/src/taos-engine/samples/`; open the named `.ts` (its header comment is the authoritative description) and run the matching `.html`. - **Scan this** to find the right sample to copy from. For free-text "which sample shows Y?" use the companion index skill [`../skills/taos-samples-orama/`](../skills/taos-samples-orama/). - **Distilled how-tos** for the 6 highest-value reusable samples live as separate skills in [`../skills/`](../skills/) (`geo-terrain-setup`, `google-3d-tiles`, `projector-onto-terrain`, `fluid-flame-smoke`, `gaussian-splat-viewer`, `geojson-on-terrain`). - Each sample's `.ts` runs through Vite; the `.html` is its page. Most use `Engine` + a preset (`deferredPreset()` / `forwardPreset()`) from `taos/engine`; a few hand-roll the render graph. Row format: **`<file>`** — what it demonstrates · key modules/APIs · *use when …*

## Geo / Globe (streamed 3D world, floating origin, terrain & tiles) All geo samples build a `GeoScene` + `GeoFeature`/`GeoFrame` (from `taos/geo`) on the `deferredPreset`, with an f64 floating origin rebased per `GeoFrame`. Cesium-free path = `addRasterDemTerrain(AWS_TERRARIUM)`; Cesium path = `resolveIonAsset`/`ION_ASSETS` + a token.

- **`geo_minimal.ts`** — the smallest complete geo app: OSM Buildings on Cesium World Terrain at NYC via two ion tilesets + one `GeoFeature` · `GeoScene`, `GeoFeature`, `resolveIonAsset`, `ION_ASSETS`, `reanchorCamera`, `DEFAULT_ION_TOKEN` · *use when starting any globe app (the canonical skeleton).* - **`geo_osm_terrain.ts`** — fully OSM/Cesium-free globe: AWS Terrarium raster-DEM terrain draped with an OSM/Esri basemap over the Grand Canyon · `GeoScene.addRasterDemTerrain`, `AWS_TERRARIUM`, `ESRI_WORLD_IMAGERY`/`OSM_RASTER`/`CARTO_*` from `geo/imagery` · *use when you need terrain with NO ion token.* - **`geo_osm.ts`** — terrain draped with switchable OSM-derived basemaps (OSM/CARTO), with a toggle that swaps in Cesium ion World Terrain + OSM Buildings · `GeoScene`, `GeoFeature`, `ION_ASSETS` · *use when comparing OSM-raster vs Cesium data families in one frame.* - **`geo_osm_buildings.ts`** — OpenMapTiles vector tiles (MVT) decoded into 3D: extruded buildings, draped roads, water/landcover over Manhattan; key-less OpenFreeMap default · vector-tile decode, `GeoScene`, `LensFlareFeature` · *use when you want the "MapLibre look" as real 3D on the globe.* - **`geo_osm_projection.ts`** — OSM Grand Canyon at night with a `Projector` casting an image down onto the terrain (top-down decal or perspective frustum) · `Projector`, G-buffer-depth reconstruction, starfield/moon/aerial-fog/bloom · *use when projecting an image/decal onto streamed terrain (see the projector distilled skill).* - **`geo_imagery.ts`** — composited imagery STACK (aerial base + transparent labels overlay) with per-layer opacity + brightness/contrast/saturation · `imagery_layers` → `composite_imagery.wgsl` · *use when you need multi-layer basemaps with label overlays.* - **`geo_tile_style.ts`** — declarative 3D-Tiles styling: a `Cesium3DTileStyle` with per-feature `show`/`color` expressions restyles a baked city district live · `GeoJsonLayer`, `Cesium3DTileStyle` · *use when data-driven recolour/filter of features by their metadata.* - **`geo_geojson.ts`** — put your own GeoJSON on the map: extruded building polygons, ribbon roads, park polygon-with-hole, point cones, baked into the f64 world · `GeoJsonLayer` · *use when overlaying vector data on terrain (see the geojson distilled skill).* - **`geo_clipping.ts`** — clipping planes + clipping polygons (Cesium analogue): cut terrain with a footprint polygon + a horizontal floor plane · `GeoFrame`, `GeoScene`, clip uniform in `GeometryPass` · *use when carving/hiding part of the terrain (site cutouts, floor clip).* - **`geo_flight_tracker.ts`** — time-dynamic CZML: aircraft with `SampledPositionProperty` animated by a `Clock`; track polyline + following labels · `loadCzml`, `SampledPositionProperty`, `Clock`, OSM terrain · *use when animating sampled tracks/entities over time (timeline scrubber).* - **`geo_street_view.ts`** — Taos globe docked beside a Google Street View panorama; click globe → drop pegman → load panorama (needs Google Maps key) · `StreetViewPanel`, `ecefToGeodetic`/`lonLatToEcef` · *use when integrating Street View with the 3D globe.* - **`geo_photo.ts`** — photo-match: read a JPEG's EXIF (GPS/heading/lens), fly Google 3D Tiles there, overlay the photo as a draggable "portal", solve the pose · `GeoScene` (Google tiles), `PhotoOverlay`, EXIF parse (`geo_photo/exif.ts`) · *use when matching/registering a photograph to the 3D world.* - **`geo_physics.ts`** — Cesium ion 3D Tiles + Jolt physics: streamed terrain tiles become static triangle-mesh colliders; click fires a bouncing sphere · `Tileset3D`, `TerrainTileset`, `TileCache`, Jolt `PhysicsWorld`, `syncTerrainColliders` · *use when you need rigid-body physics against streamed geo terrain.* - **`geo_splat.ts`** — Gaussian splats on the globe (Cesium "3DGS with LOD" analogue): a 3DGS object placed on OSM terrain, composited via `GeoSplatFeature`; glTF KHR_gaussian_splatting + SPZ decode · `GeoSplatFeature`, `loadGaussianSplatGlb`, `loadSpz` · *use when placing a splat tile on the globe.* - **`geo_fox_rain.ts`** — animated fox running on streamed geo terrain in rain, switchable Google-tiles / OSM-DEM; bridges rain particles ↔ geo terrain via CPU-baked heightmap · `GeoRainFeature`, `GeoScene.heightAt`, `ParticlePass.updateHeightmap` · *use when colliding particles with streamed terrain.* - **`geo_voxel_world.ts`** — streamed OSM terrain voxelized on the GPU into Minecraft cubes, walkable FPS · `VoxelTerrainPass` (compute voxelize), crafty block atlas, `chunk_geometry.wgsl` · *use when turning real elevation into voxels.* - **`planet_explorer.ts`** — full Cesium ion 3D Tiles streamer (Google 3D Tiles default / OSM Buildings / World Terrain / any ion asset); geolocated glb anchors, depth-pick or ellipsoid raycast · `Tileset3D`, `TerrainTileset`, `TileCache`, `GeoFrame`, `ION_ASSETS` · *use as the reference ion-streaming app (see the google-3d-tiles distilled skill).* - **`planet_atmosphere.ts`** — fly from surface to space: pure procedural atmosphere + volumetric cloud deck + starfield, NO geometry; curved-horizon thinning · `AtmosphereFeature` (planet mode), `CloudFeature`, `AltitudeStars` · *use when you want a planet sky/space backdrop with no terrain.* - **`geo_moon.ts`** — standing on the Moon: streams ONLY Cesium Moon Terrain 3D Tiles onto a floating origin, full deferred PBR + stars; artifact-hunt diagnostic toggles · `ION_ASSETS.cesiumMoon`, `GeoFrame` · *use as a minimal single-tileset geo slice / lunar scene.* - **`terranaut.ts`** — marching-cubes planet you sculpt and walk; deferred preset + sample-local MC terrain feature + volumetric cloud + brush gizmo via `engine.beforeRender` · `AnimatedModel`, sample-local MC pass (`terranaut/planet_mc_pass.ts`) · *use when you need editable signed-distance/MC planet terrain.*

## Terrain (CDLOD / heightmap / third-person explorers) - **`mountain_fox.ts`** — the reference terrain demo on the engine + render-feature model: CDLOD terrain, day/night, weather (rain), fox draw lists, dynamic-sky IBL rebake · `Engine` feature registration, `terrain/terrain_features.ts`, `AtmosphereFeature`, `AOFeature`, `SkinnedGeometryFeature`, `GodrayFeature`, `CloudFeature`, `TAAFeature`, `DofFeature` · *use when you want the full procedural-terrain stack (see the geo-terrain distilled skill).* - **`fox_explorer.ts`** — infinite noise terrain, third-person skinned-glTF fox (Run/Walk/Survey gait-swap), procedural instanced forest; full deferred effect stack + day/night · streaming noise terrain, third-person controller · *use when you want streaming infinite terrain with a third-person character.* - **`heightmap_terrain.ts`** — single dramatic mountain from a heightmap IMAGE (or procedural), rock+snow PBR surfacing blended by height/slope · heightmap-as-texture pipeline, `samples/terrain/textures` · *use when driving a single terrain mesh from a heightmap image.* - **`bounded_heightmap.ts`** — drive the engine's CDLOD terrain from a heightmap texture instead of biome noise, constrained to a fixed tile rect (finite island) · `terrain.setHeightmap(tex,…)`, `worldExtent`/`pagesPerSide`/`bounded` on `terrain_system.ts` · *use when you want CDLOD + shadows on a bounded heightmap island.* > The `terrain/` subfolder (`terrain.ts`, `terrain_features.ts`, `terrain_noise.ts`, `grass_pass.ts`, > `day_cycle.ts`, `rain_heightmap_pass.ts`, `instanced_geometry_pass.ts`, `fox_controller.ts`, > `walker_controller.ts`, `height_fog_pass.ts`, `atmospheric_apply_pass.ts`, `debug_points_pass.ts`) > holds the sample-local terrain feature set shared by `mountain_fox` / `geo_fox_rain`.

## Rendering pipeline & render graph (Engine vs hand-rolled) - **`rg_deferred_simple.ts`** — minimal deferred scene via `Engine` + `deferredPreset()` · `Engine`, `deferredPreset`, `MeshRenderer`, `DirectionalLight` · *use as the deferred starting template.* - **`rg_deferred_full.ts`** — full deferred chain via `deferredPreset` (shadow→geometry→SSAO→sky→deferred lighting→point/spot→transparent overlay→TAA→DoF→tonemap), with an `F` DoF toggle · `deferredPreset` · *use when you want the whole deferred effect stack with one preset call.* - **`rg_forward_simple.ts`** — the **manual** render-graph reference: no Engine/feature/preset, every pass built + wired by hand each frame · raw `RenderGraph` API · *use when prototyping a new pass or you need full graph control.* - **`rg_forward_full.ts`** — forward pipeline built by hand on the Engine (sky→shadow→forward-lit→TAA→DoF→tonemap) · `SkyTextureFeature`, `ShadowFeature`, forward features · *use when you want forward (not deferred) with the Engine.* - **`rg_forward_plus.ts`** — Forward+ (tiled forward): a field of boxes lit by 128 point lights, switchable Tiled/Clustered cull + velocity-TAA A/B + light-count heatmap · forward-plus cull, velocity TAA · *use when you have many lights on a forward path.* - **`rg_procedural.ts`** — minimum-viable Engine sample: a single procedural full-screen shader via the `beforeRender` inline-pass escape hatch, no scene/features · `Engine`, inline pass · *use as the absolute minimal Engine RAF loop.* - **`procedural_test.ts`** — a custom procedural `Material`/`MaterialPassType` on a mesh through `ForwardLitFeature`, with the render-graph viz overlay · custom `Material`, `procedural_test.wgsl`, `createRenderGraphViz` · *use when authoring a custom material shader pass.* - **`forward_plus_clustered.ts`** — A/B of Forward+ clustered vs tiled cull, rigged to expose depth-discontinuity + transparency differences (heatmap) · clustered vs tiled froxel cull · *use when deciding tiled vs clustered light culling.* - **`gpu_cull_test.ts`** — GPU occlusion culling: Hi-Z pyramid zeroes `instanceCount` of objects behind a wall; "drawn/total" readback via `drawIndexedIndirect` · Hi-Z occlusion cull, indirect draw · *use when you need GPU occlusion culling for dense scenes.* - **`deferred_lighting_test.ts`** — point/spot light-culling stress test: Tiled / Clustered / Brute / Auto modes over many lights, with HUD + URL params · `PointSpotLightPass.mode`, `deferredPreset({pointSpotLights:{culling}})` · *use when tuning deferred point/spot light culling.* - **`path_tracer.ts`** — wavefront compute path tracer: glTF + HDR, CPU BVH (TLAS/BLAS), progressive accumulate/reset-on-move, à-trous denoiser · `PathTracer`, `buildPtScene`/`buildCornellScene`/`buildGarageScene` from `renderer/pathtracer` · *use when you need a ground-truth offline reference image.*

## Lighting & shadows - **`shadows_test.ts`** — all three shadow-casting light types in one scene with every parameter live: directional cascaded (PSSM/PCSS), point cube VSM, spot 2D VSM, + screen-space contact shadows · `ShadowFeature`, `PointSpotLightFeature`, `DeferredLightingFeature` · *use as the shadows reference.* - **`contact_shadows_test.ts`** — screen-space contact shadows that fill the contact line the cascade map is too coarse for · `DeferredLightingFeature` (toward-sun ray-march) · *use when objects look like they "float" off the ground.* - **`area_light_test.ts`** — representative-point sphere/tube/rect area lights in the shared forward path; roughness sweep · `ForwardLitFeature`/`ForwardPlusFeature`/`PointSpotLightFeature`, `area_lights.wgsl` · *use when you need real area lights.* - **`light_cookies_test.ts`** — directional light cookies (gobos): a texture projected ALONG the sun (blinds/leaves), scrolling · `DeferredLightingFeature` cookie sampling · *use when you want patterned/animated sun shadows.* - **`ies_profiles_test.ts`** — real `.ies` luminaire profiles reshaping spot-cone falloff (spot/flood/batwing) · `parseIes`, `setIesProfiles`, `SpotLight.iesProfileIndex` · *use when you need photometrically-correct spot lights.* - **`physical_camera_test.ts`** — photographic EV100 exposure (aperture/shutter/ISO) on a deferred outdoor scene · EV100 exposure, `SCENE_CALIBRATION` · *use when you want camera-stop-based exposure.* - **`physical_lighting_test.ts`** — lights authored in real lumens→candela (`cd=lm/4π`), physical camera with no calibration · physical light units, EV100 · *use when authoring lights in real photometric units.* - **`forward_ext_aniso_test.ts`** — forward per-pixel ext/anisotropy texture parity test (clearcoat + aniso maps), A/B capture · `PbrMaterial` ext_map/anisotropy_map · *use when verifying forward material-map parity.*

## Post-FX (tonemap, bloom, AO, GI, reflections, lens/film) - **`bloom_test.ts`** — threshold/knee/strength bloom over bright emissives · `BloomFeature` · *use for HDR glow.* - **`dof_test.ts`** — depth-of-field: focus distance/range, bokeh radius, "sky in focus" · DoF feature/pass · *use for cinematic focus.* - **`motion_blur_test.ts`** — camera-only motion blur via per-pixel velocity reprojection (orbit cam) · `MotionBlurPass` after TAA · *use for camera-motion streaking.* - **`color_grading_test.ts`** — film grading stack in the tonemap pass: white balance, contrast, sat, hue, lift/gamma/gain, split toning + optional `.cube` 3D LUT · `TonemapFeature` grading · *use for color grading / LUTs.* - **`tonemap_grading_test.ts`** — tonemap operator A/B (None/ACES Narkowicz/ACES fitted/Khronos PBR Neutral) + perceptual-roughness floor · `TonemapFeature.tonemapper`, `DeferredLightingFeature.minRoughness` · *use when choosing a tonemapper.* - **`post_fx_test.ts`** — lens/film stack: barrel/pincushion + Panini distortion, chromatic aberration, vignette, film grain · `TonemapFeature` lens stack · *use for lens distortion / film look.* - **`auto_exposure_test.ts`** — histogram-based auto-exposure adapting bright↔dark (reads adapting EV back off GPU) · `AutoExposureFeature`, `AutoExposurePass.exposureGpuBuffer` · *use for eye-adaptation exposure.* - **`lens_flare_test.ts`** — depth-occluded screen-space lens flare from the sun · `LensFlareFeature` · *use for a sun flare that hides behind geometry.* - **`godray_test.ts`** — volumetric clouds + godrays (light shafts), deferred chain composed by hand · `GodrayFeature`, `CloudFeature`, `AtmosphereFeature`, `GeometryFeature` · *use for crepuscular rays.* - **`ssao_test.ts`** — switchable AO algorithm (SSAO/GTAO/HBAO+/off) on a voxel chunk · `AOFeature` / AO pass variants · *use when comparing/tuning ambient occlusion.* - **`ssgi_test.ts`** — screen-space global illumination in a Cornell box: ray-march depth, sample prev-frame radiance (TAA history) for color bleed · `SSGIPass` → `DeferredLightingPass` indirect term · *use for cheap one-bounce GI / color bleed.* - **`ssr_test.ts`** — screen-space reflections wedged between deferred lighting and tonemap · `SSRFeature` · *use for glossy planar/screen-space reflections.* - **`antialiasing_test.ts`** — TAA vs SMAA vs Off on alias-prone geometry (poles + fence), auto-pan · TAA + SMAA features, `lib/antialiasing.ts` selector · *use when choosing/comparing AA.*

## Materials & PBR (PBR, OpenPBR, MaterialX, glTF, USD, transmission) - **`pbr_test.ts`** — roughness×metallic sphere grid lit by HDR IBL + sun, switchable environments · `forwardPreset`, `SkyTextureFeature`, `computeIblGpu` (implied) · *use as the PBR/IBL reference.* - **`openpbr_test.ts`** — OpenPBR Surface testbed (forward): metal/dielectric/coat/fuzz/thin-film/subsurface/emissive slabs · sample-local `OpenPbrMaterial`, `openpbr_surface.wgsl`, `forwardPreset` · *use when exercising the OpenPBR model.* - **`materialx_test.ts`** — MaterialX (.mtlx)→`OpenPbrMaterial`: bundled gallery + lazily-paged library + drag-drop tester + node-graph view · `loadMaterialX` (implied), `assets/materialx/manifest.json` · *use when loading MaterialX documents.* - **`garage_car_materialx.ts`** — a glTF sports car re-skinned with hand-picked MaterialX surfaces (car paint / glass / rubber / chrome) in a concrete garage · MaterialX material assignment by glTF material name, `TransmissionPass` for glass · *use as a MaterialX showcase / material-swap-by-name pattern.* - **`material_ext_test.ts`** — Filament-parity material extras: cloth diffuse-wrap + separate clearcoat normal · `PbrMaterial.clothWrap`, `clearcoatNormalToGeometric` · *use for cloth/sheen + clearcoat-normal materials.* - **`subsurface_test.ts`** — deferred subsurface-scattering lobe (back-lit glow through thin geometry), sun sweep · `PbrMaterial.subsurface` (deferred shading-model lobe) · *use for leaves/wax/skin/marble (NOT refraction).* - **`transmission_test.ts`** — KHR_materials_transmission + volume: refractive glass/amber spheres drawn last by `TransmissionFeature`, IOR refraction + Beer-Lambert · `TransmissionFeature` drawItems · *use for refractive glass.* - **`gltf_viewer.ts`** — glTF model viewer: IBL from selectable HDR + shadow sun, deferred with a forward pass appended for transparent models · `GltfLoader`, deferred+forward · *use as the glTF viewing reference.* - **`gltf_material_features.ts`** — in-memory glTF run through the real loader to exercise KHR_materials_pbrSpecularGlossiness (→metal-rough convert) + KHR_materials_variants · `GltfLoader.loadStatic`, `GltfStaticModel.setVariant`, `sgConvert` · *use when testing glTF material extensions.* - **`usdz_viewer.ts`** — USDZ/USDA/USDC viewer via TinyUSDZ-WASM `loadUsdz`, forward-lit, drag-drop · `loadUsdz`, `GltfStaticModel`, `SkyTextureFeature`, `ForwardLitFeature` · *use when loading USD assets.* - **`hdr_viewer.ts`** — HDR/EXR image viewer with live tonemap toggle, pan/zoom, drag-drop · `parseHdr`/`createHdrTexture`, `parseExr`/`createExrTexture` · *use when inspecting .hdr/.exr files.* - **`sh_ibl_test.ts`** — SH (order-3) vs cube diffuse IBL toggle on a deferred PBR scene · `DeferredLightingFeature.useSphericalHarmonics`, `IBL_DIFFUSE_SH` define · *use when comparing SH vs cubemap irradiance.* - **`reflection_probe_test.ts`** — box `ReflectionProbe` capturing scene into a cubemap→IBL; update modes (every-frame/once/on-demand), box projection · `ReflectionProbe` · *use for local cubemap reflections.* - **`reflection_probe_sky_test.ts`** — `ReflectionProbe` restricted to capturing the procedural sky (and sky+clouds) only · `ReflectionProbe` (sky / sky-and-clouds content) · *use when you want a sky-only reflection probe.* - **`crafty_animal_viewer.ts`** — viewer for crafty (voxel-game) block/biome animals with a `ReflectionProbe` and PBR materials · `ReflectionProbe`, `BlockType`/`BiomeType`, `PbrMaterial`, `createRenderGraphViz` · *use when viewing crafty/voxel block models.*

## Atmosphere & sky / clouds / fog - **`atmosphere_test.ts`** — every atmosphere parameter live: sun/moon (independent dirs, phases/earthshine), Rayleigh/Mie/ozone scattering, aerial fog · `AtmosphereParamOverrides`, `AerialAtmosphereParams` · *use as the atmosphere reference.* - **`cloud_test.ts`** — the standard `CloudFeature` (cheaper single-scatter flat-slab) over a lit scene · `CloudFeature` (shadow→geometry→atmosphere→deferred→godrays→cloud→autoexposure) · *use for affordable volumetric clouds.* - **`hq_cloud_test.ts`** — sample-local HQ multi-scatter volumetric clouds: half-res march + temporal reproject, anti-tiling, spherical-shell (earth-curvature) · `HQCloudPass`, `hq_cloud/cloud_noise_baked.ts` · *use when you need high-quality cloudscapes.* - **`volumetric_fog_test.ts`** — froxel volumetric fog with LOCAL box fog volumes (animated fbm), live volume editor · `VolumetricFogFeature` · *use for local fog volumes / god-fog.*

## Fluid / SPH / ocean / volumes (GPU sims) - **`fluid_test.ts`** — 3D Eulerian GPU fluid ray-marched as a participating medium; templates: Campfire / Fireball / Smoke / Splashing Water · `FluidSim` + render-graph ray-march, `fluid/fluid_sim.ts`, `fluid/fluid_render_pass.ts`, `fluid/presets.ts` · *use for fire/smoke/volumetric fluid (see the fluid distilled skill).* - **`sph_fluid.ts`** — 3D Position-Based-Fluids liquid on the GPU, viewable as screen-space Water / marching-cubes Mesh / lit Particles; templates: dam break, double dam, water ball, fountain · `SphSim` (`sph/sph_sim.ts`, `sph/sph_water.ts`, `sph/sph_mesh.ts`, `sph/sph_scene_pass.ts`) · *use for liquid water / SPH.* - **`ocean_test.ts`** — persistent dynamic-wave + foam ocean wedged between deferred lighting and tonemap; a boat drives a trailing wake (Verlet wave-equation compute) · `OceanFeature`, ping-pong wave sim · *use for an animated ocean surface with wakes.* - **`vdb_volume.ts`** — baked OpenVDB volume viewer (EmberGen fire/smoke): ray-march a 3D texture, blackbody emission + single-scatter, animation playback · `VdbVolumePass` (`vdb/vdb_volume_pass.ts`, `vdb/vol_loader.ts`), `tools/vdb/bake_vdb.mjs` · *use for baked VDB fire/smoke volumes.*

## Particles & graph-driven VFX - **`mesh_particles.ts`** — particles drawn as full PBR mesh instances (`renderer:{type:'mesh'}`) into HDR, lit/IBL via ForwardPass · `ParticleFeature`, `ForwardLitFeature` · *use for mesh-instanced particle systems.* - **`butterflies.ts`** — swarm of mesh-instanced butterflies whose wings flap via a per-frame expression graph; all butterfly logic in-sample, into the deferred GBuffer · particle expression graph (rotation/alpha via `colorTint`), `renderTarget:'gbuffer'` · *use as a graph-driven custom-particle example.* - **`sdf_particles.ts`** — SDF baked from a mesh drives all three SDF particle features (attractor, collision, sdf_surface spawn) · `ParticleFeature` SDF nodes · *use for SDF-collision / SDF-spawn particles.* - **`particle_trails.ts`** — `renderer:{type:'trail'}` ribbon mode: per-particle position ring buffer → tapering camera-facing ribbon, additive HDR (bloom) · trail renderer · *use for ribbon/tracer trails.* - **`particle_text_fountain.ts`** — SDF text bent along ballistic particle trails (CPU streamers + GPU ember fountain) · `placeGlyphsAlongLine`, `layoutLine`, `SdfTextPass`, `ParticleFeature` · *use for text-following-particles (CPU layout).* - **`particle_text_gpu.ts`** — same text-fountain entirely on GPU via the `glyph_trail` particle render node (position-history ring + per-glyph vertex distribution) · `glyph_trail` render node, `buildGlyphTrailTables` · *use when you want zero-readback GPU text trails.* - **`spinning_sparks_graph.ts`** — spinning sparks built from the node-graph form of the particle expression IR (Houdini/VFX-Graph-style wiring) · `ExprGraphBuilder` from `taos/particles` · *use as the node-graph particle authoring example (vs the AST form).* - **`particle_graph_editor.ts`** — thin host that mounts the editor app's reusable particle node-graph editor widget full-screen · `createParticleEditor` (from `editor/.../particle_graph_editor`) · *use when embedding the live particle editor.*

## Gaussian splats (3DGS) - **`gaussian_splat_viewer.ts`** — load a 3DGS `.ply` / Niantic `.spz` (picker/drag-drop), render via GPU compute preprocess + radix depth-sort + instanced alpha quads · `GaussianSplatPass`, `SplatData`, `pickDirectory`/`resolveDrop`/`loadSplatData` from `splats/load_source` · *use as the standalone splat viewer (see the gaussian-splat distilled skill).* - **`splat_trainer.ts`** — 3DGS training dataset recorder: fly a deterministic render, record image+exact-camera pairs (no SfM) for an optimizer; selectable grad-atomic variant · `splats/training/grad_atomic.ts`, `window.__splatDataset` · *use when capturing a clean splat-training dataset.* - *(See also `geo_splat.ts` under Geo for splats on the globe.)*

## Audio - **`audio_test.ts`** — engine audio subsystem (no renderer): one-shot SFX bus, orbiting HRTF spatial emitter, looping music with fade, effects rack (reverb/lowpass/delay), mic capture, master analyser/visualizer · `AudioEngine` (`src/audio`) · *use as the audio API reference.*

## XR / WebXR (WebGPU-WebXR, experimental) - **`xr_hello.ts`** — WebXR "hello room": `XRGPUBinding`, `XrSession.create()`→`engine.enterXR()`, per-eye render, camera-as-player-rig, tracked controllers (desktop-fallback if unsupported) · `XrSession`, `XrControllers`, `xrCompatible:true` · *use as the VR starting point (NOT headset-verified).* - **`xr_ar_hello.ts`** — WebXR AR/passthrough slice: transparent background, `XrHitTest` reticle, `XrAnchors`, `XrLightEstimation` · `forwardPreset({sky:'passthrough'})`, `src/xr/` AR helpers · *use for AR — ⚠ SHELVED 2026-06-13 (WebGPU immersive-AR too immature).*

## Games / interactive demos (larger multi-module samples) - **`fps_shooter.ts`** — self-contained FPS: capsule-vs-triangle collision, Möller–Trumbore hitscan, grid A* enemy AI, doors, HUD · subfolder `fps_shooter/` (`collision`, `level_builder`, `door`, `fps_controller`, `pathfinding`, `weapon`, `enemy`, `enemy_ai`, `hud`, `tracers`, `procedural_textures`, `orb_particles`, `flicker_light`, `hit_explosion`, `light_debug`, `fps_touch_controls`) · *use for FPS mechanics / in-house physics + AI.* - **`space_combat.ts`** — Wing-Commander-style dogfighter: arcade flight (mouse/touch/gamepad), lead-computing lasers, pursuing AI, procedural ships/planet/asteroids, combat HUD, deferred + bloom streaks · subfolder `space_combat/` (`flight_model`, `ship`, `planet`, `asteroids`, `lasers`, `enemy`, `explosions`, `hud`, `controls`, `emissive`, `math_util`) · *use for 6-DOF space combat / procedural ships.* - **`portal_arena.ts`** — 3/4 top-down isometric multiplayer arena; sample-local `PortalArenaRenderer` feeds drawItems directly to `GeometryFeature`/`ShadowFeature`/`ForwardOverlayFeature` (no MeshRenderers) · subfolder `portal_arena/` (`portal_arena_render`, `portal_arena_controls`, `portal_arena_hud`, `portal_arena_connection`, `tile_material`) · *use for the drawItems-override rendering pattern + multiplayer arena.* - **`taos_quest.ts`** — top-down action-adventure rendered by a single custom 2D sprite-batch pass; all art procedurally generated at runtime · `SpriteFeature` (`taos_quest/sprite_renderer.ts`), `taos_quest/atlas.ts`, `Game`/`Input`/`createTouchControls` · *use as the 2D-sprite-on-render-graph example.* - **`physics_test.ts`** — Jolt (WASM) rigid-body menu: stacking, constraints, wrecking ball, dominoes, pendulum, heightfield, convex hulls · `taos/physics` (`PhysicsWorld`/`PhysicsScene`), demos in `physics_test/demos/`, geometry in `physics_test/geometry/` · *use as the physics API reference.*

## Text - **`text_test.ts`** — the SDF text system end-to-end: `createSdfFontAtlas`, `layoutLine`, `placeGlyphsAlongLine`, `declutter`, `SdfTextPass` over a procedural sky · `src/text/` · *use as the text-rendering reference (labels, curved text, decluttering).*

## Shared sample helpers (`samples/lib/`) Not standalone demos — reusable bits many samples import: `lib/antialiasing.ts` (AA mode selector), `lib/cesium_ion_default_id.ts` (`DEFAULT_ION_TOKEN`), `lib/effect_toggles.ts`, `lib/fullscreen_toggle.ts`, `lib/geo_sky.ts`, `lib/luxo_ball_texture.ts`, `lib/materialx_graph_overlay.ts`, `lib/particle_graph_overlay.ts`, `lib/pbr_openpbr_toggle.ts`, `lib/source_viewer.ts`.

## Sample families (subfolders, indexed but driven by their top-level sample) `fluid/` → `fluid_test` · `sph/` → `sph_fluid` · `hq_cloud/` → `hq_cloud_test` · `vdb/` → `vdb_volume` · `terrain/` → `mountain_fox`/`geo_fox_rain` · `terranaut/` → `terranaut` · `geo_photo/` → `geo_photo` · `fps_shooter/` → `fps_shooter` · `space_combat/` → `space_combat` · `portal_arena/` → `portal_arena` · `taos_quest/` → `taos_quest` · `physics_test/` → `physics_test` · `reflection_probe_sky/` → `reflection_probe_sky_test`. *Catalog covers all ~100 top-level samples + their helper subfolders. Index = 298 files (`.ts` + `.html`). Built 2026-06-15 from `c:/Users/steph/Documents/src/taos-engine/samples/`.*