tdw 1.13.0.0
3D simulation environment
License: BSD
Keywords: unity simulation ml machine-learning

# 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](https://github.com/alters-mit). It is now maintained by Esther Alter.

**TDW is now in [long-term support (LTS)](https://github.com/threedworld-mit/tdw/pull/709). TDW will receive only minor updates and bug fixes.**

<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg">

- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md)
- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md)
- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt)
- [Website](https://threedworld.org/)
- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers)

# General guide to TDW

## Setup

### 1.1 Installation (Read this first!)

1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md)
   - [On a personal computer (Linux, MacOS, Windows)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/pc.md)
   - [On a server](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/server.md)
   - [On a personal computer + a server](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/pc_server.md)
2. [Upgrade TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/upgrade.md)

### 1.2 How to run TDW on a Linux server

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/remote/overview.md)
2. [Launch a TDW build on a remote server from a personal computer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/remote/launch_build.md)
3. [Remote rendering with xpra](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/remote/xpra.md)
4. [X11 forwarding](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/remote/x11_forwarding.md)

## Core Concepts

1. [The controller](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/controller.md)
2. [Auto-launching the TDW build](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/launch_build.md)
3. [Commands](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/commands.md)
4. [Design philosophy of TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/design_philosophy.md)
5. [Scenes](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/scenes.md)
6. [Avatars and cameras](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/avatars.md)
7. [Add-ons and the `ThirdPersonCamera`](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/add_ons.md)
8. [Objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/objects.md)
9. [Output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/output_data.md)
10. [Images](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/images.md)
11. [Outdoor scenes](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/outdoor_scenes.md)

## Troubleshooting

1. [How to report an issue](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/troubleshooting/issues.md)
2. [Common errors](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/troubleshooting/common_errors.md)
3. [Performance optimizations](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/troubleshooting/performance_optimizations.md)
4. [Good coding practices](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/troubleshooting/good_coding_practices.md)

# Tutorials

## 1. Scene Setup

**[Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup/overview.md)**

### 1.1 Scene Setup (High-Level APIs)

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/overview.md)
2. [Procedural generation (the `ProcGenKitchen` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/proc_gen_kitchen.md)
2. [Regions, interior regions, and rooms](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/rooms.md)
3. [Procedural object arrangements](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/arrangements.md)
4. [Scripted object placement (floorplan layouts)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/floorplans.md)
5. [Reset a scene](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_high_level/reset_scene.md)

High-level APs: [Floorplan](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/floorplan.md) and [ProcGenKitchen](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/proc_gen_kitchen.md)

### 1.2 Scene Setup (Low-Level APIs)

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_low_level/overview.md)
2. [Units and data formats](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_low_level/units.md)
3. [`Bounds` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_low_level/bounds.md)
4. [Visual materials, textures, and colors](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_low_level/materials_textures_colors.md)
5. [ProcGenRoom](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/scene_setup_low_level/proc_gen_room.md)

## 2. 3D Models

### 2.1 Other model libraries

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/3d_models/overview.md)
2. [Free models](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/3d_models/free_models.md)
3. [Non-free models](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/3d_models/non_free_models.md)

### 2.2 Custom models

1. [Add your own models to TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/custom_models/custom_models.md)
2. [Add ShapeNet models to TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/custom_models/shapenet.md)

### 2.3 Composite (articulated) objects

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/composite_objects/overview.md)
2. [Composite objects in TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/composite_objects/composite_objects.md)
3. [Create a composite object from a prefab](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/composite_objects/create_from_prefab.md)
4. [Create a composite object from a .urdf file](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/composite_objects/create_from_urdf.md)

## 3. Read/Write to Disk

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/overview.md)
2. [The `Logger` and `LogPlayback` add-ons](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/logger.md)
3. [The `JsonWriter` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/json.md)
4. [The `OutputDataWriter` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/output_data_writer.md)
5. [Create a custom data writer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/custom_writers.md)
6. [Import .sdf and .lisdf files](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/read_write/lisdf.md)
7. [Images](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/core_concepts/images.md) (Cross-referenced with "Core Concepts")
8. [Audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/overview.md) (Cross-referenced with "Audio")
9. [Video](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/overview.md) (Cross-referenced with "Video Recording")

