2012-01-08 02:49:21 +00:00

136 lines
3.5 KiB
Plaintext

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)