Giter Site home page Giter Site logo

tdw's Introduction

ThreeDWorld (TDW)

A Platform for Interactive Multi-Modal Physical Simulation

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.

Getting Started (Read this first!)

API

Commands and Output Data

Document Description
Command API API for every command a controller can send to the build.
Command API Guide Overview of how to send commands to the build.
Output Data API for all output data a controller can receive from the build.

High-Level APIs

API Description
Image dataset Generate 1.3M photorealistic images.
tdw_physics Generate physics datasets.
Magnebot High-level Magnebot robotics API.
Transport Challenge A higher-level API that uses the Magnebot API.

Python tdw module

Frontend
Document Description
tdw module Overview of the Python tdw module.
Controller Base class for all controllers.
TDWUtils Utility class.
AssetBundleCreator Covert 3D models into TDW-compatible asset bundles.
PyImpact Generate impact sounds at runtime.
DebugController Child class of Controller that has useful debug features.
KeyboardController Child class of Controller that can listen for keyboard input.
FloorplanController Child class of Controller that creates an interior environment and populates it with objects.
Librarian "Librarians" hold asset bundle metadata records.
FluidTypes Access different NVIDIA Flex fluid types.
Object Init Data Wrapper classes for storing object initialization data.
Backend
Document Description
Build Helper functions for downloading the build.
PyPi Helper functions for checking the version of the tdw module on PyPi.

Audio and Video

Document Description
Impact Sounds Generate impact sounds at runtime using PyImpact.
PyImpact PyImpact API.
Audio/Video Recording Record audio, video, or audio+video.
Remote rendering How to render using xpra.

Avatars (Agents)

Document Description
Observation Data Different means of determining what an agent is observing.
Depth Maps How to use depth maps.
Avatar Movement Different techniques for moving agents.
Magnebot High-level Magnebot API.

Benchmarks and Speed

Document Description
Benchmarks Performance benchmarks.
Performance Optimizations Increase simulation speed.

Examples

Document Description
Example Controllers Index of all example controllers in the repo.
Use Cases (see below) The "use cases" section showcases "advanced" usage of TDW.

Misc.

Document Description
VR VR in TDW.
Humanoids Add "humanoids" and play animations.

Physics (PhysX and Flex)

Document Description
Physics Common physics problems and solutions.
NVIDIA Flex Add soft bodies, cloth, and fluids to TDW.
FluidTypes Access different NVIDIA Flex fluid types.
Physics Determinism Benchmark of PhysX physics determinism.
tdw_physics Generate a physics dataset.
Rube Goldberg (demo) Demo of complex physical interactions between objects, with PyImpact generation of impact sounds, set in a photorealistic scene.

Releases

Document Description
C# code Access to C# backend source code
Releases Release versioning in TDW.
Freezing your code "Freeze" your controller into a compiled executable.

Remote Server

Document Description
Docker Create a Docker container for TDW.
Remote rendering How to render using xpra.
BinaryManager Manage multiple instances of TDW builds on a remote server.
bash scripts Useful bash scripts for Linux.

Rendering and Photorealism

Document Description
Asset Bundle Librarians Overview of what asset bundles are, how to add objects, scenes, materials, HDRI skyboxes, and humanoids, and how to access each asset bundle's metadata.
Model Screenshotter Generate images of every model in TDW.
Material Screenshotter Generate images of every material in TDW.
Materials, textures, and colors Defines materials, textures, and colors.
Depth of Field Prevent blurry images and increase realism.
Depth Maps How to use depth maps.
Remote rendering How to render using xpra.
Observation Data Different means of determining what an agent is observing.

Robotics

Document Description
Robots Overview of robotics and the Magnebot in TDW.
Robot Librarian API for accessing robot metadata.
Robot Creator API for adding your own robots to TDW.
Magnebot High-level Magnebot API.

Scene Setup

Document Description
Scene Setup Overview of how to set up a scene.
Asset Bundle Librarians Overview of what asset bundles are, how to add objects, scenes, materials, HDRI skyboxes, and humanoids, and how to access each asset bundle's metadata.
Model Librarian Overview of how to add objects and access metadata.
Rotation Different means of rotating objects and agents in a scene.
Scene Reset How to reset a scene.
FloorplanController Child class of Controller that creates an interior environment and populates it with objects.

TDW and 3D Objects

Document Description
Model Librarian Overview of how to add objects and access metadata.
Model Screenshotter Generate images of every model in TDW.
Non-free models Access the TDW "full model library".
Local 3D models Add your own objects to TDW.
ShapeNet models Convert ShapeNET models into TDW objects.
Composite Objects
Creating Composite Objects
Use and create "composite objects".
AssetBundleCreator API for the AssetBundleCreator class (used to convert 3D models into TDW-compatible asset bundles).
Rotation Different means of rotating objects and agents in a scene.

Troubleshooting TDW

Document Description
Debug TDW Several strategies for debugging errors in your code.
DebugController API for the DebugController class.
Depth of Field Prevent blurry images and increase realism.
Performance Optimizations Increase simulation speed.
OS X Common OS X problems and solutions.
Physics Common physics problems and solutions.

Use Cases

Use Case Description
Image dataset Generate 1.3M photorealistic images.
IntPhys (demo) Demo of how to simulate IntPhys in TDW.
Humanoid videos Generate a dataset of humanoid animations.
tdw_physics Generate a physics dataset.
Rube Goldberg (demo) Demo of complex physical interactions between objects, with PyImpact generation of impact sounds, set in a photorealistic scene.
Magnebot High-level Magnebot API.

tdw's People

Contributors

alters-mit avatar laurenfarrow avatar jemsmit avatar instbldrjems avatar lucasb-eyer avatar guhur avatar felixbinder avatar samarth4149 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.