sapien.core package

Submodules

sapien.core.pysapien module

SAPIEN core module

class sapien.core.pysapien.ActiveLightEntity

Bases: LightEntity

property fov
set_fov(self: sapien.core.pysapien.ActiveLightEntity, arg0: float) None
set_shadow_parameters(self: sapien.core.pysapien.ActiveLightEntity, near: float, far: float) None
property shadow_far
property shadow_near
class sapien.core.pysapien.Actor

Bases: ActorDynamicBase

lock_motion(self: sapien.core.pysapien.Actor, x: bool = True, y: bool = True, z: bool = True, rx: bool = True, ry: bool = True, rz: bool = True) None
pack(self: sapien.core.pysapien.Actor) List[float]
set_angular_velocity(self: sapien.core.pysapien.Actor, arg0: numpy.ndarray[numpy.float32]) None
set_pose(self: sapien.core.pysapien.Actor, pose: sapien.core.pysapien.Pose) None
set_solver_iterations(self: sapien.core.pysapien.Actor, position: int, velocity: int = 1) None
set_velocity(self: sapien.core.pysapien.Actor, arg0: numpy.ndarray[numpy.float32]) None
unpack(self: sapien.core.pysapien.Actor, arg0: numpy.ndarray[numpy.float32]) None
class sapien.core.pysapien.ActorBase

Bases: Entity

get_builder(self: sapien.core.pysapien.ActorBase) sapien.core.pysapien.ActorBuilder
get_collision_shapes(self: sapien.core.pysapien.ActorBase) List[sapien.core.pysapien.CollisionShape]
get_collision_visual_bodies(self: sapien.core.pysapien.ActorBase) List[sapien.core.pysapien.RenderBody]
get_id(self: sapien.core.pysapien.ActorBase) int
get_scene(self: sapien.core.pysapien.ActorBase) sapien.core.pysapien.Scene
get_visual_bodies(self: sapien.core.pysapien.ActorBase) List[sapien.core.pysapien.RenderBody]
hide_visual(self: sapien.core.pysapien.ActorBase) None
property id
is_hiding_visual(self: sapien.core.pysapien.ActorBase) bool
on_contact(self: sapien.core.pysapien.ActorBase, func: Callable[[sapien.core.pysapien.ActorBase, sapien.core.pysapien.ActorBase, sapien.core.pysapien.Contact], None]) None
on_step(self: sapien.core.pysapien.ActorBase, func: Callable[[sapien.core.pysapien.ActorBase, float], None]) None
on_trigger(self: sapien.core.pysapien.ActorBase, func: Callable[[sapien.core.pysapien.ActorBase, sapien.core.pysapien.ActorBase, sapien.core.pysapien.Trigger], None]) None
render_collision(self: sapien.core.pysapien.ActorBase, render: bool = True) None
property type

One of “static”, “kinematic”, “dynamic”, “link”, “kinematic_link”

unhide_visual(self: sapien.core.pysapien.ActorBase) None
class sapien.core.pysapien.ActorBuilder

Bases: pybind11_object

add_box_collision(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), half_size: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.PhysicalMaterial = None, density: float = 1000, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder
add_box_visual(*args, **kwargs)

Overloaded function.

  1. add_box_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), half_size: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), color: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), name: str = ‘’) -> sapien.core.pysapien.ActorBuilder

  2. add_box_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), half_size: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.RenderMaterial = None, name: str = ‘’) -> sapien.core.pysapien.ActorBuilder

add_capsule_collision(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, half_length: float = 1, material: sapien.core.pysapien.PhysicalMaterial = None, density: float = 1000, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder

Add a capsule collision shape. The height is along the x-axis.

add_capsule_visual(*args, **kwargs)

Overloaded function.

  1. add_capsule_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, half_length: float = 1, color: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), name: str = ‘’) -> sapien.core.pysapien.ActorBuilder

Add a capsule visual shape. The height is along the x-axis.

  1. add_capsule_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, half_length: float = 1, material: sapien.core.pysapien.RenderMaterial = None, name: str = ‘’) -> sapien.core.pysapien.ActorBuilder

Add a capsule visual shape. The height is along the x-axis.

add_collision_from_file(self: sapien.core.pysapien.ActorBuilder, filename: str, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.PhysicalMaterial = None, density: float = 1000, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder

Add a collision shape from file (see assimp for supported formats). If the shape in the file is not convex, it will be converted by the PhysX backend.

add_multiple_collisions_from_file(self: sapien.core.pysapien.ActorBuilder, filename: str, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.PhysicalMaterial = None, density: float = 1000, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder

Add multiple collisions shapes from files. Also see @add_collision_from_file. Different from @add_collision_from_file, all connected components in the file will be converted to be convex.

add_nonconvex_collision_from_file(self: sapien.core.pysapien.ActorBuilder, filename: str, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.PhysicalMaterial = None, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder

Add a nonconvex collision shape from a file. If it is not a trigger, then it is only valid for static and kinematic actors.

add_sphere_collision(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, material: sapien.core.pysapien.PhysicalMaterial = None, density: float = 1000, patch_radius: float = 0.0, min_patch_radius: float = 0.0, is_trigger: bool = False) sapien.core.pysapien.ActorBuilder
add_sphere_visual(*args, **kwargs)

Overloaded function.

  1. add_sphere_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, color: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), name: str = ‘’) -> sapien.core.pysapien.ActorBuilder

  2. add_sphere_visual(self: sapien.core.pysapien.ActorBuilder, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), radius: float = 1, material: sapien.core.pysapien.RenderMaterial = None, name: str = ‘’) -> None

add_visual_from_file(self: sapien.core.pysapien.ActorBuilder, filename: str, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.RenderMaterial = None, name: str = '') sapien.core.pysapien.ActorBuilder
add_visual_from_mesh(self: sapien.core.pysapien.ActorBuilder, mesh: sapien.core.pysapien.RenderMesh, pose: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.RenderMaterial = None, name: str = '') sapien.core.pysapien.ActorBuilder
build(self: sapien.core.pysapien.ActorBuilder, name: str = '') sapien.core.pysapien.Actor
build_kinematic(self: sapien.core.pysapien.ActorBuilder, name: str = '') sapien.core.pysapien.Actor
build_static(self: sapien.core.pysapien.ActorBuilder, name: str = '') sapien.core.pysapien.ActorStatic
get_collisions(self: sapien.core.pysapien.ActorBuilder) List[sapien.core.pysapien.ShapeRecord]
get_visuals(self: sapien.core.pysapien.ActorBuilder) List[sapien.core.pysapien.VisualRecord]
remove_all_collisions(self: sapien.core.pysapien.ActorBuilder) sapien.core.pysapien.ActorBuilder
remove_all_visuals(self: sapien.core.pysapien.ActorBuilder) sapien.core.pysapien.ActorBuilder
remove_collision_at(self: sapien.core.pysapien.ActorBuilder, index: int) sapien.core.pysapien.ActorBuilder
remove_visual_at(self: sapien.core.pysapien.ActorBuilder, index: int) sapien.core.pysapien.ActorBuilder
reset_collision_groups(self: sapien.core.pysapien.ActorBuilder) sapien.core.pysapien.ActorBuilder
set_collision_groups(self: sapien.core.pysapien.ActorBuilder, group0: int, group1: int, group2: int, group3: int) sapien.core.pysapien.ActorBuilder

