Subject: Space Shuttle
Thorsten wrote:We need no more and no less than what I wrote - a numerically stable solver for orbital dynamics. [...]
The precision of the variables is not the issue, the issue is reaching the necessary precision and long-term stability in the computation. Even floating point precision is good enough to resolve the world on a ~10 m scale (we know that from applying shaders in world coords).
The algorithm needs to be stable against perturbations and self-correcting. Whether it's done in Nasal, xml or C++ is rather irrelevant.
Subject: Implementing moonlight (or not)
bugman wrote:An FDM simulating real orbital mechanics, which properly handles the three-body problem, is required for any moon adventures. Then the FlightGear time acceleration framework would be useful (the [a]/[A] buttons), and the maximum acceleration of x32 extended to higher values. But the orbital mechanics is currently missing. It needs to be implemented in JSBSim. Or in a new orbital/space FDM which can be hot switched to on the FG side. In any case, there is a lot of work ahead.
Referring to "numerically-stable" solvers, it seems that there is a handful of open source projects (GPL compatible and using C++) that may eventually come in handy for anybody seriously interested in this:
http://libnova.sourceforge.net/
libnova is a general purpose, double precision, Celestial Mechanics, Astrometry and Astrodynamics library.
The intended audience of libnova is C / C++ programmers, astronomers and anyone else interested in calculating positions of astronomical objects or celestial mechanics. libnova is the calculation engine used by the Nova project and most importantly, is free software.
The current version of libnova can calculate:
Aberration
Nutation
Apparent Position
Dynamical Time
Julian Day
Precession
Proper Motion
Sidereal Time
Solar Coordinates (using VSOP87)
Coordinate Transformations
Planetary Positions Mercury - Pluto (Mercury - Neptune using VSOP87)
Planetary Magnitude, illuminated disk and phase angle.
Lunar Position (using ELP82), phase angle.
Elliptic Motion of bodies (Asteroid + Comet positional and orbit data)
Asteroid + Comet magnitudes
Parabolic Motion of bodies (Comet positional data)
Orbit velocities and lengths
Atmospheric refraction
Rise, Set and Transit times.
Semidiameters of the Sun, Moon, Planets and asteroids.
Angular separation of bodies
Hyperbolic motion of bodies
Heliocentric (barycentric) time correction
http://orsa.sourceforge.net/
ORSA is an interactive tool for scientific grade Celestial Mechanics computations. Asteroids, comets, artificial satellites, Solar and extra-Solar planetary systems can be accurately reproduced, simulated, and analyzed.
Features
accurate numerical algorithms
use of JPL ephemeris files for accurate planets positions
Qt-based graphical user interface
advanced 2D plotting tool and 3D OpenGL viewer
import asteroids and comets from all the known databases (MPC, JPL, Lowell, AstDyS, and NEODyS)
integrated download tool to update databases
stand alone numerical library liborsa
save and restore session from a single file
With ORSA 0.6 it is possible to import and integrate artificial satellites, and the image on the left shows the Earth as viewed from the weather satellite Meteosat 6. A units converter tool is also available, and is visible on the top right corner of the image. The OpenGL viewer has been greatly enhanced, and now it is possible to observe the system from any point and using either a orthographic or perspective projection.
There's also a pure Java library: https://www.orekit.org/
Additional pointers at: http://space.stackexchange.com/question ... n-software