diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-tdw.spec | 3578 | ||||
| -rw-r--r-- | sources | 2 |
3 files changed, 1800 insertions, 1781 deletions
@@ -1 +1,2 @@ /tdw-1.11.16.0.tar.gz +/tdw-1.11.18.0.tar.gz diff --git a/python-tdw.spec b/python-tdw.spec index 6edca7b..b59924d 100644 --- a/python-tdw.spec +++ b/python-tdw.spec @@ -1,608 +1,614 @@ %global _empty_manifest_terminate_build 0 Name: python-tdw -Version: 1.11.16.0 +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/e5/81/c7da404437d0abb189deb281a3ef7a165629bf47fcc1b6074d3a34bb1426/tdw-1.11.16.0.tar.gz +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.
-
-<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg">
-
-- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md)
-- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md)
-- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt)
-- [Website](https://threedworld.org/)
-- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers)
-
-# General guide to TDW
-
-## Setup
-
-### 1.1 Installation (Read this first!)
-
-1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md)
-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 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.5 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.6 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)
-- [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.flex_data**
-
-- [FluidType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/flex_data/fluid_type.md)
-
-**tdw.librarian**
-
-- [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)
-
-
-
+# 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. + +<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg"> + +- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md) +- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md) +- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt) +- [Website](https://threedworld.org/) +- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers) + +# General guide to TDW + +## Setup + +### 1.1 Installation (Read this first!) + +1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md) +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 @@ -611,1200 +617,1212 @@ 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.
-
-<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg">
-
-- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md)
-- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md)
-- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt)
-- [Website](https://threedworld.org/)
-- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers)
-
-# General guide to TDW
-
-## Setup
-
-### 1.1 Installation (Read this first!)
-
-1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md)
-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 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.5 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.6 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)
-- [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.flex_data**
-
-- [FluidType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/flex_data/fluid_type.md)
-
-**tdw.librarian**
-
-- [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)
-
-
-
+# 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. + +<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg"> + +- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md) +- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md) +- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt) +- [Website](https://threedworld.org/) +- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers) + +# General guide to TDW + +## Setup + +### 1.1 Installation (Read this first!) + +1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md) +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.
-
-<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg">
-
-- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md)
-- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md)
-- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt)
-- [Website](https://threedworld.org/)
-- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers)
-
-# General guide to TDW
-
-## Setup
-
-### 1.1 Installation (Read this first!)
-
-1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md)
-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 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.5 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.6 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)
-- [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.flex_data**
-
-- [FluidType](https://github.com/threedworld-mit/tdw/blob/master/Documentation/python/flex_data/fluid_type.md)
-
-**tdw.librarian**
-
-- [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)
-
-
-
+# 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. + +<img src="https://raw.githubusercontent.com/threedworld-mit/tdw/master/splash.jpg"> + +- [Code of Conduct](https://github.com/threedworld-mit/tdw/blob/master/code_of_conduct.md) +- [Changelog](https://github.com/threedworld-mit/tdw/blob/master/Documentation/Changelog.md) +- [License](https://github.com/threedworld-mit/tdw/blob/master/LICENSE.txt) +- [Website](https://threedworld.org/) +- [Example controllers](https://github.com/threedworld-mit/tdw/tree/master/Python/example_controllers) + +# General guide to TDW + +## Setup + +### 1.1 Installation (Read this first!) + +1. [Install TDW](https://github.com/threedworld-mit/tdw/blob/master/Documentation/lessons/setup/install.md) +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.16.0 +%autosetup -n tdw-1.11.18.0 %build %py3_build @@ -1844,5 +1862,5 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog -* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.11.16.0-1 +* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 1.11.18.0-1 - Package Spec generated @@ -1 +1 @@ -42f126e98afa4dc36f6a061cd654dc57 tdw-1.11.16.0.tar.gz +e8de6a047abcbaa8d978e4810038d2ea tdw-1.11.18.0.tar.gz |
