Crozet Sébastien
d2ee642053
CCD: take angular motion and penetration depth into account in various thresholds.
2021-03-30 17:10:50 +02:00
Crozet Sébastien
7306821c46
Attenuate the warmstart impulse for CCD contacts.
...
CCD contacts result in very strong, instantaneous, impulses. So it is preferable to attenuate their contribution to subsequent timesteps to avoid overshooting.
2021-03-28 11:27:07 +02:00
Crozet Sébastien
97157c9423
First working version of non-linear CCD based on single-substep motion-clamping.
2021-03-26 18:16:27 +01:00
Crozet Sébastien
8dab63bda1
Fix regression in the WASM version of the velocity solver.
2021-03-08 15:14:54 +01:00
Crozet Sébastien
152ada67ec
Fix regression causing invalid contacts to be solved.
2021-03-07 17:34:54 +01:00
Crozet Sébastien
0e4393ba9e
Reduce code duplication between the SIMD and non-SIMD contact solve and warmstart.
2021-03-07 17:15:32 +01:00
Crozet Sébastien
4cb1f5c692
Fix warning when targetting wasm.
2021-03-07 11:55:10 +01:00
Crozet Sébastien
bed47a82e7
Projection friction impulses on an implicit cone instead of a pyramidal approximation.
2021-03-07 11:44:19 +01:00
Emil Ernerfeldt
115bae172d
fix the body-body revolute angle velocity erp
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
f517601e17
Final cleanup
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
54eae9bb7b
simplify prismatic limits
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
4ef7b1cefe
Fix primatic wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
a0824772c9
fix the revolute wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
9bbb081539
fix narrow revolute velocity
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
4ee09a8bc9
Fix the narrow pismatic velocity constraint
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
59796e4767
fix
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
b94cdfa782
Implement ground wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
48afbac6ce
Implement revolute wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
89de6903dc
Implement prismatic wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
27366e27ff
Implement fixed wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
48708d9a76
Implement revolute narrow
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
d3f39a9bab
Implemented prismatic narrow. Needs testing and close review
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
ede4f0f770
cleanup
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
3f26b46196
Implement ball wide
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
4162aed2a0
Add params.velocity_based_erp_inv_dt() helper
2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
21247a1236
Add restorative impulse in velocity solver
2021-02-26 11:06:29 +01:00
Crozet Sébastien
9cdd34c741
Fix the parallel build.
2021-02-24 13:40:26 +01:00
Crozet Sébastien
96ecb877e2
Implement dominance.
2021-02-24 13:26:51 +01:00
Crozet Sébastien
3cc2738e5f
Fix warnings in the WASM build.
2021-02-23 16:47:48 +01:00
Crozet Sébastien
3fdb4cd6d3
Properly take the tangent_velocity into account in the velocity solver.
2021-02-23 15:47:24 +01:00
Crozet Sébastien
ad5c10672e
Use contact ids instead of contact reordering in order to identify the impulse writeback location.
2021-02-22 17:52:03 +01:00
Sébastien Crozet
d31a327b45
Merge pull request #119 from dimforge/joint_drive
...
Add joint motors
2021-02-22 17:40:29 +01:00
Crozet Sébastien
0eec28325e
Fix warnings.
2021-02-22 14:20:06 +01:00
Crozet Sébastien
4c9138fd2b
Some minor cleanup and joint constraint refactoring.
2021-02-22 13:58:43 +01:00
Crozet Sébastien
052a5a5fc0
Make Simd prismatic joint limit code transmit torque.
2021-02-22 13:44:38 +01:00
Crozet Sébastien
73192d41c2
Make prismatic joint limit transmit torque.
2021-02-22 13:22:15 +01:00
Crozet Sébastien
aaba6c8927
Add motors to prismatic joints.
2021-02-22 12:12:24 +01:00
Crozet Sébastien
f204a5f736
Take max motor impulse into account for the ball joint.
2021-02-22 10:15:13 +01:00
Crozet Sébastien
01496d43e5
Add motors to ball joints.
2021-02-21 17:15:00 +01:00
Crozet Sébastien
f5515c3973
Fix lever-arm handling in the revolute joint.
2021-02-21 17:14:43 +01:00
Crozet Sébastien
dc8ccc0c30
Make revolute joint actuation work properly even when SIMD is enabled.
2021-02-19 17:32:09 +01:00
Crozet Sébastien
e9f17f32e8
Complete the implementation of non-simd joint motor for the revolute joint.
2021-02-19 15:21:25 +01:00
Emil Ernerfeldt
5e7eedc3fd
Always apply the predictive contact term, even for bouncing contacts
2021-02-18 17:58:17 +01:00
Emil Ernerfeldt
f9e3d382d2
New contacts are bouncy, old are resting
...
If a contact is new (previous impluse = 0), then we treat it as bouncy (respecting restitution).
If the contact is old we treat it as resting.
Exceptions for restitutions <=0 and >= 1.
2021-02-18 15:41:46 +01:00
Crozet Sébastien
a1ddda5077
Revolute joint constraints: properly adjust the angular impulse and torque projection.
2021-02-17 15:57:58 +01:00
Crozet Sébastien
4f8f8017f4
Properly writeback the generic constrainst impulse when it comes from a revolute joint.
2021-02-15 16:44:55 +01:00
Crozet Sébastien
ebd5562af3
Generic velocity constraint: split the translation and rotation terms.
2021-02-15 12:08:18 +01:00
Crozet Sébastien
de39a41faa
Implement non-linear position stabilization for the generic constraint.
2021-02-15 11:20:09 +01:00
Crozet Sébastien
d9b6198fa0
Various generic joint fixes.
2021-02-12 16:00:57 +01:00
Crozet Sébastien
cc80e40067
More experiments with the way the generic joint is stabilized.
2021-02-11 18:52:07 +01:00