Feature roadmap for OpenRocket 2.0 ---------------------------------- Must have: - Logging system into use - Reduce memory footprint - Reduce memory leakage Maybe: - Water rocket modeling Done: In 1.1.0: - Reading .RKT - Central logging system - Simulation refactoring In 1.1.1: - Load thrust curves from external directory - Support duplicate motor definitions - Combine duplicates into one display in the selection dialog - A single manufacturer/designation can contain multiple thrust curves - Delays are combined - Type is selected based on any not-unknown type - Hybrid type always includes P delay - Default delay selected based on heuristics - Store recently used motors, use in default selection - Plot motor thrust curve - Change databases and icon loading to bean instances, implement stubs for unit tests - Remove database etc. initialization from class initialization, create separate set of test motors More ideas: ----------- Memory usage: - Store data as floats instead of doubles - Reduce memory leakage when closing windows - Make simulation data immutable, don't store copies in undo/redo - Profile memory usage during operation (send data to server?) - Warn user when 90% of memory is used, offer to send info to server Motor support: - Integration with thrustcurve.org (syncing?) - Water rocket modeling Optimization: - Automatic general rocket optimizer (for altitude, velocity, duration etc) that allows changing any rocket parameters for optimization - Analysis of various motors for the rocket. Search all motors by diameter, impulse range, manufacturer, simulate them and present the results. Running: - Windows executable wrapper (launch4j?) - Allow only one instance of OpenRocket running (RMI communication?) - Running/simulating from command line UI issues: - Easy/intuitive zooming of plots - Open recent designs - Only schedule rocket figure update instead of each time updating it - Importing flight data (file/altimeter) - Saving as SVG - Implement setDefaults() method for RocketComponent - BUG: Inner tube cluster rotation, edit with spinner arrows, slider wrong - NAR/CNES/etc competition validity checking - Print support - Drag and drop of components / other table items - Ctrl+scroll wheel to zoom in/out - Move components by dragging on the figure - Add tool tips to component tree and figure, display component comment - Make simulation table columns configurable Simulation: - Landing scatter plots - Simulate other branches - Remove need for 5m launch rod in real-time simulations (reduces apogee) A simulation listener that checks when sufficient velocity has been reached? - [BUG] Take single-fin cant yaw effect into account Structural analysis: - Run a simulation with each step doing a component analysis - Compute the force between different components: - between body components (pushing against and pulling apart) - inner tubes and the parent body tubes - lateral forces on fins - individual fin normal forces? - Take into account acceleration, drag, gravity - Plot forces against time Component support: - Screw weights for nose cones / transitions - Support for external pods - Support for tube fins - Allow ejecting mass components (or all components?) at specific flight events File support: - Reading (and writing?) SpaceCad format - Writing .RKT format ? Refactoring tasks: - Extract event rules and data saving from Simulator into listeners? - Change SimulationStatus to include methods for obtaining basic position (maybe even change to an interface, implements Cloneable)