百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
H

habitat-sim

> 编程语言
开源

一个灵活、高性能的 3D 模拟器,用于体验式 AI 研究。

3.8K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一个灵活、高性能的 3D 模拟器,用于体验式 AI 研究。

[!WARNING] Beyond v0.3.4 this project is no longer receiving official active development or maintenance by Meta internal teams. Please feel free to continue forking and developing the software independently.

Habitat-Sim

A high-performance physics-enabled 3D simulator with support for:

  • 3D scans of indoor/outdoor spaces (with built-in support for HM3D, HSSD, MatterPort3D, Gibson, Replica, and other datasets)
  • CAD models of spaces and piecewise-rigid objects (e.g. ReplicaCAD, YCB, Google Scanned Objects),
  • Configurable sensors (RGB-D cameras, egomotion sensing)
  • Robots described via URDF (mobile manipulators like Fetch, fixed-base arms like Franka, quadrupeds like AlienGo),
  • Rigid-body mechanics (via Bullet).

The design philosophy of Habitat is to prioritize simulation speed over the breadth of simulation capabilities. When rendering a scene from the Matterport3D dataset, Habitat-Sim achieves several thousand frames per second (FPS) running single-threaded and reaches over 10,000 FPS multi-process on a single GPU. Habitat-Sim simulates a Fetch robot interacting in ReplicaCAD scenes at over 8,000 steps per second (SPS), where each ‘step’ involves rendering 1 RGBD observation (128×128 pixels) and rigid-body dynamics for 1/30sec.

Habitat-Sim is typically used with Habitat-Lab, a modular high-level library for end-to-end experiments in embodied AI -- defining embodied AI tasks (e.g. navigation, instruction following, question answering), training agents (via imitation or reinforcement learning, or no learning at all as in classical SensePlanAct pipelines), and benchmarking their performance on the defined tasks using standard metrics.

Questions or Comments? Join the AI Habitat community discussions forum.

https://user-images.githubusercontent.com/2941091/126080914-36dc8045-01d4-4a68-8c2e-74d0bca1b9b8.mp4


Table of contents

  1. Citing Habitat
  2. Installation
  3. Testing
  4. Documentation
  5. Datasets
  6. External Contributions
  7. License

Citing Habitat

If you use the Habitat platform in your research, please cite the Habitat 1.0, Habitat 2.0, and Habitat 3.0 papers:

…

Habitat-Sim also builds on work contributed by others. If you use contributed methods/models, please cite their works. See the External Contributions section for a list of what was externally contributed and the corresponding work/citation.

Installation

Habitat-Sim can be installed in 4 ways:

  1. Via Conda - Recommended method for most users. Stable release and nightly builds.
  2. Via PIP - pip install . --no-build-isolation to compile from source. Read build instructions and common build issues.
  3. Via Docker - Updated approximately once per year for the Habitat Challenge. Read habitat-docker-setup.
  4. Via Source - For active development. Read build instructions and common build issues.

[Recommended] Conda Packages

Habitat is under active development, and we advise users to restrict themselves to stable releases. Starting with v0.1.4, we provide conda packages for each release.

  1. Preparing conda env

    Assuming you have conda installed, let's prepare a conda env:

    # We require python>=3.9 and cmake>=3.22
    conda create -n habitat python=3.12 cmake=3.27
    conda activate habitat
    
  2. conda install habitat-sim

    Pick one of the options below depending on your system/needs:

    • To install on machines with an attached display:

      conda install habitat-sim -c conda-forge -c aihabitat
      
    • To install on headless machines (i.e. without an attached display, e.g. in a cluster) and machines with multiple GPUs (this parameter relies on EGL and thus does not work on MacOS):

      conda install habitat-sim headless -c conda-forge -c aihabitat
      
    • [Most common scenario] To install habitat-sim with bullet physics

      conda install habitat-sim withbullet -c conda-forge -c aihabitat
      
    • Note: Build parameters can be chained together. For instance, to install habitat-sim with physics on headless machines:

      conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
      

Conda packages for older versions can installed by explicitly specifying the version, e.g. conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat.

We also provide a nightly conda build for the main branch. However, this should only be used if you need a specific feature not yet in the latest release version. To get the nightly build of the latest main, simply swap -c aihabitat for -c aihabitat-nightly.