see CollisionShape.set_collision_groups

set_mass_and_inertia(self: sapien.core.pysapien.ActorBuilder, mass: float, inertia_pose: sapien.core.pysapien.Pose, inertia: numpy.ndarray[numpy.float32]) sapien.core.pysapien.ActorBuilder

Set the mass and inertia.

Args:

mass: the (scalar) mass of the actor inertia_pose:

the position is the center of mass; the rotation (quaternion) is the principle axis of inertia, relative to actor frame

inertia: principle moments of inertia (a 3D vector)

References:

https://en.wikipedia.org/wiki/Moment_of_inertia#Principal_axes

set_scene(self: sapien.core.pysapien.ActorBuilder, arg0: sapien.core.pysapien.Scene) sapien.core.pysapien.ActorBuilder
class sapien.core.pysapien.ActorDynamicBase

Bases: ActorBase

add_force_at_point(self: sapien.core.pysapien.ActorDynamicBase, force: numpy.ndarray[numpy.float32], point: numpy.ndarray[numpy.float32]) None
add_force_torque(self: sapien.core.pysapien.ActorDynamicBase, force: numpy.ndarray[numpy.float32], torque: numpy.ndarray[numpy.float32]) None
property angular_velocity
property ccd
property cmass_local_pose
get_angular_velocity(self: sapien.core.pysapien.ActorDynamicBase) numpy.ndarray[numpy.float32]
get_cmass_local_pose(self: sapien.core.pysapien.ActorDynamicBase) sapien.core.pysapien.Pose
get_inertia(self: sapien.core.pysapien.ActorDynamicBase) numpy.ndarray[numpy.float32]
get_mass(self: sapien.core.pysapien.ActorDynamicBase) float
get_velocity(self: sapien.core.pysapien.ActorDynamicBase) numpy.ndarray[numpy.float32]
property inertia
property mass
set_ccd(self: sapien.core.pysapien.ActorDynamicBase, enable: bool) None
set_damping(self: sapien.core.pysapien.ActorDynamicBase, linear: float, angular: float) None
property velocity
class sapien.core.pysapien.ActorStatic

Bases: ActorBase

pack(self: sapien.core.pysapien.ActorStatic) List[float]
set_pose(self: sapien.core.pysapien.ActorStatic, pose: sapien.core.pysapien.Pose) None
unpack(self: sapien.core.pysapien.ActorStatic, arg0: numpy.ndarray[numpy.float32]) None
class sapien.core.pysapien.Articulation

Bases: ArticulationDrivable

compute_adjoint_matrix(self: sapien.core.pysapien.Articulation, source_link_ik: int, target_link_id: int) numpy.ndarray[numpy.float32[6, 6]]
compute_cartesian_diff_ik(self: sapien.core.pysapien.Articulation, world_velocity: numpy.ndarray[numpy.float32[6, 1]], commanded_link_id: int, active_joint_ids: List[int] = []) numpy.ndarray[numpy.float32[m, 1]]
compute_forward_dynamics(self: sapien.core.pysapien.Articulation, arg0: numpy.ndarray[numpy.float32]) numpy.ndarray[numpy.float32]
compute_generalized_external_force(self: sapien.core.pysapien.Articulation, forces: numpy.ndarray[numpy.float32[m, 3]], torques: numpy.ndarray[numpy.float32[m, 3]]) numpy.ndarray[numpy.float32]
compute_inverse_dynamics(self: sapien.core.pysapien.Articulation, arg0: numpy.ndarray[numpy.float32]) numpy.ndarray[numpy.float32]
compute_manipulator_inertia_matrix(self: sapien.core.pysapien.Articulation) numpy.ndarray[numpy.float32[m, n]]
compute_passive_force(self: sapien.core.pysapien.Articulation, gravity: bool = True, coriolis_and_centrifugal: bool = True, external: bool = True) numpy.ndarray[numpy.float32]
compute_spatial_twist_jacobian(self: sapien.core.pysapien.Articulation) numpy.ndarray[numpy.float32[m, n]]
compute_transformation_matrix(self: sapien.core.pysapien.Articulation, source_link_id: int, target_link_id: int) numpy.ndarray[numpy.float32[4, 4]]
compute_twist_diff_ik(self: sapien.core.pysapien.Articulation, spatial_twist: numpy.ndarray[numpy.float32[6, 1]], commanded_link_id: int, active_joint_ids: List[int] = []) numpy.ndarray[numpy.float32[m, 1]]
compute_world_cartesian_jacobian(self: sapien.core.pysapien.Articulation) numpy.ndarray[numpy.float32[m, n]]
property fixed
get_active_joints(self: sapien.core.pysapien.Articulation) List[sapien.core.pysapien.Joint]
get_drive_velocity_target(self: sapien.core.pysapien.Articulation) numpy.ndarray[numpy.float32]
pack(self: sapien.core.pysapien.Articulation) List[float]
set_drive_velocity_target(self: sapien.core.pysapien.Articulation, drive_velocity_target: numpy.ndarray[numpy.float32]) None
set_root_angular_velocity(self: sapien.core.pysapien.Articulation, vel: numpy.ndarray[numpy.float32]) None
set_root_velocity(self: sapien.core.pysapien.Articulation, vel: numpy.ndarray[numpy.float32]) None
unpack(self: sapien.core.pysapien.Articulation, arg0: numpy.ndarray[numpy.float32]) None
class sapien.core.pysapien.ArticulationBase

Bases: Entity

create_pinocchio_model(self: sapien.core.pysapien.ArticulationBase) sapien.core.pysapien.PinocchioModel

Create the kinematic and dynamic model of this articulation implemented by the Pinocchio library. Allowing computing forward/inverse kinematics/dynamics.

property dof
export_urdf(self: sapien.core.pysapien.ArticulationBase, cache_dir: str = '') str
get_builder(self: sapien.core.pysapien.ArticulationBase) sapien.core.pysapien.ArticulationBuilder
get_joints(self: sapien.core.pysapien.ArticulationBase) List[sapien.core.pysapien.JointBase]
get_qacc(self: sapien.core.pysapien.ArticulationBase) numpy.ndarray[numpy.float32]
get_qf(self: sapien.core.pysapien.ArticulationBase) numpy.ndarray[numpy.float32]
get_qlimits(self: sapien.core.pysapien.ArticulationBase) numpy.ndarray[numpy.float32]
get_qpos(self: sapien.core.pysapien.ArticulationBase) numpy.ndarray[numpy.float32]
get_qvel(self: sapien.core.pysapien.ArticulationBase) numpy.ndarray[numpy.float32]
get_root_pose(self: sapien.core.pysapien.ArticulationBase) sapien.core.pysapien.Pose
set_pose(self: sapien.core.pysapien.ArticulationBase, pose: sapien.core.pysapien.Pose) None

same as set_root_pose

set_qacc(self: sapien.core.pysapien.ArticulationBase, qacc: numpy.ndarray[numpy.float32]) None
set_qf(self: sapien.core.pysapien.ArticulationBase, qf: numpy.ndarray[numpy.float32]) None
set_qlimits(self: sapien.core.pysapien.ArticulationBase, qlimits: numpy.ndarray[numpy.float32]) None
set_qpos(self: sapien.core.pysapien.ArticulationBase, qpos: numpy.ndarray[numpy.float32]) None
set_qvel(self: sapien.core.pysapien.ArticulationBase, qvel: numpy.ndarray[numpy.float32]) None
set_root_pose(self: sapien.core.pysapien.ArticulationBase, pose: sapien.core.pysapien.Pose) None
property type
class sapien.core.pysapien.ArticulationBuilder

Bases: pybind11_object

build(self: sapien.core.pysapien.ArticulationBuilder, fix_root_link: bool = False) sapien.core.pysapien.Articulation
build_kinematic(self: sapien.core.pysapien.ArticulationBuilder) sapien.core.pysapien.KinematicArticulation
get_scene(self: sapien.core.pysapien.ArticulationBuilder) sapien.core.pysapien.Scene
set_scene(self: sapien.core.pysapien.ArticulationBuilder, scene: sapien.core.pysapien.Scene) None
class sapien.core.pysapien.ArticulationDrivable

Bases: ArticulationBase

get_drive_target(self: sapien.core.pysapien.ArticulationDrivable) numpy.ndarray[numpy.float32]
set_drive_target(self: sapien.core.pysapien.ArticulationDrivable, drive_target: numpy.ndarray[numpy.float32]) None
class sapien.core.pysapien.AwaitableDLList

Bases: pybind11_object

ready(self: sapien.core.pysapien.AwaitableDLList) bool
wait(self: sapien.core.pysapien.AwaitableDLList) List[capsule]
class sapien.core.pysapien.AwaitableVoid

Bases: pybind11_object

ready(self: sapien.core.pysapien.AwaitableVoid) bool
wait(self: sapien.core.pysapien.AwaitableVoid) None
class sapien.core.pysapien.BoxGeometry

Bases: CollisionGeometry

property half_lengths
class sapien.core.pysapien.CameraEntity

Bases: Entity

property cx
property cy
property far
property fovx
property fovy
property fx
property fy
get_albedo_rgba(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]
get_camera_matrix(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]

Get 4x4 intrinsic camera matrix in OpenCV format.

get_color_rgba(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]
get_dl_tensor(self: sapien.core.pysapien.CameraEntity, texture_name: str) capsule

Get raw GPU memory for a render target in the dl format. It can be wrapped into PyTorch or Tensorflow using their API

get_extrinsic_matrix(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]

Get 4x4 extrinsic camera matrix in OpenCV format.

get_float_texture(self: sapien.core.pysapien.CameraEntity, texture_name: str) numpy.ndarray[numpy.float32]
get_intrinsic_matrix(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]

Get 3x3 intrinsic camera matrix in OpenCV format.

get_model_matrix(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]

Get model matrix (inverse of extrinsic matrix) used in rendering (Y up, Z back)

get_normal_rgba(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]
get_position_rgba(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]
get_projection_matrix(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.float32]

Get projection matrix in used in rendering (right-handed NDC with [-1,1] XY and [0,1] Z)

get_texture(self: sapien.core.pysapien.CameraEntity, texture_name: str) numpy.ndarray
get_uint32_texture(self: sapien.core.pysapien.CameraEntity, texture_name: str) numpy.ndarray[numpy.uint32]
get_uint8_texture(self: sapien.core.pysapien.CameraEntity, texture_name: str) numpy.ndarray[numpy.uint8]
get_visual_actor_segmentation(self: sapien.core.pysapien.CameraEntity) numpy.ndarray[numpy.uint32]
property height
property local_pose
property near
property parent
set_focal_lengths(self: sapien.core.pysapien.CameraEntity, fx: float, fy: float) None
set_fovx(self: sapien.core.pysapien.CameraEntity, fov: float, compute_y: bool = True) None
set_fovy(self: sapien.core.pysapien.CameraEntity, fov: float, compute_x: bool = True) None
set_local_pose(self: sapien.core.pysapien.CameraEntity, pose: sapien.core.pysapien.Pose) None
set_parent(self: sapien.core.pysapien.CameraEntity, parent: sapien.core.pysapien.ActorBase, keep_pose: bool) None
set_perspective_parameters(self: sapien.core.pysapien.CameraEntity, near: float, far: float, fx: float, fy: float, cx: float, cy: float, skew: float) None
set_pose(self: sapien.core.pysapien.CameraEntity, pose: sapien.core.pysapien.Pose) None
set_principal_point(self: sapien.core.pysapien.CameraEntity, cx: float, cy: float) None
property skew
take_picture(self: sapien.core.pysapien.CameraEntity) None
take_picture_and_get_dl_tensors_async(self: sapien.core.pysapien.CameraEntity, names: List[str]) sapien.core.pysapien.AwaitableDLList
property width
class sapien.core.pysapien.CapsuleGeometry

Bases: CollisionGeometry

property half_length
property radius
class sapien.core.pysapien.CollisionGeometry

Bases: pybind11_object

class sapien.core.pysapien.CollisionShape

Bases: pybind11_object

property actor
property contact_offset
property geometry
get_collision_groups(self: sapien.core.pysapien.CollisionShape) List[int[4]]
get_local_pose(self: sapien.core.pysapien.CollisionShape) sapien.core.pysapien.Pose
get_physical_material(self: sapien.core.pysapien.CollisionShape) sapien.core.pysapien.PhysicalMaterial
property is_trigger
property min_patch_radius
property patch_radius
property rest_offset
set_collision_groups(self: sapien.core.pysapien.CollisionShape, group0: int, group1: int, group2: int, group3: int) None

collision groups determine the collision behavior of objects. Let A.gx denote the collision group x of collision shape A. Collision shape A and B will collide iff the following condition holds:

((A.g0 & B.g1) or (A.g1 & B.g0)) and (not ((A.g2 & B.g2) and ((A.g3 & 0xffff) == (B.g3 & 0xffff))))

Here is some explanation: g2 is the “ignore group” and g3 is the “id group”. The only the lower 16 bits of the id group is used since the upper 16 bits are reserved for other purposes in the future. When 2 collision shapes have the same ID (g3), then if any of their g2 bits match, their collisions are definitely ignored.

If after testing g2 and g3, the objects may collide, g0 and g1 come into play. g0 is the “contact type group” and g1 is the “contact affinity group”. Collision shapes collide only when a bit in the contact type of the first shape matches a bit in the contact affinity of the second shape.

