96 Commits

Author SHA1 Message Date
562e46a87e defer body update to actual strafe tick 2026-01-28 09:57:33 -08:00
3c13d5f8ec untab 2026-01-28 08:40:14 -08:00
1f0f78f9d8 tweak Trajectory code 2026-01-28 08:39:28 -08:00
a90cb53a20 delete awful functions 2026-01-28 07:28:22 -08:00
170e2b9bce return used contacts from push_solve 2026-01-27 09:28:26 -08:00
3e0fc54852 Delete Body.acceleration Field (#30)
Acceleration is not a persistent part of the PhysicsState, and is only used for intermediate calculations along a trajectory.

Fixes several bugs:
- Walk decelerate clip into wall
- Walk accelerate clip into wall
- Fall while flying

Reviewed-on: #30
Co-authored-by: Rhys Lloyd <krakow20@gmail.com>
Co-committed-by: Rhys Lloyd <krakow20@gmail.com>
2026-01-27 17:08:08 +00:00
acea52646a untab 2026-01-27 07:58:18 -08:00
7220506fd5 plumb sprint 2026-01-27 07:46:17 -08:00
8f94234ddc change DirectedEdge signature 2026-01-27 07:38:45 -08:00
36143b8b69 change UndirectedEdge signature 2026-01-27 07:35:43 -08:00
3893b2f44f work around reset bug 2026-01-26 09:19:31 -08:00
d62ff68baa fix comments 2026-01-26 09:06:40 -08:00
2331bef281 pretty print time 2026-01-22 09:43:35 -08:00
31b52f7c34 Conditionally Advance Body in atomic_internal_instruction StrafeTick (#14)
Closes #13, but exposes the underlying issue at all times.

Reviewed-on: #14
Co-authored-by: Quaternions <krakow20@gmail.com>
Co-committed-by: Quaternions <krakow20@gmail.com>
2026-01-22 17:00:52 +00:00
8329eadb18 use unbounded range in physics tests 2026-01-22 08:47:54 -08:00
4b2f93be66 fix algorithm setup start position 2026-01-22 08:41:54 -08:00
469ab48156 allow unbounded range 2026-01-22 08:41:35 -08:00
c2650adf54 md: simplify reduce 2026-01-21 10:32:19 -08:00
cdafbb4077 Implement MinimumDifference Algorithm (#25)
Completely replace the janky closest fev crawl from infinity algorithm with a dedicated purpose-built algorithm.  Finding the closest point on a MinkowskiMesh is equivalent to finding the closest point between two meshes.

Reviewed-on: #25
Co-authored-by: Rhys Lloyd <krakow20@gmail.com>
Co-committed-by: Rhys Lloyd <krakow20@gmail.com>
2026-01-21 17:31:52 +00:00
087e95b1f7 delete TogglePaused 2025-12-22 13:54:35 -08:00
4059cfa527 update wgpu 2025-12-18 10:57:19 -08:00
e4f3418bc6 document PhysicsMesh 2025-12-11 09:36:21 -08:00
6ca6d5e484 expect dead code 2025-12-10 18:05:16 -08:00
730c5fb7dd common: integer: generic zero 2025-11-22 08:47:16 -08:00
d1b61bb997 push_solve: remove epsilon 2025-11-21 10:52:34 -08:00
0343ad19cf MeshQuery::hint_point returns any point inside the mesh 2025-11-20 10:59:08 -08:00
43210b1417 less access to TouchingState private fields 2025-11-19 13:39:07 -08:00
e9d28cf15f document jank 2025-11-19 13:15:31 -08:00
452bac4049 change collision_end_contact & collision_end_intersect fn signatures 2025-11-19 10:57:44 -08:00
48aad78f59 change contact_normal function signature to reduce copies 2025-11-19 10:20:33 -08:00
d45a42f5aa change ContactCollision struct layout
Match TouchingState contacts HashMap K,V layout to try to get lucky with compiler optimization.
2025-11-19 10:20:33 -08:00
c219fec3bc specialize touching member access 2025-11-19 10:08:40 -08:00
2a05d50abb check touching before testing collision 2025-11-19 10:08:40 -08:00
fbb047f8d4 combine call chain 2025-11-19 09:01:51 -08:00
c4d837a552 Fix infinite loop with intersects when allowing 0s collisions 2025-11-19 09:01:51 -08:00
a08bd44789 Generic ConvexMeshId 2025-11-19 09:01:51 -08:00
4ae5359046 rename not_spawn_at to is_not_spawn_at 2025-11-19 09:01:27 -08:00
15ecaf602a deep match 2025-11-18 12:29:46 -08:00
1e0511a7ba remove intermediate allocation 2025-11-18 12:23:05 -08:00
98069859b5 Gracefully handle 0 acceleration for walking targets 2025-11-18 19:47:04 +00:00
64d3996fa9 use From instead of Into 2025-11-18 11:46:32 -08:00
49c0c16e35 Use a From implementation instead of manual conversion
If the contacts and intersects map ever change in the future to not be 1:1 with gaps but instead something else, this guarantees that this implicit use of the relationship will flag at a compiler level
2025-11-18 19:25:44 +00:00
255bed4803 Ensure the PhysicsData's bvh respects the original model ordering
There's no importance in worrying about the core HashMap ordering since it's not used as an iterator except for outside of this very function for bvh purposes
2025-11-18 19:25:44 +00:00
128e137829 remove redundant code 2025-11-17 13:22:46 -08:00
f6f35c5f54 fix lints 2025-11-17 12:41:34 -08:00
4e7d580918 add lints to workspace 2025-11-16 14:53:23 -08:00
f3bb8dd067 update deps 2025-10-01 23:37:07 -07:00
7e49840768 it: set gravity to 0 2025-08-29 19:06:51 -07:00
b0365165e8 physics: create iterator over internal instructions 2025-08-29 18:30:18 -07:00
6509bef070 it: add test scene 2025-08-29 16:47:46 -07:00