Testing

  1. Let's download some 3D assets using our python data download utility:

    • Download (testing) 3D scenes

      python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/
      

      Note that these testing scenes do not provide semantic annotations. If you would like to test the semantic sensors via example.py, please use the data from the Matterport3D dataset (see Datasets).

    • Download example objects

      python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/
      
  2. Interactive testing: Use the interactive viewer included with Habitat-Sim in either C++ or python:

    #C++
    # After 'pip install .', the viewer is on PATH:
    viewer /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
    # For editable/development builds, a convenience symlink is created:
    ./build/viewer /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
    
    #Python
    python examples/viewer.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
    

    You should be able to control an agent in this test scene. Use W/A/S/D keys to move forward/left/backward/right and arrow keys or mouse (LEFT click) to control gaze direction (look up/down/left/right). Try to find the picture of a woman surrounded by a wreath. Have fun!

  3. Physical interactions: Habitat-sim provides rigid and articulated dynamics simulation via integration with Bullet physics. Try it out now with our interactive viewer functionality in C++ or python.

    First, download our fully interactive ReplicaCAD apartment dataset (140 MB):

    #NOTE: by default, data will be downloaded into habitat-sim/data/. Optionally modify the data path by adding:  `--data-path /path/to/data/`
    # with conda install
    python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset
    
    # with source (from inside habitat_sim/)
    python src_python/habitat_sim/utils/datasets_download.py --uids replica_cad_dataset
    
    • Alternatively, 105 scene variations with pre-baked lighting are available via --uids replica_cad_baked_lighting (480 MB).

    Then load a ReplicaCAD scene in the viewer application with physics enabled. If you modified the data path above, also modify it in viewer calls below.

    #C++
    viewer --enable-physics --dataset data/replica_cad/replicaCAD.scene_dataset_config.json -- apt_1
    
    #python
    python examples/viewer.py --dataset data/replica_cad/replicaCAD.scene_dataset_config.json --scene apt_1
    
    • Using scenes with pre-baked lighting instead? Use --dataset data/replica_cad_baked_lighting/replicaCAD_baked.scene_dataset_config.json --scene Baked_sc1_staging_00

    The viewer application outputs the full list of keyboard and mouse interface options to the console at runtime.

    Quickstart Example:

    • WASD to move
    • LEFT click and drag the mouse to look around
    • press SPACE to toggle simulation off/on (default on)
    • press 'm' to switch to "GRAB" mouse mode
    • now LEFT or RIGHT click and drag to move objects or open doors/drawers and release to drop the object
    • with an object gripped, scroll the mouse wheel to:
      • (default): move it closer or farther away
      • (+ALT): rotate object fixed constraint frame (yaw)
      • (+CTRL): rotate object fixed constraint frame (pitch)
      • (+ALT+CTRL): rotate object fixed constraint frame (roll)
  4. Non-interactive testing (e.g. for headless systems): Run the example script:

    python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
    

    The agent will traverse a particular path and you should see the performance stats at the very end, something like this: 640 x 480, total time: 3.208 sec. FPS: 311.7.

    To reproduce the benchmark table from Habitat ICCV'19 run examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb.

    Additional arguments to example.py are provided to change the sensor configuration, print statistics of the semantic annotations in a scene, compute action-space shortest path trajectories, and set other useful functionality. Refer to the example.py and demo_runner.py source files for an overview.

    Load a specific MP3D or Gibson house: examples/example.py --scene path/to/mp3d/house_id.glb.

    We have also provided an example demo for reference.

    To run a physics example in python (after building with "Physics simulation via Bullet"):

    python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physics
    

    Note that in this mode the agent will be frozen and oriented toward the spawned physical objects. Additionally, --save_png can be used to output agent visual observation frames of the physical scene to the current directory.

Common testing issues

  • If you are running on a remote machine and experience display errors when initializing the simulator, e.g.

     X11: The DISPLAY environment variable is missing
     Could not initialize GLFW
    

    ensure you do not have DISPLAY defined in your environment (run unset DISPLAY to undefine the variable)

  • If you see libGL errors like:

     X11: The DISPLAY environment variable is missing
     Could not initialize GLFW
    

    chances are your libGL is located at a non-standard location. See e.g. this issue.

Documentation

Browse the online Habitat-Sim documentation.

Check out our ECCV tutorial series for a hands-on quickstart experience.

Can't find

GitHub Issues· 268 开放

在 GitHub 查看全部
  • #2620

    v0.3.3 Building from source now defaults to HEADLESS and can not be set by HABITAT_BUILD_GUI_VIEWERS

    更新于 2026年7月9日
  • #1752

    generate semantic image in example/viewer.py

    enhancementhelp wanted更新于 2026年7月9日
  • #2632

    AudioSensor::AddSource uses out-of-bounds Vector3 index for source position

    更新于 2026年7月9日
  • #2625

    [Bug] README conda installation instructions specify Python 3.12 but no Python 3.10+ packages exist on aihabitat channel

    更新于 2026年7月9日
  • #2635

    Melhoria da Consistência 3D em Contextos Multiview com Modelos de Linguagem

    更新于 2026年5月21日

核心特点

  • •3D scans of indoor/outdoor spaces (with built-in support for HM3D, HSSD, MatterPort3D, Gibson, Replica, and other datasets)
  • •CAD models of spaces and piecewise-rigid objects (e.g. ReplicaCAD, YCB, Google Scanned Objects),
  • •Configurable sensors (RGB-D cameras, egomotion sensing)
  • •Robots described via URDF (mobile manipulators like Fetch, fixed-base arms like Franka, quadrupeds like AlienGo),
  • •Rigid-body mechanics (via Bullet).
  • •To install on machines with an attached display:
  • •[Most common scenario] To install habitat-sim with bullet physics
  • •Note: Build parameters can be chained together. For instance, to install habitat-sim with physics on headless machines:
  • •Download (testing) 3D scenes
  • •Download example objects

> 标签

C++aicomputer-visioncplusplusrobotics

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言