Releases: arda-guler/orbitSim3D
v1.12 Accelerating Expansion
Windows binaries included.
New stuff:
== Direct rendering of surface maps ==
This release is one of the more visually satisfying ones as it is now possible to directly render entire planetary surface maps in 3D view. It doesn't have a high computational cost either, if you ignore the effect of the upscaled 3D Earth geometry itself. (It has been subdivided into more faces for a smoother sphere.)
As I implemented texturing independently of pywavefront, which used to be a dependency of OS3D, I decided to implement all what pywavefront did as a built-in solution. Therefore, pywavefront dependency is now completely removed.
However, to load the images, a new dependency, Pillow, is introduced.
In order for the built-in model/texture loader to work, 3D models should now be triangulated on export. This is not a big deal if you are using Blender, as it means you only have to click on a single checkbox as you export.
== Surface coverage computations ==
In other news, you can also now compute how much of a spherical body can be seen from a vessel. You can also map the visible surface either in 3D view or on a 2D surface plot.
Rest of the changes are rather minor tweaks and fixes.
Full Changelog: v1.11...v1.12
v1.11 Galaxy Epoch
Windows binaries included as it is tradition now.
This release brings three new features, listed in my subjective order of importance:
- Point-mass-clouds. This is some sort of alternative I considered before implementing a full spherical-harmonics model, as an easier and ever so slightly more intuitive method for simulating the gravitational fields around objects that are lumpy in their density distributions, or are extremely oddly shaped, like contact-binary asteroids.
- Observation ephemeris calculation. One can now calculate the angular orientation and angular rates of a body as if it being observed from a selected point in space (or on Earth!). I have tested it by comparisons against JPL Horizons' ephemeris generation. Thank you, JPL Solar System Dynamics, very cool.
- Polar grid visualizer. This is just a convenient graphics update. I figured cartezian grids were not always the best idea for visualization around objects that are nearly spherical in shape.
In addition to the updates on the code, I wrote a short technical report that describes the mathematical background and numerical methods of OS3D. Take a look here!
Full Changelog: v1.10...v1.11
The auto-scaling polar grid.
v1.10 Cosmic Dark Age
Windows binaries included as always.
The one feature which I think is important for this release is the rotating frame of reference. You can rotate the coordinate system around the scene pivot point at a fixed rate or by referencing another object that may have a variable angular velocity relative to the origin. However, using this feature requires caution as the maneuver calculations etc. will also occur with respect to a rotating reference frame - not an inertial one!
Other additions are configurable-density starfield rendering, improvements to the UI to drastically reduce jitter on 2D UI elements (which sometimes occured when the camera was too far away from the scene origin), and a scenario recreating ESA JUICE probe's Luna-Earth gravity assist which accured in August 2024.
JUICE flies by both Luna and Earth - notice the new starfield in the background
Full Changelog: v1.9...v1.10
v1.9 Recombination Epoch
After several months of a rather dormant state, I have new solver methods, quality-of-life improvements and demo scenarios. Windows binaries included as usual.
In my opinion, the most prominent new feature should be the adaptive solver methods, automatically adjusting time step size for a given approximate error accumulation tolerance, rather than providing a fixed time step size. It does not work the same way, for example, RK89 does; which uses solvers of different orders. The current adaptive time-step solvers instead use half-length steps to compare the error accumulation against a full-length step. If a bad step is taken, it will be repeated with a smaller step size. If there is room to enlarge the step size, a larger step size will be attempted in order to cut down on overall simulation execution time.
Another very important improvement is the implementation of an automated orbit propagator validation test. It constructs an n-body model of the Solar System (with Sol and all 8 major planet barycenters) using JPL Horizons API and compares the propagation result against a later state. This way, manual labor is eliminated, and different solver setups can be validated quickly (without doing a journal paper's worth of work every time). Now, maybe you can write that thesis of yours with the time you have saved.
Finally, you will now also find an Earth-Mars transfer scenario in the /scenarios
folder, creatively titled mars_transfer.osf.
Full Changelog: v1.8...v1.9
v1.8 Photon Epoch
Having read a bunch of papers on Lambert's problem (one of which was this), I decided to implement a Lambert's problem solver as a utility. It it not fail-proofed 100%, but it does work for most cases.
I also read some paper about the general relativitstic effects acting on the orbits of Galileo satellites. So, as expressed in the vectorial form in the paper, I implemented some general relativistic effects. These are tiny effects in the grand scheme of things, but I suggest great care as they are implemented in an extremely simplistic way and may not be the best representation of all general relativistic cases. Regardless, my results and the paper's results seemed to agree when I did test my implementation.
Finally, I compiled results for another orbit propagator validation case to extend the validation documentation. This time, it was the Geocentric orbit simulation of the International Space Station.
Full Changelog: v1.7...v1.8
v1.7 Nucleosynthesis
Windows binaries included, courtesy of pyinstaller.
This release most importantly includes custom resources to simulate spacecraft energy generation, comm. strength etc., off-polar rotation axes for celestial bodies, and a "scenario editor" GUI utility.
It is also now possible to run scenarios via system arguments directly rather than selecting them from the scenario menu. (e.g. OS3D myscenario.osf
runs myscenario.osf without going through the main menu.) If you wish to write your own wrappers for the OS3D solver, this may come in handy.
Notable changes since last release, in list version:
- Custom resources implemented
- Off-polar rotation axes for bodies implemented
- Providing scenarios as system arguments implemented (bypasses initialization menu)
v1.6 Lepton Epoch
Windows binaries included, courtesy of pyinstaller.
This release includes great improvements both to the physics solvers, orbit mathematics and visualization tools.
Notable changes since last release:
- Yoshida8 physics solver implemented.
- Proximity zones and basic vessel-vessel collisions implemented.
- Timed command execution implemented.
- Auto-export of plot data to csv files implemented.
- Astrometry data to initial state conversion utility added.
- Keplerian (2 body) orbit projector partially rewritten and improved.
- Camera movement by command line commands implemented.
- Coordinate system grid visualization implemented.
- New scenarios and improvements to old ones.
v1.5 Hadron Epoch
Windows binaries included, courtesy of pyinstaller.
It's only a few days after the release of v1.4, but I fixed an important bug and wanted the fix to be released ASAP. The reason it is not v1.4.1 but instead v1.5 is that I also implemented a 4th order solver in the meanwhile so I thought that was big enough of a change to increment the first-level subversion. Besides I never wanted to use a two-level subversion scheme anyway.
Notable changes since last release:
- Yoshida4 physics solver implemented. (Thanks Haruo Yoshida, really cool algorithm.)
- Fix spacecraft spending excessive propellant during constant thrust maneuvers.
v1.4 Quark Epoch
Windows binaries included, courtesy of pyinstaller.
Major changes since last release:
- Groundtrack plotting implemented.
- Solar System terrain maps added.
- Velocity Verlet default solver implemented.
- Physics solver switching implemented.
- New scenario (OdysseyII)
v1.3 Cosmic Inflation
WINDOWS BINARIES INCLUDED, courtesy of pyinstaller.
Major changes since last release:
- Impulsive (instantaneous) maneuvers implemented.
- Utility for easily fetching JPL Horizons ephemeris and creating Solar System scenarios is added.
- Horizon angle calculation is implemented. (i.e. calculates at what degree above/below the horizon a space object is when the observer is on a specific point on a body surface)
- Camera movement speed hotkeys and keyboard input locking implemented.
- New demo scenarios added.
- Bug fixes.