3D simulation environment
Project description
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.
TDW was developed primarily by Jeremy Schwartz and Esther Alter. It is now maintained by Esther Alter.
TDW is now in long-term support (LTS). TDW will receive only minor updates and bug fixes.
General guide to TDW
Setup
1.1 Installation (Read this first!)
1.2 How to run TDW on a Linux server
- Overview
- Launch a TDW build on a remote server from a personal computer
- Remote rendering with xpra
- X11 forwarding
Core Concepts
- The controller
- Auto-launching the TDW build
- Commands
- Design philosophy of TDW
- Scenes
- Avatars and cameras
- Add-ons and the
ThirdPersonCamera
- Objects
- Output data
- Images
- Outdoor scenes
Troubleshooting
Tutorials
1. Scene Setup
1.1 Scene Setup (High-Level APIs)
- Overview
- Procedural generation (the
ProcGenKitchen
add-on) - Regions, interior regions, and rooms
- Procedural object arrangements
- Scripted object placement (floorplan layouts)
- Reset a scene
High-level APs: Floorplan and ProcGenKitchen
1.2 Scene Setup (Low-Level APIs)
- Overview
- Units and data formats
Bounds
output data- Visual materials, textures, and colors
- ProcGenRoom
2. 3D Models
2.1 Other model libraries
2.2 Custom models
2.3 Composite (articulated) objects
- Overview
- Composite objects in TDW
- Create a composite object from a prefab
- Create a composite object from a .urdf file
3. Read/Write to Disk
- Overview
- The
Logger
andLogPlayback
add-ons - The
JsonWriter
add-on - The
OutputDataWriter
add-on - Create a custom data writer
- Import .sdf and .lisdf files
- Images (Cross-referenced with "Core Concepts")
- Audio (Cross-referenced with "Audio")
- Video (Cross-referenced with "Video Recording")
4. Semantic States
- Overview
- Line of sight (
Raycast
output data) - Proximity to region (
Overlap
output data) - Proximity to other objects (the
TriggerCollisionManager
add-on) - Containment (the
ContainerManager
add-on) - Open and closed states
- Grasped objects
5. Visual Perception
- Overview
- Instance ID segmentation colors (
_id
pass) - Semantic category segmentation colors (
_category
pass) - Depth maps (
_depth
and_depth_simple
passes) - Motion perception (
_flow
pass) - Other image passes (
_mask
,_normals
, and_albedo
passes) Occlusion
output data
6. Camera Controls
7. Photorealism
- Overview
- Lighting (HDRI skyboxes)
- Post-processing
- Interior lighting (the
InteriorSceneLighting
add-on) - Depth of field
- V-Ray Rendering
High-level API: tdw_image_dataset
8. Physics
8.1 Physics (PhysX)
- PhysX
- Object physics parameters
Rigidbodies
output dataCollision
output data- Apply forces to objects
- Skip physics frames
- Disable physics
High-level API: tdw_physics
8.2 Physics (Obi)
- Obi
- Fluids
- Wind
- Cloth
ObiParticles
output data- Colliders and collision materials
- Solvers
- Obi and robots
- Obi and Flex
8.3 Physics (Flex)
- Flex
- Solid and soft actors
- Cloth actors
- Fluid and source actors
- Move, rotate, and scale Flex objects
FlexParticles
output data- Apply forces to Flex objects
- Reset a Flex scene
- Other Flex commands
High-level API: tdw_physics
9. Audio
9.1 Clatter (Physically-derived audio)
- Overview
- Object audio data
- Recording Clatter audio with the
PhysicsAudioRecorder
add-on - Clatter and Resonance Audio
- Reset Clatter
- Manually generate audio
- Troubleshooting Clatter
- How to contribute to Clatter
9.2 PyImpact (obsolete predecessor to Clatter)
10. Video Recording
11. Agents
11.1 Robots
- Overview
- The
Robot
add-on - Robot arm add-ons
- Robot collision detection
- Select a robot
- Add your own robots to TDW
- Robotics API (low-level)
- Add a camera to a robot
11.2 Magnebots
11.3 Replicants
- Overview
- Actions
- Output data
- Collision detection
- Movement
- Animations
- Arm articulation, pt. 1: Basics
- Arm articulation, pt. 2: Grasp and drop objects
- Arm articulation, pt. 3: Advanced topics
- Arm articulation, pt. 4: Stacking objects
- Head rotation
- Navigation
- Custom actions
- Multiple Replicants
- Reset
11.4 Wheelchair Replicants
- Overview
- Actions
- Output data
- Collision detection
- Movement
- Arm articulation, pt. 1: Basics
- Arm articulation, pt. 2: Grasp and drop objects
- Arm articulation, pt. 3: Advanced topics
- Head rotation
- Navigation
- Custom actions
- Multiple Agents
- Reset
11.5 Drones
11.6 Vehicles
11.7 Virtual Reality (VR)
11.8 Keyboard and Mouse
11.9 Embodied avatars
12. Multi-agent simulations
13. Navigation
14. User Interface (UI)
15. Non-physics objects
15.1 Non-physics humanoids
15.2 Misc. non-physics objects
- Overview
- Position markers
- Line renderers
- Textured quads
- Compass rose
- Visual Effects
- The
FloorplanFlood
add-on - Empty objects
16. Misc. other topics
API Documentation
Command API
tdw
module API
tdw
- AudioConstants
- AudioUtils
- CardinalDirection
- Controller
- IntPair
- OrdinalDirection
- QuaternionUtils
- RemoteBuildLauncher
- TDWUtils
- TypeAliases
tdw.add_ons
- AddOn
- AudioInitializer
- AudioInitializerBase
- Autohand
- AvatarBody
- Benchmark
- CinematicCamera
- Clatter
- CollisionManager
- CompositeObjectManager
- ContainerManager
- Drone
- EmbodiedAvatar
- EmptyObjectManager
- FirstPersonAvatar
- Floorplan
- FloorplanFlood
- FoveLeapMotion
- ImageCapture
- InteriorSceneLighting
- JsonWriter
- Keyboard
- LeapMotion
- LisdfReader
- Logger
- LogPlayback
- ModelVerifier
- Mouse
- NavMesh
- Obi
- ObjectManager
- OccupancyMap
- OculusLeapMotion
- OculusTouch
- OutputDataWriter
- PhysicsAudioRecorder
- ProcGenKitchen
- PyImpact
- Replicant
- ReplicantBase
- ResonanceAudioInitializer
- Robot
- RobotArm
- RobotBase
- StepPhysics
- ThirdPersonCamera
- ThirdPersonCameraBase
- TriggerCollisionManager
- UI
- Vehicle
- VR
- VrayExporter
- WheelchairReplicant
- Writer
tdw.add_ons.ui_widgets
tdw.agent_data
tdw.asset_bundle_creator
- AnimationCreator
- AssetBundleCreator
- CompositeObjectCreator
- HumanoidCreator
- HumanoidCreatorBase
- ModelCreator
- RobotCreator
tdw.backend
tdw.collision_data
tdw.container_data
tdw.drone
tdw.flex_data
tdw.lerp
tdw.librarian
- DroneLibrarian
- HdriSkyboxLibrarian
- HumanoidAnimationLibrarian
- HumanoidLibrarian
- MaterialLibrarian
- ModelLibrarian
- RobotLibrarian
- SceneLibrarian
- VehicleLibrarian
- VisualEffectLibrarian
tdw.lisdf_data
tdw.model_tests
tdw.obi_data
tdw.obi_data.cloth
tdw.obi_data.collision_materials
tdw.obi_data.fluids
- CubeEmitter
- DiskEmitter
- EdgeEmitter
- EmitterSamplingMethod
- EmitterShape
- Fluid
- FluidBase
- GranularFluid
- SphereEmitter
tdw.object_data
tdw.object_data.composite_object
tdw.object_data.composite_object.sub_object
- HingeDynamic
- HingeStatic
- HingeStaticBase
- LightDynamic
- LightStatic
- MotorStatic
- NonMachineStatic
- PrismaticJointStatic
- SpringStatic
- SubObjectDynamic
- SubObjectStatic
tdw.physics_audio
- AudioMaterial
- Base64Sound
- ClatterObject
- CollisionAudioEvent
- CollisionAudioInfo
- CollisionAudioType
- ImpactMaterial
- Modes
- ObjectAudioStatic
- ScrapeMaterial
- ScrapeModel
- ScrapeSubObject
tdw.proc_gen.arrangements
- Arrangement
- ArrangementAlongWall
- ArrangementWithRootObject
- Basket
- CupAndCoaster
- Dishwasher
- KitchenCabinet
- KitchenCounter
- KitchenCounterTop
- KitchenTable
- Microwave
- Painting
- Plate
- Radiator
- Refrigerator
- Shelf
- SideTable
- Sink
- StackOfPlates
- Stool
- Stove
- Suitcase
- TableAndChairs
- TableSetting
- Void
- WallCabinet
tdw.proc_gen.arrangements.cabinetry
tdw.release
tdw.replicant
- ActionStatus
- Arm
- CollisionDetection
- ImageFrequency
- ReplicantBodyPart
- ReplicantDynamic
- ReplicantStatic
tdw.replicant.actions
- Action
- Animate
- ArmMotion
- DoNothing
- Drop
- Grasp
- HeadMotion
- IkMotion
- LookAt
- MoveBy
- MoveTo
- ReachFor
- ReachForWithPlan
- ResetArm
- ResetHead
- RotateHead
- TurnBy
- TurnTo
tdw.replicant.ik_plans
tdw.robot_data
tdw.scene_data
tdw.vehicle
tdw.vray_data
tdw.vr_data
tdw.vr_data.fove
- CalibrationMethod
- CalibrationSphere
- CalibrationState
- Eye
- EyeByEyeCalibration
- EyeState
- EyeTorsionCalibration
tdw.wheelchair_replicant
tdw.wheelchair_replicant.actions
Performance benchmarks
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tdw-1.13.0.0.tar.gz
.
File metadata
- Download URL: tdw-1.13.0.0.tar.gz
- Upload date:
- Size: 22.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b598888ff2603535a57d7b17b67a0496547b8acf4b5eb8a8d414f2f5d23e152e |
|
MD5 | 8eba2c2433d330e2c4742a4c86b18e72 |
|
BLAKE2b-256 | bcd58704a4fd45ba31da949aede1c05a7ac1a945467b0c81c28444c6c443efac |