%global _empty_manifest_terminate_build 0
Name: python-tdw
Version: 1.11.18.0
Release: 1
Summary: 3D simulation environment
License: BSD
URL: https://github.com/threedworld-mit/tdw
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/38/ce/8cf70ac6e5e6a041a0c325cbdd54bcc111fa26176326ab28986ad6d7f697/tdw-1.11.18.0.tar.gz
BuildArch: noarch
%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.
- [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)
3. [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)
## 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)
3. [Interior lighting (the `InteriorSceneLighting` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/interior_lighting.md)
4. [Depth of field](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/depth_of_field.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)
2. [Cloth](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/cloth.md)
3. [`ObiParticles` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi_particles.md)
4. [Colliders and collision materials](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/colliders_and_collision_materials.md)
5. [Solvers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/solvers.md)
6. [Obi and robots](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/robots.md)
6. [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. [`PyImpact` (dynamic impact sounds)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact.md)
6. [Recording audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/record_audio.md)
6. [`PyImpact` (advanced API)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact_advanced.md)
7. [Audio perception](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/audio_perception.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 Drones
1. [Drones](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/drone/drone.md)
### 11.5 Virtual Reality (VR)
1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/overview.md)
2. [Oculus Touch rigs](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/oculus_touch.md)
### 11.6 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.7 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. Non-physics objects
### 14.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)
### 14.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. [User Interface (the `UI` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/ui.md)
6. [Compass rose](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/compass_rose.md)
7. [Visual Effects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/visual_effects.md)
8. [The `FloorplanFlood` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/floorplan_flood.md)
9. [Empty objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/empty_objects.md)
## 15. 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)
2. [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)
**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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [VR](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vr.md)
- [Writer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/writer.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.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.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)
- [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)
**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)
- [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)
- [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)
- [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.vr_data**
- [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)
# 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)
%package -n python3-tdw
Summary: 3D simulation environment
Provides: python-tdw
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-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 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)
3. [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)
## 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)
3. [Interior lighting (the `InteriorSceneLighting` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/interior_lighting.md)
4. [Depth of field](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/depth_of_field.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)
2. [Cloth](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/cloth.md)
3. [`ObiParticles` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi_particles.md)
4. [Colliders and collision materials](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/colliders_and_collision_materials.md)
5. [Solvers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/solvers.md)
6. [Obi and robots](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/robots.md)
6. [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. [`PyImpact` (dynamic impact sounds)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact.md)
6. [Recording audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/record_audio.md)
6. [`PyImpact` (advanced API)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact_advanced.md)
7. [Audio perception](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/audio_perception.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 Drones
1. [Drones](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/drone/drone.md)
### 11.5 Virtual Reality (VR)
1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/overview.md)
2. [Oculus Touch rigs](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/oculus_touch.md)
### 11.6 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.7 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. Non-physics objects
### 14.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)
### 14.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. [User Interface (the `UI` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/ui.md)
6. [Compass rose](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/compass_rose.md)
7. [Visual Effects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/visual_effects.md)
8. [The `FloorplanFlood` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/floorplan_flood.md)
9. [Empty objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/empty_objects.md)
## 15. 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)
2. [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)
**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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [VR](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vr.md)
- [Writer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/writer.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.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.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)
- [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)
**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)
- [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)
- [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)
- [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.vr_data**
- [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)
# 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)
%package help
Summary: Development documents and examples for tdw
Provides: python3-tdw-doc
%description help
# 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 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)
3. [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)
## 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)
3. [Interior lighting (the `InteriorSceneLighting` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/interior_lighting.md)
4. [Depth of field](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/photorealism/depth_of_field.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)
2. [Cloth](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/cloth.md)
3. [`ObiParticles` output data](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/obi_particles.md)
4. [Colliders and collision materials](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/colliders_and_collision_materials.md)
5. [Solvers](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/solvers.md)
6. [Obi and robots](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/obi/robots.md)
6. [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. [`PyImpact` (dynamic impact sounds)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact.md)
6. [Recording audio](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/record_audio.md)
6. [`PyImpact` (advanced API)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/py_impact_advanced.md)
7. [Audio perception](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/audio/audio_perception.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 Drones
1. [Drones](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/drone/drone.md)
### 11.5 Virtual Reality (VR)
1. [Overview](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/overview.md)
2. [Oculus Touch rigs](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/vr/oculus_touch.md)
### 11.6 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.7 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. Non-physics objects
### 14.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)
### 14.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. [User Interface (the `UI` add-on)](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/ui.md)
6. [Compass rose](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/compass_rose.md)
7. [Visual Effects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/visual_effects.md)
8. [The `FloorplanFlood` add-on](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/floorplan_flood.md)
9. [Empty objects](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/non_physics/empty_objects.md)
## 15. 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)
2. [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)
**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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [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)
- [VR](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/vr.md)
- [Writer](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/add_ons/writer.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.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.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)
- [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)
**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)
- [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)
- [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)
- [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.vr_data**
- [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)
# 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)
%prep
%autosetup -n tdw-1.11.18.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-tdw -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Tue May 30 2023 Python_Bot - 1.11.18.0-1
- Package Spec generated