music-video-gen/flow-state/checks.html
Dejvino 7e31c19d6e Phase 0: determinism spine
Engine core: Timeline (fixed dt, audio-mastered in realtime), seeded Rng,
Renderer, Layer/ShaderLayer/SceneLayer, Compositor with blend modes,
feedback and post chain.

Shader scenes are compiled against a fixed uniform contract and define only
`vec4 scene(vec2 uv, vec2 p)`, so adding a scene costs a shader plus a
params block. Deep Nebula ported from party-stage as the first one.

Gate passes, 7/7 in checks.html:
- 300 frames rendered twice are bit-identical
- a fresh Engine reproduces the same frames
- simulated dropped frames change nothing (proves dt is fixed)
- seek matches sequential playback
- 320x180 vs 1280x720 agree within 0.010 (limit 0.06)
- seeded rng reproducible, forked streams independent
- compositor reset clears feedback history

Static gates: no wall-clock or unseeded randomness in deterministic
directories; scene schemas and shader sources agree in both directions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 10:59:30 +02:00

43 lines
1.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flow-state · checks</title>
<style>
:root { color-scheme: dark; }
body {
margin: 0; padding: 24px;
background: #0b0d12; color: #d6dae3;
font: 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
}
h1 { font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: #7d8698; margin: 0 0 4px; }
#summary { margin: 0 0 20px; font-size: 14px; }
#summary.ok { color: #4ade80; }
#summary.bad { color: #f87171; }
.row {
display: grid; grid-template-columns: 52px 34px 1fr 60px;
gap: 10px; align-items: baseline;
padding: 7px 10px; border-left: 3px solid transparent; margin-bottom: 2px;
background: #11141b;
}
.row.pass { border-color: #22c55e; }
.row.fail { border-color: #ef4444; background: #1c1214; }
.row.manual { border-color: #eab308; }
.badge { font-weight: 700; font-size: 11px; }
.pass .badge { color: #4ade80; }
.fail .badge { color: #f87171; }
.manual .badge { color: #facc15; }
.phase { color: #6b7280; }
.ms { color: #4b5563; text-align: right; }
.detail { grid-column: 3 / 5; color: #8b93a5; font-size: 12px; }
.detail:empty { display: none; }
</style>
</head>
<body>
<h1>flow-state — phase gates</h1>
<div id="summary">starting…</div>
<div id="results"></div>
<script type="module" src="/src/checks/main.js"></script>
</body>
</html>