Package: sapien
SAPIEN: A SimulAted Part-based Interactive ENvironmentSAPIEN is a realistic and physics-rich simulated environment that hosts a
large-scale set for articulated objects. It enables various robotic vision and
interaction tasks that require detailed part-level understanding. SAPIEN is a
collaborative effort between researchers at UCSD, Stanford and SFU. The dataset
is a continuation of ShapeNet and PartNet.Change Log2.2RenameVulkanRenderertoSapienRenderer(VulkanRenderer is still an alias)Supportray tracinginSapienRendererDeprecateKuafuRenderer, use the rt shader inSapienRendererinsteadGPU-accelerated stereo depth sensor simulationRender serverPython 3.11bug fixesFix inverse kinematics default active joint mask (now defaults to all 1s)Fix incorrectly exported memory in Vulkan-Cuda interopFix jointget_global_pose2.1Python 3.10Bug fixescrash when not using rendererjoint force limit (was impulse limit)incorrect inertia computation in scaled URDFincorrect point-light shadowincorrect collision when loaded from daeUtility improvementsset_materialactive lightflat shadingdynamic point renderingenvmap generationmulti-thread envs2.1Refactor light systemRemove light functions on scene.renderer_sceneRefactor camera systemCameras no longer require mountsCamera can change its mount and mounted pose bycamera.set_parentandcamera.set_local_pose.When camera is not mounted, setting local pose is setting its global pose.Add functionsscene.add_cameraandscene.remove_cameraadd_mounted_cameracan be replaced withadd_camerafollowed bycamera.set_parentandcamera.set_local_pose.add_mounted_camerais
still provided but fovx should not longer be provided.Remove functions related to mount, includingfind_camera_by_mount.Cameras now support full camera parameters throughcamera.near,camera.far,camera.set_fovx,camera.set_fovy,camera.set_focal_lengths,camera.set_principal_point,camera.skew, and
the all-in-one methodcamera.set_perspective_parameters.Refactor render shape systemOriginally, afteractor.get_visual_bodies()andvisual_body.get_render_shapes(), users typically doshape.scaleandshape.pose. These are no longer valid. It is required to checkvisual_body.type. Whentypeismesh,shape.scaleis replaced withvisual_body.scaleandshape.poseis replaced byvisual_body.local_pose. These changes are made to matchadd_visual_shapefunctions when building the actor.pre2.0Shader change: 4th component in default camera shader now gives the 0-1 depth value.Add "critical" and "off" log levels.Add support for pointcloud and line rendering (for visualizing camera and point cloud)Performance: the same shader only compile once per processBug fixArticulation setDriveTarget was now correctly reversed for prismatic joint (joint setDriveTarget is not affected)Fix kinematic articulation loader1 to 2 migrationreplacescene.renderer_scene.add_xxx_lightwithscene.add_xxx_lightreplacescene.remove_mounted_camerawithscene.remove_cameraoptionally, removefovxfromscene.add_mounted_camera.1.1Support nonconvex static/kinematic collision shapeAdd warning for small mass/inertiaIntroduce Entity as the base class of ActorsAdd Light classes inherited from entity, allowing manipulate light objects in sapien sceneUpdates to the viewerrename actor to entity when appropriatePartial support the material tag in URDF loader (primitive shape, single color)Bug fixes for the rendererSupport inner and outer FOV for spotlight1.0Replace the old Vulkan based renderer completelySeesapien.core.rendererfor detailsExpose GUI functionalities to PythonReimplement Vulkan viewer in PythonExpose PhysX shape wrapper to Python. For example,Collision shapes can be retrieved throughactor.get_collision_shapesCollision groups on a shape can be set byCollisionShape.set_collision_groupsShapes are now also available inContact.API changesRender material creation is nowrenderer.create_material()in actor builder:add_xxx_shapeis replaced withadd_xxx_collision.move light functions from scene toscene.renderer_sceneAdd centrifugal and Coriolis force.Change default physical parameters for better stability.SAPIEN EngineSAPIEN Engine provides physical simulation for articulated objects. It powers
reinforcement learning and robotics with its pure Python interface.SAPIEN RendererSAPIEN provides rasterized and ray traced rendering with Vulkan.PartNet-MobilitySAPIEN releases PartNet-Mobility dataset, which is a collection of 2K
articulated objects with motion annotations and rendernig material. The dataset
powers research for generalizable computer vision and manipulation.Website and DocumentationSAPIEN Website:https://sapien.ucsd.edu/. SAPIEN
Documentation:https://sapien.ucsd.edu/docs/latest/index.html.Build from sourceBefore buildMake sure all submodules are initializedgit submodule update --init --recursive.Build with DockerTo build SAPIEN, simply run./docker_build_wheels.sh. It is not recommended to
build outside of our provided docker.For reference, the Dockerfile is providedhere. Note that
PhysX needs to be compiled with clang-9 into static libraries before building
the Docker image.Build without DockerIt can be tricky to setup all dependencies outside of a Docker environment. You
need to install all dependencies according to theDocker
environment. If all dependencies set up correctly, runpython setup.py bdist_wheelto build the wheel.Cite SAPIENIf you use SAPIEN and its assets, please cite the following works:@InProceedings{Xiang_2020_SAPIEN,
author = {Xiang, Fanbo and Qin, Yuzhe and Mo, Kaichun and Xia, Yikuan and Zhu, Hao and Liu, Fangchen and Liu, Minghua and Jiang, Hanxiao and Yuan, Yifu and Wang, He and Yi, Li and Chang, Angel X. and Guibas, Leonidas J. and Su, Hao},
title = {{SAPIEN}: A SimulAted Part-based Interactive ENvironment},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}}@InProceedings{Mo_2019_CVPR,
author = {Mo, Kaichun and Zhu, Shilin and Chang, Angel X. and Yi, Li and Tripathi, Subarna and Guibas, Leonidas J. and Su, Hao},
title = {{PartNet}: A Large-Scale Benchmark for Fine-Grained and Hierarchical Part-Level {3D} Object Understanding},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2019}
}@article{chang2015shapenet,
title={Shapenet: An information-rich 3d model repository},
author={Chang, Angel X and Funkhouser, Thomas and Guibas, Leonidas and Hanrahan, Pat and Huang, Qixing and Li, Zimo and Savarese, Silvio and Savva, Manolis and Song, Shuran and Su, Hao and others},
journal={arXiv preprint arXiv:1512.03012},
year={2015}
}If you use SAPIEN Realistic Depth generated by SAPIEN's simulated depth sensor, please cite the following work:@ARTICLE{10027470,
  author={Zhang, Xiaoshuai and Chen, Rui and Li, Ang and Xiang, Fanbo and Qin, Yuzhe and Gu, Jiayuan and Ling, Zhan and Liu, Minghua and Zeng, Peiyu and Han, Songfang and Huang, Zhiao and Mu, Tongzhou and Xu, Jing and Su, Hao},
  journal={IEEE Transactions on Robotics}, 
  title={Close the Optical Sensing Domain Gap by Physics-Grounded Active Stereo Sensor Simulation}, 
  year={2023},
  volume={},
  number={},
  pages={1-19},
  doi={10.1109/TRO.2023.3235591}}