Release notes for 0.20.0
. See the release readme for further information.
- added support for high refresh rate displays with fixed timestep in
Matter.Runner
- added support for sub-stepping for higher quality simulations in
Matter.Runner
- changed to a fixed timestep by default in
Matter.Runner
- improved frame pacing and average performance up to ~6% (see #1238)
- reduced average memory usage up to ~30% (see #1238)
- reduced memory garbage collection
- bug fixes and improvements see changelog
See the release compare page and the changelog for a detailed list of changes.
Matter.Runner
related changes #1254:
Matter.Runner
now defaults to a fixed deterministic timestep and support for non-fixed timestep is removed- optionally set your performance budgets
runner.maxFrameTime
(see docs) - note that
Matter.Runner
can now call zero, one, or multiple engine updates and events per display frame (see docs) - if needed set up your polyfill for
window.requestAnimationFrame
- see
Matter.Runner
updated docs throughout
Performance related changes #1238:
Matter.Collision
usecollision.supportCount
instead ofcollision.supports.length
for active support countMatter.Pair
usepair.contacts
instead ofpair.activeContacts
Matter.Pair
usepair.contactCount
instead ofpair.contacts.length
for active contact countPair.id
format has changed
For more information see comparison method.
Output sample comparison estimates of 44 examples against previous release matter-js@0.19.0:
Similarity 99.80% Overlap -1.92% Filesize +3.38% 81.58 KB
airFriction · · avalanche ● · ballPool ● · bridge ● · car ● · catapult ● ·
chains ● · circleStack · · cloth ● · collisionFiltering ● · compositeManipulation ● ·
compound · · compoundStack ● · concave ● · constraints ● · doublePendulum · ·
events ● · friction · · gravity ● · gyro ● · manipulation ● ◆
mixed ● · newtonsCradle · · pyramid ● · ragdoll ● · raycasting ● ·
remove ● ◆ restitution · · rounded ● · sensors · · sleeping ● ◆
slingshot ● · softBody ● · sprites ● · stack · · staticFriction ● ·
stats ● · stress ● · stress2 ● · stress3 ● · stress4 ● ·
timescale ● · views ● · wreckingBall ● ·
where for the sample · no change detected ● extrinsics changed ◆ intrinsics changed
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.
Release notes for 0.19.0
. See the release readme for further information.
- Changed
Body.setAngularVelocity
andBody.setVelocity
to be timestep independent - Improved similarity of results between different timesteps based on
60hz
as a baseline - Added timestep independent
Body.setSpeed
,Body.setAngularSpeed
,Body.getSpeed
,Body.getVelocity
,Body.getAngularVelocity
- Added optional
updateVelocity
argument toBody.setPosition
,Body.setAngle
,Body.translate
,Body.rotate
- Added extended documentation for
Body.applyForce
- Moved time correction feature from
Engine.update
to be built-in toMatter.Body
- Improved documentation pages
See the release compare page and the changelog for a more detailed list of changes.
See PR #777 for related changes and notes useful for migration.
For more information see comparison method.
Output comparison of 43 examples at 60hz against previous release matter-js@0.18.0
Behaviour 100.00% Similarity 100.00% Overlap +0.00%
Performance -0.80% Memory +0.05% Filesize +1.67% 78.97 KB
airFriction · · avalanche · · ballPool · · bridge · · car · · catapult · ·
chains · · circleStack · · cloth · · collisionFiltering · · compositeManipulation · ·
compound · · compoundStack · · concave · · constraints · · doublePendulum · ·
events · · friction · · gravity · · gyro · · manipulation · ·
mixed · · newtonsCradle · · pyramid · · ragdoll · · raycasting · ·
remove · · restitution · · rounded · · sensors · · sleeping · ◆
slingshot · · softBody · · sprites · · stack · · staticFriction · ·
stats · · stress · · stress2 · · stress3 · · timescale · ·
views · · wreckingBall · ·
where · no change ● extrinsics changed ◆ intrinsics changed
▶ code -n -d test/__compare__/examples-build.json test/__compare__/examples-dev.json
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.
Release notes for 0.18.0
. See the release readme for further information.
- Up to ~40% performance improvement (on average measured over all examples, in Node on a Mac Air M1)
- Replaces
Matter.Grid
with a faster and more efficient broadphase inMatter.Detector
- Reduced memory usage and garbage collection
- Resolves issues in
Matter.SAT
related to collision reuse - Removes performance issues from
Matter.Grid
- Improved collision accuracy
- Improved API and docs for collision modules
- Improved documentation pages
- Added note about avoiding Webpack performance problems
See the release compare page and the changelog for a detailed list of changes.
- Behaviour and similarity is in practice the same (a fractional difference from improved accuracy)
- API is the same other than:
- Matter.Detector replaces Matter.Grid (which is now deprecated but will remain for a short term)
- render.options.showBroadphase is deprecated (no longer implemented)
- Matter.SAT is renamed Matter.Collision
- Matter.SAT.collides is now Matter.Collision.collides with a slightly different set of arguments
Differences in behaviour, quality and performance against the previous release 0.17.1
. For more information see comparison method.
Output comparison of 43 examples against previous release matter-js@0.17.1
Behaviour 99.99% Similarity 99.98% Overlap -0.00%
Performance +40.62% Memory -6.18% Filesize -0.16% 77.73 KB
airFriction · · avalanche ● · ballPool · · bridge · · car · · catapult · ·
chains · · circleStack · · cloth · · collisionFiltering · · compositeManipulation ● ·
compound · · compoundStack · · concave · · constraints ● · doublePendulum · ·
events · · friction · · gravity · · gyro · · manipulation · ◆
mixed · · newtonsCradle · · pyramid · · ragdoll · · raycasting · ·
remove · · restitution · · rounded · · sensors · · sleeping · ◆
slingshot · · softBody · · sprites · · stack · · staticFriction · ·
stats · · stress · · stress2 · · stress3 · · timescale · ·
views · · wreckingBall · ·
where · no change ● extrinsics changed ◆ intrinsics changed
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.
Release notes for 0.17.0
. See the release readme for further information.
- Added performance and stats monitoring overlays to
Matter.Render
- See the stats demo or enable render.options.showPerformance and render.options.showStats
- Stats shown include
- render frequency (e.g.
60 fps
) - engine delta time (e.g.
16.66ms
) - engine execution duration (e.g.
5.00ms
) - render execution duration (e.g.
0.40ms
) - effective play speed (e.g.
1.00x
is real-time) - various other engine internal stats for debugging
- render frequency (e.g.
- Improved documentation pages
- Added Common.setDecomp and Common.getDecomp to fix bundler issues
- Added docs for all Matter.Render options
- Migrated usage of
Matter.World
over toMatter.Composite
(more info in docs) - Migrated, deprecated and removed various old functionality (see the changelog for details)
See the release compare page and the changelog for a detailed list of changes.
Differences in behaviour, quality and performance against the previous release 0.16.1
. For more information see comparison method.
Output comparison of 37 examples against previous release matter-js@0.16.1
Similarity 100% Performance +0.00% Overlap +0.00%
airFriction · · avalanche · · ballPool · · bridge · · broadphase · · car · ·
catapult · · chains · · circleStack · · cloth · · collisionFiltering · ·
compound · · compoundStack · · constraints · · events · · friction · ·
gyro · · manipulation · · mixed · · newtonsCradle · · pyramid · ·
ragdoll · · restitution · · rounded · · sensors · · sleeping · ·
slingshot · · softBody · · sprites · · stack · · staticFriction · ·
stats · · stress · · stress2 · · timescale · · views · ·
wreckingBall · ·
where · no change ● extrinsics changed ◆ intrinsics changed
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.
Release notes for 0.16.0
. See the release readme for further information.
- Changed external require method for
poly-decomp
(882e07c) - Improved
Bodies.fromVertices
decomposition quality usingremoveDuplicatePoints
(#639) - Added support for
>x.x.x
and>=x.x.x
semver ranges in plugins (0792716) - Changed demo example select background colour for Windows (matter-tools #5)
- Updated demo to use latest matter-tools (#33e8fe8)
- Updated SVG and terrain examples to use
fetch
(5551cd5)
See the release compare page and the changelog for a detailed list of changes.
Differences in behaviour, quality and performance against the previous release 0.15.0
. For more information see comparison method.
Output comparison of 41 examples against matter-js@0.15.0 build on last run
Similarity 100% Performance +0.00% Overlap +0.00%
airFriction · · avalanche · · ballPool · · bridge · · broadphase · · car · ·
catapult · · chains · · circleStack · · cloth · · collisionFiltering · ·
compositeManipulation · · compound · · compoundStack · · concave · · constraints · ·
doublePendulum · · events · · friction · · gravity · · gyro · ·
manipulation · · mixed · · newtonsCradle · · pyramid · · ragdoll · ·
raycasting · · restitution · · rounded · · sensors · · sleeping · ·
slingshot · · softBody · · sprites · · stack · · staticFriction · ·
stress · · stress2 · · timescale · · views · · wreckingBall · ·
where · no change ● extrinsics changed ◆ intrinsics changed
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.
Release notes for 0.15.0
. See the release readme for further information.
- Optimised performance up to ~30% boost vs.
0.14.2
(#528) (#522) (#553) - Added
Body.setCentre
(2ec247b) - Added
Constraint.pointAWorld
andConstraint.pointBWorld
(3c32969) - Changed default colour scheme (d258411) (6dd5ec5)
- Fixed issues with decomp require (0af1645)
- Fixed issues with render pixel ratio (d577477)
See the release compare page and the changelog for a detailed list of all changes.
Differences in behaviour, quality and performance against the previous release 0.14.2
. For more information see comparison method.
Output comparison of 41 examples against matter-js@0.14.2 build on last run
Similarity 100% Performance +33.6% Overlap +0.00%
airFriction · · avalanche · · ballPool · · bridge · · broadphase · · car · ·
catapult · · chains · · circleStack · · cloth · · collisionFiltering · ·
compositeManipulation · · compound · · compoundStack · · concave · · constraints · ·
doublePendulum · · events · · friction · · gravity · · gyro · ·
manipulation · · mixed · · newtonsCradle · · pyramid · · ragdoll · ·
raycasting · · restitution · · rounded · · sensors · · sleeping · ·
slingshot · · softBody · · sprites · · stack · · staticFriction · ·
stress · · stress2 · · timescale · · views · · wreckingBall · ·
where · no change ● extrinsics changed ◆ intrinsics changed
Many thanks to the contributors of this release, past contributors as well those involved in the community for your input and support.