-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
-- Go through thrust curves and select best ones
-- Updated splash screen
-- BUG: Invalid fin points possible when removing points
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
+
-Postponed:
-----------
+
+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?)
-
-
-Logging:
-
-- Implement a central logging system
- - takes messages with different priorities
- - converts them into LogLine's that are passed to log handlers
- - printing log handler and storing log handler
- - bug reports to contain last ~50 log lines
-- LogLine
- - contains TraceException for log position information
- - contains sequential number
-- log storing handler stores separately debug and info/warn levels
-- remove all System.out/err writing, replace with logging
+- Warn user when 90% of memory is used, offer to send info to server
Motor support:
- Integration with thrustcurve.org (syncing?)
-- Reading thrust curves from external directory
-- Plot motor thrust curve
-- Water rocket modelling
+- Water rocket modeling
Optimization:
Running:
-- Windows executable wrapper (launch4j)
-- Allow only one instance of OpenRocket running (RMI communication)
+- 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
- Only schedule rocket figure update instead of each time updating it
- Importing flight data (file/altimeter)
- Saving as SVG
- Drag and drop of components / other table items
- Ctrl+scroll wheel to zoom in/out
- Move components by dragging on the figure
-- Progress bar during startup
+- Add tool tips to component tree and figure, display component comment
+- Make simulation table columns configurable
Simulation:
- 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:
File support:
-- Reading (and writing) .RKT format
+- Reading (and writing?) SpaceCad format
+- Writing .RKT format ?
Refactoring tasks:
-- Move startup class to src14 directory, remove reflection
-- Remove database etc. initialization from class initialization,
- create separate set of test motors
-- Extract event rules and data saving from Simulator into listeners
-- How to handle different simulation situations elegantly
- (launch rod, free flight, recovery)
+- 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)
-- Modularize calculators, simulators, atmospheric conditions, etc.
-- Change Motor (immutable) to be a factory of MotorInstance (stateful)
-
-Done:
------
-- 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
-- Test automatic exception reporting (for 0.9.3)
-- Draw remaining event icons (for 0.9.3)
-- Update "About" dialog with icon and source info
-In 0.9.4:
-- Through-the-wall fins
-- Make ThicknessRingComponent implement RadialParent and allow
- attaching components to a TubeCoupler (for 0.9.4)
-- Save file as oldest OpenRocket format possible (for 0.9.4)
-- Non-exception bug handling
-- JTree text is cropped unnecessarily
-- Allow editing user-defined materials
-- [BUG] All configuration dialogs too high
-- Simulation plot dialog forces dialog one button row too high (All/None)
-- Add styrofoam and depron materials
-- Inform user about software updates
-In 0.9.5:
-- Add label to motor panel to tell current number of stages
-In 0.9.6:
-- Take into account all fins in interference effects
-- Two-fin rocket stable at large number of roll angles?!
-- Add slight randomness to yaw moment
-- Update simulation time step filtering from exponential MA to
- exponential growth until time step is reached (t1 = 1.5*t0)
-- Limit time step during while on launch rod
-- Re-investigate 15% reduction of three-fin CNa
-In 0.9.7:
-- BUG: Simulation table max. acceleration takes into account parachute deceleration