Fonctionnalités souhaitées - plaa/Modular GitHub Wiki
Cette liste de demandes de fonctionnalités détaille certaines fonctionnalités désirées dans OpenRocket, en se concentrant sur celles qui peuvent être implémentées raisonnablement facilement sans connaissances trop approfondie du fonctionnement interne d'OpenRocket. Si vous trouvez quelque chose auquel vous voudriez participer (ou faire quelque chose vous même) s'il vous plait faites le nous savoir sur la liste de diffusion OpenRocket-devel et nous pourrons vous aider à démarrer.
Cette page est un complément au fichier TODO de la distribution, qui contient plus d'idées moins détaillées. Please feel free to comment on the issues.
Il y a plusieurs endroits dans l'interface utilisateur à revoir. Le code de l'interface utilisateur à certains endroit n'est pas très bien organisé et a besoin d’être revu.
- Zoom intuitif pour les graphiques
- normal magnifying glass buttons for zoom in/out
- currently click-drag towards the lower-right zooms in, towards the upper-left resets the zoom to original - very unintuitive (JFreeChar default)
- should be implemented as a generic component that could be used in various places
- Ctrl+scroll wheel should zoom in/out the rocket design (and maybe also plots)
- Base de données de pièces
Une vue en 3D de la fusée serait appréciable mais je n'ai aucune expérience en programmation 3D. Ci-dessous vous trouverez quelques idées ou "une liste de choses désirées" (tout n'a pas besoin d’être implémenté!)
- 3D view as an alternative to the side and back rocket view
- rotation using the mouse drag-and-drop
- either "normal" view or a translucent view, where the opacity of each component is something like 0.3-0.5
- decals - allow a user to define 1-n images that are positioned at some point of the rocket body or fins
- allow configuring a spiral wound for body tubes
- selecting components by clicking on them (like you can in the 2D view). Not sure whether it's a good idea to show the selected component in any special way though.
- allow defining "shininess" of the component (there's really something like 3 parameters controlling this, but for UX I think we should try to make a single parameter which works reasonably for all)
- An animation of a simulated flight
- general overview of flight (with possibility to magnify the rocket)?
- different camera angles to choose from, some ideas:
- launcher view
- profile view
- a camera attached to the rocket pointing to the side / tail
- a camera moving along with the rocket either from the top or side
- selectable launch scenery
- allow selecting whether xyz-axis are displayed on the rocket during flight
- provides a visualization of what the rocket is doing during the flight
- rocket movement often very hard to visualize looking at just graphs
- may require additional flight parameters to be stored during simulation
L'impression est l'une des fonctionnalité les plus demandées pour OpenRocket. En même temps il serai naturel de permettre l'export de la même chose en PNG, SVG ou PDF.
La fonctionnalité peut être implémenté à différents niveaux. L'impression/l'export doit être au moins implémenté aux endroits suivants:
- gabarits d'ailerons, transitions coniques/gabarits d'ogive, profilés d'ogives
- la vue de l’écran conception fusée
- les courbes de simulations (JFreeChart en contient)
- impression d'un rapport de conception (voir ci-dessous)
La possibilité de créer un rapport contenant les informations de conception les plus importantes pour le présenter à un RSO lors d'un meeting. Le format du rapport pourrait être quelque chose comme ce qui suit:
- Titre
- Section décrivant la fusée de manière général sans moteurs
- nom du projet
- masse à vide & centre de gravité (CG)
- position du centre de pression (CP )
- CP position at 5 degree AOA (or similar)
- nombre d’étages
- taille du parachute/banderole (streamer)
- diamètre maximum (calibre)
- Section pour chaque configuration moteur
- un résumé des moteurs, e.g. 3xC6-0; B4-6
- une liste des moteurs y compris la marque, la désignation (peut être également des infos comme le temps de combustion, le poids du propulsif et la poussée totale)
- nombre total de grammes de propulsif
- impulsion totale
- poids au décollage
- position CG et du CP (centre de pression), marge de stabilité
- Altitude prédite du vol, vitesse max. et accélération max.
- predicted velocity at chute deployment
- temps de descente prévu
- Diagram of the rocket (positioned vertically on the right side of the first page)
- position du CP
- position du CG sans moteurs et dans chaque configuration (the labels should alternate on right and left sides to avoid being on top of each other)
- Choisir dans le menu Fusée -> Design report
- A dialog opens to ask which motor configurations to include in the report
- maybe ask paper size as well
- Simulations are run for each to get most up-to-date info
- Report is shown to user, allowing them to save or print it
- Predicted data readily available from OR (ask for details)
- The rocket plot can and should use the same rendering as the design window
- How to define launch conditions? Should the user select simulations to include in the report instead of motor configurations?
- Génération du rapport en HTML
- Pros:
- facile à générer
- peut être affiché en utilisant un JTextPane
- permet de sauvegarder en HTML
- facile à imprimer avec Java en utilisant JTextComponent.print()
- Cons:
- including the plot might be problematic and requires a separate file when saving
- rocket diagram needs to be in raster format
- no support for smart pagination
- Pros:
- Use iText or some other PDF generator
- Pros:
- exported directly as PDF, only one file in output
- more control, can produce more professional-looking output
- rocket diagram can be in vector format
- can be better paginated
- Cons:
- may be more difficult to generate(?)
- smart pagination may be challenging / require additional work
- displaying and printing the report may need separate support (maybe using PDFBox?)
- Pros:
- Generate LaTeX document and figures for later compilation
- Pros:
- Extremely high quality output
- Equations, pagination, sections, hyperlinks and anything else you could want
- Fully vectorised graphics
- User can easily manually customise output file
- Easy to program on the Java side as just generating plain text
- Cons:
- Requires an external LaTeX distribution
- Not everyone knows LaTeX.
- Pros:
OpenRocket seems to consume quite a lot of memory, and likely has numerous memory leaks. (During initial development the effort was on getting it to work, not managing memory.) Below are a few suggestions what could be done to improve the memory handling.
- Profile OpenRocket's memory usage to find potential leaks
- Implement a scheduled task that checks the memory usage every ten seconds or so
- Warn the user if 90% of available memory has been used
- Offer to send memory profiling data automatically to developers (?)
Bien que les résultats produit par OpenRocket soient raisonnablement précis pour les modèles de fusées de base, il y a de nombreux cas qui ont besoin de l'attention d'un expert.
In most cases the implementation can be done by the core developers if only clear methods are available!
- Drag and CG estimation at higher supersonic speeds (>1.5M) are currently poor
- Support for additional components, such as external pods and tube fins
- Estimation of CG, CNa and drag coefficient are required
- Roll rate estimation is off by about a factor of two for unknown reasons (see sections 3.3 and 6.3 of the technical documentation)
- Aerodynamic force computation using CFD (computational fluid dynamics)
- Should preferably use some standard package such as Elmer or OpenFOAM
- Communication either using JNI or stdin/stdout to a standalone executable
- Implementation requires at least:
- creation of the simulation mesh
- calling the computational method
- deducing the forces and moments (preferably being able to separate the contribution of different components)
- cacheing and interpolating data for efficient simulation
- Visualization would be a great plus!