Miniworld

GitHub
756 145 简单 2 次阅读 1周前Apache-2.0其他
AI 解读 由 AI 自动生成,仅供参考

Miniworld 是一个轻量化的 3D 仿真环境,专门为强化学习和机器人研究设计。它提供了类似第一人称射击游戏的简单三维场景,用户可以通过编程让智能体在模拟的室内空间(如房间、走廊、迷宫等)中学习导航、探索与决策。Miniworld 主要解决了传统 3D 仿真平台(如 VizDoom 或 DMLab)配置复杂、依赖繁重、难以定制的问题,让研究人员能够快速搭建实验环境,专注于算法开发而非底层模拟。

这个工具非常适合强化学习领域的研究人员、高校学生以及相关领域的开发者使用。它采用纯 Python 实现,结构清晰且易于修改,即使初学者也能基于它创建自定义场景或调整现有环境。Miniworld 内置多种 3D 模型与纹理,支持多进程运行与领域随机化,有助于提升从仿真到现实场景的迁移能力。此外,它还提供完全可观测的俯视视角、深度图生成以及墙面文字显示等实用功能。

需要注意的是,Miniworld 已于 2025 年 8 月停止更新,但其代码保持开源,仍可作为轻量化实验平台或教学工具使用。它的图形表现相对基础,不适合追求高真实感或复杂物理交互的研究,但在需要快速原型验证、算法对比与轻量仿真的场景中,依然是一个友好而高效的选择。

使用场景

一名强化学习方向的研究生正在开发一个智能体,希望它能学习在室内环境中(如办公室或家庭)高效导航并找到目标物品。他需要一个轻量、可定制的 3D 模拟环境来训练和测试算法。

没有 Miniworld 时

  • 环境搭建困难:需要从零开始编写 3D 模拟器,或使用 VizDoom 等复杂平台,配置和接口学习成本极高,耗费数周时间。
  • 定制化门槛高:想调整房间布局或增加特定物体(如一把椅子)时,需要深入修改底层图形和物理引擎代码,过程繁琐且易出错。
  • 实验迭代缓慢:环境运行依赖重型引擎,启动慢、占用内存大,导致算法训练和调试的反馈周期很长,一天只能进行少数几次实验。
  • 依赖与环境问题:复杂的依赖链(如特定版本的深度学习框架与模拟器绑定)常导致环境崩溃,兼容性问题消耗了大量调试时间。
  • 功能局限:难以快速实现研究所需的高级功能,如域随机化(用于提升模型泛化能力)或生成与图像对齐的深度图(RGB-D数据)。

使用 Miniworld 后

  • 快速启动实验:通过 pip 简单安装,依赖极少,几分钟内就能导入并运行第一个导航环境,当天即可开始核心算法开发。
  • 轻松自定义场景:使用清晰的 Python API,通过修改几行代码就能创建新的房间、放置物体或改变纹理,专注于研究逻辑而非底层实现。
  • 高效训练与调试:轻量级设计带来高帧率运行,支持多进程,大幅缩短了每次训练迭代的时间,允许一天内进行大量超参数测试。
  • 环境稳定兼容:纯 Python 实现,与主流强化学习库(如 Gymnasium)无缝集成,避免了复杂的依赖冲突,保证了实验环境的可复现性。
  • 内置高级特性支持:直接支持域随机化、顶部俯视图、在墙面显示文字以及生成深度图等功能,方便直接开展前沿的仿真到现实迁移等研究。

Miniworld 以其极简、易用和高度可定制的特性,显著降低了强化学习研究中 3D 视觉环境构建的门槛,让研究者能更专注于算法创新本身。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

可选,用于3D图形加速,未指定具体型号和显存要求

内存

未说明

依赖
notes项目已废弃,不再更新。支持离屏渲染(集群/Colab),需设置环境变量PYOPENGL_PLATFORM=egl或使用xvfb。
python3.7+
Gymnasium
NumPy
Pyglet
Miniworld hero image