set_local_pose(self: sapien.core.pysapien.CollisionShape, pose: sapien.core.pysapien.Pose) None
set_physical_material(self: sapien.core.pysapien.CollisionShape, material: sapien.core.pysapien.PhysicalMaterial) None
property type
class sapien.core.pysapien.Constraint

Bases: pybind11_object

class sapien.core.pysapien.Contact

Bases: pybind11_object

property actor0
property actor1
property collision_shape0
property collision_shape1
property ends
property persists
property points
property starts
class sapien.core.pysapien.ContactPoint

Bases: pybind11_object

property impulse
property normal
property position
property separation
class sapien.core.pysapien.ConvexMeshGeometry

Bases: CollisionGeometry

property indices
property rotation
property scale
property vertices
class sapien.core.pysapien.DirectionalLightEntity

Bases: LightEntity

set_shadow_parameters(self: sapien.core.pysapien.DirectionalLightEntity, half_size: float, near: float, far: float) None
property shadow_far
property shadow_half_size
property shadow_near
class sapien.core.pysapien.Drive

Bases: Constraint

free_motion(self: sapien.core.pysapien.Drive, tx: bool, ty: bool, tz: bool, rx: bool, ry: bool, rz: bool) None
lock_motion(self: sapien.core.pysapien.Drive, tx: bool, ty: bool, tz: bool, rx: bool, ry: bool, rz: bool) None
set_distance_limit(self: sapien.core.pysapien.Drive, distance: float) None
set_slerp_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
set_target(self: sapien.core.pysapien.Drive, pose: sapien.core.pysapien.Pose) None
set_target_velocity(self: sapien.core.pysapien.Drive, linear: numpy.ndarray[numpy.float32], angular: numpy.ndarray[numpy.float32]) None
set_x_limit(self: sapien.core.pysapien.Drive, low: float, high: float) None
set_x_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
set_x_twist_limit(self: sapien.core.pysapien.Drive, low: float, high: float) None
set_x_twist_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
set_y_limit(self: sapien.core.pysapien.Drive, low: float, high: float) None
set_y_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
set_yz_cone_limit(self: sapien.core.pysapien.Drive, y: float, z: float) None
set_yz_pyramid_limit(self: sapien.core.pysapien.Drive, ylow: float, yhigh: float, zlow: float, zhigh: float) None
set_yz_swing_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
set_z_limit(self: sapien.core.pysapien.Drive, low: float, high: float) None
set_z_properties(self: sapien.core.pysapien.Drive, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, is_acceleration: bool = True) None
class sapien.core.pysapien.Engine

Bases: pybind11_object

create_mesh_geometry(self: sapien.core.pysapien.Engine, vertices: numpy.ndarray[numpy.float32], indices: numpy.ndarray[numpy.uint32], scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), rotation: numpy.ndarray[numpy.float32] = array([1., 0., 0., 0.], dtype=float32)) sapien.core.pysapien.NonconvexMeshGeometry
create_physical_material(self: sapien.core.pysapien.Engine, static_friction: float, dynamic_friction: float, restitution: float) sapien.core.pysapien.PhysicalMaterial
create_scene(self: sapien.core.pysapien.Engine, config: sapien.core.pysapien.SceneConfig = SceneConfig()) sapien.core.pysapien.Scene
get_renderer(self: sapien.core.pysapien.Engine) sapien.core.pysapien.IPxrRenderer
property renderer
set_log_level(self: sapien.core.pysapien.Engine, level: str) None
set_renderer(self: sapien.core.pysapien.Engine, renderer: sapien.core.pysapien.IPxrRenderer) None
class sapien.core.pysapien.Entity

Bases: pybind11_object

property classname
get_name(self: sapien.core.pysapien.Entity) str
get_pose(self: sapien.core.pysapien.Entity) sapien.core.pysapien.Pose
property name
property pose
set_name(self: sapien.core.pysapien.Entity, name: str) None
class sapien.core.pysapien.Gear

Bases: pybind11_object

property ratio
class sapien.core.pysapien.IPxrRenderer

Bases: pybind11_object

create_material(self: sapien.core.pysapien.IPxrRenderer) sapien.core.pysapien.RenderMaterial
create_mesh(self: sapien.core.pysapien.IPxrRenderer, vertices: numpy.ndarray[numpy.float32[m, 3]], indices: numpy.ndarray[numpy.uint32[m, 3]]) sapien.core.pysapien.RenderMesh
create_texture_from_array(self: sapien.core.pysapien.IPxrRenderer, array: numpy.ndarray[numpy.uint8], mipmap_levels: int = 1, filter_mode: str = 'linear', address_mode: str = 'repeat') sapien.core.pysapien.RenderTexture
create_texture_from_file(self: sapien.core.pysapien.IPxrRenderer, filename: str, mipmap_levels: int = 1, filter_mode: str = 'linear', address_mode: str = 'repeat') sapien.core.pysapien.RenderTexture
class sapien.core.pysapien.Joint

Bases: JointBase

property damping
property drive_mode
property force_limit
property friction
get_drive_target(self: sapien.core.pysapien.Joint) float
get_drive_velocity_target(self: sapien.core.pysapien.Joint) float
get_global_pose(self: sapien.core.pysapien.Joint) sapien.core.pysapien.Pose
set_drive_property(self: sapien.core.pysapien.Joint, stiffness: float, damping: float, force_limit: float = 3.4028234663852886e+38, mode: str = 'force') None
set_drive_target(self: sapien.core.pysapien.Joint, target: float) None
set_drive_velocity_target(self: sapien.core.pysapien.Joint, velocity: float) None
set_friction(self: sapien.core.pysapien.Joint, friction: float) None
property stiffness
class sapien.core.pysapien.JointBase

Bases: pybind11_object

property articulation
get_dof(self: sapien.core.pysapien.JointBase) int
get_limits(self: sapien.core.pysapien.JointBase) numpy.ndarray[numpy.float32]
get_name(self: sapien.core.pysapien.JointBase) str
get_pose_in_child(self: sapien.core.pysapien.JointBase) sapien.core.pysapien.Pose
get_pose_in_parent(self: sapien.core.pysapien.JointBase) sapien.core.pysapien.Pose
property name
set_limits(self: sapien.core.pysapien.JointBase, limits: numpy.ndarray[numpy.float32]) None
set_name(self: sapien.core.pysapien.JointBase, name: str) None
property type
class sapien.core.pysapien.JointRecord

Bases: pybind11_object

property damping
property friction
property joint_type
property limits
property name
property pose_in_child
property pose_in_parent
class sapien.core.pysapien.KinematicArticulation

Bases: ArticulationDrivable

class sapien.core.pysapien.KinematicJoint

Bases: JointBase

class sapien.core.pysapien.KinematicJointFixed

Bases: KinematicJoint

class sapien.core.pysapien.KinematicJointPrismatic

Bases: KinematicJointSingleDof

class sapien.core.pysapien.KinematicJointRevolute

Bases: KinematicJointSingleDof

class sapien.core.pysapien.KinematicJointSingleDof

Bases: KinematicJoint

Bases: LinkBase

