• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

orion-ecs / keen-eye / 30110399467
64%

Build:
DEFAULT BRANCH: main
Ran 24 Jul 2026 04:52PM UTC
Jobs 1
Files 988
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Jul 2026 04:46PM UTC coverage: 64.291% (-0.01%) from 64.302%
30110399467

push

github

tyevco
fix(physics): Correct sleep thresholds, gravity, interpolation, collision-end, shape/body counts (#1122-#1124,#1126-#1128,#1130)

Fixes a cluster of physics-correctness bugs in the BepuPhysics 2.4.0 backend:

- #1122: ActivityDescription.NeverSleep used float.MaxValue, which put the body
  permanently *under* threshold so it slept anyway. Bepu treats a negative sleep
  threshold as "never a sleep candidate", so NeverSleep now uses -1.
- #1123: PhysicsSyncSystem read the previously displayed (interpolated) transform
  as its interpolation input, corrupting the result on non-step frames. PhysicsWorld
  now records the last two raw simulation poses and the sync system interpolates
  between those instead of feeding its own output back in.
- #1124: CollisionEndedEvent fired spuriously when a resting body fell asleep and
  the narrow phase stopped reporting the pair. CollisionEventManager now consults a
  sleep predicate and persists resting contacts for sleeping bodies rather than
  emitting Ended.
- #1126: SetGravity only mutated the property (read once at init). It now also writes
  the new gravity into the live PoseIntegrator callbacks so it affects the running sim.
- #1127: RemoveBody removed the body/static and lookup but never the shape, leaking
  shape slots. It now removes the shape too (and clears interpolation state).
- #1128: InterpolationAlpha could exceed 1 when the loop hit MaxStepsPerFrame. The
  accumulator is now drained to at most one timestep at the cap and alpha is clamped
  to [0, 1].
- #1130: BodyCount returned only the active set, omitting sleeping bodies. It now
  sums all allocated body sets (active + sleeping islands).

Adds PhysicsCorrectnessTests with a fail-on-old/pass-on-new regression test per issue,
and updates ActivityDescription_NeverSleep_* to assert the corrected behavior.

Closes #1122
Closes #1123
Closes #1124
Closes #1126
Closes #1127
Closes #1128
Closes #1130

8489 of 12538 branches covered (67.71%)

Branch coverage included in aggregate %.

61 of 63 new or added lines in 4 files covered. (96.83%)

20 existing lines in 3 files now uncovered.

50807 of 79692 relevant lines covered (63.75%)

0.98 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
91.49
0.65% src/KeenEyes.Physics/Core/PhysicsWorld.cs

Coverage Regressions

Lines Coverage ∆ File
9
96.21
-0.38% src/KeenEyes.Spatial/Partitioning/OctreePartitioner.cs
9
96.27
-0.41% src/KeenEyes.Spatial/Partitioning/QuadtreePartitioner.cs
2
69.68
0.53% src/KeenEyes.TestBridge/Process/ManagedProcess.cs
Jobs
ID Job ID Ran Files Coverage
1 30110399467.1 24 Jul 2026 04:52PM UTC 988
64.29
GitHub Action Run
Source Files on build 30110399467
  • Tree
  • List 988
  • Changed 9
  • Source Changed 6
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30110399467
  • f4633fa1 on github
  • Prev Build on main (#30105812534)
  • Next Build on main (#30113831081)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc