Installing FurnitureSim#

FurnitureSim is a realistic simulation of FurnitureBench based on Isaac Gym and Factory. FurnitureSim enables easy and fast evaluation of new algorithms. You can install FurnitureSim using PyPI or Docker.

simulator

rendering

real

(a) Simluator

(b) Offline rendering

(c) Real-world environment

Prerequisites

  • Ubuntu 20.04 LTS

  • NVIDIA RTX GPU

  • Python 3.8 (Conda)

Tested with: nvidia driver: 525.147.05, 520.61.05 with PyTorch: 1.12.1+cu113

Download Isaac Gym#

  1. Go to the Isaac Gym website.

  2. Click “Join now” and log into your NVIDIA account.

  3. Click “Member area”.

  4. Read and check the box for the license agreement.

  5. Download and unzip Isaac Gym - Ubuntu Linux 18.04 / 20.04 Preview 4 release.

Install FurnitureSim using PyPI / from Source (Option 1)#

You need an NVIDIA driver and CUDA first. Please refer to NVIDIA CUDA Installation Guide.

  1. Install Isaac Gym:

cd <path/to/isaacgym>
pip install -e python
  1. Install FurnitureBench, which includes FurnitureSim:

# Install FurnitureBench from source
git clone https://github.com/clvrai/furniture-bench
cd furniture-bench
pip install -e .

# Or install via PyPI.
pip install furniture-bench

Install FurnitureSim using Docker (Option 2)#

  1. Install nvidia-docker2 and Anaconda.

  2. Specify whether to pull the client Docker image from Docker Hub or build it locally:

# Case 1: pull from Docker Hub
export CLIENT_DOCKER=furniturebench/client-gpu:latest

# Case 2: build locally
DOCKER_BUILDKIT=1 docker build -t client-gpu . -f docker/client_gpu.Dockerfile
export CLIENT_DOCKER=client-gpu
  1. Set the environment variables following Run Client.

# Set the absolute path to the furniture-bench repo
export FURNITURE_BENCH=<path/to/furniture-bench>

# Set the absolute path to Isaac Gym
export ISAAC_GYM_PATH=<path/to/isaacgym>
  1. Launch the Docker image:

./launch_client.sh --sim-gpu

Test FurnitureSim Installation#

  • Test FurnitureSim using the following command with a furniture name <furniture>=[lamp|square_table|desk|drawer|cabinet|round_table|stool|chair|one_leg].

python -m furniture_bench.scripts.run_sim_env --furniture <furniture> --no-action
  • You can run our scripted agent for one_leg by adding --scripted to the arguments:

python -m furniture_bench.scripts.run_sim_env --furniture one_leg --scripted

Note

FurnitureSim may take several minutes to convert 3D furniture meshes into Signed Distance Functions (SDF) on your first run. The converted SDF models will then be cached for fast execution.

FurnitureSim Parameters#

The simulation parameters (e.g., mass, inertia, and dt) can be found in furniture_bench/sim_config.py.