Trajectories

This commit is contained in:
2026-03-04 20:29:19 +00:00
parent 6af56f478f
commit 1b15384c10
20 changed files with 4825 additions and 71 deletions

137
README.md
View File

@@ -1,57 +1,122 @@
# RocketTools - Rocket Propulsion Engineering Calculator
# RocketTools Rocketry Equation Solver & Design Suite
RocketTools is a web-based application that provides engineering calculators and tools for rocket propulsion. Built with React and Vite, it serves both students learning aerospace engineering concepts and professional engineers performing complex propulsion calculations.
A modern web-based rocket engine and vehicle design calculator built with **React + Vite**, featuring constraint-based equation solving, 3D modeling, and trajectory simulation.
## Project Status
## Features
✅ Documentation Finalized and Approved
✅ Core Functionality Implemented
🚧 Additional Features in Development
### 🧮 Solver
- **Constraint propagation solver** for rocket equations
- Drag-and-drop variable palette with live computation
- Automatically solves for unknowns given constraints
- Covers thrust, Isp, chamber conditions, nozzle geometry, performance metrics
## Key Features
### 🔥 Engine Design
- **Chamber & nozzle calculations** (pressure, temperature, area ratios)
- **Ablative material erosion** with pressure-dependent rates
- **Structural sizing** (hoop stress, wall thickness, mass budget)
- **Injector & coolant design** options
- Export/import engine specs as JSON
- **Equation Solver**: Drag-and-drop interface for rocketry variables with automatic solving
- **Engine Designer**: 3D visualization of engine models using React Three Fiber
- **Knowledge Base**: Reference materials for fuels and oxidizers
- **Export Capabilities**: Save results in ODT and JSON formats
### 🚀 Rocket Design
- **Vehicle geometry** with configurable tank layouts (tandem, coaxial)
- **Tank structural analysis** (domes, ullage, pressure-fed/pump-fed)
- **Nose cone profiles** (conical, tangent ogive, Von Kármán)
- **Mass budget** integration (payload, structure, engines, pressurant)
- **3D visualization** with interactive model
## Project Documentation
### 📈 Trajectory Simulation
- **RK4 integrator** for realistic flight paths
- **Atmospheric model** (US Standard piecewise)
- **Drag & gravity** effects
- **Pitch program** (vertical hold → gravity turn)
- **Event detection** (liftoff, MECO, Max Q, apogee, landing)
- **Playback controls** with timeline scrubber
All project documentation has been finalized and approved:
### 📚 Knowledgebase
- **Fuels & oxidizers** library with propellant properties
- **Ablative materials** with pressure exponents
- **Structural materials** with yield strengths
- **Equation reference** with derivations
- [Project Overview (Final)](PROJECT_OVERVIEW_FINAL.md)
- [Project Structure (Final)](PROJECT_STRUCTURE_FINAL.md)
- [Approved Consolidated Document](ROCKETTOOLS_PROJECT_APPROVED.md)
- [Stakeholder Overview](PROJECT_DESCRIPTION_STAKEHOLDER.md)
- [Consolidated Refined Documentation](ROCKETTOOLS_CONSOLIDATED_REFINED.md)
- [Consolidated Refined Documentation](ROCKETTOOLS_CONSOLIDATED_REFINED.md)
## Quick Start
### Installation
```bash
npm install
```
### Development
```bash
npm run dev
```
Opens at `http://localhost:5173`
### Build
```bash
npm run build
```
## Technology Stack
- React 19 with Vite
- React Three Fiber for 3D visualization
- DnD Kit for drag-and-drop functionality
- TailwindCSS for styling
- React Router for navigation
- **Framework**: React 19 + React Router
- **Build**: Vite 7.3
- **Styling**: Tailwind CSS v4
- **3D Graphics**: Three.js + @react-three/fiber
- **UI**: @dnd-kit (drag-and-drop), @react-three/drei
## Development Setup
## Core Architecture
```bash
npm install
npm run dev
See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for detailed:
- Module organization
- Data flow patterns
- Solver algorithm
- 3D rendering pipeline
## Feature Documentation
Comprehensive guides for each module:
- **[Solver Guide](docs/SOLVER.md)** — Constraint propagation system, equation definitions
- **[Engine Design](docs/ENGINE_DESIGN.md)** — Combustion, ablation, structural analysis
- **[Rocket Design](docs/ROCKET_DESIGN.md)** — Tank geometry, mass budget, 3D modeling
- **[Trajectory Simulation](docs/TRAJECTORY.md)** — RK4 integration, atmosphere, events
- **[Knowledgebase](docs/KNOWLEDGEBASE.md)** — Fuels, materials, reference equations
## Project Structure
```
src/
├── pages/ # Route pages
├── components/ # React components
├── hooks/ # Custom React hooks (state management)
├── engine/ # Core calculations & algorithms
│ ├── variables.js # Variable definitions
│ ├── equations.js # Equation library
│ ├── solver.js # Constraint solver
│ ├── engineDesignCalcs.js # Engine calculations
│ ├── rocketDesignCalcs.js # Vehicle calculations
│ ├── trajectoryCalcs.js # Trajectory simulation
│ └── knowledgebaseData.js # Material databases
└── App.jsx # Router configuration
```
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
## Development Tips
Currently, two official plugins are available:
### Adding an Equation
1. Define variables in `src/engine/variables.js`
2. Add equation + solver in `src/engine/equations.js`
3. Automatically appears in solver palette
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
### Modifying Materials
- Edit `src/engine/knowledgebaseData.js`
- Changes auto-reflect via hot reload
## React Compiler
### Extending 3D Models
- Rocket: `src/components/rocket/RocketModel3D.jsx`
- Trajectory: `src/components/trajectory/TrajectoryPlot.jsx`
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
## License
## Expanding the ESLint configuration
Open-source. See LICENSE for details.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
**Built with ❤️ for rocketry engineers and enthusiasts.**