SOURCE / PINNED RELEASE
Made of little things.
Impact Yard
- Release
- 09fe6aebec3c…
- Author-recorded commit
- 0696a4211733…
- License
- LICENSE
- Author’s source reference
- nostr://npub1n8ga89w8h6tvwamxusfyzexw8gjy84yxu9rxgnmk955cxtml4ujswzxydd/wss%3A%2F%2Fgit.napplet.soy%2F/n-0b3d7b60562
Archive hash verified: 823f5de0d2677ef2…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#182420" />
<title>Impact Yard</title>
</head>
<body>
<main id="app">
<canvas id="scene" tabindex="0" aria-label="Driving simulator. W or up to accelerate, S or down to reverse, A and D to steer, space to brake. R recovers the car. C changes the camera."></canvas>
<div class="topline">
<div class="location"><span class="live-dot"></span><span>Test yard <span class="location-detail">/ Free drive</span></span></div>
<div class="toolbar" aria-label="Simulation controls">
<button id="slow" title="Toggle slow motion" aria-label="Toggle slow motion" aria-pressed="false"><span class="button-icon">◷</span><span class="button-label">1× speed</span></button>
<button id="pause" title="Pause simulation" aria-label="Pause simulation" aria-pressed="false"><span class="button-icon">Ⅱ</span></button>
<span class="divider"></span>
<button id="rebuild" class="primary" title="Rebuild yard" aria-label="Rebuild yard"><span class="button-icon">↻</span><span class="button-label">Rebuild yard</span></button>
</div>
</div>
<aside class="yard-guide" aria-label="Yard structures">
<div class="panel-label">STRUCTURES <span id="structure-count">7</span></div>
<div id="structure-list"></div>
<div class="guide-note"><span class="small-dot"></span>Every piece reacts to impact</div>
</aside>
<div class="scene-tools">
<button id="camera" title="Change camera (C)" aria-label="Change camera"><svg viewBox="0 0 20 20" fill="none" aria-hidden="true"><path d="M3 6h3l1.5-2h5L14 6h3v10H3z"/><circle cx="10" cy="10.5" r="2.5"/></svg><span id="camera-label">Chase camera</span><kbd>C</kbd></button>
<button id="recover" title="Recover car (R)" aria-label="Recover car"><span class="button-icon">↥</span><span class="button-label">Recover car</span><kbd>R</kbd></button>
</div>
<div id="status" class="status" role="status">Starting the yard…</div>
<div class="bottomline">
<section class="speedometer" aria-label="Vehicle speed">
<div class="speed-reading"><span id="speed">0</span><div><span class="unit">KM/H</span><span id="gear">N</span></div></div>
<div class="speed-track"><span id="speed-fill"></span></div>
<div class="speed-caption"><span>0</span><span>50</span><span>100</span></div>
</section>
<div class="keyboard-help"><div><kbd>W</kbd><span>Accelerate</span><kbd>S</kbd><span>Reverse</span></div><div><kbd>A</kbd><kbd>D</kbd><span>Steer</span><kbd class="space-key">SPACE</kbd><span>Brake</span></div></div>
<section class="telemetry" aria-label="Impact telemetry"><div><span class="panel-label">DISPLACED</span><strong><span id="displaced">0</span><small id="prop-total">/ 0</small></strong></div><div><span class="panel-label">PEAK IMPACT</span><strong><span id="impact">0</span><small>km/h</small></strong></div></section>
</div>
<div class="touch-controls" aria-label="Driving controls">
<div class="steer-controls"><button data-drive="left" aria-label="Steer left">←</button><button data-drive="right" aria-label="Steer right">→</button></div>
<div class="pedal-controls"><button data-drive="brake" class="brake" aria-label="Brake">■</button><button data-drive="reverse" aria-label="Reverse">↓</button><button data-drive="forward" class="accelerate" aria-label="Accelerate">↑</button></div>
</div>
<div id="paused-notice" hidden><span>Simulation paused</span><button id="resume">Resume driving <span>▶</span></button></div>
<button id="retry" hidden>Reload simulator</button>
</main>
<script type="module" src="/src/main.ts"></script>
</body>
</html>