get_articulation(self: sapien.core.pysapien.KinematicLink) sapien.core.pysapien.KinematicArticulation
class sapien.core.pysapien.KuafuConfig

Bases: pybind11_object

property accumulate_frames
property assets_path
property max_bounces
property max_geometries
property max_geometry_instances
property max_materials
property max_textures
property spp
property use_denoiser
property use_viewer
property viewer_height
property viewer_width
class sapien.core.pysapien.KuafuRenderer

Bases: IPxrRenderer

property is_running
static set_log_level(level: str) None
class sapien.core.pysapien.LightEntity

Bases: Entity

property color
property direction
property local_pose
property parent
property pose
property position
set_color(self: sapien.core.pysapien.LightEntity, color: numpy.ndarray[numpy.float32]) None
set_direction(self: sapien.core.pysapien.LightEntity, direction: numpy.ndarray[numpy.float32]) None
set_local_pose(self: sapien.core.pysapien.LightEntity, pose: sapien.core.pysapien.Pose) None
set_parent(self: sapien.core.pysapien.LightEntity, parent: sapien.core.pysapien.ActorBase, keep_pose: bool) None
set_pose(self: sapien.core.pysapien.LightEntity, pose: sapien.core.pysapien.Pose) None
set_position(self: sapien.core.pysapien.LightEntity, position: numpy.ndarray[numpy.float32]) None
property shadow

Bases: LinkBase

get_articulation(self: sapien.core.pysapien.Link) sapien.core.pysapien.Articulation
class sapien.core.pysapien.LinkBase

Bases: ActorDynamicBase

get_articulation(self: sapien.core.pysapien.LinkBase) sapien.core.pysapien.ArticulationBase
get_index(self: sapien.core.pysapien.LinkBase) int
class sapien.core.pysapien.LinkBuilder

Bases: ActorBuilder

get_index(self: sapien.core.pysapien.LinkBuilder) int
get_joint(self: sapien.core.pysapien.LinkBuilder) sapien.core.pysapien.JointRecord
get_name(self: sapien.core.pysapien.LinkBuilder) str
get_parent(self: sapien.core.pysapien.LinkBuilder) int
set_joint_name(self: sapien.core.pysapien.LinkBuilder, arg0: str) None
set_joint_properties(self: sapien.core.pysapien.LinkBuilder, joint_type: str, limits: numpy.ndarray[numpy.float32], pose_in_parent: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), pose_in_child: sapien.core.pysapien.Pose = Pose([0, 0, 0], [1, 0, 0, 0]), friction: float = 0, damping: float = 0) None

Set the properties of the joint.

Args:

joint_type: [“revolute”, “prismatic”, “fixed”] limits: [[min1, max1], …], the length is the DoF pose_in_parent: joint pose in parent frame.

The x-axis is the rotation axis for revolute, or the translation axis for prismatic.

pose_in_child: joint pose in child frame. See also @pose_in_parent. friction: joint friction damping: joint damping

set_name(self: sapien.core.pysapien.LinkBuilder, arg0: str) None
set_parent(self: sapien.core.pysapien.LinkBuilder, arg0: int) None
class sapien.core.pysapien.NonconvexMeshGeometry

Bases: CollisionGeometry

property indices
property rotation
property scale
property vertices
class sapien.core.pysapien.ParticleEntity

Bases: Entity

property visual_body
class sapien.core.pysapien.PhysicalMaterial

Bases: pybind11_object

property dynamic_friction
get_dynamic_friction(self: sapien.core.pysapien.PhysicalMaterial) float
get_restitution(self: sapien.core.pysapien.PhysicalMaterial) float
get_static_friction(self: sapien.core.pysapien.PhysicalMaterial) float
property restitution
set_dynamic_friction(self: sapien.core.pysapien.PhysicalMaterial, coef: float) None
set_restitution(self: sapien.core.pysapien.PhysicalMaterial, coef: float) None
set_static_friction(self: sapien.core.pysapien.PhysicalMaterial, coef: float) None
property static_friction
class sapien.core.pysapien.PinocchioModel

Bases: pybind11_object

compute_coriolis_matrix(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]], qvel: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]]
compute_forward_dynamics(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]], qvel: numpy.ndarray[numpy.float64[m, 1]], qf: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, 1]]
compute_forward_kinematics(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]]) None

Compute and cache forward kinematics. After computation, use get_link_pose to retrieve the computed pose for a specific link.

compute_full_jacobian(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]]) None

Compute and cache Jacobian for all links

compute_generalized_mass_matrix(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]]
compute_inverse_dynamics(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]], qvel: numpy.ndarray[numpy.float64[m, 1]], qacc: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, 1]]
compute_inverse_kinematics(self: sapien.core.pysapien.PinocchioModel, link_index: int, pose: sapien.core.pysapien.Pose, initial_qpos: numpy.ndarray[numpy.float64[m, 1]] = array([], dtype=float64), active_qmask: numpy.ndarray[numpy.int32[m, 1]] = array([], dtype=int32), eps: float = 0.0001, max_iterations: int = 1000, dt: float = 0.1, damp: float = 1e-06) Tuple[numpy.ndarray[numpy.float64[m, 1]], bool, numpy.ndarray[numpy.float64[6, 1]]]

Compute inverse kinematics with CLIK algorithm. Details see https://gepettoweb.laas.fr/doc/stack-of-tasks/pinocchio/master/doxygen-html/md_doc_b-examples_i-inverse-kinematics.html Args:

link_index: index of the link pose: target pose of the link in articulation base frame initial_qpos: initial qpos to start CLIK active_qmask: dof sized integer array, 1 to indicate active joints and 0 for inactive joints, default to all 1s max_iterations: number of iterations steps dt: iteration step “speed” damp: iteration step “damping”

Returns:

result: qpos from IK success: whether IK is successful error: se3 norm error

Compute the link(body) Jacobian for a single link. It is faster than compute_full_jacobian followed by get_link_jacobian

Given link index, get the Jacobian. Must be called after compute_full_jacobian.

Args:

link_index: index of the link local: True for world(spatial) frame; False for link(body) frame

Given link index, get link pose (in articulation base frame) from forward kinematics. Must be called after compute_forward_kinematics.

class sapien.core.pysapien.PlaneGeometry

Bases: CollisionGeometry

class sapien.core.pysapien.PointLightEntity

Bases: LightEntity

set_shadow_parameters(self: sapien.core.pysapien.PointLightEntity, near: float, far: float) None
property shadow_far
property shadow_near
class sapien.core.pysapien.Pose

Bases: pybind11_object

static from_transformation_matrix(mat44: numpy.ndarray[numpy.float32]) sapien.core.pysapien.Pose
inv(self: sapien.core.pysapien.Pose) sapien.core.pysapien.Pose
property p
property q
set_p(self: sapien.core.pysapien.Pose, p: numpy.ndarray[numpy.float32]) None
set_q(self: sapien.core.pysapien.Pose, q: numpy.ndarray[numpy.float32]) None
set_rotation(self: sapien.core.pysapien.Pose, arg0: numpy.ndarray[numpy.float32]) None
to_transformation_matrix(self: sapien.core.pysapien.Pose) numpy.ndarray[numpy.float32[4, 4]]
transform(self: sapien.core.pysapien.Pose, arg0: sapien.core.pysapien.Pose) sapien.core.pysapien.Pose
class sapien.core.pysapien.ProfilerBlock

