145 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
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
 | 
						|
 | 
						|
 | 
						|
Maybe:
 | 
						|
 | 
						|
- Water rocket modeling
 | 
						|
 | 
						|
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
 | 
						|
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:
 | 
						|
 | 
						|
- 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
 | 
						|
- 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
 | 
						|
 | 
						|
 | 
						|
Simulation:
 | 
						|
 | 
						|
- 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:
 | 
						|
 | 
						|
- 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
 | 
						|
 | 
						|
 | 
						|
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 |