- Detailed flight dynamics: aero lift/drag/side-force with smooth stall, control-surface moments, stability derivatives, engine spool with prop torque and gyro precession, inertial coupling, ISA atmosphere, ground effect, 3-point gear handling, landing vs crash classification. - Pure ESM, zero build step; three.js vendored locally. Deterministic simulation; physics core is Node-testable (14 node:test cases). - Procedural 8 km world with runway, water, sky dome, cloud wrap; DOM instrument panel (attitude indicator, tapes, VSI, lamps, stall warning). - Controls: WASD/arrows, Q/E rudder, Shift/Ctrl throttle, F flaps, G gear, B brakes, C camera (chase/cockpit/orbit), R reset, P pause, D debug.
48 lines
1.8 KiB
HTML
48 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Flight Sim</title>
|
|
<link rel="icon" href="data:,">
|
|
<link rel="stylesheet" href="./css/style.css">
|
|
</head>
|
|
<body>
|
|
<canvas id="sim" tabindex="0"></canvas>
|
|
|
|
<div id="hud"></div>
|
|
|
|
<div id="start-overlay" role="button" aria-label="Start flight simulator">
|
|
<div class="start-card">
|
|
<h1 class="start-title">FLIGHT SIM</h1>
|
|
<p class="start-sub">A deterministic 6-DOF prop aircraft over a procedural world. No assets, no network — raw Three.js.</p>
|
|
|
|
<table class="start-controls">
|
|
<thead>
|
|
<tr><th>Key</th><th>Command</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>W / S</td><td>Elevator — pitch up / down</td></tr>
|
|
<tr><td>A / D</td><td>Aileron — bank left / right</td></tr>
|
|
<tr><td>↑ / ↓</td><td>Elevator (arrow keys)</td></tr>
|
|
<tr><td>← / →</td><td>Aileron (arrow keys)</td></tr>
|
|
<tr><td>Q / E</td><td>Rudder — yaw left / right</td></tr>
|
|
<tr><td>Shift / Ctrl</td><td>Throttle up / down</td></tr>
|
|
<tr><td>F</td><td>Flaps 0 → 25% → 50% → 100%</td></tr>
|
|
<tr><td>G</td><td>Gear up / down</td></tr>
|
|
<tr><td>B</td><td>Brakes on / off</td></tr>
|
|
<tr><td>C</td><td>Camera view</td></tr>
|
|
<tr><td>R</td><td>Reset flight</td></tr>
|
|
<tr><td>P</td><td>Pause</td></tr>
|
|
<tr><td>D</td><td>Debug overlay</td></tr>
|
|
<tr><td>S / Enter</td><td>Sound on / off</td></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<button type="button" id="start-btn">CLICK TO START</button>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="module" src="./src/main.js"></script>
|
|
</body>
|
|
</html> |