Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Space oddities in Entwurf #3280

Open
eggrobin opened this issue Jan 11, 2022 · 0 comments
Open

Space oddities in Entwurf #3280

eggrobin opened this issue Jan 11, 2022 · 0 comments
Labels

Comments

@eggrobin
Copy link
Member

eggrobin commented Jan 11, 2022

This issue catalogues some non-blocking oddities in the fix to #2400:

  1. When an intrinsic force is first applied, a stretch of trajectory of up to one fixed step integrated with an adaptive step method without any intrinsic force (the psychohistory which is made authoritative) is added to the checkpoint, even though it is not affected by the intrinsic force.
    This has no visible consequence, though it may get in the way of potential future niceties such as highlighting accelerated trajectory segments, analysing past free-falling trajectories, etc.
  2. When the set of parts of a vessel changes without the application of forces:
    1. There may not be a point in the history of the parts (and thus of the vessel) where this change occurs.
    2. Since that point would be needed as the initial state of a checkpoint, a checkpoint is not taken, even though such a change leads to a discontinuity in its trajectory.
    3. Ramification: This may lead to visibly incorrect reanimation.
  3. When a vessel collides with another:
    1. There may not be a point in the history of the parts (and thus of the vessels) where the multi-vessel pile-up ends.
    2. That point would be needed as the initial state of a checkpoint; however, a checkpoint is taken regardless, at the last point of the history prior to the end of the multi-vessel pile-up.
    3. Ramification: This may lead to visibly incorrect reanimation.
    4. Ramification: This leads to multiple checkpoints being created at the same time (Crash in TEST3274 #3277).
  4. The dense points at the end of a collapsible segment are not downsampled once that segment is finished (by following it up with a non-collapsible segment).

Issues 1., 2., and 3. would need support in the PileUp to be properly fixed.

For 2. and 3., a newly created PileUp should append its initial state to the histories of the parts, much like it appends the psychohistory to the history when intrinsic acceleration starts.

For 2., the PileUp should signal (probably via a transient flag set by DeformAndAdvanceTime) that it has created a new fixed-step instance, so that the vessel is aware that a new checkpoint must be created; it might be necessary to convey the time at which that checkpoint should be placed as well.

For 1., the PileUp should communicate (perhaps by a similar mechanism) the time at which intrinsic acceleration starts, so that the stretch of free falling psychohistory isn’t part of the checkpoint.

However, none of this invalidates the basic principle of the solution to #2400, and in particular the serialized format need not change; it may be best to move forward with Entwurf as is, and fix these issues at a later date.

In the meantime, 3.iv. may be addressed by not creating the duplicate checkpoints (#3282).

Issue 4. is separate.

@eggrobin eggrobin added the bug label Jan 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant