ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.