Hmmm
This might be possible if you could get X Y Z Coordinates.
That way US can check if the 2 objects will ever be in the same X Y Z Coordinate in the future then give an estimate of when it will happen.
One problem is that US will have to predict the future by running a Invisable simulation ahead of the regular one to see if it is possible.
Of course you could limit this into cycles or "Years ahead"
Example: Let's say the Cycles for Our Solar System is 10 Cycles meaning the "Invisable" simulation ahead of the regular one will only go up to 10 years ahead. (Not real time obviously)
So it knows what will happen within a 10 year limit.
If any impact happens it then adds a timer.
That's one way to to do Non-Direct impacts.
Got an idea!
This require I think from tens to thousends MB (so even GB) of RAM memory (I don't believe that the normal one is suitable):
Start the simulation: nothing
appear. Data are stored. After some time (set by the user), maybe 10 years, maybe 1 year (obviously of the simulation), maybe dipending on the time step, the stored data are converted in images. The result? A simulation that runs with data of the future really accurate. The problem is the performance that this buffering sucks: data must be stored, which can take A LOT of RAM, especially in big systems, and then reloaded and calculated (the coordinates of every object must be stored frame by frame. For a ten-object simulation, which is really small, there are 30 numbers with lots of decimal digits every frame). I think that it could be optimized for dual/quad cores (with a dedicated core the RAM occupied will be smaller).
Moreover if you sacrifice your knowledge of the future you can make the simulation with auto time step more "linear" using the buffer.
Pros: A future more accurate
- Projected paths way more accurate
- Collisions predictable for sure within some seconds/minutes (according to your CPU/will)
- Auto Time step more fluid (scarifying your knowledge of the future).
Cons: Performance needs increasing exponentially with the number of objects.
EDIT: It also permit to move the simulation forward or backward maybe with a time bar. E.g:
-3 -2 -1 0 1 2 3
|----------|----------|----------|-O-------|----------|----------|