Major refactoring for 1.1.1
[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 Done:
20
21 - Reading .RKT
22 - Central logging system
23 - Simulation refactoring
24
25
26
27 More ideas:
28 -----------
29
30
31 Memory usage:
32
33 - Store data as floats instead of doubles
34 - Reduce memory leakage when closing windows
35 - Make simulation data immutable, don't store copies in undo/redo
36 - Profile memory usage during operation (send data to server?)
37 - Warn user when 90% of memory is used, offer to send info to server
38
39
40 Motor support:
41
42 - Combine duplicates into one display in the selection dialog
43   - A single manufacturer/designation can contain multiple thrust curves
44   - Delays are combined
45   - Type is selected based on any not-unknown type
46   - Hybrid type always includes P delay
47   - Default delay selected based on heuristics
48   - Store recently used motors, use in default selection
49 - Integration with thrustcurve.org (syncing?)
50 - Reading thrust curves from external directory
51 - Plot motor thrust curve
52 - Water rocket modeling
53
54
55 Optimization:
56
57 - Automatic general rocket optimizer (for altitude, velocity, duration etc)
58   that allows changing any rocket parameters for optimization
59 - Analysis of various motors for the rocket.  Search all motors by
60   diameter, impulse range, manufacturer, simulate them and present the
61   results.
62
63
64 Running:
65
66 - Windows executable wrapper (launch4j?)
67 - Allow only one instance of OpenRocket running (RMI communication?)
68 - Running/simulating from command line
69
70
71 UI issues:
72
73 - Easy/intuitive zooming of plots
74 - Only schedule rocket figure update instead of each time updating it
75 - Importing flight data (file/altimeter)
76 - Saving as SVG
77 - Implement setDefaults() method for RocketComponent
78 - BUG: Inner tube cluster rotation, edit with spinner arrows, slider wrong
79 - NAR/CNES/etc competition validity checking
80 - Print support
81 - Drag and drop of components / other table items
82 - Ctrl+scroll wheel to zoom in/out
83 - Move components by dragging on the figure
84
85
86 Simulation:
87
88 - Landing scatter plots
89 - Simulate other branches
90 - Remove need for 5m launch rod in real-time simulations (reduces apogee)
91   A simulation listener that checks when sufficient velocity has been reached?
92 - [BUG] Take single-fin cant yaw effect into account
93
94
95 Structural analysis:
96
97 - Run a simulation with each step doing a component analysis
98 - Compute the force between different components:
99   - between body components (pushing against and pulling apart)
100   - inner tubes and the parent body tubes
101   - lateral forces on fins
102   - individual fin normal forces?
103 - Take into account acceleration, drag, gravity
104 - Plot forces against time
105
106
107 Component support:
108
109 - Screw weights for nose cones / transitions
110 - Support for external pods
111 - Support for tube fins
112
113
114 File support:
115
116 - Reading (and writing) SpaceCad format
117 - Writing .RKT format ?
118
119
120 Refactoring tasks:
121
122 - Change databases and icon loading to bean instances, implement stubs
123   for unit tests
124 - Remove database etc. initialization from class initialization,
125   create separate set of test motors
126 - Extract event rules and data saving from Simulator into listeners
127 - Change SimulationStatus to include methods for obtaining basic
128   position (maybe even change to an interface, implements Cloneable)
129