Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AeroMind — Drone Avionics Training Simulator

A 3D drone training simulator that teaches new operators pitch, roll, yaw, throttle, telemetry literacy, and safe operating behavior before they ever touch real hardware. Every control input becomes a visible, explained lesson.

Educational civilian flight-training simulation — not a real drone control system.

status stack license


✦ Live demo

The prototype is a single self-contained HTML file — no build step, no install.

  • Run locally: open index.html in any modern browser.
  • Deploy: drag this folder into Vercel, Netlify, or enable GitHub Pages. It is a static site; no configuration needed.
  • Full guide: see DEPLOYMENT.md for step-by-step deploy paths, pre/post-deploy checklists, an offline (CDN-free) fallback, and troubleshooting.
# optional: run a local server (nicer than file://)
npx serve .
# then open the printed http://localhost:3000

✦ What it does

Pillar In the simulator
Beginner-friendly explanations Plain-language concept card on every module
Interactive 3D demonstrations Rendered quadcopter, training field, real-time flight
Visual cause-and-effect learning Movement/thrust arrows, tilt + angle readouts, rings that light up
Input → Physics → Explanation Live feed narrates what just happened on every keypress
HUD / telemetry literacy Altitude, speed, heading, battery, GPS, signal, wind, mode + colour-coded warnings
Safety-first behavior Forgiving stabilised flight; smoothness is scored, not speed
Scenario-based learning Low battery, wind drift, signal loss, Return-to-Home
Mistake feedback & assessment Auto-detected objectives, stability score, letter-grade debrief
Procedural audio Throttle-linked motor bed, arming, ring/objective chimes, low-battery & RTH alerts — all Web Audio, no assets
Controller support Gamepad auto-detected; analog sticks map to a real transmitter layout, keyboard always works
Premium feel Boot/arming sequence, hover bob, rotor wash, rim lighting, animated objective completions
Comfort & access Mute, volume, reduced-motion toggle, replayable onboarding, full keyboard help — preferences persist
Collision realism The tower, pillars, cones and markers are solid — strikes bounce the aircraft, cost stability score, and explain the real-world damage

✦ Controls

Both keyboard and gamepad work simultaneously. A connected controller maps to a real transmitter layout (left stick = throttle/yaw, right stick = pitch/roll) and gives smooth analog input; the keyboard gives full-deflection digital input.

Key Action Behavior
W / S Pitch Nose dips & moves forward / lifts & moves back
A / D Roll Banks & strafes left / right (no turn)
Q / E Yaw Rotates left / right in place
Space / Shift Throttle Climb / descend
H Mode Toggle stabilisation vs. manual
R Reset Return to pad, full battery
C Camera Chase → orbit → top-down
M Mute Toggle all sound
? Help Controls & telemetry overlay
P Settings Sound, volume, reduced motion, onboarding
Esc Close Dismiss any open overlay
Gamepad Action
Left stick Throttle (Y) · Yaw (X)
Right stick Pitch (Y) · Roll (X)
Triggers Fine throttle
A · B · Y / Start Stabilise toggle · Reset · Cycle camera

With a controller connected, Settings (P) shows live axis bars and an adjustable stick deadzone — raise it if the drone creeps with the sticks centred.

Mouse: in Anatomy mode, click drone parts to inspect them.

Safety failsafe. When battery gets critical or the control link is lost, the aircraft sounds an alert and automatically engages Return-to-Home, flying itself back to the launch pad and landing — pilot input is locked out so the failsafe can finish, exactly as on real hardware.


✦ Training modules

Anatomy → Throttle → Pitch → Roll → Yaw → Combined Mission → Avionics → Precision Landing → Failure Scenarios (Low Battery · Wind Drift · Signal Loss · GPS Degraded)

Each module has a concept card, an auto-detected mission, a stability score, and a debrief. See case-study.md for the product story and docs/AeroMind_Design_and_Case_Study.md for the full design specification.


✦ Project structure

aeromind-drone-simulator/
├── index.html        # the simulator (self-contained, Three.js via CDN)
├── README.md         # this file
├── case-study.md     # portfolio case study (the product story)
├── assets/
│   ├── screenshots/  # drop captured screenshots here
│   └── preview.svg   # social/preview poster (replace with preview.gif when recorded)
├── docs/
│   └── AeroMind_Design_and_Case_Study.md   # full design specification
└── dev/
    └── _check.js     # extracts the inline script and runs `node --check`

✦ Scaling to a production stack

The prototype is intentionally dependency-free. When you want a maintainable codebase, migrate to:

React + TypeScript + Vite · React Three Fiber + Drei · Rapier physics · Zustand · Tailwind CSS · Blender (glTF) · GitHub → Vercel

Suggested components mirror the prototype's internal regions: SimulatorScene, DroneModel, HUD, ControllerPanel, LessonPanel, ExplanationFeed, MissionBar, TrainingOverlay. Keep lesson content as reusable data so adding a module is a data change, not new rendering code. Full build order in the design doc.


✦ Development

node dev/_check.js   # syntax-check the simulator's inline JavaScript

✦ Scope & honesty

AeroMind teaches lawful, safety-first operation of standard consumer/commercial drones. It deliberately excludes tactical, weaponised, surveillance, or unauthorized-operation use cases. The physics are a training abstraction tuned for learning clarity — the goal is correct intuition and safe habits, not engineering-accurate flight modelling.

License

MIT — free to use, learn from, and adapt.

About

AeroMind FlightLab is a 3D drone avionics training simulator that teaches pitch, roll, yaw, throttle, telemetry awareness, and safe flight behavior before operators interact with real hardware.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages