Skip to content

Releases: stephengold/jolt-jni

5.1.0

02 Jun 04:17

Choose a tag to compare

  • Bugfix: logic error in VehicleTransmissionSettings.setClutchReleaseTime()

  • Bugfix: unsatisfied link in RackAndPinionConstraintSettings

  • Added set() copying methods to 83 classes.

  • Added 5 read-only interfaces:

    • ConstMotorcycleControllerSettings
    • ConstTrackedVehicleControllerSettings
    • ConstVehicleDifferentialSettings
    • ConstVehicleTrackSettings
    • ConstWheeledVehicleControllerSettings
  • Added getters and setters for 6 attributes of the MotorcycleControllerSettings class.

  • Added accessors for 3 attributes of the VehicleCollisionTester class.

  • Added isEqual() methods to 5 classes.

  • Added 3 public setters to the VehicleTrackSettings class.

  • Added copy constructors for the CollisionGroup and IndexedTriangleNoMaterial classes.

  • Added accessors for the mLeftRightSplit attribute of VehicleDifferentialSettings objects.

  • Added getters for the engine and transmission of TrackedVehicleControllerSettings objects.

  • Added accessors for the slip ratio of a WheeledVehicleControllerSettings.

  • Added the getRotationAngle() method to the QuatArg interface.

  • Added constant values cBroadPhaseLayerInvalid and cObjectLayerInvalid to the Jolt class.

  • Overrode various equals(), hashCode(), and toString() methods.

  • Updated the Jolt-Physics source and assets to sg260518 (=153fd6f).

  • Began building with Vulkan SDK v1.4.350 and Xcode v26.5.0 .

  • Updated the OSHI library to v7.2.1 .

5.0.0

21 May 01:03