## 4. Semantic States

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/overview.md)
2. [Line of sight (`Raycast` output data)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/raycast.md)
3. [Proximity to region (`Overlap` output data)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/overlap.md)
3. [Proximity to other objects (the `TriggerCollisionManager` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/trigger_collisions.md)
3. [Containment (the `ContainerManager` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/containment.md)
4. [Open and closed states](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/openness.md)
4. [Grasped objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/semantic_states/grasped.md)

## 5. Visual Perception

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/overview.md)
2. [Instance ID segmentation colors (`_id` pass)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/id.md)
3. [Semantic category segmentation colors (`_category` pass)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/category.md)
4. [Depth maps (`_depth` and `_depth_simple` passes)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/depth.md)
5. [Motion perception (`_flow` pass)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/flow.md)
6. [Other image passes (`_mask`, `_normals`, and `_albedo` passes)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/other_passes.md)
7. [`Occlusion` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/visual_perception/occlusion.md)

## 6. Camera Controls

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/camera/overview.md)
2. [Move a camera](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/camera/position.md)
3. [Rotate a camera](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/camera/rotation.md)
4. [Follow an object](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/camera/follow.md)
4. [The `CinematicCamera` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/camera/cinematic_camera.md)

## 7. Photorealism

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/overview.md)
2. [Lighting (HDRI skyboxes)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/lighting.md)
3. [Post-processing](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/post_processing.md)
4. [Interior lighting (the `InteriorSceneLighting` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/interior_lighting.md)
5. [Depth of field](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/depth_of_field.md)
6. [V-Ray Rendering](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/vray.md)

High-level API: [tdw_image_dataset](https://github.com/alters-mit/tdw_image_dataset)

## 8. Physics

**[Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/overview.md)**

### 8.1 Physics (PhysX)

1. [PhysX](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/physx.md)
2. [Object physics parameters](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/physics_objects.md)
3. [`Rigidbodies` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/rigidbodies.md)
4. [`Collision` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/collisions.md)
5. [Apply forces to objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/forces.md)
6. [Skip physics frames](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/step_physics.md)
7. [Disable physics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/physx/disable_physics.md)

High-level API: [tdw_physics](https://github.com/alters-mit/tdw_physics)

### 8.2 Physics (Obi)

1. [Obi](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi.md)
2. [Fluids](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/fluids.md)
3. [Wind](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/wind.md)
4. [Cloth](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/cloth.md)
5. [`ObiParticles` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi_particles.md)
6. [Colliders and collision materials](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/colliders_and_collision_materials.md)
7. [Solvers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/solvers.md)
8. [Obi and robots](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/robots.md)
9. [Obi and Flex](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi_and_flex.md)

### 8.3 Physics (Flex)

1. [Flex](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/flex.md)
2. [Solid and soft actors](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/solid_and_soft.md)
3. [Cloth actors](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/cloth.md)
4. [Fluid and source actors](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/fluid_and_source.md)
5. [Move, rotate, and scale Flex objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/transform.md)
6. [`FlexParticles` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/output_data.md)
7. [Apply forces to Flex objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/forces.md)
8. [Reset a Flex scene](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/reset_scene.md)
8. [Other Flex commands](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/flex/other_commands.md)

High-level API: [tdw_physics](https://github.com/alters-mit/tdw_physics)

## 9. Audio

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/overview.md)
2. [Initialize audio and play .wav files](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/initialize_audio.md)
3. [Resonance Audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/resonance_audio.md)
4. [Recording audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/record_audio.md)
5. [Audio perception](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/audio_perception.md)

### 9.1 Clatter (Physically-derived audio)

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/overview.md)
2. [Object audio data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/clatter_objects.md)
3. [Recording Clatter audio with the `PhysicsAudioRecorder` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/record_clatter.md)
4. [Clatter and Resonance Audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/resonance_audio.md)
5. [Reset Clatter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/reset.md)
6. [Manually generate audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/cli.md)
7. [Troubleshooting Clatter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/troubleshooting.md)
8. [How to contribute to Clatter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/clatter/contribute.md)

### 9.2 PyImpact (obsolete predecessor to Clatter)

1. [PyImpact](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/py_impact/py_impact.md)
2. [PyImpact advanced](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/py_impact/py_impact_advanced.md)
3. [PyImpact and Clatter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/py_impact/py_impact_and_clatter.md)

## 10. Video Recording

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/overview.md)
2. [Image-only video](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/images.md)
3. [Video with audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/audio.md)
   1. [Video with audio (Linux)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/screen_record_linux.md)
   2. [Video with audio (OS X)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/screen_record_osx.md)
   3. [Video with audio (Windows)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/video/screen_record_windows.md)


## 11. Agents

[**Overview**](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/agents/overview.md)

### 11.1 Robots

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/overview.md)
2. [The `Robot` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/robot_add_on.md)
3. [Robot arm add-ons](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/robot_arm.md)
4. [Robot collision detection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/collision_detection.md)
5. [Select a robot](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/select_robot.md)
6. [Add your own robots to TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/custom_robots.md)
7. [Robotics API (low-level)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/custom_robots.md)
8. [Add a camera to a robot](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/robots/add_camera.md)

### 11.2 Magnebots

1. [Magnebot API (external repo)](https://github.com/alters-mit/magnebot)

### 11.3 Replicants

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/overview.md)
2. [Actions](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/actions.md)
3. [Output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/output_data.md)
4. [Collision detection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/collision_detection.md)
5. [Movement](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/movement.md)
6. [Animations](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/animations.md)
7. [Arm articulation, pt. 1: Basics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/arm_articulation_1.md)
8. [Arm articulation, pt. 2: Grasp and drop objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/arm_articulation_2.md)
9. [Arm articulation, pt. 3: Advanced topics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/arm_articulation_3.md)
10. [Arm articulation, pt. 4: Stacking objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/arm_articulation_4.md)
11. [Head rotation](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/head_rotation.md)
12. [Navigation](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/navigation.md)
13. [Custom actions](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/custom_actions.md)
14. [Multiple Replicants](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/multiple_replicants.md)
15. [Reset](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/replicants/reset.md)

### 11.4 Wheelchair Replicants

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/overview.md)
2. [Actions](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/actions.md)
3. [Output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/output_data.md)
4. [Collision detection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/collision_detection.md)
5. [Movement](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/movement.md)
6. [Arm articulation, pt. 1: Basics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/arm_articulation_1.md)
7. [Arm articulation, pt. 2: Grasp and drop objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/arm_articulation_2.md)
8. [Arm articulation, pt. 3: Advanced topics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/arm_articulation_3.md)
9. [Head rotation](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/head_rotation.md)
10. [Navigation](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/navigation.md)
11. [Custom actions](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/custom_actions.md)
12. [Multiple Agents](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/multiple_agents.md)
13. [Reset](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/wheelchair_replicants/reset.md)

### 11.5 Drones

1. [Drones](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/drone/drone.md)

### 11.6 Vehicles

1. [Vehicles](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vehicle/vehicle.md)

### 11.7 Virtual Reality (VR)

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/overview.md)
2. [Oculus Touch](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/oculus_touch.md)
3. [Oculus Leap Motion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/oculus_leap_motion.md)
4. [FOVE Leap Motion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/fove_leap_motion.md)

### 11.8 Keyboard and Mouse

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/keyboard_and_mouse/overview.md)
2. [Mouse input](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/keyboard_and_mouse/mouse.md)
3. [The `FirstPersonAvatar`](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/keyboard_and_mouse/first_person_avatar.md)
4. [Keyboard input](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/keyboard_and_mouse/keyboard.md)

### 11.9 Embodied avatars

1. [The `EmbodiedAvatar`](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/embodied_avatars/embodied_avatar.md)

## 12. Multi-agent simulations

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/multi_agent/overview.md)
2. [Custom agent classes](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/multi_agent/custom_agent_classes.md)

## 13. Navigation

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/navigation/overview.md)
2. [NavMesh pathfinding](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/navigation/nav_mesh.md)
3. [Occupancy maps](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/navigation/occupancy_maps.md)

## 14. User Interface (UI)

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/ui/overview.md)
2. [The `UI` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/ui/ui.md)
3. [UI Widgets](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/ui/widgets.md)

## 15. Non-physics objects

### 15.1 Non-physics humanoids

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics_humanoids/overview.md)
2. [SMPL humanoids](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics_humanoids/smpl.md)
3. [Create custom non-physics humanoids](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics_humanoids/custom_humanoids.md)
4. [Create custom humanoid animations](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics_humanoids/custom_animations.md)

### 15.2 Misc. non-physics objects

1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/overview.md)
2. [Position markers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/position_markers.md)
3. [Line renderers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/line_renderers.md)
4. [Textured quads](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/textured_quads.md)
5. [Compass rose](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/compass_rose.md)
6. [Visual Effects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/visual_effects.md)
7. [The `FloorplanFlood` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/floorplan_flood.md)
8. [Empty objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/empty_objects.md)

## 16. Misc. other topics

1. [C# source code](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/misc/c_sharp_sources.md)
2. [Freezing your code](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/misc/freeze.md)
3. [Download asset bundles](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/misc/download_asset_bundles.md)

# API Documentation

## Command API

- [Command API](https://github.com/threedworld-mit/tdw/blob/master/Documentation/api/command_api.md)
- [Output Data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/api/output_data.md)

## `tdw` module API

**tdw**

- [AudioConstants](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/audio_constants.md)
- [AudioUtils](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/audio_utils.md)
- [CardinalDirection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/cardinal_direction.md)
- [Controller](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/controller.md)
- [IntPair](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/int_pair.md)
- [OrdinalDirection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/ordinal_direction.md)
- [QuaternionUtils](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/quaternion_utils.md)
- [RemoteBuildLauncher](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/remote_build_launcher.md)
- [TDWUtils](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/tdw_utils.md)
- [TypeAliases](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/type_aliases.md)

**tdw.add_ons**

- [AddOn](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/add_on.md)
- [AudioInitializer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/audio_initializer.md)
- [AudioInitializerBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/audio_initializer_base.md)
- [Autohand](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/autohand.md)
- [AvatarBody](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/avatar_body.md)
- [Benchmark](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/benchmark.md)
- [CinematicCamera](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/cinematic_camera.md)
- [Clatter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/clatter.md)
- [CollisionManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/collision_manager.md)
- [CompositeObjectManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/composite_object_manager.md)
- [ContainerManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/container_manager.md)
- [Drone](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/drone.md)
- [EmbodiedAvatar](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/embodied_avatar.md)
- [EmptyObjectManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/empty_object_manager.md)
- [FirstPersonAvatar](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/first_person_avatar.md)
- [Floorplan](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/floorplan.md)
- [FloorplanFlood](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/floorplan_flood.md)
- [FoveLeapMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/fove_leap_motion.md)
- [ImageCapture](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/image_capture.md)
- [InteriorSceneLighting](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/interior_scene_lighting.md)
- [JsonWriter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/json_writer.md)
- [Keyboard](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/keyboard.md)
- [LeapMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/leap_motion.md)
- [LisdfReader](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/lisdf_reader.md)
- [Logger](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/logger.md)
- [LogPlayback](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/log_playback.md)
- [ModelVerifier](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/model_verifier.md)
- [Mouse](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/mouse.md)
- [NavMesh](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/nav_mesh.md)
- [Obi](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/obi.md)
- [ObjectManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/object_manager.md)
- [OccupancyMap](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/occupancy_map.md)
- [OculusLeapMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/oculus_leap_motion.md)
- [OculusTouch](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/oculus_touch.md)
- [OutputDataWriter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/output_data_writer.md)
- [PhysicsAudioRecorder](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/physics_audio_recorder.md)
- [ProcGenKitchen](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/proc_gen_kitchen.md)
- [PyImpact](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/py_impact.md)
- [Replicant](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/replicant.md)
- [ReplicantBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/replicant_base.md)
- [ResonanceAudioInitializer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/resonance_audio_initializer.md)
- [Robot](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/robot.md)
- [RobotArm](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/robot_arm.md)
- [RobotBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/robot_base.md)
- [StepPhysics](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/step_physics.md)
- [ThirdPersonCamera](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/third_person_camera.md)
- [ThirdPersonCameraBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/third_person_camera_base.md)
- [TriggerCollisionManager](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/trigger_collision_manager.md)
- [UI](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/ui.md)
- [Vehicle](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vehicle.md)
- [VR](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vr.md)
- [VrayExporter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vray_exporter.md)
- [WheelchairReplicant](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/wheelchair_replicant.md)
- [Writer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/writer.md)

**tdw.add_ons.ui_widgets**

- [LoadingScreen](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/ui_widgets/loading_screen.md)
- [ProgressBar](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/ui_widgets/progress_bar.md)
- [TimerBar](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/ui_widgets/timer_bar.md)

**tdw.agent_data**

- [AgentDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/agent_data/agent_dynamic.md)

**tdw.asset_bundle_creator**

- [AnimationCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/animation_creator.md)
- [AssetBundleCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/asset_bundle_creator.md)
- [CompositeObjectCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/composite_object_creator.md)
- [HumanoidCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/humanoid_creator.md)
- [HumanoidCreatorBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/humanoid_creator_base.md)
- [ModelCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/model_creator.md)
- [RobotCreator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/asset_bundle_creator/robot_creator.md)

**tdw.backend**

- [Update](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/backend/update.md)

**tdw.collision_data**

- [CollisionBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/collision_data/collision_base.md)
- [CollisionObjEnv](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/collision_data/collision_obj_env.md)
- [CollisionObjObj](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/collision_data/collision_obj_obj.md)
- [TriggerColliderShape](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/collision_data/trigger_collider_shape.md)
- [TriggerCollisionEvent](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/collision_data/trigger_collision_event.md)

**tdw.container_data**

- [BoxContainer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/box_container.md)
- [ContainerShape](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/container_shape.md)
- [ContainerTag](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/container_tag.md)
- [ContainmentEvent](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/containment_event.md)
- [CylinderContainer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/cylinder_container.md)
- [SphereContainer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/container_data/sphere_container.md)

**tdw.drone**

- [DroneDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/drone/drone_dynamic.md)

**tdw.flex_data**

- [FluidType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/flex_data/fluid_type.md)

**tdw.lerp**

- [Lerpable](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/lerp/lerpable.md)
- [LerpableFloat](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/lerp/lerpable_float.md)
- [LerpableVector](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/lerp/lerpable_vector.md)

**tdw.librarian**

- [DroneLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/drone_librarian.md)
- [HdriSkyboxLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/hdri_skybox_librarian.md)
- [HumanoidAnimationLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/humanoid_animation_librarian.md)
- [HumanoidLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/humanoid_librarian.md)
- [MaterialLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/material_librarian.md)
- [ModelLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/model_librarian.md)
- [RobotLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/robot_librarian.md)
- [SceneLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/scene_librarian.md)
- [VehicleLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/vehicle_librarian.md)
- [VisualEffectLibrarian](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/librarian/visual_effect_librarian.md)

**tdw.lisdf_data**

- [LisdfRobotMetadata](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/lisdf_data/lisdf_robot_metadata.md)

**tdw.model_tests**

- [MissingMaterials](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/model_tests/missing_materials.md)
- [ModelReport](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/model_tests/model_report.md)
- [ModelTest](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/model_tests/model_test.md)
- [PhysicsQuality](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/model_tests/physics_quality.md)
- [RotateObjectTest](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/model_tests/rotate_object_test.md)

**tdw.obi_data**

- [ForceMode](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/force_mode.md)
- [ObiActor](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/obi_actor.md)
- [ObiBackend](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/obi_backend.md)
- [WindSource](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/wind_source.md)

**tdw.obi_data.cloth**

- [ClothMaterial](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/cloth/cloth_material.md)
- [SheetType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/cloth/sheet_type.md)
- [TetherParticleGroup](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/cloth/tether_particle_group.md)
- [TetherType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/cloth/tether_type.md)
- [VolumeType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/cloth/volume_type.md)

**tdw.obi_data.collision_materials**

- [CollisionMaterial](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/collision_materials/collision_material.md)
- [MaterialCombineMode](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/collision_materials/material_combine_mode.md)

**tdw.obi_data.fluids**

- [CubeEmitter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/cube_emitter.md)
- [DiskEmitter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/disk_emitter.md)
- [EdgeEmitter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/edge_emitter.md)
- [EmitterSamplingMethod](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/emitter_sampling_method.md)
- [EmitterShape](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/emitter_shape.md)
- [Fluid](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/fluid.md)
- [FluidBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/fluid_base.md)
- [GranularFluid](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/granular_fluid.md)
- [SphereEmitter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/obi_data/fluids/sphere_emitter.md)

**tdw.object_data**

- [Bound](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/bound.md)
- [ObjectStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/object_static.md)
- [Rigidbody](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/rigidbody.md)
- [Transform](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/transform.md)

**tdw.object_data.composite_object**

- [CompositeObjectDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/composite_object_dynamic.md)
- [CompositeObjectStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/composite_object_static.md)

**tdw.object_data.composite_object.sub_object**

- [HingeDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/hinge_dynamic.md)
- [HingeStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/hinge_static.md)
- [HingeStaticBase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/hinge_static_base.md)
- [LightDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/light_dynamic.md)
- [LightStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/light_static.md)
- [MotorStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/motor_static.md)
- [NonMachineStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/non_machine_static.md)
- [PrismaticJointStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/prismatic_joint_static.md)
- [SpringStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/spring_static.md)
- [SubObjectDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/sub_object_dynamic.md)
- [SubObjectStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/object_data/composite_object/sub_object/sub_object_static.md)

**tdw.physics_audio**

- [AudioMaterial](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/audio_material.md)
- [Base64Sound](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/base64_sound.md)
- [ClatterObject](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/clatter_object.md)
- [CollisionAudioEvent](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/collision_audio_event.md)
- [CollisionAudioInfo](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/collision_audio_info.md)
- [CollisionAudioType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/collision_audio_type.md)
- [ImpactMaterial](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/impact_material.md)
- [Modes](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/modes.md)
- [ObjectAudioStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/object_audio_static.md)
- [ScrapeMaterial](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/scrape_material.md)
- [ScrapeModel](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/scrape_model.md)
- [ScrapeSubObject](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/physics_audio/scrape_sub_object.md)

**tdw.proc_gen.arrangements**

- [Arrangement](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/arrangement.md)
- [ArrangementAlongWall](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/arrangement_along_wall.md)
- [ArrangementWithRootObject](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/arrangement_with_root_object.md)
- [Basket](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/basket.md)
- [CupAndCoaster](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/cup_and_coaster.md)
- [Dishwasher](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/dishwasher.md)
- [KitchenCabinet](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/kitchen_cabinet.md)
- [KitchenCounter](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/kitchen_counter.md)
- [KitchenCounterTop](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/kitchen_counter_top.md)
- [KitchenTable](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/kitchen_table.md)
- [Microwave](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/microwave.md)
- [Painting](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/painting.md)
- [Plate](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/plate.md)
- [Radiator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/radiator.md)
- [Refrigerator](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/refrigerator.md)
- [Shelf](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/shelf.md)
- [SideTable](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/side_table.md)
- [Sink](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/sink.md)
- [StackOfPlates](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/stack_of_plates.md)
- [Stool](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/stool.md)
- [Stove](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/stove.md)
- [Suitcase](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/suitcase.md)
- [TableAndChairs](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/table_and_chairs.md)
- [TableSetting](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/table_setting.md)
- [Void](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/void.md)
- [WallCabinet](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/wall_cabinet.md)

**tdw.proc_gen.arrangements.cabinetry**

- [Cabinetry](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/cabinetry/cabinetry.md)
- [CabinetryType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/proc_gen/arrangements/cabinetry/cabinetry_type.md)

**tdw.release**

- [Build](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/release/build.md)
- [PyPi](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/release/pypi.md)

**tdw.replicant**

- [ActionStatus](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/action_status.md)
- [Arm](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/arm.md)
- [CollisionDetection](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/collision_detection.md)
- [ImageFrequency](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/image_frequency.md)
- [ReplicantBodyPart](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/replicant_body_part.md)
- [ReplicantDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/replicant_dynamic.md)
- [ReplicantStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/replicant_static.md)

**tdw.replicant.actions**

- [Action](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/action.md)
- [Animate](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/animate.md)
- [ArmMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/arm_motion.md)
- [DoNothing](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/do_nothing.md)
- [Drop](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/drop.md)
- [Grasp](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/grasp.md)
- [HeadMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/head_motion.md)
- [IkMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/ik_motion.md)
- [LookAt](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/look_at.md)
- [MoveBy](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/move_by.md)
- [MoveTo](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/move_to.md)
- [ReachFor](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/reach_for.md)
- [ReachForWithPlan](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/reach_for_with_plan.md)
- [ResetArm](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/reset_arm.md)
- [ResetHead](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/reset_head.md)
- [RotateHead](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/rotate_head.md)
- [TurnBy](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/turn_by.md)
- [TurnTo](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/actions/turn_to.md)

**tdw.replicant.ik_plans**

- [IkPlan](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/ik_plans/ik_plan.md)
- [IkPlanType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/ik_plans/ik_plan_type.md)
- [Reset](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/ik_plans/reset.md)
- [VerticalHorizontal](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/replicant/ik_plans/vertical_horizontal.md)

**tdw.robot_data**

- [Drive](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/drive.md)
- [JointDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/joint_dynamic.md)
- [JointStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/joint_static.md)
- [JointType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/joint_type.md)
- [NonMoving](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/non_moving.md)
- [RobotDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/robot_dynamic.md)
- [RobotStatic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/robot_data/robot_static.md)

**tdw.scene_data**

- [InteriorRegion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/scene_data/interior_region.md)
- [RegionBounds](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/scene_data/region_bounds.md)
- [Room](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/scene_data/room.md)
- [SceneBounds](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/scene_data/scene_bounds.md)

**tdw.vehicle**

- [VehicleDynamic](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vehicle/vehicle_dynamic.md)

**tdw.vray_data**

- [VrayMatrix](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vray_data/vray_matrix.md)

**tdw.vr_data**

- [FingerBone](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/finger_bone.md)
- [OculusTouchButton](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/oculus_touch_button.md)
- [RigType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/rig_type.md)

**tdw.vr_data.fove**

- [CalibrationMethod](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/calibration_method.md)
- [CalibrationSphere](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/calibration_sphere.md)
- [CalibrationState](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/calibration_state.md)
- [Eye](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/eye.md)
- [EyeByEyeCalibration](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/eye_by_eye_calibration.md)
- [EyeState](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/eye_state.md)
- [EyeTorsionCalibration](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/vr_data/fove/eye_torsion_calibration.md)

**tdw.wheelchair_replicant**

- [WheelValues](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/wheel_values.md)

**tdw.wheelchair_replicant.actions**

- [MoveBy](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/move_by.md)
- [MoveTo](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/move_to.md)
- [ReachFor](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/reach_for.md)
- [TurnBy](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/turn_by.md)
- [TurnTo](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/turn_to.md)
- [WheelchairMotion](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/wheelchair_replicant/actions/wheelchair_motion.md)

# Performance benchmarks
1. [Performance benchmarks](https://github.com/threedworld-mit/tdw/blob/master/Documentation/benchmark/benchmark.md)
2. [Image capture](https://github.com/threedworld-mit/tdw/blob/master/Documentation/benchmark/image_capture.md)
3. [Object data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/benchmark/object_data.md)
4. [Command deserialization](https://github.com/threedworld-mit/tdw/blob/master/Documentation/benchmark/command_deserialization.md)