0
Answered

Chronos: Small discrepancies in times and positions

Schreurs, Blake A. 4 months ago • updated by Lazlo Bonin (Lead Developer) 4 weeks ago 1

I’m running into this issue where identical objects at different speeds are yielding different results. Your documentation (https://ludiq.io/chronos/manual/limitations/small-discrepancies-in-times-and-positions) said that if I had any info on the topic, I should send it your way. Based on what I’m seeing, I think a bug Angular Drag might be the culprit.

 

 

At least in my case, it appears to be related to drag and angular drag: The higher these values are, the greater the discrepancy between GameObjects. Are these, perhaps, being applied to absolute velocity instead of time-corrected velocity?

 

 

Here’s the setup:

In 3D space, have two balls, one at 1x, one at increased speed (a prediction), drop from an identical height and roll onto a plane.

 

 

 

As one would expect, the prediction would fall faster than the actual.

 

 

But it doesn’t take long for the “actual” object to overtake the prediction… Which, considering it’s supposed to be a prediction, is pretty problematic.

 

Blake Schreurs

Senior Professional Staff

Johns Hopkins Applied Physics Laboratory

Blake.Schreurs@jhuapl.edu

240-228-0499  |  443-778-0499

Chronos Version:
Unity Version:
Answered

Hi Blake,

Sorry for the very late reply on this.

Thanks for investigating this issue so thoroughly. I must admit the drag calculations were implemented many years ago, I don't remember the specifics. Unfortunately, because Unity's physics engine is closed source, it's always hard for me to guess what modifiers to apply to its exposed values to mimic time dilation. Furthermore, being limited by these properties and the discrete update loop, I'm afraid Chronos isn't suitable for precise scientific simulation.

If you want to experiment with the calculations yourself, you can have a look at RigidbodyTimeline.cs, specifically lines 84 and 85. If you ever find a better modifier calculation than the one present, please do let me know.