Skip to content

Releases: jrouwe/JoltPhysics.js

0.26.0

28 Sep 11:57
Compare
Choose a tag to compare

New:

  • Update to latest Jolt version
  • Added TaperedCylinderShape, PlaneShape and EmptyShape
  • Added option to have per triangle user data for MeshShape
  • Exposing new inner body functionality of CharacterVirtual

Breaking changes:

  • Sensor vs soft body contacts are now reported through SoftBodyManifold::GetNumSensorContacts/GetSensorContactBodyID
  • PhysicsStepListener and VehicleConstraintCallbacks now pass PhysicsStepListenerContext instead of delta time and physics system

0.25.0

09 Aug 10:07
Compare
Choose a tag to compare
  • Updated to latest version of Jolt
  • Implemented WheeledVehicleController TireMaxImpulseCallback
  • Exposed BodyInterface CreateBodyWithID and related functions
  • Exposed additional functions on HingeConstraint to local space constraint properties

0.24.0

29 May 20:08
Compare
Choose a tag to compare

Breaking change:

  • Added EActivation parameter to BodyInterface.AddForce/Torque

Other changes:

  • Updated to latest version of Jolt
  • Added enhanced internal edge removal for CharacterVirtual
  • Added gravity overrides for vehicles
  • Added support for MutableCompoundShape
  • Replaced std::vector with a custom implementation (saves 137 KB in jolt-physics.wasm.wasm)
  • Removed ObjectStream code, saving another 55KB
  • Added Mat44/RMat44.GetColumn4
  • Added BodyInterface::ResetSleepTimer

0.23.0

24 Apr 20:21
Compare
Choose a tag to compare
  • Added soft body demos
  • Added ability to use the DebugRenderer to render the internal state of the PhysicsSystem in Debug and Release builds
  • Exposing auto generation of Long Range Attachment constraints for soft bodies
  • Fixed error while building SIMD version
  • Fixed bug where CharacterVirtual.SetShape would not work when the character was in a sensor
  • Added ShapeCast.GetPointOnRay
  • Added HeightFieldShape.GetMinHeightValue and GetMaxHeightValue
  • Added BodyInterface.ApplyBuoyancyImpulse

Thanks to @PhoenixIllusion for doing most of the work!

0.22.0

05 Apr 09:48
Compare
Choose a tag to compare
  • Fixed an issue in the typescript definitions that caused some interfaces to not register their base class properly.

0.21.0

30 Mar 13:46
Compare
Choose a tag to compare
  • Updated to latest version of Jolt
  • Added PhysicsSystem::WereBodiesInContact
  • Exposing Body::GetBodyCreationSettings / GetSoftBodyCreationSettings
  • Exposing soft body bend and LRA constraints
  • Added helper function CreateConstraints to quickly create all soft body constraints from the face configuration

0.20.0

21 Mar 07:06
Compare
Choose a tag to compare
  • Corrected types for emscripten JSImplementation method arguments
  • Added option to create package with SIMD instructions (-DENABLE_SIMD=ON)
  • Support for skinning soft bodies to a skeleton
  • Exposed more of the API of BodyCreationSettings, SkeletonPose, BodyInterface, MotionProperties and some other interfaces

0.19.0

01 Mar 13:06
Compare
Choose a tag to compare

Breaking change:

  • Changed BodyID constructor to take index and sequence number (copy constructors make no sense in JS)

Other changes:

  • Exposing OffsetCenterOfMassShape constructor
  • Exposing more functions on interface MassProperties
  • Added BroadPhaseCastResult::Reset
  • RVec3 and RMat44 should use doubles to not lose precision when compiling with double precision
  • Added option to compile the library with multithreading enabled

0.18.0

18 Feb 21:43
Compare
Choose a tag to compare

New

  • Added option to build with memory profiler on
  • Added GearConstraint and RackAndPinionConstraint
  • Implemented SoftBodyContactListener
  • Added HeightFieldShape.Get/SetMaterials
  • Added ability to compile in double precision mode
  • Exposed a few other functions to JS

Breaking changes

  • Restricting angular motion using EAllowedDOFs now works in world space rather than in local space. This change was made to be more in line with other physics engines and to fix some issues with constraints.
  • Supporting double precision mode means that all body positions now use the RVec3 class instead of the Vec3 class. When not compiling in double precision mode these classes are binary compatible so no code changes are needed, but if you're using TypeScript you probably get type errors.

0.17.0

10 Feb 15:30
Compare
Choose a tag to compare

New features

  • Support for pulley and path constraints
  • Exposing ShapeResult::Clear to be able to force freeing memory
  • Added user data to CharacterVirtual

Bug fix which breaks existing vehicle setups

  • Longitudinal friction impulse for wheeled/tracked vehicles could become much higher than the calculated max because each iteration it was clamped to the max friction impulse which meant the total friction impulse could be PhysicsSettings::mNumVelocitySteps times too high.

Bug fixes

  • Properly initializing current engine RPM to min RPM for wheeled/tracked vehicles. When min RPM was lower than the default min RPM the engine would not start at min RPM.
  • Fix generated types for static methods by bumping webidl-dts-gen
  • Fixed memory leak on shutdown
  • When creating a MeshShape with triangles that have near identical positions it was possible that the degenerate check decided that a triangle was not degenerate while the triangle in fact would be degenerate after vertex quantization. The simulation would crash when colliding with this triangle.
  • A scaled compound shape with a center of mass of non zero would not apply the correct transform to its sub shapes when colliding with a soft body
  • A soft body without any edges would hang the solver
  • Fixed a bug in cast sphere vs triangle that could return a false positive hit against a degenerate triangle.