VirtualHome

用 Python API 驱动的多智能体家庭活动仿真器,可渲染视频、生成环境图并训练具身智能体。

Star 数
★ 643
最近更新
5 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK自托管服务
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Python(pip 包:virtualhome)VirtualHome Unity Simulator 可执行文件(Linux x86-64、macOS 或 Windows)Docker(可选)X server(用于 Linux 无头运行)Shell / 命令行网络访问本地文件系统
典型场景
具身 AI 研究人员需要可复现的家庭环境来训练和评测智能体策略
不适合
  • 需要托管服务、开箱即用无需本地运行 Unity 可执行文件的团队
  • 只想用文本对话交互、不具备 GPU/图形环境条件的用户
  • 寻找开箱即用家用自动化方案的家庭用户(这是科研仿真平台)

这个 Agent 能做什么,适合哪些场景?

VirtualHome 是一个通过程序序列模拟复杂家庭活动的交互式仿真平台,支持拾取物体、开关家电等复杂环境交互,并可模拟多智能体行为。它由两个模拟器组成:基于 Unity 的 Unity Simulator(生成活动视频)和纯 Python 的 Evolving Graph(输出逐步演化的环境图)。用户通过 Python API 编写指令序列,模拟器将其渲染为视频或图序列,同时可输出时间戳动作、实例/语义分割、光流和深度等真值数据。2.3 版本新增程序化环境生成、增强物理模拟、日夜同步时间系统和实时光照。项目还提供 OpenAI Gym 风格的 RL 环境(unity_environment.py),可与 Ray 并行扩展,用于具身智能研究。

读取以指令序列表示的活动程序和环境图,运行两个模拟器:Unity Simulator 通过下载的可执行文件渲染活动视频和快照,Evolving Graph 在纯 Python 中输出程序执行后的环境图序列。通过 simulation.unity_simulator.comm_unity.UnityCommunication 连接可执行文件,可指定端口和 X display 并同时打开多个实例。提供 simulation/environment/unity_environment.py 中的 UnityEnvironment 基类作为 RL 环境,test_unity_environment_mp.py 演示与 Ray 的并行组合。数据集脚本可经 helper_scripts/download_dataset.sh 下载,dataset_utils 中的 augment_dataset_locations.py 和 augment_dataset_exceptions.py 用 KB-RealEnv 和 KB-ExceptionHandler 两个知识库增强脚本。

  1. 具身 AI 研究人员需要可复现的家庭环境来训练和评测智能体策略
  2. 计算机视觉研究者需要带实例/语义分割、深度和光流真值的合成数据
  3. 强化学习工程师需要 Gym 风格环境并通过 Ray 并行扩展训练
  4. 多智能体协作研究者模拟人与 AI 协作场景(如 Watch-and-Help 挑战)
  5. 需要生成家庭活动视频或快照数据集的团队

如何安装或部署这个 Agent?

安装 Python 包:

pip install virtualhome

下载对应平台的 Unity Simulator 可执行文件并放入 simulation/unity_simulator 目录(Linux、macOS、Windows 版本均可在 virtual-home.org 下载),或直接运行脚本下载:

./helper_scripts/download_dataset.sh

无显示器环境可用 Docker(仓库提供 docker 目录)或 X server 运行。

如何使用这个 Agent?

  1. 启动模拟器(建议窗口模式):
./path_to_exec -screen-fullscreen 0 -screen-quality 4
  1. 运行 Jupyter 演示 demo/unity_demo.ipynb,或直接生成视频/快照:
cd demo/
python generate_video.py
cd demo/
python generate_snapshots.py
  1. 在 Linux 无头模式下,先启动 X server,再用指定 display 启动可执行文件:
sudo python helper_scripts/startx.py $display_num
DISPLAY=:display_num ./{path_sim}/{exec_file}.x86_64 -batchmode

或通过 Python 指定可执行文件:

from simulation.unity_simulator import comm_unity
comm = comm_unity.UnityCommunication(file_name=file_name, port={your_port}, x_display={your_display})
  1. RL 环境:
cd demo
python test_unity_environment.py
cd demo
python test_unity_environment_mp.py

这个 Agent 有哪些优点和局限?

优点
  • 提供两个互补的模拟器:Unity 渲染视频,Evolving Graph 纯 Python 输出图序列,无需图形环境也能验证程序
  • 可流式输出时间戳动作、实例/语义分割、光流和深度等多种真值,适合视觉与具身研究
  • 内置 Gym 风格 RL 环境并支持与 Ray 并行扩展,可同时打开多个可执行文件实例
  • 2.3 版本支持程序化生成无限独特环境,并可运行时修改环境
局限
  • 需要单独下载并本地运行 Unity 可执行文件,无显示器的机器需配置 X server 或 Docker
  • Evolving Graph 中部分物体和动作在 Unity Simulator 中尚不支持
  • 程序化生成、真实感渲染等能力仍在开发中
  • 修改模拟器本身需另行获取 Unity 源码仓库并用 Unity Editor 自行构建

