TheOpenSpaceProgram / new-ospgl

A space exploration game in OpenGL. Devblog: https://tatjam.github.io/index.html
MIT License
43 stars 6 forks source link

Simulate the planet system using N-body too #29

Closed tatjam closed 1 year ago

tatjam commented 3 years ago

This is the technique used by Principia, it gives more accurate solar system evolution and should be faster

tatjam commented 3 years ago

Legacy solar system, just in case we decide to roll back so the NASA data is already there:

[star]
    name = "Sun"
    mass = 1.98847e30
    radius = 695_508_000.0

[[element]]
    name = "Earth-Moon"
    is_barycenter = true

    is_nasa_data = true
    smajor_axis = 149598290450.51898
    smajor_axis_var = -0.00000003
    eccentricity = 0.01671123
    eccentricity_var = -0.00003661
    inclination = 0.0
    inclination_var = -0.01337178
    mean_longitude = 100.46457166
    mean_longitude_var = 35999.37306329
    periapsis_longitude = 102.93768193
    periapsis_longitude_var = 0.31795260
    asc_node_longitude = 0.0
    asc_node_longitude_var = -0.24123856

[[element]]
    name = "Earth"
    parent = "Earth-Moon"
    config = "planets/earth/config.toml"

    is_primary = true

    rotation_period = 23.9344696
    rotation_at_epoch = 800.0
    north_pole_declination = 90.0
    north_pole_right_ascension = 0.0

[[element]]
    name = "Moon"
    parent = "Earth-Moon"
    config = "planets/moon/config.toml"

    smajor_axis = 384308437.7707066
    eccentricity = 0.0549
    inclination = 5.145
    periapsis_argument = 318.15
    asc_node_longitude = 125.08
    mean_at_epoch = 135.27

    rotation_period = 655.719864
    rotation_at_epoch = 135.0
    north_pole_declination = 65.64
    north_pole_right_ascension = 266.86

[[building]]
    body = "Earth"
    building = "buildings/launchpad.toml"
    name = "Space Center"
    [building.pos]
        x = 6360_000.0
        y = 0.0
        z = 0.0 
    [building.rot]
        x = 0.0
        y = 0.0
        z = 0.0
        w = 1.0
tatjam commented 1 year ago

The systems are now propagated using whatever propagator is used.