Repository navigation
Kinematic speculation (#167) and Aether 0.798.0 - #168
Merged
Merged
Conversation
The latest release (a sandbox fix; nothing aephysics uses changed). The whole gate passes on it, the golden trace bit for bit.
WorldDef.enable_kinematic_speculation, off by default so the reference's results and the golden trace stay: a contact with a kinematic body keeps speculative points out to the pair's travel over the step (the speculative distance plus the relative speed and each body's angular speed times its extent, times dt), the manifold functions reading a per-worker speculative distance the collide pass sets per contact; and a kinematic body's fat bounds cover its next step's sweep, so the pair exists in time. A ball, a box and a capsule struck at 7 m/s are under 1 cm deep at the strike (8.3 cm without), a ball at 20 m/s too; a spinning paddle within 1.5 cm; a kinematic mesh's triangles reach out too. Recorded (minor version 2) and carried by the snapshot (version 4).
…h blocks Each worker's speculative distance (#167) is the seventh, made with the rest on the module's first use and kept for the program.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #167. Also moves the pin to Aether 0.798.0, the latest release. aeb stays at v0.325, its latest.
#167: a fast kinematic body's first frame
A kinematic body travelling past the 2 cm speculative distance in a step finds slow bodies already inside it on the next step. At 7 m/s that's 8.3 cm. Box3D e77352c does the same.
WorldDef.enable_kinematic_speculationandphysics_world.enable_kinematic_speculation/is_kinematic_speculation_enabledfix this as an extension. The setting is off by default, so the reference's results and the golden trace are unchanged.With it on:
Measured (
test_edge_cases.ae, the deepest frame of each strike)kinematic_plow's scene)The spinning case keeps a little depth because a turning face's approach is linearized over each substep. A pile with no kinematic body steps to the same bits with the setting on or off.
Other changes
triangle_manifoldandmesh_contactlose their restatedSPECULATIVE_DISTANCE, which nothing reads any more.Tested
ae checkon every changed module.