快速开始

2025年8月11日:由于缺乏广泛的社区使用,此项目已被弃用,不再计划接收任何额外的更新或支持。

构建状态

目录:

简介

MiniWorld 是一个简约的 3D 室内环境模拟器,用于强化学习与机器人研究。它可以用来模拟包含房间、门、走廊和各种对象(例如:办公室和家庭环境、迷宫)的环境。MiniWorld 可以被视为 VizDoom 或 DMLab 的更简单替代品。它完全使用 Python 编写,旨在方便学生修改或扩展。

迷宫环境俯视图 人行道环境图 收集生命环境图

特性:

  • 依赖少,不易出错,易于安装
  • 易于创建自己的关卡或修改现有关卡
  • 性能良好,帧率高,支持多进程
  • 轻量级,下载体积小,内存需求低
  • 采用宽松的 MIT 许可证提供
  • 附带各种免费的 3D 模型和纹理
  • 提供完全可观测的俯视/鸟瞰视图
  • 支持领域随机化,用于从模拟到现实的迁移
  • 能够在墙壁上显示字母数字字符串
  • 能够生成与相机图像(RGB-D)匹配的深度图

局限性:

  • 图形基础,远未达到照片级真实感
  • 物理模拟非常基础,不足以支持机器人手臂或操作任务

使用 MiniWorld 的出版物和投稿列表(请提交 Pull Request 以添加缺失条目):

此模拟器是在 Mila 工作期间创建的。

安装

要求:

  • Python 3.7+
  • Gymnasium
  • NumPy
  • Pyglet (OpenGL 3D 图形库)
  • 用于 3D 图形加速的 GPU(可选)

你可以通过 PyPI 安装:

python3 -m pip install miniworld

你也可以从源码安装:

git clone https://github.com/Farama-Foundation/Miniworld.git
cd Miniworld
python3 -m pip install -e .

如果遇到任何问题,请查看故障排除指南

使用

有一个简单的 UI 应用程序,允许你手动控制模拟或真实机器人。manual_control.py 应用程序将启动 Gym 环境,显示相机图像并将动作(键盘命令)发送回模拟器或机器人。--env-name 参数指定要加载的环境。有关更多信息,请参阅可用环境列表

./manual_control.py --env-name MiniWorld-Hallway-v0

# 显示环境的俯视图
./manual_control.py --env-name MiniWorld-Hallway-v0 --top_view

还有一个用于运行自动化测试的脚本 (run_tests.py) 和一个用于收集性能指标的脚本 (benchmark.py)。

离屏渲染(集群和 Colab)

在集群或 Colab 环境中运行 MiniWorld 时,你需要渲染到离屏显示器。你可以通过设置环境变量 PYOPENGL_PLATFORMegl 来离屏运行 gym-miniworld,例如:

PYOPENGL_PLATFORM=egl python3 your_script.py

或者,如果这不起作用,你也可以尝试使用 xvfb 运行 MiniWorld,例如:

xvfb-run -a -s "-screen 0 1024x768x24 -ac +extension GLX +render -noreset" python3 your_script.py

引用

如需引用此项目,请使用:

@article{MinigridMiniworld23,
  author       = {Maxime Chevalier-Boisvert and Bolun Dai and Mark Towers and Rodrigo de Lazcano and Lucas Willems and Salem Lahlou and Suman Pal and Pablo Samuel Castro and Jordan Terry},
  title        = {Minigrid \& Miniworld: Modular \& Customizable Reinforcement Learning Environments for Goal-Oriented Tasks},
  journal      = {CoRR},
  volume       = {abs/2306.13831},
  year         = {2023},
}

版本历史

2.1.02025/01/12
2.0.12023/02/14

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2天前
开发框架其他

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.6k|★☆☆☆☆|今天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|昨天
开发框架数据工具其他