You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Complete Depth Strider, Dolphin's Grace, waterlogging, and fluid/effect stacking.
Implement creative and spectator flight equations and vertical input.
Validate full Elytra start/stop, collision, landing, equipment, firework boost, and damage edge cases.
Complete Riptide eligibility, duration, collision, mounted behavior, and external-motion interaction. The mounted launch guard is tracked in PR #12.
Effects, equipment, and item use
Add speed/slowness and other movement-affecting attribute modifiers.
Track effect duration, stacking, expiry, and amplifier semantics.
Model item-use categories separately instead of relying on one generic clamp.
Synchronize equipment/enchantment state to the same tick as the initiating input.
Keep Soul Speed, Swift Sneak, Depth Strider, Riptide, Elytra, boots, and powder-snow behavior in the movement contract.
External motion and authority-neutral events
Add an ordered, one-shot motion-event queue for knockback, explosions, projectiles, hooks, SetActorMotion, entity pushes, vehicles, and teleports.
Represent replace-vs-add semantics and event acknowledgement explicitly.
Add mount/dismount state and prevent simultaneous player/vehicle integration.
Preserve fall state, bounce, damage-relevant transitions, and correction-safe external events.
Keep rewind/replay policy in Oomph while making BedSim deterministic for a supplied event sequence.
Validation
Add golden trajectories for ground, collision, poses, fluids, blocks, effects, Elytra, and Riptide.
Add differential fixtures for tick-order candidates and edge cases.
Add property/fuzz tests for collision and state transitions.
Require every promoted constant to have a fixture and confidence classification.
Replace duplicate physics formulas in Oomph and Baritone with BedSim adapter calls.
Definition of done
BedSim can deterministically reproduce every supported player travel mode from a complete tick input, revisioned world snapshot, equipment/effect state, and ordered external-event list. Oomph and Baritone consume that result instead of maintaining competing movement formulas.
Parity audit follow-up — 2026-08-20
The latest full movement pass produced the following concrete status.
Apply bubble-column impulses once per overlapping contact, preserve exact surface classification, and clear fall distance.
Use uncapped 0.75 bed restitution.
Reject shallow liquid cells whose surface does not reach the movement contact box.
Apply grounded Riptide vertical compensation using water/head state.
Preserve scaffolding descent at -0.15, skip ordinary gravity, and clear fall distance.
Clear fall distance on climbable contact and qualifying honey side slides.
Add honey 0.8 friction and frosted-ice 0.98 friction to built-in semantics.
Honour solid faces for same-liquid flow through waterlogged non-stair blocks.
Reject mounted movement instead of integrating it as ordinary on-foot movement.
Check the swept movement area rather than only the current chunk.
Still needs a narrower contract or dedicated implementation
Define exact swimming-contact retention separately from optional anticheat hardening. The current grace window is intentionally not a strict movement-oracle rule.
Replace generic consuming/sneaking input clamps with exact per-item and Swift Sneak movement stages, including tick ordering.
Complete liquid material permeability for non-liquid neighbours; face closure is now exact for same-liquid waterlogged contacts, but the world contract does not expose every material rule.
Implement vehicle-specific travel and mount/dismount state instead of stopping at the current mounted outcome.
Implement creative/spectator flight and supported no-clip transitions.
Narrow the complete pose/riding dimensions and vehicle-controlled input contract.
Add externally captured differential trajectory fixtures for ground, collision, fluids, blocks, Elytra, Riptide, and vehicles.
Goal
Make BedSim the single deterministic Bedrock player-movement physics oracle used by Oomph and Baritone.
This issue tracks BedSim-owned physics and contract work. It does not move packet authority, correction policy, or path planning into BedSim.
Easiest-to-hardest order
This is an implementation-difficulty ranking, not a priority ranking. Later items depend on contracts established by earlier ones.
Observability and focused regression coverage
Existing block semantics
Effects, equipment, and item-use modifiers
Pose, geometry, and input contract
Fluid completeness
Special travel modes
Revisioned world and collision model
External motion and vehicle state
Cross-repository migration
Ownership
State and provider contract
Ground, air, poses, and collision
Block and inside-effect matrix
Fluids and special travel
Effects, equipment, and item use
External motion and authority-neutral events
Validation
Definition of done
BedSim can deterministically reproduce every supported player travel mode from a complete tick input, revisioned world snapshot, equipment/effect state, and ordered external-event list. Oomph and Baritone consume that result instead of maintaining competing movement formulas.
Parity audit follow-up — 2026-08-20
The latest full movement pass produced the following concrete status.
Corrected in PR #14
0.75bed restitution.-0.15, skip ordinary gravity, and clear fall distance.0.8friction and frosted-ice0.98friction to built-in semantics.Still needs a narrower contract or dedicated implementation