Skip to content

Showcase & App Feature Audit — Wunschliste & Bestand ​

Ursprünglich: 2026-08-20 — Feature-Inventur über alle damaligen Showcases (apps/showcases/1 bis apps/showcases/26) und die damaligen 4 Apps (src/apps/disc-wars, src/apps/light-cycle-arena, src/apps/neon-labyrinth, src/apps/yad): welche Engine-Features (Materialien, Lichter, Post-Processing, Geometrie, Physik, Behaviors, Kamera-Strategien) wo genutzt werden, und welche implementierten Features nirgends gezeigt werden. Umbau: 2026-09-27 — die Inventur wurde gegen den Live-Code verifiziert; die Lückenanalyse ist unten als pflegbare Wunschliste (F1–F9) konsolidiert. Seither geschlossen: HbaoElement (#27/#29/#32), Line-Geometrie (#6). Die vollständige historische Feature-Matrix (Stand 2026-08-20) ist im Referenz-Anhang am Ende erhalten, inklusive der inzwischen gelöschten Apps.

Hinweis: docs/research/ ist ein Point-in-time-Bereich. Diese Datei wird zugleich als Wunschliste gepflegt; der Abgabestand („erledigt") ist anhand des Live-Codes verifiziert (Stand 2026-09-27, per word-boundary-grep über apps/ und packages/engine/src/) und muss bei neuer Nutzung eines bisher ungezeigten Features aktualisiert werden (✅/🟡/🔍 gemäß Konvention, niemals gelöscht). Die historische Matrix im Anhang wird nicht nachgepflegt.


Wunschliste — implementierte, aber nie gezeigte Engine-Features (pflegbar) ​

#FeatureStatus (2026-09-27)AufwandHinweis
F1AreaLight — einziger Licht-Typ ohne jede Verwendung (0 Treffer in apps/; Klasse existiert unter packages/engine/src/core/lights/AreaLight.ts).🔍 offenmittelBraucht einen eigenen Showcase (flächige Glow-Flächen); Engine-Cap MAX_AREA_LIGHTS ist im Quelltext dokumentiert.
F2FluidVolume (Auftrieb/Strömung/Widerstand-Physik) — 0 Treffer in apps/; nur unit-getestet.🔍 offenmittel#12 Öl-Pfütze ist ein reiner Shader-Trick, keine echte FluidVolume.
F3TaaElement (Post-Processing) — 0 Treffer in apps/ (Basis HistoryBlendPassGL/GPU).🔍 offenkleinKandidat, um den TAA-Trade-off eines echten TAA zu zeigen; auch Vorstufe von W5 in aaa-engine-techniques.md.
F4MotionTrailElement (Post-Processing) — 0 Treffer in apps/.🔍 offenkleinNicht mit TrailRendererBehavior (#23) verwechseln — das ist ein Mesh-Trail, kein Screen-Space-Effekt.
F5OscillatorBehavior — 0 Treffer in apps/.🔍 offenkleinTrivial zu demonstrieren (z. B. Bühnen-Requisten in Diorama-Showcases).
F6StateMachineBehavior (Behavior-Wrapper um FSM) — 0 echte Nutzung; einziger apps/-Treffer ist ein „Deliberately not"-Kommentar in apps/sample-apps/light-cycle-arena/core/CycleAI.ts; die rohe StateMachine wird nur in #15 echt genutzt (#16 importiert sie, aber der Update-Call ist auskommentiert).🔍 offenkleinGuide docs/guides/state-machines.md existiert bereits.
F7CameraStrategyType.FIXED — einzige der 7 Kamerastrategien ohne Verwendung.🔍 offenkleinPrüfen, ob bewusster Verzicht oder schlicht fehlender Anwendungsfall.
F8CCD (Continuous Collision Detection, nur Kugeln — ADR 0005) — nie bewusst demonstriert; einziger Treffer in apps/sample-apps/light-cycle-arena/core/ArenaGrid.ts erklärt explizit den Verzicht.🔍 offenmittelZusammen mit F9 ein sinnvoller Physik-Showcase.
F9BoundingType.OBB — nie gezeigt (0 Treffer in apps/); Ray/Raycaster-OBB-Unterstützung existiert seit 2026-09-18 (Review MIN-05).🔍 offenkleinGuardian-/Treffer-Test naheliegend; Basis vorhanden.

Kein echter Gap, zur Einordnung: DepthMaterial und SynthSFX sind absichtlich rein intern (Shadow-Passes bzw. AudioSystem-Implementierungsdetail) — die tauchen zurecht nirgends direkt auf.


Bewusst geschlossen (nicht mehr offen) ​

  • HbaoElement — aus der Lückenliste entfernt: wird inzwischen in Showcase 27, 29 und 32 tatsächlich aktiviert und genutzt (verifiziert 2026-09-27).
  • Line-Geometrie — aus der Lückenliste entfernt: wird inzwischen in Showcase 6 direkt instanziiert (apps/showcases/6/showcase.ts, „Line"-Primitive der Geometrie-Galerie).
  • Terrain-Geometrie standalone — nur indirekt über TerrainManager (#4) genutzt; direkte new Terrain(-Aufrufe existieren nur in der Factory selbst (packages/engine/src/geometry/Terrain.ts). Bewusst kein eigener Wunschlisten-Punkt (Chunking-Demo deckt das Subsystem ab).

Fester Bestand (umgesetzt, verifiziertes Referenzklima) ​

Die 1:1-Matrix der Showcase-Feature-Nutzung ist historisch (Stand 2026-08-20) und im Referenz-Anhang erhalten. Nummerierungs-/Struktur-Fakten, die seither unvermeidbar gealtert sind und für Interpretationen des Anhangs wichtig bleiben, sind hier amtlich festgehalten — abgeglichen gegen den Live-Code (2026-09-27):

  • Die Showcase-Kollektion ist von 26 auf 37 angewachsen: apps/showcases/1 bis 38 (numerierte Ordner, ohne #25).
  • Apps liegen jetzt unter apps/sample-apps/<app>/; erhalten: the-whisper (vormals and-now), light-cycle-arena, yad. Entfernt: disc-wars, neon-labyrinth (siehe CHANGELOG.md).
  • Muster-Befund bleibt strukturell gültig: auch heute nutzt nur eine Minderheit der Showcases RigidBody+PhysicsSystem (historisch 3 von 30: #21, #22, #23); der Rest baut Physik pro Showcase händisch nach — weshalb CCD und FluidVolume (F8/F2) keine eigene Bühne bekommen. Ein Voll-Re-Audit der aktuellen 37er-Matrix ist bewusst kein Pflichtthema dieser Datei, sondern wäre ein separates Research-Vorhaben (siehe .agents/notes/backlog.md).

Referenz-Anhang — historische Feature-Matrix (Stand 2026-08-20, unverändert) ​

Punkt-in-time-Schnappschuss der ursprünglichen Inventur. disc-wars und neon-labyrinth existieren nicht mehr, Apps lagen damals unter src/apps/<app>/. Wird nicht nachgepflegt — Faktquelle ist der Live-Code bzw. die Wunschliste oben.

#FokusMaterialienLichterPost-FXPhysikBehaviors/ControllerKameraBesonderheit
1Hello WorldPhong, LambertDir(Schatten), Amb——OrbitControllerSMOOTHeinfachster Showcase
2FPS + ZufallsboxenPhong, WireframeDir, Amb——FPS, ZoomFPSColor.fromHSL
3OBJ-LoadingPhong(OBJ/MTL), WireframeDir, Amb——OrbitSMOOTHUV-Offset-Farbwechsel
4Infinite TerrainTerrainMaterial, PhongDir, Amb—OctreeWASDSMOOTHTerrainManager-Chunking
5Grid-TaktikPhong, WireframeDir, Amb——keineISOMETRICmanuelles Grid-Snap
6Geometrie-GalerieStandard, WireframeAmb, Dir—OctreeFPS, ZoomFPSfast alle 21 Primitive
7Skybox (Cubemap)Skybox, PhongAmb, Dir——FPS, ZoomFPSCube-Map-Himmel
8SkydomePhongAmb, Dir——FPS, ZoomFPSSphären-Himmel vs. #7
92.5D Jump&RunPhong, BasicAmb, Dir—handgeschrieben (AABB)keineSTIFFPixelart, kein Engine-Physics
10LavaschalenBasic, World, FluidSurfaceAmb, Dir, Point x2——FPS, ZoomFPSFluidSurfaceMaterial
11KoordinatensystemBasic, Wireframe, SpritePoint, Amb——OrbitHYBRID_SYNCCanvas-Text-Sprites
12U-Boot-FrachtraumStandard, Phong, Glass, OilPuddle(lokal)Amb, Dir(CSM), Spot x3, PointVignette, GrainOctreeFlicker, Proximity, Pulsating + 3 lokaleFPSWGSL-Ripple, GearMath
13PBR + glTFSkybox, StandardAmb, Dir x2Bloom—FPSFPSGltfLoader, erzwungenes WebGPU
148x VerhörraumStandard, GlassAmb, Spot, Point (x8)ToneMapping(3), Vignette, Grain, Bloom, filterMode(7 Looks)—keineMANUAL8 Engine-Instanzen parallel
15Springende BälleStandard, SkyboxAmb, Dir, Point—handgerolltFPSFPSPlanar+Dynamic Reflections, FSM, InstancedMesh
16PBR-Referenz/IBLSkybox, Standard(envMap)Amb, Dir(Schatten), Point——FPSFPSvolle IBL; FSM importiert aber inaktiv
17ThreadPool (Primzahlen)StandardDir——keine—Worker-Demo
18ThreadPool (Terrain)StandardDir——keine—ModelGeometry aus rohen Buffern
191600-Cube-GridStandardAmb, Dir(Schatten)—Octree (1600 statisch)Hover, Draggable, Click—Interaktions-Stresstest
20Tron-ÄsthetikBasic(HDR), Standard(HDR)Amb, Dir, SpotBloom—Bobbing, Rotator, Rainbow, SpringLerp, PathFollower, LookAt, FlickerSMOOTH+OrbitCatmullRom-Spline, 7 Behaviors kombiniert
21PlinkoGlass, StandardAmb, DirBloomRigidBody+PhysicsSystemOrbit—generative Musik aus Kollisionen
22AkkretionsscheibeStandardAmb, DirBloom + filterMode:8RigidBody+PhysicsSystem (+ manuelle N-Body)OrbitHYBRID_SYNCDeviceCaps-Performance-Tiers
23Marble RunStandard, CustomShaderAmb, Point x3unklarRigidBody+PhysicsSystem (Sensor-Bodies)Hover, Rotator, Bobbing, EmissivePulse + Marble-/DroneControllermanuellTrail-Drohnen, Pickups
24Shader-GalerieCustomShader x8 (Shadertoy/GLSLSandbox/ComputeToys), WireframeDir x2, AmbunklarRaycasterExternalShaderUniform, FPS + 3 lokaleFPSLaufzeit-Vertex-Verformung
25Open WaterOpenWaterMaterialDir——OrbitHYBRID_SYNCreinste 1-Material-Demo
26Retro-MonitorRetroScreenMaterialkeine——OrbitHYBRID_SYNCTextTexture Live-Boot-Screen
disc-warsDisc-Combat (Phase-1-Slice)Standard, GridWallMaterial(lokal)Amb, SpotBloomOctreeEmissivePulseFPSShockwave-Shader, MazeGenerator
light-cycle-arenaTron-DuellStandard, WireframeAmbBloombewusst kein PhysicsSystem (ArenaGrid)GridMovementISOMETRICZeitverzerrungs-Mechanik
neon-labyrinthMulti-Floor-ParkourStandard, FrostglassAmb, Spot, PointBloomOctree, handgerolltRotator, Bobbing, Proximity, SquashStretch + lokaleFPSFrostglas-Sichtbarkeit, Void-Catch, Hit-Stop
yadRetro-Dungeon-ShooterStandard, Sprite, FluidSurfaceAmb, Dir, PointQuantizeSpatialHash+Collision+RaycasterBobbing, Proximity + EnemyBehaviorFPS+ZoomGridLevelBuilder, TextureArray, 3D-Audio

Historisches Befund-Muster: Nur 3 von 30 (Plinko #21, Akkretionsscheibe #22, Marble Run #23) nutzten überhaupt RigidBody+PhysicsSystem — „nur 3 von 30" bezog sich auf die damalige 30er-Gesamtzahl inkl. Apps. Der Rest baute Physik pro Showcase händisch nach (Q&A im Backlog zur Einordnung).

Veröffentlicht unter der MIT-Lizenz.