Choose a tag to compare

  • API changes:

    • Deleted 2 deprecated public methods:
      • BodyCreationSettings.getNumPositionStepsOverride()
      • BodyCreationSettings.getNumVelocityStepsOverride()
    • Renamed 2 interfaces and 2 classes:
      • ConstContact -> ConstCharacterContact
      • ConstContactKey -> ConstCharacterContactKey
      • Contact -> CharacterContact
      • ContactKey -> CharacterContactKey
    • Various CharacterContactListener callbacks now receive a complete CharacterContact or CharacterContactSettings in place of fine-grained parameters.
  • Added a utility class NativeLibraryLoader (PR #47)

  • Added copy constructors to 6 soft-body classes:

    • Edge
    • Face
    • SoftBodyVertex
    • Vertex
    • VertexAttributes
    • Volume
  • Added new methods:

    • CharacterBase.setSupportingVolume()
    • CharacterRef.setSupportingVolume()
    • CharacterVirtualRef.setSupportingVolume()
    • ConstCharacterBase.getSupportingVolume()
    • ConstCharacterContact.getIsBackFacingContact()
    • ConstSoftBodyVertex.getPreviousPosition()
    • SoftBodyVertex.setHasContact()
    • SoftBodyVertex.setPreviousPosition()
  • Overrode 4 existing public methods:

    • Face.toString()
    • Plane.equals()
    • Plane.hashCode()
    • Vertex.toString()
  • Began building Windows native libraries using Visual Studio 2026 (instead of Visual Studio 2022).

  • Began building Linux_ARM64 native libraries using GCC v11.4 (instead of v10).

  • Began compiling Linux and Windows native libraries with v1.4.350.0 Vulkan header files (instead of v1.4.341.1).

  • Recompiled the compute shaders using Vulkan SDK v1.4.350.0 (instead of v1.4.341.1).

  • Updated the Jolt-Physics source and assets to sg260506 (=cd591a9).

4.3.0

08 May 19:51

Choose a tag to compare

  • Bugfixes:

    • unsatisfied link during BodyIdVector.createCopy()
    • unsatisfied link during Character.getCharacterSettings()
    • assertion failure during Contact.getCharacterB()
    • Mat44.setElement() and RMat44.setElement() are ineffective (PR #46)
  • Added classes and interfaces:

    • ConstJointState
    • ConstSkeletonPose
    • ConstVehicleTransmissionSettings
    • ContactSet
  • Added methods:

    • Body.applyBodyCreationSettings()
    • Body.applySoftBodyCreationSettings()
    • ConstBodyCreationSettings.isEqual()
    • ConstCollisionGroup.isEqual()
    • ConstMathProperties.isEqual()
    • ContactKey.toString()
    • CustomLoader.newLoader()
    • JointState.set()
    • JphMath.sqrt()
    • Ragdoll.driveToPoseUsingMotors()
    • Ragdoll.getConstraint()
    • RagdollRef.driveToPoseUsingMotors()
    • RagdollRef.getConstraint()
    • RagdollSettings.getConstraintIndexForBodyIndex()
    • RagdollSettingsRef.getConstraintIndexForBodyIndex()
    • StateRecorder.read(ContactSet)
    • StateRecorder.write(ContactSet)
    • Vec3Arg.copyTo() [2 additional signatures]
    • VehicleEngineSettings.restoreBinaryState()
    • VehicleEngineSettings.saveBinaryState()
    • VehicleTransmissionSettings.restoreBinaryState()
    • VehicleTransmissionSettings.saveBinaryState()
  • Publicized a PhysicsMaterial constructor.

  • Updated the Jolt-Physics source and assets to sg260504 (=4b2f349).

  • Updated the OSHI library to v7.1.0 .

4.2.0

03 May 21:08

Choose a tag to compare

  • Added methods:

    • ConstWheelSettingsWv.getAngularDamping()
    • ConstWheelSettingsWv.getInertia()
    • WheelSettingsWv.setAngularDamping()
    • WheelSettingsWv.setInertia()
    • WheelSettingsWvRef.setAngularDamping()
    • WheelSettingsWvRef.setInertia()
  • Began including Metal compute servers in macOS natives.

  • Began building macOS natives using Xcode v26.4.1 .

  • Updated the Jolt-Physics source and assets to sg260430 (=04587a3).

  • Updated the OSHI library to v7.0.0 .

4.1.0

21 Apr 21:56

Choose a tag to compare

  • Bugfix: injudicious uses of int in glue code

  • Added class ContactKey and interface ConstContactKey.

  • Added methods:

    • ConstFloat3.copyTo()
    • ConstHairSettings.putEdgeIndices()
    • ConvexHullShapeSettings.transformPoints()
    • Hair.putRenderPositionsWorld()
    • Mat44Arg.multiply3x4(ConstFloat3)
    • Op.star(Mat44, ConstFloat3)
    • SVertex(Vec3Arg, float)
    • Vec3.swizzleInPlace()
  • Added constant Jolt.cInvalidCharacterId.

  • Permitted passing arrays with null elements to 5 StreamInWrapper methods.

  • Updated the Jolt-Physics source and assets to sg260420 (=dd4df01).

  • Updated the OSHI library to v6.11.1 .

4.0.1

08 Apr 05:28

Choose a tag to compare

Bugfix: storeRef not updated after getShapeUpdate(ShapeRefC) calls

4.0.0

07 Apr 23:55

Choose a tag to compare

4.0.0 Pre-release
Pre-release
  • API changes:

    • Moved 32 public utility methods out of the Jolt class. The JPH_PI numeric constant and 11 math functions were moved to the new JphMath class. Meanwhile, 21 seldom-used utility methods were moved to the new MiscUtil class.
    • Altered the counted-reference classes (those derived from Ref). Each reference now caches its target object, and all getPtr() methods now return either a pre-existing object or null. The motivation was to avoid creating duplicate JVM objects that refer to the same native object, which can lead to non-intuitive behavior. This change especially impacts applications that invoke close() on physics objects.
    • Altered ShapeRefCArray.get() to return a copy of the array element instead of an alias.
    • Altered the semantics of VehicleConstraint.getController() and VehicleConstraintRef.getController() to return a pre-existing object. Again, the motivation was to avoid creating duplicate JVM objects that refer to the same native object
    • Altered the BcsResult and SbcsResult classes to more closely match the underlying native types (BCSResult and SBCSResult). This change affected the return types of both get() methods.
    • Converted 3 concrete classes to abstract ones: CharacterBaseSettings, ContactListener, and SoftBodyContactListener.
    • Renamed the StreamInWrapper.readBytes() method to readFloat3Array().
    • Corrected the return type of the ComputeQueue.toRef() method.
  • Bugfixes:

    • missing support for empty counted references in many places
    • unsatisfied link CharacterVirtualRefC.copy()
    • memory leak in ObjectStreamIn
  • Added classes and interfaces:

    • ConstLinearCurve
    • ConstVehicleEngineSettings
    • LinearCurve
    • SimpleTireMaxImpulseCallback
  • Added methods:

    • ConstCharacterBase.getPhysicsSystem()
    • ConstWheelSettingsWv.getLateralFriction()
    • ConstWheelSettingsWv.getLongitudinalFriction()
    • TireMaxImpulseCallback.calculate()
    • WheelSettingsWv.setLateralFriction()
    • WheelSettingsWv.setLongitudinalFriction()
    • WheelSettingsWvRef.setLateralFriction()
    • WheelSettingsWvRef.setLongitudinalFriction()
    • VehicleEngineSettings.getNormalizedTorque()
    • VehicleEngineSettings.setNormalizedTorque()
  • Added chaining to 21 public methods.

3.10.0

28 Mar 23:44

Choose a tag to compare

  • Added the ConstExtendedUpdateSettings interface.
  • Add the abstract TireMaxImpulseCallback class and Tmic helper class.
  • Added the CustomTireMaxImpulseCallback class.
  • Add the setTireMaxImpulseCallback() method to the WheeledVehicleController class. (issue #42)
  • Added chaining to 10 public methods in CompoundShapeSettings and ExtendedUpdateSettings.
  • Updated the Jolt-Physics source and assets to sg260326 (=3548a30).

3.9.0

10 Mar 02:41

Choose a tag to compare

  • Bugfix: use-after-free in BodyLockMultiRead and BodyLockMultiWrite (issue #41)

  • Added interface ConstBodyIdArray.

  • Added constructors:

    • BodyLockMultiRead(ConstBodyLockInterface, ConstBodyIdArray)
    • BodyLockMultiWrite(ConstBodyLockInterface, ConstBodyIdArray)
  • Added methods:

    • BodyInterface.activateBodies()
    • BodyInterface.deactivateBodies()
    • BodyLockMultiBase.getBodyIdArray()

3.8.0

03 Mar 20:20

Choose a tag to compare

  • Bugfixes:

    • Android crashes due to detaching threads with non-empty Java stacks
    • no implementation for TransformedAaBox.free()
  • Added Vulkan compute for Android platforms.

  • Added method Jolt.installAndroidTraceCallback()

  • Bumped the Android targetSdk and compileSdk levels to 35 and 36, respectively.

  • Improved many runtime checks.

  • Updated the OSHI library to v6.10.0 .