# 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