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.
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
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.
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.
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.
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
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_links(self: sapien.core.pysapien.ArticulationBase) List[sapien.core.pysapien.LinkBase]
- 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
- create_link_builder(self: sapien.core.pysapien.ArticulationBuilder, parent: sapien.core.pysapien.LinkBuilder = None) sapien.core.pysapien.LinkBuilder
- get_link_builders(self: sapien.core.pysapien.ArticulationBuilder) List[sapien.core.pysapien.LinkBuilder]
- 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.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_child_link(self: sapien.core.pysapien.JointBase) sapien.core.pysapien.LinkBase
- 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_parent_link(self: sapien.core.pysapien.JointBase) sapien.core.pysapien.LinkBase
- 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.KinematicJointFixed
Bases:
KinematicJoint
- class sapien.core.pysapien.KinematicJointPrismatic
Bases:
KinematicJointSingleDof
- class sapien.core.pysapien.KinematicJointRevolute
Bases:
KinematicJointSingleDof
- class sapien.core.pysapien.KinematicJointSingleDof
Bases:
KinematicJoint
- class sapien.core.pysapien.KinematicLink
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
- class sapien.core.pysapien.Link
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.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_single_link_local_jacobian(self: sapien.core.pysapien.PinocchioModel, qpos: numpy.ndarray[numpy.float64[m, 1]], link_index: int) numpy.ndarray[numpy.float64[6, n]]
Compute the link(body) Jacobian for a single link. It is faster than compute_full_jacobian followed by get_link_jacobian
- get_link_jacobian(self: sapien.core.pysapien.PinocchioModel, link_index: int, local: bool = False) numpy.ndarray[numpy.float64[6, n]]
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
- get_link_pose(self: sapien.core.pysapien.PinocchioModel, link_index: int) sapien.core.pysapien.Pose
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.
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
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
- find_articulation_link_by_link_id(self: sapien.core.pysapien.Scene, id: int) sapien.core.pysapien.LinkBase
- 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
- property fix_root_link
- 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.
set_camera_property(self: sapien.core.pysapien.VulkanWindow, key: str, value: float) -> None
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