-Feature roadmap for OpenRocket 1.0
+Feature roadmap for OpenRocket 2.0
+----------------------------------
+Must have:
-Must-have:
+- Logging system into use
+- Reduce memory footprint
+- Reduce memory leakage
-- Draw remaining event icons (for 0.9.3)
-- Change automatic exception reporting success code to 202 (for 0.9.3)
-- Test automatic exception reporting (for 0.9.3)
-- Allow editing user-defined materials
-- Go through thrust curves and correct errors
-- Add styrofoam and depron materials
-- Through-the-wall fins
-- Update "About" dialog with icon and source info
+Maybe:
+- Water rocket modeling
-Bugs:
-- Simulation plot dialog forces dialog one button row too high (All/None)
-- JTree text is cropped unnecessarily
-- BUG: Inner tube cluster rotation, edit with spinner arrows, slider wrong
+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.
-Maybe:
-- Make ThicknessRingComponent implement RadialParent and allow
- attaching components to a TubeCoupler
-- Reading thrust curves from external directory
+Running:
+- Windows executable wrapper (launch4j?)
+- Allow only one instance of OpenRocket running (RMI communication?)
+- Running/simulating from command line
-Postponed:
-- Allow only one instance of OpenRocket running (RMI communication)
+UI issues:
+
+- Easy/intuitive zooming of plots
+- Open recent designs
- Only schedule rocket figure update instead of each time updating it
-- Reading (writing) .RKT format
-- Importing flight data
-- Water rocket modelling
+- 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
-Done:
+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)
-- Search field in motor selection dialog
-- Motor selection/editing from Edit configurations dialog
-- Change FreeformFinSet to throw checked exceptions
-- Fix engine block icons
-- Exporting flight data
-- Split cluster into separate components
-- Create application icon and take into use
-- Error dialog for uncaught exceptions
-- Check where plot data ends (all rest NaN)
-- Example rocket designs (hybrid w/ dual deployment, staged rocket)
-- Better error/warning dialogs when reading/writing files
-- Store custom materials
-- Read more thrust curve formats
-- Showing events in plots
-- Table boolean selecting by clicking label