j
jaipkg.dev
packages / binding / jolt-jai

jolt-jai

522c82abinding

Jai bindings for the Jolt Physics library

MIT · updated 3 months ago

jolt-jai

Jai wrapper for joltc which is a C wrapper for Jolt Physics

Generate Bindings

jai generate.jai

Compiling

passing the -compile flag after - will compile the library before generating bindings

jai generate.jai - -compile

Enable Debug Symbols

jai generate.jai - -compile -debug

joltc and Jolt Physics source code

joltc and Jolt Physics source code are not included with the project and need to be downloaded manually. joltc source code should be in a subdirectory called [PROJECT_ROOT]/joltc. Jolt Physics source code should be in a folder called JoltPhysics under the joltc directory, [PROJECT_ROOT]/joltc/JoltPhysics.

Build Options

options are specified using -option-flag=on or off.

jai generate.jai - -compile -exceptions=on -debug-renderer=off

Option Description Default
-rtti enable C++ exceptions (This adds some overhead and Jolt doesn't use RTTI) off
-cross-platform-deterministic compile the library in such a way to keep the simulation deterministic across platforms off
-float-exceptions the library will emit extra code to ensure that the 4th component of a 3-vector is kept the same as the 3rd component and will enable floating point exceptions during simulation to detect divisions by zero. (only works for MSVC) on
-asserts enable asserts off
-double-percision use doubles for positions. This allows for much bigger worlds. off
-arm cross compile for for aarch64-linux-gnu (only works on Linux) off
-exceptions enable C++ exceptions (This adds some overhead and Jolt doesn't use exceptions) off
-broadphase-stats periodically trace broadphase stats to help determine if the broadphase layer configuration is optimal off
-narrowphase-stats periodically trace narrowphase stats to help determine which collision queries could be optimized off
-debug-renderer enable the debug renderer in the Debug and Release builds. (Note that enabling this reduces the performance of the library even if you're not drawing anything.) on
-profiler enable the profiler in the Debug and Release builds. (Note that enabling this reduces the performance of the library.) off
-custom-allocator force the library to use malloc/free instead of allowing the user to override the memory allocator off
-std-vector force the library to use the STL vector instead of the custom Array class off
-object-stream enable compiling the ObjectStream class and RTTI attribute information on
-sse4-1 enable SSE4.1 on
-sse4-2 enable SSE4.2 on
-avx enable AVX on
-avx2 enable AVX2 on
-avx512 enable AVX512 off
-lzcnt enable LZCNT on
-tzcnt enable TZCNT on
-f16c enable F16C on
-fmadd enable FMADD on

Jai

Version: beta 0.2.018, built on 11 October 2025.