Skip to content

wjs018/EveOrbits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EveOrbits

EveOrbits is a simulation designed to systematically determine the radius a ship will orbit a point in space.

Built to use the libdogma engine with its python bindings, EveOrbits features a GUI to allow the user to specify a fit for a given ship as well as visualize simulation results.

Dependencies

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

About

Calculate orbital information for ships in the MMORPG EVE Online.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages