Welcome to Rocket Simulation!, a real-time 3D rocket simulation developed to provide an immersive experience of rocket launches. Navigate using rocket model through realistic atmospheric and orbital environments, with physics-based controls that simulate thrust, drag, and gravity. Built with scientific accuracy in mind, this simulation leverages advanced aerodynamics and Newtonian physics to deliver a highly realistic rocket flight experience. ๐
-
Real-time Rocket Simulation: Launch rockets and control their flight in a fully interactive 3D environment. ๐
-
Physics-Based Mechanics: Includes thrust, drag, gravity, and fuel consumption for realistic flight behavior. ๐
-
Comprehensive Control Panel: Adjust thrust, gimbal angles, pitch, yaw, roll, and stage separation in real-time. โ๏ธ
-
Advanced Camera System:
-
๐ฏ Follow Camera: Tracks the rocket automatically.
-
๐ Orbit Camera: Rotate freely around the rocket.
-
๐ฎ First-Person Camera: Fly with W, A, S, D keys.
-
-
3D Environment:
-
๐ Earth Model and Launch Platform
-
โ๏ธ๐ Advanced Day-Night Lighting
-
๐ช Atmospheric Layers (Troposphere, Stratosphere, Mesosphere/Thermosphere)
-
๐ฐ Special Models (ITE Facutly Model, Custom Syrian Rocket Model)
-
-
Real-Time Data Display: Shows speed, acceleration, mass, fuel level, thrust, and all acting forces.
-
Sound and Visual Effects: Realistic rocket exhaust. ๐
-
Vite Integration: Fast development and build process. โก
The simulation uses accurate physics principles and aerodynamics to model rocket flight:
-
Rocket Mechanics:
- Thrust Control: Adjust rocket engine power to control ascent speed.
- Gravity and Drag: Simulates realistic acceleration and atmospheric resistance.
- Thrust Dynamics: Acceleration calculated based on mass, fuel, and gravity.
-
Aerodynamics & Atmospheric Physics:
- Realistic air drag and atmospheric resistance.
- Density changes through atmospheric layers affect flight.
- Simulates terminal velocity, max Q, and re-entry forces.
-
Collision Detection:
- Rockets cannot pass through terrain or launch pads.
- Collision forces simulate crashes or impacts realistically.
-
Environment Rendering:
- Earth, skyboxes, and space views with lighting and day-night cycles.
- Dynamic visual effects during flight and launch.
- Model: Fly using Syrian Saturn V Model.
- User Interaction & GUI:
- Right GUI: Adjust rocket and environment parameters (fuel, mass, cross-sectional area, drag/lift coefficients, air density, gravity, etc...).
- Environment Interaction:
- Observe rocket through all atmospheric layers and into space.
- Real-Time Data: View detailed data on rocket physics and environment data in a side panel.
- Frontend: Developed using Three.js for real-time 3D rendering. ๐ผ๏ธ
- Bundler: Vite provides fast and efficient build processes. โก
- Node.js: Make sure Node.js is installed.
You can clone the repository using two options:
-
Clone the Repository:
git clone https://github.com/NGPTechWorld/Rocket_Simulation.git
-
Navigate to the Project Directory:
cd Rocket_Simulation
-
Install Dependencies:
npm install
-
Run Locally:
npm run dev
Open the application at http://localhost:5173/.
-
Clone the Repository:
git clone --branch dev-without-models --single-branch --depth 1 https://github.com/NGPTechWorld/Rocket_Simulation.git
-
Navigate to the Project Directory:
cd Rocket_Simulation
-
Download the models separately from here.
-
Extract the downloaded folder and it to the same level or src:
-
Install Dependencies:
npm install
-
Run Locally:
npm run dev
Open the application at http://localhost:5173/.
To create an optimized production build:
npm run build
The project is also deployed and accessible online at https://rocket-simulation-nhoka.vercel.app/.
The full project report is available here. It includes detailed information about the physics, and technical design of the rocket simulation.
We welcome contributions! Hereโs how you can contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
Thanks to all the amazing people who contributed to this project:
This project is licensed under the MIT License.