**Project Horizon**
I built a custom, real-time **browser flight simulator** from scratch using pure JavaScript and an HTML5 canvas. The rendering engine utilizes custom pseudo-3D matrix projection to dynamically calculate and display infinite terrain grid blocks, including mountain ranges and water tiles, completely independent of external 3D libraries like WebGL or Three.js.
The core of the project is the physical hardware integration. I designed and 3D printed a custom flight yoke assembly that houses a Raspberry Pi 5 equipped with a Sense HAT. The Pi polls the integrated IMU sensor and streams live pitch, roll, and throttle variables over a **local WebSocket server**, allowing the user to manipulate the aircraft's cockpit view seamlessly via physical motion.
The primary technical challenges involved implementing the manual projection mathematics and filtering the raw sensor telemetry to eliminate signal noise and jitter. I am particularly proud of achieving a stable hardware-to-software data stream and developing a high-visibility, responsive glass-cockpit HUD featuring synchronized airspeed and altitude instrument tapes.
**How to Test the Project :**
If you are reviewing this project without the physical Raspberry Pi yoke connected, the flight simulator automatically initializes a desktop fallback mode with interactive manual controls:
- Pitch (Climb/Dive): Use W / S
- Roll (Bank wings): Use A / D
- Throttle (Engine Thrust): Scroll the Mouse Wheel to adjust power linearly from 0% to 100%
- 5 devlogs
- 7h build