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.