update to 0.9.7pre
[debian/openrocket] / TODO
diff --git a/TODO b/TODO
index a44b0c6b067c968fe9d6931343cba3a3ca836f34..ec1e28876b5c54e261f19f83cfd9390a00cf19d8 100644 (file)
--- a/TODO
+++ b/TODO
 
 Feature roadmap for OpenRocket 1.0
+----------------------------------
 
 
 Must-have:
 
-- Exporting flight data
-- Store custom materials
-- Read more thrust curve formats / go through thrust curves and correct errors
-- Create application icon and take into use
-- Fix engine block icons
-- Better error/warning dialogs when reading/writing files
+- Go through thrust curves and select best ones
+- Updated splash screen
 
 
 Maybe:
 
-- Reading (writing) .RKT format
-- Showing events in plots
-- Through-the-wall fins
-- Make ThicknessRingComponent implement RadialParent and allow
-  attaching components to a TubeCoupler
-- Reading thrust curves from external directory
+
 
 
 Postponed:
+----------
 
-- Importing flight data
 
+Memory usage:
 
-Done:
+- 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
+
+
+Motor support:
+
+- Integration with thrustcurve.org (syncing?)
+- Reading thrust curves from external directory
+- Plot motor thrust curve
+- Water rocket modelling
+
+
+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:
+
+- 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
+- Progress bar during startup
 
+
+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?
+
+
+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
+
+
+File support:
+
+- Reading (and 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)
+- 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