The posts from Croxis (panda3d.org/forums/viewtopic … 8078#58078) were a great help with this. So far there is a Nodepath hierarchy not attached to render that represents the solar system (1 unit = 1km), all of the orbits and such are handled here.
Each of the bodies in the Solar system has a GeometryNode attached to Render, and they are dynamically scaled / rotated each frame. The camera is centred at 0,0,0 and limited to 10000km, with the planets being scaled and drawn at 10000km if they are being the view distance. This technique allows us to keep the z-buffer usable and avoid all sorts of draw distance related gremlins. Draw order is handled by putting the planets in a static bin and passing a distance derived z-order.
The sky is a skysphere centred on the Origin - so basically fire and forget.
I’m going to do a tidying / restructure pass then add in controls so you can fly around freely. Once that’s done I think i’ll do a big optimisation pass - at the moment the timescale is highly compressed so positions are being recalculated every frame - but that’s wasteful.
After that there will be a visual effects pass, adding in some shaders like atmospheric haze and such.
Having a lot of fun so far.