这个 Agent 与同类方案有什么区别?

README 未提及可直接对比的同类替代产品,仅说明修改模拟器需使用配套的 virtualhome_unity 源码仓库。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
VirtualHome 当前 40 · 缺口较多 代码库 / SDK免费 ★ 643 5 个月前 Python —
IR-SIM 智能机器人模拟器 43 · 缺口较多 代码库 / SDK免费 ★ 1.2k 15 天前 Python —
AgentGuide - AI Agent 开发求职一站式指南 23 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 11k 1 个月前 MDX OpenAI API · Claude API
ChatArena 32 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.6k 1 年前 Python OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
40/ 100 五分制 2.0 / 5
信任安全 10/29
可靠稳定 3/14
适用触发 8/18
规范维护 9/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

证据显示:代码在本地运行,通过Python API与本地Unity可执行文件通信,无网络凭据或上传逻辑的证据;许可证归属清晰(MIT,MIT版权),贡献者名单明确。扣分处:对外通信端口、X server(需要sudo启动startx.py)、下载可执行文件(仅HTTP链接非HTTPS)等环节的权限与安全说明缺失;无回滚或恢复机制说明;无用户确认/危险操作提示;未提供依赖锁定或安全审计信息,依赖安全仅凭pyproject留空难以验证。

可靠稳定3 / 14 · 1.1/5

README提供安装、测试和demo脚本路径,内容自洽;pyproject使用setuptools标准构建。扣分处:仅凭README与pyproject,无法确认测试、错误消息与失败处理;version标注(2.3)与pyproject中无版本字段略有脱节;外部Unity可执行文件的可用性完全依赖第三方站点下载,无校验和。

适用触发8 / 18 · 2.2/5

面向具身AI/RL研究者,场景说明清晰(Linux/macOS/Windows、Docker、无显示器X server方案),受众定位良好。扣分处:能力边界仅在'某些对象/动作Evolving Graph支持而Unity不支持'一句中提及,不完整;触发/接口行为细节需查外部文档;环境配置(X server、GPU)步骤粗糙。

规范维护9 / 18 · 2.5/5

README结构清晰(目录、安装、示例、数据集、引用、贡献者),安装说明与pip包一致,示例丰富(notebook、generate_video等),MIT LICENSE完整。扣分处:changelog仅为叙述性'What is New',无正式版本文件(pyproject未含版本);已知限制说明零散;维护责任与更新路径未明确声明;外部资源(可执行、数据集)依赖virtual-home.org,其持久性未说明。

有效结果7 / 13 · 2.7/5

作为 household 多智能体仿真API,定位独特、边际价值明确,有论文背书与PyPI分发。扣分处:实际输出可用性(video/graph质量、API稳定性)未经执行验证,静态证据有限;运行成本(需下载大型Unity可执行、GPU/显示器)对普通用户偏高但文档已提示。

证据核验3 / 8 · 1.9/5

README声明有论文引用与外部文档链接,可部分追溯。扣分处:性能提升、'stability improvements'等声明无指标支撑;无锁定的依赖或测试证据可供交叉验证;声明与推断的区分主要依赖外部文档,本仓库内证据有限。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • Unity可执行文件通过HTTP链接下载且无校验和,建议用户自行验证完整性后再运行。
  • startx.py需要sudo启动X server,授予的权限较大,建议在隔离环境(如Docker)中运行。
  • 依赖信息不完整(pyproject几乎为空),静态审查无法核实依赖安全性,请勿据此认定供应链安全。
  • 本评审为静态审查,未执行任何仿真,输出质量与API稳定性未经验证。
证据充分度:低 评估于 2026年10月25日 审查版本 58970fd80951
查看完整评分方法 →

常见问题

使用 VirtualHome 需要付费吗?
项目采用 MIT 许可证开源,pip 包、模拟器可执行文件和数据集均可免费下载,无需付费服务。
支持哪些操作系统?
官方提供 Linux x86-64、Mac OS X 和 Windows 三个版本的 Unity Simulator 可执行文件,Linux 无显示场景支持 Docker 或 X server 运行。
Evolving Graph 和 Unity Simulator 有什么区别?
Evolving Graph 完全在 Python 中运行,输出程序执行后的环境图序列;Unity Simulator 基于 Unity 渲染活动视频和快照。注意部分 Evolving Graph 的物体和动作尚未在 Unity Simulator 中支持。
能否用于强化学习训练?
可以。仓库提供 unity_environment.py 中的 UnityEnvironment 基类,支持 OpenAI Gym 风格接口,并可与 Ray 结合并行运行多个环境。
有没有随附数据集?
有。可通过 helper_scripts/download_dataset.sh 下载程序数据集,另外还提供 KB-RealEnv 和 KB-ExceptionHandler 增强脚本,以及 CVPR18 的 VirtualHome Activity 与 ActivityPrograms 原始程序。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents