Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wjs018/eveorbits
Calculate orbital information for ships in the MMORPG EVE Online.
https://github.com/wjs018/eveorbits
Last synced: about 1 month ago
JSON representation
Calculate orbital information for ships in the MMORPG EVE Online.
- Host: GitHub
- URL: https://github.com/wjs018/eveorbits
- Owner: wjs018
- License: agpl-3.0
- Created: 2015-10-19T05:57:16.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-24T04:05:35.000Z (about 9 years ago)
- Last Synced: 2024-10-16T05:46:18.967Z (3 months ago)
- Language: Python
- Homepage:
- Size: 152 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EveOrbits
EveOrbits is a simulation designed to systematically determine the radius a ship will orbit a point in space.
Built to use the [libdogma](https://github.com/osmium-org/libdogma) engine with its [python bindings](https://github.com/osmium-org/python-dogma), EveOrbits features a GUI to allow the user to specify a fit for a given ship as well as visualize simulation results.
## Dependencies
* Python 2.x (Python 3 untested)
* [libdogma](https://github.com/osmium-org/libdogma/releases)
* [libdogma Python bindings](https://github.com/osmium-org/python-dogma)
* copy of the Eve SDE in .sqlite format (download [here](https://www.fuzzwork.co.uk/dump/sqlite-latest.sqlite.bz2)), unpacked and in same directory as EveOrbits## Using the GUI
Running BasicGUI.py brings up the graphical interface for EveOrbits. A ship and modules/implants can be selected in the upper left portion of the screen in the drop-down menus. A module isn't fitted to the selected hull until the `Fit` button is pressed. Once a module is fitted, it will appear in the list in the center of the window. To remove a module, select it from the list and then click the `Remove Selected` button. This is not intended to be a complete fitting tool like EFT or Pyfa. So, only modules/implants relevant to navigational parameters will be available to fit. Also, there is no check for fitting validity or capacitor usage. This means that the program is happy to slap a 500MN Microwarpdrive onto an interceptor even though this fit would not be possible normally. Also, EveOrbits assumes an all V character.
The readouts on the right side of the window show the calculated navigational parameters for the selected ship and modules/implants that are fit to it. These values are updated by clicking the `Calculate!` button. These values are what is referenced in the simulation that is ran when the `Simulate!` button is pressed. Therefore, you must `Calculate!` the parameters of a fit before you `Simulate!` its orbit(s).
The lower left of the window is where parameters for the simulation are entered. The top entry box is the first radius at which an orbit is prescribed to the ship in meters. The second entry box is the final radius at which an orbit is prescribed to the ship in meters. The final box is the total number of radii at which to run the simulation. Together, the three values are arguments in a `numpy.linspace` command. The checkbox allows for the simulation results to be output to a .csv file. The save location will be given by the user via a dialog window. Once all of these parameters are set to your liking, hitting the `Simulate!` button will run the simulations of the orbits via calls to ShipSimulate.py. Depending on the what was entered, and the ship/fitting, this can take up to a few minutes, especially for large, slow ships as their dynamics evolve on a longer timescale.
Once a simulation is complete, a graph will open up showing the results. It plots the difference between the prescribed and actual orbital radius as a function of the prescribed radius. Multiple graph windows can be open at once just by running another simulation via the main window. The values that are plotted can be changed in the `MainWindow.runSimulation` function. If selected, the .csv file that is output will contain more information than the plot shows by default. In addition to the radii, the .csv file will show the stable velocity achieved by the orbiting ship as well as the angular velocity of the orbit.
## Using the `simulateOrbit` function
The GUI can be a bit limiting if a systematic simulation of multiple ships/fits is desired. In this case, you can use the `ShipSimulate.simulateOrbit` function. The function is passed a `dogma.Context` object from the libdogma engine as well as a prescribed orbit radius in meters. It will output the actual orbit radius as well as the orbital velocity and angular velocity. A simple example is included in the ShipSimulate.py file.
## Contact
* Walter Schwenger, [email protected]