OptionalcollisionBit mask of collision types this body can collide with. Defaults to
collision.types.ALL_OBJECT.
OptionalcollisionBit flag identifying this body's collision type. See
collision.types. Adapters translate to their native filter
system (Matter collisionFilter.category, Box2D categoryBits).
Optionaldensitymass per unit area; defaults are adapter-specific
OptionalfixedDisable rotation simulation, so the body keeps whatever angle it has.
Defaults to whatever the underlying engine defaults to, which for both
matter and planck is false: a rigid body turns when something turns
it. Pass true for anything that must stay upright, such as a
platformer actor that should never tip over.
The builtin adapter ignores this field, since its rotation is visual only and its collision shapes never turn either way.
OptionalfrictionSurface coefficient of friction during contact. Matter's
body.friction — 0 = frictionless (objects slide past each
other), 1 = high stick. Determines how much tangential velocity
is transferred between contacting bodies. Combined with body
rotation, this is what produces "throw" between colliding circles
and "english" off a wall. Distinct from frictionAir (per-step
drag with no contact required). Builtin SAT adapter ignores this.
OptionalfrictionPer-step velocity damping (Matter's frictionAir). Bleeds velocity
off every frame regardless of contact, creating terminal velocity.
Number applies uniformly; {x, y} damps each axis independently
(melonJS-specific — Matter only supports scalar and will average).
It damps ROTATION as well as translation on the matter and planck
adapters, so it is also what stops a body spinning once something has
set it turning. Left at 0, a spin never decays. The builtin adapter
maps it onto its per-axis body.friction damping vector instead, and
has no rotation to damp.
OptionalgravityPer-body gravity multiplier. 0 disables gravity for this body;
negative inverts it. Matches Matter's body.gravityScale.
Optionalisthe body generates collision events but no physical response
OptionalmaxHard cap on velocity magnitude per axis. melonJS extension —
Matter has no direct equivalent and uses frictionAir-induced
terminal velocity instead; MatterAdapter implements this by
clamping velocity in an afterUpdate hook.
OptionalrestitutionBounciness (coefficient of restitution): 0 = inelastic (stops on
contact), 1 = perfectly elastic (rebound speed equals impact speed).
Typically in [0, 1]. Values > 1 produce a super-elastic
("energy-gain") rebound — physically unrealistic but useful for
arcade effects like pinball flippers, slingshot boosters, or
trampoline pads. The value is not clamped at the interface level;
how an adapter handles out-of-range values is adapter-specific.
collision shapes (one or more — compound body support). Already resolved: a definition naming a collision shape file is a BodyDefinitionInit, and the engine resolves it before any adapter is handed it.
simulation kind
Optionaluserarbitrary user data attached to the body
Engine-portable body description, passed to PhysicsAdapter.addBody. Adapter-native fields (Box2D meters, Matter collisionFilter bits, etc.) are derived from these portable fields by each adapter.