Bases: pybind11_object

class sapien.core.pysapien.RenderBody

Bases: pybind11_object

property actor_id
get_actor_id(self: sapien.core.pysapien.RenderBody) int
get_name(self: sapien.core.pysapien.RenderBody) str
get_render_shapes(self: sapien.core.pysapien.RenderBody) List[sapien.core.pysapien.RenderShape]
get_visual_id(self: sapien.core.pysapien.RenderBody) int
property half_length
property half_lengths
property local_pose
property name
property radius
property scale
set_custom_data(self: sapien.core.pysapien.RenderBody, custom_data: List[float]) None
set_name(self: sapien.core.pysapien.RenderBody, name: str) None
set_pose(self: sapien.core.pysapien.RenderBody, pose: sapien.core.pysapien.Pose) None
set_visibility(self: sapien.core.pysapien.RenderBody, visibility: float) None
set_visible(self: sapien.core.pysapien.RenderBody, is_visible: bool) None
set_visual_id(self: sapien.core.pysapien.RenderBody, id: int) None
property shade_flat
property type
property visual_id
class sapien.core.pysapien.RenderClient

Bases: IPxrRenderer

class sapien.core.pysapien.RenderConfig

Bases: pybind11_object

property camera_shader_dir
get_render_target_format(self: sapien.core.pysapien.RenderConfig, name: str) str
has_render_target_format(self: sapien.core.pysapien.RenderConfig, name: str) bool
property rt_path_depth
property rt_samples_per_pixel
property rt_use_denoiser
set_render_target_format(self: sapien.core.pysapien.RenderConfig, name: str, format: str) None
unset_render_target_format(self: sapien.core.pysapien.RenderConfig, name: str) None
property viewer_shader_dir
class sapien.core.pysapien.RenderMaterial

Bases: pybind11_object

property base_color
property diffuse_texture
property diffuse_texture_filename
property emission
property emission_texture
property emission_texture_filename
property ior
property metallic
property metallic_texture
property metallic_texture_filename
property normal_texture
property normal_texture_filename
property roughness
property roughness_texture
property roughness_texture_filename
set_base_color(self: sapien.core.pysapien.RenderMaterial, rgba: numpy.ndarray[numpy.float32]) None
set_diffuse_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_diffuse_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
set_emission(self: sapien.core.pysapien.RenderMaterial, rgbs: numpy.ndarray[numpy.float32]) None
set_emission_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_emission_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
set_ior(self: sapien.core.pysapien.RenderMaterial, ior: float) None
set_metallic(self: sapien.core.pysapien.RenderMaterial, metallic: float) None
set_metallic_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_metallic_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
set_normal_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_normal_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
set_roughness(self: sapien.core.pysapien.RenderMaterial, roughness: float) None
set_roughness_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_roughness_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
set_specular(self: sapien.core.pysapien.RenderMaterial, specular: float) None
set_transmission(self: sapien.core.pysapien.RenderMaterial, transmission: float) None
set_transmission_texture(self: sapien.core.pysapien.RenderMaterial, texture: sapien.core.pysapien.RenderTexture) None
set_transmission_texture_from_file(self: sapien.core.pysapien.RenderMaterial, path: str) None
property specular
property transmission
property transmission_texture
property transmission_texture_filename
class sapien.core.pysapien.RenderMesh

Bases: pybind11_object

property bitangents
property indices
property normals
set_indices(self: sapien.core.pysapien.RenderMesh, arg0: numpy.ndarray[numpy.uint32[m, 3]]) None
set_normals(self: sapien.core.pysapien.RenderMesh, arg0: numpy.ndarray[numpy.float32[m, 3]]) None
set_uvs(self: sapien.core.pysapien.RenderMesh, arg0: numpy.ndarray[numpy.float32[m, 2]]) None
set_vertices(self: sapien.core.pysapien.RenderMesh, arg0: numpy.ndarray[numpy.float32[m, 3]]) None
property tangents
property uvs
property vertices
class sapien.core.pysapien.RenderParticleBody

Bases: pybind11_object

property rendered_point_count
set_attribute(self: sapien.core.pysapien.RenderParticleBody, name: str, value: numpy.ndarray[numpy.float32[m, n], flags.writeable, flags.c_contiguous]) None
set_rendered_point_count(self: sapien.core.pysapien.RenderParticleBody, n: int) None
set_shading_mode(self: sapien.core.pysapien.RenderParticleBody, mode: int) None
set_visibility(self: sapien.core.pysapien.RenderParticleBody, visibility: float) None
class sapien.core.pysapien.RenderScene

Bases: pybind11_object

add_mesh_from_file(self: sapien.core.pysapien.RenderScene, mesh_file: str, scale: numpy.ndarray[numpy.float32]) sapien.core.pysapien.RenderBody
add_primitive_mesh(self: sapien.core.pysapien.RenderScene, type: str, scale: numpy.ndarray[numpy.float32] = array([1., 1., 1.], dtype=float32), material: sapien.core.pysapien.RenderMaterial = None) sapien.core.pysapien.RenderBody
property ambient_light
remove_mesh(self: sapien.core.pysapien.RenderScene, mesh: sapien.core.pysapien.RenderBody) None
class sapien.core.pysapien.RenderServer

Bases: pybind11_object

auto_allocate_buffers(self: sapien.core.pysapien.RenderServer, render_targets: List[str]) List[sapien.core.pysapien.RenderServerBuffer]
auto_allocate_torch_tensors(render_targets: List[str])
start(self: sapien.core.pysapien.RenderServer, address: str) None
stop(self: sapien.core.pysapien.RenderServer) None
summary(self: sapien.core.pysapien.RenderServer) str
wait_all(self: sapien.core.pysapien.RenderServer, timeout: int = 18446744073709551615) bool
wait_scenes(self: sapien.core.pysapien.RenderServer, scenes: List[int], timeout: int = 18446744073709551615) bool
class sapien.core.pysapien.RenderServerBuffer

Bases: pybind11_object

property nbytes
property pointer
property shape
property type
class sapien.core.pysapien.RenderShape

Bases: pybind11_object

property material
property mesh
set_material(self: sapien.core.pysapien.RenderShape, material: sapien.core.pysapien.RenderMaterial) None
class sapien.core.pysapien.RenderTexture

Bases: pybind11_object

property address_mode
property channels
property dtype
property filename
property filter_mode
property height
property mipmap_levels
property width
class sapien.core.pysapien.SapienRenderer

Bases: IPxrRenderer

