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>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user