Package: tdw
ThreeDWorld (TDW)ThreeDWorld (TDW)is a platform for interactive multi-modal physical simulation. With TDW, users can simulate high-fidelity sensory data and physical interactions between mobile agents and objects in a wide variety of rich 3D environments.Code of ConductChangelogLicenseWebsiteExample controllersGeneral guide to TDWSetup1.1 Installation (Read this first!)Install TDWOn a personal computer (Linux, MacOS, Windows)On a serverOn a personal computer + a serverUpgrade TDW1.2 How to run TDW on a Linux serverOverviewLaunch a TDW build on a remote server from a personal computerRemote rendering with xpraX11 forwardingCore ConceptsThe controllerAuto-launching the TDW buildCommandsDesign philosophy of TDWScenesAvatars and camerasAdd-ons and theThirdPersonCameraObjectsOutput dataImagesOutdoor scenesTroubleshootingHow to report an issueCommon errorsPerformance optimizationsGood coding practicesTutorials1. Scene SetupOverview1.1 Scene Setup (High-Level APIs)OverviewProcedural generation (theProcGenKitchenadd-on)Regions, interior regions, and roomsProcedural object arrangementsScripted object placement (floorplan layouts)Reset a sceneHigh-level APs:FloorplanandProcGenKitchen1.2 Scene Setup (Low-Level APIs)OverviewUnits and data formatsBoundsoutput dataVisual materials, textures, and colorsProcGenRoom2. 3D Models2.1 Other model librariesOverviewFree modelsNon-free models2.2 Custom modelsAdd your own models to TDWAdd ShapeNet models to TDW2.3 Composite (articulated) objectsOverviewComposite objects in TDWCreate a composite object from a prefabCreate a composite object from a .urdf file3. Read/Write to DiskOverviewTheLoggerandLogPlaybackadd-onsTheJsonWriteradd-onTheOutputDataWriteradd-onCreate a custom data writerImport .sdf and .lisdf filesImages(Cross-referenced with "Core Concepts")Audio(Cross-referenced with "Audio")Video(Cross-referenced with "Video Recording")4. Semantic StatesOverviewLine of sight (Raycastoutput data)Proximity to region (Overlapoutput data)Proximity to other objects (theTriggerCollisionManageradd-on)Containment (theContainerManageradd-on)Open and closed statesGrasped objects5. Visual PerceptionOverviewInstance ID segmentation colors (_idpass)Semantic category segmentation colors (_categorypass)Depth maps (_depthand_depth_simplepasses)Motion perception (_flowpass)Other image passes (_mask,_normals, and_albedopasses)Occlusionoutput data6. Camera ControlsOverviewMove a cameraRotate a cameraFollow an objectTheCinematicCameraadd-on7. PhotorealismOverviewLighting (HDRI skyboxes)Post-processingInterior lighting (theInteriorSceneLightingadd-on)Depth of fieldV-Ray RenderingHigh-level API:tdw_image_dataset8. PhysicsOverview8.1 Physics (PhysX)PhysXObject physics parametersRigidbodiesoutput dataCollisionoutput dataApply forces to objectsSkip physics framesDisable physicsHigh-level API:tdw_physics8.2 Physics (Obi)ObiFluidsWindClothObiParticlesoutput dataColliders and collision materialsSolversObi and robotsObi and Flex8.3 Physics (Flex)FlexSolid and soft actorsCloth actorsFluid and source actorsMove, rotate, and scale Flex objectsFlexParticlesoutput dataApply forces to Flex objectsReset a Flex sceneOther Flex commandsHigh-level API:tdw_physics9. AudioOverviewInitialize audio and play .wav filesResonance AudioRecording audioAudio perception9.1 Clatter (Physically-derived audio)OverviewObject audio dataRecording Clatter audio with thePhysicsAudioRecorderadd-onClatter and Resonance AudioReset ClatterManually generate audioTroubleshooting ClatterHow to contribute to Clatter9.2 PyImpact (obsolete predecessor to Clatter)PyImpactPyImpact advancedPyImpact and Clatter10. Video RecordingOverviewImage-only videoVideo with audioVideo with audio (Linux)Video with audio (OS X)Video with audio (Windows)11. AgentsOverview11.1 RobotsOverviewTheRobotadd-onRobot arm add-onsRobot collision detectionSelect a robotAdd your own robots to TDWRobotics API (low-level)Add a camera to a robot11.2 MagnebotsMagnebot API (external repo)11.3 ReplicantsOverviewActionsOutput dataCollision detectionMovementAnimationsArm articulation, pt. 1: BasicsArm articulation, pt. 2: Grasp and drop objectsArm articulation, pt. 3: Advanced topicsArm articulation, pt. 4: Stacking objectsHead rotationNavigationCustom actionsMultiple ReplicantsReset11.4 Wheelchair ReplicantsOverviewActionsOutput dataCollision detectionMovementArm articulation, pt. 1: BasicsArm articulation, pt. 2: Grasp and drop objectsArm articulation, pt. 3: Advanced topicsHead rotationNavigationCustom actionsMultiple AgentsReset11.5 DronesDrones11.6 VehiclesVehicles11.7 Virtual Reality (VR)OverviewOculus TouchOculus Leap Motion11.8 Keyboard and MouseOverviewMouse inputTheFirstPersonAvatarKeyboard input11.9 Embodied avatarsTheEmbodiedAvatar12. Multi-agent simulationsOverviewCustom agent classes13. NavigationOverviewNavMesh pathfindingOccupancy maps14. User Interface (UI)OverviewTheUIadd-onUI Widgets15. Non-physics objects15.1 Non-physics humanoidsOverviewSMPL humanoidsCreate custom non-physics humanoidsCreate custom humanoid animations15.2 Misc. non-physics objectsOverviewPosition markersLine renderersTextured quadsCompass roseVisual EffectsTheFloorplanFloodadd-onEmpty objects16. Misc. other topicsC# source codeFreezing your codeDownload asset bundlesAPI DocumentationCommand APICommand APIOutput Datatdwmodule APItdwAudioConstantsAudioUtilsCardinalDirectionControllerIntPairOrdinalDirectionQuaternionUtilsRemoteBuildLauncherTDWUtilsTypeAliasestdw.add_onsAddOnAudioInitializerAudioInitializerBaseAvatarBodyBenchmarkCinematicCameraClatterCollisionManagerCompositeObjectManagerContainerManagerDroneEmbodiedAvatarEmptyObjectManagerFirstPersonAvatarFloorplanFloorplanFloodImageCaptureInteriorSceneLightingJsonWriterKeyboardLisdfReaderLoggerLogPlaybackModelVerifierMouseNavMeshObiObjectManagerOccupancyMapOculusLeapMotionOculusTouchOutputDataWriterPhysicsAudioRecorderProcGenKitchenPyImpactReplicantReplicantBaseResonanceAudioInitializerRobotRobotArmRobotBaseStepPhysicsThirdPersonCameraThirdPersonCameraBaseTriggerCollisionManagerUIVehicleVRVrayExporterWheelchairReplicantWritertdw.add_ons.ui_widgetsLoadingScreenProgressBarTimerBartdw.agent_dataAgentDynamictdw.asset_bundle_creatorAnimationCreatorAssetBundleCreatorCompositeObjectCreatorHumanoidCreatorHumanoidCreatorBaseModelCreatorRobotCreatortdw.backendUpdatetdw.collision_dataCollisionBaseCollisionObjEnvCollisionObjObjTriggerColliderShapeTriggerCollisionEventtdw.container_dataBoxContainerContainerShapeContainerTagContainmentEventCylinderContainerSphereContainertdw.droneDroneDynamictdw.flex_dataFluidTypetdw.lerpLerpableLerpableFloatLerpableVectortdw.librarianDroneLibrarianHdriSkyboxLibrarianHumanoidAnimationLibrarianHumanoidLibrarianMaterialLibrarianModelLibrarianRobotLibrarianSceneLibrarianVehicleLibrarianVisualEffectLibrariantdw.lisdf_dataLisdfRobotMetadatatdw.model_testsMissingMaterialsModelReportModelTestPhysicsQualityRotateObjectTesttdw.obi_dataForceModeObiActorObiBackendWindSourcetdw.obi_data.clothClothMaterialSheetTypeTetherParticleGroupTetherTypeVolumeTypetdw.obi_data.collision_materialsCollisionMaterialMaterialCombineModetdw.obi_data.fluidsCubeEmitterDiskEmitterEdgeEmitterEmitterSamplingMethodEmitterShapeFluidFluidBaseGranularFluidSphereEmittertdw.object_dataBoundObjectStaticRigidbodyTransformtdw.object_data.composite_objectCompositeObjectDynamicCompositeObjectStatictdw.object_data.composite_object.sub_objectHingeDynamicHingeStaticHingeStaticBaseLightDynamicLightStaticMotorStaticNonMachineStaticPrismaticJointStaticSpringStaticSubObjectDynamicSubObjectStatictdw.physics_audioAudioMaterialBase64SoundClatterObjectCollisionAudioEventCollisionAudioInfoCollisionAudioTypeImpactMaterialModesObjectAudioStaticScrapeMaterialScrapeModelScrapeSubObjecttdw.proc_gen.arrangementsArrangementArrangementAlongWallArrangementWithRootObjectBasketCupAndCoasterDishwasherKitchenCabinetKitchenCounterKitchenCounterTopKitchenTableMicrowavePaintingPlateRadiatorRefrigeratorShelfSideTableSinkStackOfPlatesStoolStoveSuitcaseTableAndChairsTableSettingVoidWallCabinettdw.proc_gen.arrangements.cabinetryCabinetryCabinetryTypetdw.releaseBuildPyPitdw.replicantActionStatusArmCollisionDetectionImageFrequencyReplicantBodyPartReplicantDynamicReplicantStatictdw.replicant.actionsActionAnimateArmMotionDoNothingDropGraspHeadMotionIkMotionLookAtMoveByMoveToReachForReachForWithPlanResetArmResetHeadRotateHeadTurnByTurnTotdw.replicant.ik_plansIkPlanIkPlanTypeResetVerticalHorizontaltdw.robot_dataDriveJointDynamicJointStaticJointTypeNonMovingRobotDynamicRobotStatictdw.scene_dataInteriorRegionRegionBoundsRoomSceneBoundstdw.vehicleVehicleDynamictdw.vray_dataVrayMatrixtdw.vr_dataFingerBoneOculusTouchButtonRigTypetdw.wheelchair_replicantWheelValuestdw.wheelchair_replicant.actionsMoveByMoveToReachForTurnByTurnToWheelchairMotionPerformance benchmarksPerformance benchmarksImage captureObject dataCommand deserialization