X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=TODO;h=ed0d27c79e004cde0c69912629429dbb7782859c;hb=198227dc14b96901f3105fd816b6a9b84993adef;hp=40eb4493bd3a741bddb028f4891f7d613b76a25a;hpb=0d0afe488300aca47d09ac7651f8185190afb21f;p=debian%2Fopenrocket diff --git a/TODO b/TODO index 40eb4493..ed0d27c7 100644 --- a/TODO +++ b/TODO @@ -1,50 +1,142 @@ -Feature roadmap for OpenRocket 1.0 +Feature roadmap for OpenRocket 2.0 +---------------------------------- -Must-have: +- Logging system into use +- Reduce memory footprint +- Reduce memory leakage +- Load thrust curves from external directory +- Support duplicate motor definitions -- Store custom materials -- Better error/warning dialogs when reading/writing files -- Example rocket designs (hybrid w/ dual deployment, staged rocket) -- Read more thrust curve formats / go through thrust curves and correct errors -- Add styrofoam and depron materials -Bugs: -- JTree text is cropped unnecessarily -- Inner tube cluster rotation, edit with spinner arrows, slider wrong -Maybe: +Postponed: +---------- + + +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 + + +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: -- Showing events in plots -- Through-the-wall fins -- Make ThicknessRingComponent implement RadialParent and allow - attaching components to a TubeCoupler +- 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 +- 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: + +- Easy/intuitive zooming of plots - Only schedule rocket figure update instead of each time updating it -- Allow only one instance of OpenRocket running +- 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 -Postponed: +Simulation: -- Reading (writing) .RKT format -- Importing flight data -- Water rocket modelling - 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 + -- 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) +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: +----- +- Reading .RKT format \ No newline at end of file