ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證An interactive, cinematic 3D visualization that explains, step by step, the conceptual stages of ballistic-missile defense systems works.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
An interactive, cinematic 3D visualization that explains, step by step, the conceptual stages of ballistic-missile defense: launch, ascent, radar detection, track establishment, threat assessment, the decision to engage, interceptor launch, interception and post-event analysis.
Educational visualization. The place, objects, distances, timings and the "Patriot-like" defensive system are fictional and deliberately simplified. Nothing here represents the real performance, parameters or procedures of any real system.檢視完整 README ↗An interactive, cinematic 3D visualization that explains, step by step, the conceptual stages of ballistic-missile defense: launch, ascent, radar detection, track establishment, threat assessment, the decision to engage, interceptor launch, interception and post-event analysis.
Educational visualization. The place, objects, distances, timings and the "Patriot-like" defensive system are fictional and deliberately simplified. Nothing here represents the real performance, parameters or procedures of any real system.
A procedural landscape: rolling hills, forests, a meandering river with flowing water, and roads linking a fictional battery to the town it protects.
A living town: Aldmere has houses with gardens, apartment blocks, shops with flats above, an office tower, warehouses, a church and a town hall. It has streets with markings, sidewalks and crossings, two stone bridges, street lights and parked cars, and its windows light up at night.
Realistic explosions:
Sound:
Every sound is synthesized in the browser, so there are no audio files and no licenses. Switch it off with M or set the volume in Settings.
Everything is first-party: models, textures and sounds are generated by the project itself. Nothing is downloaded from third parties, and the app works offline once loaded.
| Area | Technology |
|---|---|
| App | Next.js 16 (App Router), React 19, TypeScript (strict) |
| 3D | three.js, React Three Fiber, drei, postprocessing (bloom, ACES tone mapping) |
| Simulation | Framework-free deterministic engine in src/engine (no React, no three.js) |
| State and data | Zustand stores, Zod-validated scenarios |
| UI | Tailwind CSS 4, Radix primitives, lucide icons |
| Animation | React Three Fiber frame loop; GSAP for camera transitions |
| Sound | Web Audio API, with the sound material generated in a Web Worker |
| Testing | Vitest, Testing Library, Playwright |
Requirements: Node.js 22+ and pnpm 10 (corepack enable provides pnpm).
pnpm install
pnpm dev # http://localhost:3000
Production build:
pnpm build && pnpm start
AeroShield is a standard Next.js app with no backend, database, API keys or environment variables.
pnpm build. It first regenerates the 3D models (pnpm assets:generate, which uses the tsx dev dependency), so the build environment must install dev dependencies. Most hosts do by default.pnpm start. It serves the production build and uses the PORT environment variable if set.packageManager field in package.json.On Vercel, import the repository: it detects Next.js and pnpm from the lockfile, and the default settings work. On any other Node.js host:
pnpm install --frozen-lockfile
pnpm build
PORT=8080 pnpm start
After deploying, put the URL at the top of this README (the line marked LIVE DEMO).
| Command | What it does |
|---|---|
pnpm dev | Development server with hot reload |
pnpm build | Regenerates the GLB models, then builds for production |
pnpm start | Serves the production build |
pnpm typecheck | Strict TypeScript check |
pnpm lint | ESLint (includes a rule keeping the engine free of React/three) |
pnpm format | Prettier (with Tailwind class sorting) |
pnpm test | Unit and component tests (Vitest + Testing Library) |
pnpm test:e2e | End-to-end tests (Playwright; run pnpm build first) |
pnpm verify | Typecheck, lint, unit tests and build in one go |
pnpm assets:generate | Exports the procedural models to public/assets/models/*.glb |
First-time Playwright setup: pnpm exec playwright install chromium.
| Key | Action |
|---|---|
Space | Play / pause |
→ | Step to the next timeline event |
. | Step a single simulation tick |
R | Restart |
1–6 | Camera: Cinematic, Free, Follow target, Follow interceptor, Overview, Top down |
L | Open Learn |
I | Toggle the inspector |
H | Compact or expand both side panels |
M | Sound on / off |
Shift + D / ?debug | Developer diagnostics |
Timeline focused: ← → Home End | Scrub (Shift for 5 s steps) |
On wider screens the side panels follow playback: while the simulation plays they compact to a one-line summary (current stage, decision chain) so the scene stays in view, and they open again when you step (→), pick a timeline event, or the run ends. A plain pause leaves them compact. Each panel has its own compact/expand button; a panel you compact yourself stays compact until you open it. Turn the automatic behaviour off under Settings → Compact panels while playing.
src/
engine/ Deterministic simulation (pure TypeScript: no React, no three.js)
scenarios/ Scenario data, validated with Zod at load
features/ Runtime (engine ↔ app bridge), education content, camera modes, timeline maths, sound start-up
stores/ Zustand stores: simulation view, scenario, camera, UI, settings
components/ React UI: HUD, timeline, panels, accessible primitives
three/ React Three Fiber scene: environment, town, entities, overlays, explosions, cameras
audio/ Synthesized soundscape (Web Audio), driven by simulation state and the camera
app/ Next.js entry (layout, page, global styles)
e2e/ Playwright tests
scripts/ Asset generation
docs/ README screenshots
The 3D view needs WebGL 2 (current Chrome, Edge, Firefox and Safari). Without WebGL the app explains why, and the timeline, controls and explanations keep working. Phones get a simplified layout and the low graphics profile automatically. Sound needs the Web Audio API (all current browsers); where it is missing, the sound controls are hidden.
This project visualizes concepts at the level of a museum exhibit. It does not and must not contain real coordinates, real engagement envelopes, classified or proprietary specifications, real guidance or firing solutions, deployment optimization, or vulnerability analysis. See CONTRIBUTING.md.