clear_cached_resources(self: sapien.core.pysapien.SapienRenderer) None
create_ktx_environment_map(self: sapien.core.pysapien.SapienRenderer, px: str, nx: str, py: str, ny: str, pz: str, nz: str, out: str) None
create_window(self: sapien.core.pysapien.SapienRenderer, width: int = 800, height: int = 600, shader_dir: str = '') sapien.core.pysapien.VulkanWindow
set_camera_shader_dir()
static set_log_level(level: str) None
set_viewer_shader_dir()
class sapien.core.pysapien.Scene

Bases: pybind11_object

add_active_light(self: sapien.core.pysapien.Scene, pose: sapien.core.pysapien.Pose, color: numpy.ndarray[numpy.float32], fov: float, tex_path: str, near: float = 0.10000000149011612, far: float = 10.0, shadow_map_size: int = 2048) sapien.core.pysapien.ActiveLightEntity
add_camera(self: sapien.core.pysapien.Scene, name: str, width: int, height: int, fovy: float, near: float, far: float) sapien.core.pysapien.CameraEntity
add_directional_light(self: sapien.core.pysapien.Scene, direction: numpy.ndarray[numpy.float32], color: numpy.ndarray[numpy.float32], shadow: bool = False, position: numpy.ndarray[numpy.float32] = array([0., 0., 0.], dtype=float32), scale: float = 10.0, near: float = -10.0, far: float = 10.0, shadow_map_size: int = 2048) sapien.core.pysapien.DirectionalLightEntity
add_ground(self: sapien.core.pysapien.Scene, altitude: float, render: bool = True, material: sapien.core.pysapien.PhysicalMaterial = None, render_material: sapien.core.pysapien.RenderMaterial = None, render_half_size: numpy.ndarray[numpy.float32] = array([10., 10.], dtype=float32)) sapien.core.pysapien.ActorStatic
add_mounted_camera(*args, **kwargs)

Overloaded function.

  1. add_mounted_camera(self: sapien.core.pysapien.Scene, name: str, actor: sapien.core.pysapien.ActorBase, pose: sapien.core.pysapien.Pose, width: int, height: int, fovy: float, near: float, far: float) -> sapien.core.pysapien.CameraEntity

  2. add_mounted_camera(self: sapien.core.pysapien.Scene, name: str, actor: sapien.core.pysapien.ActorBase, pose: sapien.core.pysapien.Pose, width: int, height: int, fovx: float, fovy: float, near: float, far: float) -> sapien.core.pysapien.CameraEntity

add_particle_entity(self: sapien.core.pysapien.Scene, positions: numpy.ndarray[numpy.float32[m, 3], flags.writeable, flags.c_contiguous]) sapien.core.pysapien.ParticleEntity
add_point_light(self: sapien.core.pysapien.Scene, position: numpy.ndarray[numpy.float32], color: numpy.ndarray[numpy.float32], shadow: bool = False, near: float = 0.1, far: float = 10, shadow_map_size: int = 2048) sapien.core.pysapien.PointLightEntity
add_spot_light(self: sapien.core.pysapien.Scene, position: numpy.ndarray[numpy.float32], direction: numpy.ndarray[numpy.float32], inner_fov: float, outer_fov: float, color: numpy.ndarray[numpy.float32], shadow: bool = False, near: float = 0.10000000149011612, far: float = 10.0, shadow_map_size: int = 2048) sapien.core.pysapien.SpotLightEntity
property ambient_light
create_actor_builder(self: sapien.core.pysapien.Scene) sapien.core.pysapien.ActorBuilder
create_articulation_builder(self: sapien.core.pysapien.Scene) sapien.core.pysapien.ArticulationBuilder
create_drive(self: sapien.core.pysapien.Scene, actor1: sapien.core.pysapien.ActorBase, pose1: sapien.core.pysapien.Pose, actor2: sapien.core.pysapien.ActorBase, pose2: sapien.core.pysapien.Pose) sapien.core.pysapien.Drive
create_gear(self: sapien.core.pysapien.Scene, actor1: sapien.core.pysapien.ActorDynamicBase, pose1: sapien.core.pysapien.Pose, actor2: sapien.core.pysapien.ActorDynamicBase, pose2: sapien.core.pysapien.Pose) sapien.core.pysapien.Gear
create_physical_material(self: sapien.core.pysapien.Scene, static_friction: float, dynamic_friction: float, restitution: float) sapien.core.pysapien.PhysicalMaterial
create_urdf_loader(self: sapien.core.pysapien.Scene) sapien.core.pysapien.URDFLoader
property default_physical_material
property engine
find_actor_by_id(self: sapien.core.pysapien.Scene, id: int) sapien.core.pysapien.ActorBase
generate_unique_render_id(self: sapien.core.pysapien.Scene) int
get_all_actors(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.ActorBase]
get_all_articulations(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.ArticulationBase]
get_all_lights(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.LightEntity]
get_cameras(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.CameraEntity]
get_config(self: sapien.core.pysapien.Scene) sapien.core.pysapien.SceneConfig
get_contacts(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.Contact]
get_mounted_cameras(self: sapien.core.pysapien.Scene) List[sapien.core.pysapien.CameraEntity]
get_renderer_scene(self: sapien.core.pysapien.Scene) sapien.core.pysapien.RenderScene
get_timestep(self: sapien.core.pysapien.Scene) float
multistep_async(self: sapien.core.pysapien.Scene, arg0: int, arg1: capsule) sapien.core.pysapien.AwaitableVoid
property name
pack(self: sapien.core.pysapien.Scene) Dict[str, Dict[int, List[float]]]
remove_actor(self: sapien.core.pysapien.Scene, actor: sapien.core.pysapien.ActorBase) None
remove_articulation(self: sapien.core.pysapien.Scene, articulation: sapien.core.pysapien.Articulation) None
remove_camera(self: sapien.core.pysapien.Scene, camera: sapien.core.pysapien.CameraEntity) None
remove_drive(self: sapien.core.pysapien.Scene, drive: sapien.core.pysapien.Constraint) None
remove_kinematic_articulation(self: sapien.core.pysapien.Scene, kinematic_articulation: sapien.core.pysapien.KinematicArticulation) None
remove_light(self: sapien.core.pysapien.Scene, light: sapien.core.pysapien.LightEntity) None
remove_particle_entity(self: sapien.core.pysapien.Scene, entity: sapien.core.pysapien.ParticleEntity) None
property render_id_to_visual_name
property renderer_scene
set_ambient_light(self: sapien.core.pysapien.Scene, color: numpy.ndarray[numpy.float32]) None
set_environment_map(self: sapien.core.pysapien.Scene, filename: str) None
set_environment_map_from_files(self: sapien.core.pysapien.Scene, px: str, nx: str, py: str, ny: str, pz: str, nz: str) None
set_timestep(self: sapien.core.pysapien.Scene, second: float) None
step(self: sapien.core.pysapien.Scene) None
step_async(self: sapien.core.pysapien.Scene) sapien.core.pysapien.AwaitableVoid
property timestep
unpack(self: sapien.core.pysapien.Scene, data: Dict[str, Dict[int, List[float]]]) None
update_render(self: sapien.core.pysapien.Scene) None
update_render_async(self: sapien.core.pysapien.Scene) sapien.core.pysapien.AwaitableVoid
class sapien.core.pysapien.SceneConfig

