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