Sable 64-bit Physics Patch
This mod replaces Sable's original native Rapier physics backend with a newer version that uses 64-bit floating-point precision (f64) instead of 32-bit (f32).
The goal is to improve physics precision at large world coordinates while keeping Sable's original Java-side functionality intact.
Why switch to f64?
<details> <summary>Spoiler</summary>The original Sable uses f32 for native physics calculations. At large world coordinates, this causes a significant loss of precision.
For example, at coordinates around 30,000,000, the spacing between representable f32 values reaches approximately 2 blocks, while f64 maintains sub-block precision with plenty of room to spare.
Switching to f64 significantly improves the precision of physics calculations, collisions, and Sub-level positioning at large world coordinates.
How does it work?
<details> <summary>Spoiler</summary>When Minecraft starts, the mod uses a Mixin to intercept Sable's native library loading process.
Instead of loading the original library, it extracts its own version from natives/sable64bit/ inside the mod's JAR file and loads it in its place.
The appropriate library is selected automatically based on the operating system and CPU architecture.
Sable's Java code, API, and Sub-level system remain unchanged. Only the native physics backend is replaced.
</details>Which Rapier version does it use?
<details> <summary>Spoiler</summary>Original Sable:
- Rapier 0.32.0 — RyanHCode's fork.
- Physics calculations use
f32. - SIMD optimizations for
f32.
Sable 64-bit Patch:
- Rapier 0.35.3 — the official upstream version from Dimforge.
- Uses the
rapier3d-f64package. - Physics calculations use
f64. - SIMD optimizations for
f64.
Why not just use packet rapier3d-f64 version 0.32.0?
<details> <summary>Spoiler</summary>The Rapier 0.32.0 fork used by Sable already includes the rapier3d-f64 package, so switching to double precision without upgrading Rapier would technically be possible.
However, this version does not support SIMD optimizations for f64, unlike f32.
For this reason, the patch uses Rapier 0.35.3, which supports SIMD with f64.

