todo file
[debian/openrocket] / TODO
1
2 Feature roadmap for OpenRocket 2.0
3 ----------------------------------
4
5 Must have:
6
7 - Logging system into use
8 - Reduce memory footprint
9 - Reduce memory leakage
10 - Load thrust curves from external directory
11 - Support duplicate motor definitions
12
13
14 Maybe:
15
16 - Water rocket modeling
17
18
19
20 More ideas:
21 -----------
22
23
24 Memory usage:
25
26 - Store data as floats instead of doubles
27 - Reduce memory leakage when closing windows
28 - Make simulation data immutable, don't store copies in undo/redo
29 - Profile memory usage during operation (send data to server?)
30 - Warn user when 90% of memory is used, offer to send info to server
31
32
33 Logging:
34
35 - Implement a central logging system
36   - takes messages with different priorities
37   - converts them into LogLine's that are passed to log handlers
38   - printing log handler and storing log handler
39   - bug reports to contain last ~50 log lines
40 - LogLine
41   - contains TraceException for log position information
42   - contains sequential number
43 - log storing handler stores separately debug and info/warn levels
44 - remove all System.out/err writing, replace with logging
45
46
47 Motor support:
48
49 - Combine duplicates into one display in the selection dialog
50   - A single manufacturer/designation can contain multiple thrust curves
51   - Delays are combined
52   - Type is selected based on any not-unknown type
53   - Hybrid type always includes P delay
54   - Default delay selected based on heuristics
55   - Store recently used motors, use in default selection
56 - Integration with thrustcurve.org (syncing?)
57 - Reading thrust curves from external directory
58 - Plot motor thrust curve
59 - Water rocket modelling
60
61
62 Optimization:
63
64 - Automatic general rocket optimizer (for altitude, velocity, duration etc)
65   that allows changing any rocket parameters for optimization
66 - Analysis of various motors for the rocket.  Search all motors by
67   diameter, impulse range, manufacturer, simulate them and present the
68   results.
69
70
71 Running:
72
73 - Windows executable wrapper (launch4j)
74 - Allow only one instance of OpenRocket running (RMI communication)
75 - Running/simulating from command line
76
77
78 UI issues:
79
80 - Easy/intuitive zooming of plots
81 - Only schedule rocket figure update instead of each time updating it
82 - Importing flight data (file/altimeter)
83 - Saving as SVG
84 - Implement setDefaults() method for RocketComponent
85 - BUG: Inner tube cluster rotation, edit with spinner arrows, slider wrong
86 - NAR/CNES/etc competition validity checking
87 - Print support
88 - Drag and drop of components / other table items
89 - Ctrl+scroll wheel to zoom in/out
90 - Move components by dragging on the figure
91 - Progress bar during startup
92
93
94 Simulation:
95
96 - Landing scatter plots
97 - Simulate other branches
98 - Remove need for 5m launch rod in real-time simulations (reduces apogee)
99   A simulation listener that checks when sufficient velocity has been reached?
100 - [BUG] Take single-fin cant yaw effect into account
101
102
103 Structural analysis:
104
105 - Run a simulation with each step doing a component analysis
106 - Compute the force between different components:
107   - between body components (pushing against and pulling apart)
108   - inner tubes and the parent body tubes
109   - lateral forces on fins
110   - individual fin normal forces?
111 - Take into account acceleration, drag, gravity
112 - Plot forces against time
113
114
115 Component support:
116
117 - Screw weights for nose cones / transitions
118 - Support for external pods
119 - Support for tube fins
120
121
122 File support:
123
124 - Reading (and writing) .RKT format
125
126
127 Refactoring tasks:
128
129 - Move startup class to src14 directory, remove reflection
130 - Remove database etc. initialization from class initialization,
131   create separate set of test motors
132 - Extract event rules and data saving from Simulator into listeners
133 - How to handle different simulation situations elegantly
134   (launch rod, free flight, recovery)
135 - Change SimulationStatus to include methods for obtaining basic
136   position (maybe even change to an interface, implements Cloneable)
137 - Modularize calculators, simulators, atmospheric conditions, etc.
138 - Change Motor (immutable) to be a factory of MotorInstance (stateful)
139
140
141
142 Done:
143 -----
144
145 - Reading .RKT format