Titania X3D Editor

It starts with you!

Titania v3.0.4

It starts with you!

X3D Reference



Contact nodes are produced as output events when two collidable objects or spaces make contact.

The Contact node belongs to the RigidBodyPhysics component and its container field is children. It is available since X3D version 3.2 or later.



SFNode [in, out] metadata NULL [X3DMetadataObject]

Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.

SFVec3f [in, out] position 0 0 0 (-∞,∞)

Position (x, y, z in meters) of exact location of collision.

SFVec3f [in, out] contactNormal 0 1 0 (-∞,∞)

ContactNormal is unit vector describing normal between two colliding bodies.

SFFloat [in, out] depth (-∞,∞)

Depth indicates how deep the current intersection is along normal vector.

MFString [in, out] appliedParameters "BOUNCE"

Default global parameters for collision outputs of rigid body physics system. Contact node can override parent CollisionCollection node. Selectable values for array: "BOUNCE" "USER_FRICTION" "FRICTION_COEFFICIENT-2" "ERROR_REDUCTION" "CONSTANT_FORCE" "SPEED-1" "SPEED-2" "SLIP-1" "SLIP-2".


BOUNCE: bounce value is used; USER_FRICTION: apply user-supplied value; FRICTION_COEFFICIENT-2: apply frictionCoefficients values; ERROR_REDUCTION: apply softnessErrorCorrection value; CONSTANT_FORCE: apply softnessConstantForceMix value; SPEED-1: apply first component of surfaceSpeed array; SPEED-2: apply second component of surfaceSpeed array; SLIP-1: apply first component of slipFactors array; SLIP-2: apply second component of slipFactors array.

SFFloat [in, out] bounce [0,1]

Bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce).

SFFloat [in, out] minBounceSpeed

MinBounceSpeed m/s needed to bounce.

SFVec3f [in, out] frictionDirection 0 1 0 (-∞,∞)

FrictionDirection controls friction vector.


Value of (0 0 0) indicates no friction.

SFVec2f [in, out] frictionCoefficients 0 0 [0,∞)

FrictionCoefficients used for computing surface drag.

SFVec2f [in, out] surfaceSpeed 0 0 (-∞,∞)

SurfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies.

SFVec2f [in, out] slipCoefficients 0 0 (-∞,∞)

SlipCoefficients used for computing surface drag.

SFFloat [in, out] softnessConstantForceMix 0.0001 [0,1]

SoftnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft.

SFFloat [in, out] softnessErrorCorrection 0.8 [0,1]

SoftnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step).

SFNode [in, out] geometry1 NULL [X3DNBodyCollidableNode]

Input/Output field geometry1.

SFNode [in, out] geometry2 NULL [X3DNBodyCollidableNode]

Input/Output field geometry2.

SFNode [in, out] body1 NULL [RigidBody]

Input/Output field body1.

SFNode [in, out] body2 NULL [RigidBody]

Input/Output field body2.



  • Each Contact node contains two RigidBody (containerField='body1,body2') and two CollidableShape or CollidableOffset nodes (containerField='geometry1,geometry2').


  • Contact nodes are transient and can only occur at run time, not in saved X3D files.

Browser Compatibility

Titania X_ITE
no no

External Links