X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=TODO;h=f3f97c5b5ff56bd3891b44d2ea5c4c3ba380d374;hb=36a7942e7433b8493e4142a5f3dd85a956bb498b;hp=ec071f934ae9819e79370926c39eb64b0a1ac4a1;hpb=d23932f311312abb73801262a80ef2f6bc66818d;p=debian%2Fopenrocket diff --git a/TODO b/TODO index ec071f93..f3f97c5b 100644 --- a/TODO +++ b/TODO @@ -1,91 +1,135 @@ -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 correct errors -or -- Hide duplicate motors +Maybe: -Bugs: +- Water rocket modeling +Done: -Maybe: +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 -- Re-investigate 15% reduction of three-fin CNa -- Take into account all fins in interference effects -- Add slight randomness to yaw moment -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?) +- 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 modeling -- Screw weights for nose cones / transitions -- Windows executable wrapper (launch4j) -- Allow only one instance of OpenRocket running (RMI communication) +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 -- Reading (writing) .RKT format - Importing flight data (file/altimeter) -- Water rocket modelling -- Landing scatter plots -- Simulate other branches +- 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 -- Running from command line - Print support -- 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 +- Add tool tips to component tree and figure, display component comment +- Make simulation table columns configurable -Refactoring tasks: +Simulation: -- 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 -- Change SimulationStatus to include methods for obtaining basic - position (maybe even change to an interface, implements Cloneable) -- Change Motor (immutable) to be a factory of MotorInstance (stateful) +- 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: -Done: +- 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 -- 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