137 lines
5.7 KiB
Markdown
137 lines
5.7 KiB
Markdown
# RocketTools - Rocket Propulsion Engineering Calculator
|
|
|
|
## Project Overview
|
|
|
|
RocketTools is a sophisticated web-based engineering calculator specifically designed for rocket propulsion applications. Built with modern web technologies including React, Vite, and React Router, this application serves as a comprehensive platform for both students learning aerospace engineering concepts and professional engineers performing complex propulsion calculations.
|
|
|
|
The application features an intuitive drag-and-drop interface for manipulating variables and solving equations, along with 3D visualization capabilities for engine design. It combines educational content with professional-grade calculation capabilities, enabling users to learn concepts while performing real engineering work.
|
|
|
|
## Key Features
|
|
|
|
### Equation Solver
|
|
- Drag-and-drop interface for rocketry variables
|
|
- Automatic solving of unknowns using constraint propagation
|
|
- Support for scientific notation and unit conversions
|
|
- Export capabilities (ODT, JSON formats)
|
|
|
|
### Engine Designer
|
|
- Configuration tools for combustion chambers, nozzles, and feed systems
|
|
- Live 3D visualization of engine models using React Three Fiber
|
|
- Interactive design parameters
|
|
|
|
### Knowledge Base
|
|
- Reference materials for fuels and oxidizers
|
|
- Educational content for propulsion theory
|
|
|
|
### Planned Features
|
|
- Trajectory Plotter for flight simulation
|
|
- Additional propulsion calculation tools
|
|
|
|
## Technology Stack
|
|
|
|
### Core Technologies
|
|
- **React 19**: Modern UI library for building interactive interfaces
|
|
- **Vite 7**: Next-generation frontend tooling for fast development
|
|
- **React Router 7**: Declarative routing for React applications
|
|
|
|
### Specialized Libraries
|
|
- **DnD Kit**: Complete drag and drop toolkit for React
|
|
- **React Three Fiber**: React renderer for Three.js
|
|
- **Drei**: Useful helpers for React Three Fiber
|
|
- **Three.js**: JavaScript 3D library
|
|
- **JSZip**: JavaScript library for creating, reading and editing .zip files
|
|
|
|
### Development Tools
|
|
- **TailwindCSS**: Utility-first CSS framework
|
|
- **ESLint**: JavaScript linting utility
|
|
- **Vite Plugins**: For enhanced development experience
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
├── components/ # Reusable UI components
|
|
│ ├── engine/ # Engine-specific components
|
|
│ └── rocket/ # Rocket-specific components
|
|
├── pages/ # Page-level components corresponding to routes
|
|
├── engine/ # Core engine calculation logic and data
|
|
├── hooks/ # Custom React hooks for state management
|
|
├── assets/ # Static assets (images, icons, etc.)
|
|
├── App.jsx # Main application component with routing
|
|
└── main.jsx # Application entry point
|
|
```
|
|
|
|
## Component Architecture
|
|
|
|
### UI Components
|
|
- **VariablePalette**: Sidebar component containing draggable variable cards
|
|
- **Workspace**: Central area where users place and manipulate variables
|
|
- **ResultsPanel**: Displays calculation results and provides export functionality
|
|
- **VariableCard**: Individual draggable elements representing rocket variables
|
|
- **PropellantModal**: Modal dialog for selecting propellant properties
|
|
- **EquationBrowser**: Interface for browsing and selecting equations
|
|
|
|
### Pages
|
|
- **Home**: Landing page showcasing available tools
|
|
- **Solver**: Main equation solving interface with drag-and-drop functionality
|
|
- **EnginePage**: Engine design tool with 3D visualization
|
|
- **RocketPage**: Rocket design interface (currently placeholder)
|
|
- **KnowledgebaseFuelsPage**: Reference information about fuels and oxidizers
|
|
|
|
### Business Logic
|
|
Core modules located in `src/engine/`:
|
|
- **equations.js**: Mathematical formulas for rocket propulsion
|
|
- **solver.js**: Constraint propagation algorithm implementation
|
|
- **engineDesignCalcs.js**: Engine design calculations
|
|
- **rocketDesignCalcs.js**: Rocket design calculations
|
|
- **units.js**: Unit conversion utilities
|
|
- **variables.js**: Variable definitions and management
|
|
- **numerics.js**: Numerical methods and algorithms
|
|
- **format.js**: Formatting utilities for display
|
|
|
|
### State Management
|
|
Custom React hooks in `src/hooks/`:
|
|
- **useSolver**: Core state management for the equation solver
|
|
- **useEngineDesign**: State management for engine design
|
|
- **useRocketDesign**: State management for rocket design
|
|
|
|
## Target Audience
|
|
|
|
- Aerospace engineering students at universities and colleges
|
|
- Professional rocket engineers in industry
|
|
- Hobbyist rocket enthusiasts with technical interests
|
|
- Educational institutions teaching propulsion and aerospace engineering courses
|
|
|
|
## Development Status
|
|
|
|
✅ Documentation Finalized and Approved
|
|
✅ Core Functionality Implemented
|
|
🚧 Additional Features in Development
|
|
|
|
### Completed Components
|
|
- Core equation solver functionality with drag-and-drop interface
|
|
- Engine designer with 3D visualization capabilities
|
|
- Knowledge base with propellant reference data
|
|
- Export functionality for results in ODT and JSON formats
|
|
- Responsive UI design using TailwindCSS
|
|
|
|
### Upcoming Development Priorities
|
|
- Implementation of trajectory plotting capabilities
|
|
- Expansion of the knowledge base with additional educational content
|
|
- Performance optimizations for complex calculations
|
|
- Enhanced export options
|
|
|
|
## Success Criteria
|
|
|
|
- Positive feedback from target user groups during beta testing
|
|
- Accuracy of engineering calculations validated against established methods
|
|
- Responsive interface with load times under 2 seconds
|
|
- Complete documentation covering all tools and features
|
|
- Successful deployment with 99% uptime over a 30-day period
|
|
|
|
## Project Constraints
|
|
|
|
- Single developer project with limited resources
|
|
- Web-based delivery requiring modern browser support
|
|
- Focus on fundamental rocket propulsion calculations rather than advanced simulations
|
|
- Dependency on third-party libraries that may require updates |