← all repositories
xavierpuigf/virtualhome

A programmable dollhouse for training robots to do chores

VirtualHome simulates household activities from simple scripts, then renders them in Unity with full sensor output for embodied AI research.

618 stars Python AgentsComputer Vision
virtualhome
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

VirtualHome is a dual-mode simulator for household activities. You write activities as plain sequences of instructions—“walk to kitchen, open fridge, grab apple”—and the system either runs a fast Python-only graph evolution or renders the whole thing in Unity with physics, lighting, and day/night cycles. It streams ground-truth data like segmentation masks, depth, and optical flow alongside the video, and supports multiple agents acting in the same scene.

The interesting bit

The split architecture is the clever part. The Evolving Graph simulator runs headless in Python for fast iteration and dataset generation, while the Unity Simulator handles photorealistic rendering when you need visual input for your models. Same program, two execution paths—swap them based on whether you’re training a policy or debugging why your robot keeps walking into walls.

Key highlights

  • Procedurally generates environments for infinite training variation (v2.3)
  • Exposes OpenAI Gym-style RL interface with Ray integration for parallel envs
  • Multi-agent support with synchronized time management and outdoor terrain
  • Ships with pre-collected household activity datasets and augmentation scripts
  • Docker and headless X-server support for remote/cloud training

Caveats

  • Some objects and actions in the Python graph simulator don’t yet exist in the Unity renderer; the README notes this mismatch explicitly
  • Requires downloading a separate platform-specific Unity executable; not pip-only
  • Photorealism and human interaction are listed as “currently in development”

Verdict

Grab this if you’re doing embodied AI, multi-agent RL, or need a controllable domestic environment with rich sensor output. Skip it if you want a drop-in Atari replacement or need guaranteed action parity between fast and rendered modes.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.