Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Articulation Bodies

There are two primary types of articulation supported by Simulate:

  1. Prismatic joints: slide along a specified axis,
  2. Revolute joints: rotate about a specified axis.

Note that these are currently only implemented in Unity.

class simulate.ArticulationBodyComponent

< >

( joint_type: str anchor_rotation: typing.List[float] = None anchor_position: typing.Optional[typing.List[float]] = None immovable: typing.Optional[bool] = None linear_damping: float = 0.0 angular_damping: float = 0.0 joint_friction: float = 0.0 drive_stiffness: float = 0.0 drive_damping: float = 0.0 drive_force_limit: float = 0.0 drive_target: float = 0.0 drive_target_velocity: float = 0.0 upper_limit: typing.Optional[float] = None lower_limit: typing.Optional[float] = None is_limited: typing.Optional[bool] = False mass: typing.Optional[float] = None center_of_mass: typing.Optional[typing.List[float]] = None inertia_tensor: typing.Optional[typing.List[float]] = None use_gravity: typing.Optional[bool] = None collision_detections: typing.Optional[str] = None )


  • joint_type (str) — The type of articulation (aka joint) to use.
    • “fixed”: no movement allowed
    • “prismatic”: only translation along 1 axis allowed
    • “revolute”: only rotation along 1 axis allowed
  • anchor_rotation (List[float], optional, defaults to [0.0, 0.0, 0.0, 1.0]) — The rotation axis along which the asset is allowed to move relative to its parent (translation or rotation).
  • anchor_position (List[float], optional, defaults to [0.0, 0.0, 0.0]) — Position of the anchor point of the joint.
  • immovable (bool, optional, defaults to False) — If True, the asset will not be affected by physics.
  • linear_damping (float, optional, defaults to 0.0) — The linear damping of the joint.
  • angular_damping (float, optional, defaults to 0.0) — The angular damping of the joint.
  • joint_friction (float, optional, defaults to 0.0) — The friction of the joint.
  • drive_stiffness (float, optional, defaults to 0.0) — The stiffness of the joint drive.
  • drive_damping (float, optional, defaults to 0.0) — The damping of the joint drive.
  • drive_force_limit (float, optional, defaults to 0.0) — The force limit of the joint drive.
  • drive_target (float, optional, defaults to 0.0) — The target of the joint drive.
  • drive_target_velocity (float, optional, defaults to 0.0) — The target velocity of the joint drive.
  • upper_limit (float, optional, defaults to None) — The upper limit of the joint.
  • lower_limit (float, optional, defaults to None) — The lower limit of the joint.
  • mass (float, optional, defaults to 1.0) — The mass of the body.
  • center_of_mass (List[float], optional, defaults to [0.0, 0.0, 0.0]) — The center of mass of the body.
  • inertia_tensor (List[float], optional, defaults to None) — The inertia tensor of the body.
  • use_gravity (bool, optional, defaults to True) — If True, the body will be affected by gravity.
  • collision_detections (str, optional, defaults to None) — The collision detection mode to use.

An articulation body will model the physics of an articulation body connecting together an asset with its parent in the hierarchy. For prismatic joints, the direction of travel in the backend is X, so we use anchor_rotation to set the position in space.