Bases: pybind11_object

property bounce_threshold
property contact_offset
property default_dynamic_friction
property default_restitution
property default_static_friction
property disable_collision_visual
property enable_adaptive_force
property enable_ccd
property enable_enhanced_determinism
property enable_friction_every_iteration
property enable_pcm
property enable_tgs
property gravity
property sleep_threshold
property solver_iterations
property solver_velocity_iterations
class sapien.core.pysapien.SceneMultistepCallback

Bases: pybind11_object

class sapien.core.pysapien.ShapeRecord

Bases: pybind11_object

property density
property filename
property length
property material
property pose
property radius
property scale
property type
class sapien.core.pysapien.SphereGeometry

Bases: CollisionGeometry

property radius
class sapien.core.pysapien.SpotLightEntity

Bases: LightEntity

property fov
set_fov(self: sapien.core.pysapien.SpotLightEntity, arg0: float) None
set_shadow_parameters(self: sapien.core.pysapien.SpotLightEntity, near: float, far: float) None
property shadow_far
property shadow_near
class sapien.core.pysapien.Subscription

Bases: pybind11_object

unsubscribe(self: sapien.core.pysapien.Subscription) None
class sapien.core.pysapien.Trigger

Bases: pybind11_object

property actor_other
property actor_trigger
property ends
property starts
class sapien.core.pysapien.URDFLoader

Bases: pybind11_object

property collision_is_visual
load(self: sapien.core.pysapien.URDFLoader, filename: str, config: dict = {}) sapien.core.pysapien.Articulation

Load articulation from URDF. Gazebo cameras are also loaded.

Args:

filename: path to URDF config: a dict to specify any on-the-fly modification of articulation

It follows the following schema (the inner parameter overrides the outer one): - material: PhysicalMaterial - density: float - link: dict[str, dict]

  • ${link_name}: dict - material: PhysicalMaterial - density: float - patch_radius: float - min_patch_radius: float - collision: dict[int, dict]

    • ${collision_index}: dict - material: PhysicalMaterial - density: float - patch_radius: float - min_patch_radius: float

load_file_as_articulation_builder(self: sapien.core.pysapien.URDFLoader, filename: str, config: dict = {}) sapien.core.pysapien.ArticulationBuilder
load_from_string(self: sapien.core.pysapien.URDFLoader, urdf_string: str, srdf_string: str, config: dict = {}) sapien.core.pysapien.Articulation
load_kinematic(self: sapien.core.pysapien.URDFLoader, filename: str, config: dict = {}) sapien.core.pysapien.KinematicArticulation
property load_multiple_collisions_from_file
property package_dir
property scale
class sapien.core.pysapien.VisualRecord

Bases: pybind11_object

property filename
property length
property material
property pose
property radius
property scale
property type
class sapien.core.pysapien.VulkanParticleBody

Bases: RenderParticleBody

property dl_vertices
class sapien.core.pysapien.VulkanRenderMesh

Bases: RenderMesh

property dl_vertices
class sapien.core.pysapien.VulkanRigidbody

Bases: RenderBody

class sapien.core.pysapien.VulkanScene

Bases: RenderScene

class sapien.core.pysapien.VulkanWindow

Bases: pybind11_object

property alt
property ctrl
property cursor
property display_target_names

Names for available display targets that can be displayed in the render function

property far
property fovy
property fps
get_camera_position(self: sapien.core.pysapien.VulkanWindow) numpy.ndarray[numpy.float32]
get_camera_projection_matrix(self: sapien.core.pysapien.VulkanWindow) numpy.ndarray[numpy.float32]
get_camera_rotation(self: sapien.core.pysapien.VulkanWindow) numpy.ndarray[numpy.float32]
get_float_texture(self: sapien.core.pysapien.VulkanWindow, name: str) numpy.ndarray[numpy.float32]
get_float_texture_pixel(self: sapien.core.pysapien.VulkanWindow, name: str, x: int, y: int) numpy.ndarray[numpy.float32]
get_target_size(self: sapien.core.pysapien.VulkanWindow, name: str) List[int[2]]
get_uint32_texture(self: sapien.core.pysapien.VulkanWindow, name: str) numpy.ndarray[numpy.uint32]
get_uint32_texture_pixel(self: sapien.core.pysapien.VulkanWindow, name: str, x: int, y: int) numpy.ndarray[numpy.uint32]
hide(self: sapien.core.pysapien.VulkanWindow) None
key_down(self: sapien.core.pysapien.VulkanWindow, key: str) bool
key_press(self: sapien.core.pysapien.VulkanWindow, key: str) bool
mouse_click(self: sapien.core.pysapien.VulkanWindow, key: int) bool
property mouse_delta
mouse_down(self: sapien.core.pysapien.VulkanWindow, key: int) bool
property mouse_position
property mouse_wheel_delta
property near
render(self: sapien.core.pysapien.VulkanWindow, target_name: str, ui_windows: List[sapien.core.pysapien.renderer.UIWindow] = []) None
resize(self: sapien.core.pysapien.VulkanWindow, width: int, height: int) None
set_camera_parameters(self: sapien.core.pysapien.VulkanWindow, near: float, far: float, fovy: float) None
set_camera_position(self: sapien.core.pysapien.VulkanWindow, position: numpy.ndarray[numpy.float32]) None
set_camera_property(*args, **kwargs)

Overloaded function.

  1. set_camera_property(self: sapien.core.pysapien.VulkanWindow, key: str, value: float) -> None

  2. set_camera_property(self: sapien.core.pysapien.VulkanWindow, key: str, value: int) -> None

set_camera_rotation(self: sapien.core.pysapien.VulkanWindow, quat: numpy.ndarray[numpy.float32]) None
set_drop_callback(self: sapien.core.pysapien.VulkanWindow, callback: Callable[[List[str]], None]) None
set_intrinsic_parameters(self: sapien.core.pysapien.VulkanWindow, near: float, far: float, fx: float, fy: float, cx: float, cy: float, skew: float) None
set_scene(self: sapien.core.pysapien.VulkanWindow, scene: sapien.core.pysapien.Scene) None
set_shader_dir(self: sapien.core.pysapien.VulkanWindow, shader_dir: str) None
property shift
property should_close
show(self: sapien.core.pysapien.VulkanWindow) None
property size
property super
unset_drop_callback(self: sapien.core.pysapien.VulkanWindow) None
sapien.core.pysapien.add_profiler_event(name: str) None
sapien.core.pysapien.get_global_render_config() sapien.core.pysapien.RenderConfig

Module contents

class sapien.core.KuafuRenderer(config: KuafuConfig)[source]

Bases: KuafuRenderer

class sapien.core.VulkanRenderer(*args, **kwargs)[source]

Bases: SapienRenderer

sapien.core.ensure_icd()[source]