Skip to content

threedworld-mit/tdw

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

General guide to TDW

Setup

  1. Install TDW
  2. Upgrade TDW

Core Concepts

  1. The controller
  2. Auto-launching the TDW build
  3. Commands
  4. Design philosophy of TDW
  5. Scenes
  6. Avatars and cameras
  7. Add-ons and the ThirdPersonCamera
  8. Objects
  9. Output data
  10. Images

Troubleshooting

  1. How to report an issue
  2. Common errors
  3. Performance optimizations
  4. Good coding practices

Tutorials

1. Scene Setup

Overview

1.1 Scene Setup (High-Level APIs)

  1. Overview
  2. Procedural generation (the ProcGenKitchen add-on)
  3. Regions, interior regions, and rooms
  4. Procedural object arrangements
  5. Scripted object placement (floorplan layouts)
  6. Reset a scene

High-level APs: Floorplan and ProcGenKitchen

1.2 Scene Setup (Low-Level APIs)

  1. Overview
  2. Units and data formats
  3. Bounds output data
  4. Visual materials, textures, and colors
  5. ProcGenRoom

2. 3D Models

2.1 Other model libraries

  1. Overview
  2. Free models
  3. Non-free models

2.2 Custom models

  1. Add your own models to TDW
  2. Add ShapeNet models to TDW

2.3 Composite (articulated) objects

  1. Overview
  2. Composite objects in TDW
  3. Create a composite object from a prefab
  4. Create a composite object from a .urdf file

3. Read/Write to Disk

  1. Overview
  2. The Logger and LogPlayback add-ons
  3. The JsonWriter add-on
  4. The OutputDataWriter add-on
  5. Create a custom data writer
  6. Import .sdf and .lisdf files
  7. Images (Cross-referenced with "Core Concepts")
  8. Audio (Cross-referenced with "Audio")
  9. Video (Cross-referenced with "Video Recording")

4. Semantic States

  1. Overview
  2. Line of sight (Raycast output data)
  3. Proximity to region (Overlap output data)
  4. Proximity to other objects (the TriggerCollisionManager add-on)
  5. Containment (the ContainerManager add-on)
  6. Open and closed states
  7. Grasped objects

5. Visual Perception

  1. Overview
  2. Instance ID segmentation colors (_id pass)
  3. Semantic category segmentation colors (_category pass)
  4. Depth maps (_depth and _depth_simple passes)
  5. Motion perception (_flow pass)
  6. Other image passes (_mask, _normals, and _albedo passes)
  7. Occlusion output data

6. Camera Controls

  1. Overview
  2. Move a camera
  3. Rotate a camera
  4. Follow an object
  5. The CinematicCamera add-on

7. Photorealism

  1. Overview
  2. Lighting (HDRI skyboxes)
  3. Post-processing
  4. Interior lighting (the InteriorSceneLighting add-on)
  5. Depth of field

High-level API: tdw_image_dataset

8. Physics

Overview

8.1 Physics (PhysX)

  1. PhysX
  2. Object physics parameters
  3. Rigidbodies output data
  4. Collision output data
  5. Apply forces to objects
  6. Skip physics frames
  7. Disable physics

High-level API: tdw_physics

8.2 Physics (Obi)

  1. Obi
  2. Fluids
  3. Cloth
  4. ObiParticles output data
  5. Colliders and collision materials
  6. Solvers
  7. Obi and robots
  8. Obi and Flex

8.3 Physics (Flex)

  1. Flex
  2. Solid and soft actors
  3. Cloth actors
  4. Fluid and source actors
  5. Move, rotate, and scale Flex objects
  6. FlexParticles output data
  7. Apply forces to Flex objects
  8. Reset a Flex scene
  9. Other Flex commands

High-level API: tdw_physics

9. Audio

  1. Overview
  2. Initialize audio and play .wav files
  3. Resonance Audio
  4. PyImpact (dynamic impact sounds)
  5. Recording audio
  6. PyImpact (advanced API)
  7. Audio perception

10. Video Recording

  1. Overview
  2. Image-only video
  3. Video with audio
    1. Video with audio (Linux)
    2. Video with audio (OS X)
    3. Video with audio (Windows)

11. Agents

Overview

11.1 Robots

  1. Overview
  2. The Robot add-on
  3. Robot arm add-ons
  4. Robot collision detection
  5. Select a robot
  6. Add your own robots to TDW
  7. Robotics API (low-level)
  8. Add a camera to a robot

11.2 Magnebots

  1. Magnebot API (external repo)

11.3 Replicants

  1. Overview
  2. Actions
  3. Output data
  4. Collision detection
  5. Movement
  6. Animations
  7. Arm articulation
  8. Grasp and drop objects
  9. Head rotation
  10. Navigation
  11. Custom actions
  12. Multiple Replicants
  13. Reset

11.4 Virtual Reality (VR)

  1. Overview
  2. Oculus Touch rigs

11.5 Keyboard and Mouse

  1. Overview
  2. Mouse input
  3. The FirstPersonAvatar
  4. Keyboard input

11.6 Embodied avatars

  1. The EmbodiedAvatar

12. Multi-agent simulations

  1. Overview
  2. Custom agent classes

13. Navigation

  1. Overview
  2. NavMesh pathfinding
  3. Occupancy maps

14. Non-physics objects

14.1 Non-physics humanoids

  1. Overview
  2. SMPL humanoids
  3. Create custom non-physics humanoids
  4. Create custom humanoid animations

14.2 Misc. non-physics objects

  1. Overview
  2. Position markers
  3. Line renderers
  4. Textured quads
  5. User Interface (the UI add-on)
  6. Compass rose

15. Misc. remote server topics

  1. Launch a TDW build on a remote server from a personal computer
  2. Remote rendering with xpra

16. Misc. other topics

  1. C# source code
  2. Freezing your code
  3. Download asset bundles

API Documentation

Command API

tdw module API

tdw

tdw.add_ons

tdw.asset_bundle_creator

tdw.collision_data

tdw.container_data

tdw.flex_data

tdw.librarian

tdw.lisdf_data

tdw.model_tests

tdw.obi_data

tdw.obi_data.cloth

tdw.obi_data.collision_materials

tdw.obi_data.fluids

tdw.object_data

tdw.object_data.composite_object

tdw.object_data.composite_object.sub_object

tdw.physics_audio

tdw.proc_gen.arrangements

tdw.proc_gen.arrangements.cabinetry

tdw.release

tdw.replicant

tdw.replicant.actions

tdw.robot_data

tdw.scene_data

tdw.vr_data

Performance benchmarks

  1. Performance benchmarks
  2. Image capture
  3. Object data
  4. Command deserialization