[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google-deepmind--lab":3,"tool-google-deepmind--lab":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":124,"forks":125,"last_commit_at":126,"license":127,"difficulty_score":128,"env_os":129,"env_gpu":130,"env_ram":131,"env_deps":132,"category_tags":147,"github_topics":148,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":153,"updated_at":154,"faqs":155,"releases":185},3165,"google-deepmind\u002Flab","lab","A customisable 3D platform for agent-based AI research","DeepMind Lab 是一个基于经典游戏引擎构建的可定制 3D 平台，专为智能体（Agent）的人工智能研究而设计。它源自 id Software 的 Quake III Arena，通过开源项目 ioquake3 打造出一系列高难度的 3D 导航与解谜任务环境。\n\n在人工智能研究中，尤其是深度强化学习领域，研究人员急需能够模拟复杂空间认知、记忆规划及多步决策能力的测试场。DeepMind Lab 正是为了解决这一痛点而生，它填补了简单二维网格世界与昂贵真实机器人实验之间的空白，让算法能在逼真的三维空间中高效验证其学习与泛化能力。\n\n这款工具主要面向 AI 研究人员、深度学习工程师以及高校学者。如果你正在探索如何让机器像人类一样在陌生环境中寻路、躲避障碍或完成复杂指令，DeepMind Lab 提供了理想的沙盒。其独特的技术亮点在于支持使用 Lua 脚本灵活定义关卡逻辑与任务规则，并提供了完善的 Python API 及与 DeepMind 通用强化学习接口（dm_env）的绑定，方便开发者快速接入主流训练框架。无论是复现经典论文实验，还是设计全新的认知挑战任务，DeepMind ","DeepMind Lab 是一个基于经典游戏引擎构建的可定制 3D 平台，专为智能体（Agent）的人工智能研究而设计。它源自 id Software 的 Quake III Arena，通过开源项目 ioquake3 打造出一系列高难度的 3D 导航与解谜任务环境。\n\n在人工智能研究中，尤其是深度强化学习领域，研究人员急需能够模拟复杂空间认知、记忆规划及多步决策能力的测试场。DeepMind Lab 正是为了解决这一痛点而生，它填补了简单二维网格世界与昂贵真实机器人实验之间的空白，让算法能在逼真的三维空间中高效验证其学习与泛化能力。\n\n这款工具主要面向 AI 研究人员、深度学习工程师以及高校学者。如果你正在探索如何让机器像人类一样在陌生环境中寻路、躲避障碍或完成复杂指令，DeepMind Lab 提供了理想的沙盒。其独特的技术亮点在于支持使用 Lua 脚本灵活定义关卡逻辑与任务规则，并提供了完善的 Python API 及与 DeepMind 通用强化学习接口（dm_env）的绑定，方便开发者快速接入主流训练框架。无论是复现经典论文实验，还是设计全新的认知挑战任务，DeepMind Lab 都能提供稳定且高性能的支持。","# \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_ccae91b5ce45.png\" alt=\"DeepMind Lab\">\n\n*DeepMind Lab* is a 3D learning environment based on id Software's\n[Quake III Arena](https:\u002F\u002Fgithub.com\u002Fid-Software\u002FQuake-III-Arena) via\n[ioquake3](https:\u002F\u002Fgithub.com\u002Fioquake\u002Fioq3) and\n[other open source software](#upstream-sources).\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=M40rN7afngY\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_dd0752c2014c.jpg\"\n         alt=\"DeepMind Lab - Nav Maze Level 1\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gC_e8AHzvOw\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_7d8519ae5bee.jpg\"\n         alt=\"DeepMind Lab - Stairway to Melon Level\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=7syZ42HWhHE\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_b2c294ee02c5.jpg\"\n         alt=\"DeepMind Lab - Laser Tag Space Bounce Level (Hard)\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\u003Cbr \u002F>\n\u003C\u002Fdiv>\n\n*DeepMind Lab* provides a suite of challenging 3D navigation and puzzle-solving\ntasks for learning agents. Its primary purpose is to act as a testbed for\nresearch in artificial intelligence, especially deep reinforcement learning.\n\n## About\n\nDisclaimer: This is not an official Google product.\n\nIf you use *DeepMind Lab* in your research and would like to cite\nthe *DeepMind Lab* environment, we suggest you cite\nthe [DeepMind Lab paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.03801).\n\nYou can reach us at [lab@deepmind.com](mailto:lab@deepmind.com).\n\n## Getting started on Linux\n\n* Get [Bazel from bazel.io](https:\u002F\u002Fdocs.bazel.build\u002Fversions\u002Fmaster\u002Finstall.html).\n\n* Clone DeepMind Lab, e.g. by running\n\n```shell\n$ git clone https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Flab\n$ cd lab\n```\n\nFor a live example of a random agent, run\n\n```shell\nlab$ bazel run :python_random_agent --define graphics=sdl -- \\\n               --length=10000 --width=640 --height=480\n```\n\nHere is some [more detailed build documentation](\u002Fdocs\u002Fusers\u002Fbuild.md),\nincluding how to install dependencies if you don't have them.\n\nTo enable compiler optimizations, pass the flag `--compilation_mode=opt`, or\n`-c opt` for short, to each `bazel build`, `bazel test` and `bazel run` command.\nThe flag is omitted from the examples here for brevity, but it should be used\nfor real training and evaluation where performance matters.\n\n### Play as a human\n\nTo test the game using human input controls, run\n\n```shell\nlab$ bazel run :game -- --level_script=tests\u002Fempty_room_test --level_setting=logToStdErr=true\n# or:\nlab$ bazel run :game -- -l tests\u002Fempty_room_test -s logToStdErr=true\n```\n\nLeave the `logToStdErr` setting off to disable most log output.\n\nThe values of observations that the environment exposes can be printed at every\nstep by adding a flag `--observation OBSERVATION_NAME` for each observation of\ninterest.\n\n```shell\nlab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT\n```\n\n### Train an agent\n\n*DeepMind Lab* ships with an example random agent in\n[`python\u002Frandom_agent.py`](python\u002Frandom_agent.py)\nwhich can be used as a starting point for implementing a learning agent. To let\nthis agent interact with DeepMind Lab for training, run\n\n```shell\nlab$ bazel run :python_random_agent\n```\n\nThe [Python API](\u002Fdocs\u002Fusers\u002Fpython_api.md) is\nused for agent-environment interactions. We also provide bindings to DeepMind's\n\"[dm_env](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Fdm_env)\" general API for reinforcement\nlearning, as well as a way to build a self-contained PIP package; see the\n[separate documentation](python\u002Fpip_package\u002FREADME.md)\nfor details.\n\n*DeepMind Lab* ships with [different\nlevels](\u002Fdocs\u002Flevels.md) implementing different\ntasks. These tasks can be configured using Lua scripts, as described in the [Lua\nAPI](\u002Fdocs\u002Fdevelopers\u002Freference\u002Flua_api.md).\n\n-----------------\n\n## Upstream sources\n\n*DeepMind Lab* is built from the *ioquake3* game engine, and it uses the tools\n*q3map2* and *bspc* for map creation. Bug fixes and cleanups that originate\nwith those projects are best fixed upstream and then merged into *DeepMind Lab*.\n\n* *bspc* is taken from [github.com\u002FTTimo\u002Fbspc](https:\u002F\u002Fgithub.com\u002FTTimo\u002Fbspc),\n  revision d9a372db3fb6163bc49ead41c76c801a3d14cf80. There are virtually no\n  local modifications, although we integrate this code with the main ioq3 code\n  and do not use their copy in the `deps` directory. We expect this code to be\n  stable.\n\n* *q3map2* is taken from\n  [github.com\u002FTTimo\u002FGtkRadiant](https:\u002F\u002Fgithub.com\u002FTTimo\u002FGtkRadiant),\n  revision d3d00345c542c8d7cc74e2e8a577bdf76f79c701. A few minor local\n  modifications add synchronization. We also expect this code to be stable.\n\n* *ioquake3* is taken from\n  [github.com\u002Fioquake\u002Fioq3](https:\u002F\u002Fgithub.com\u002Fioquake\u002Fioq3),\n  revision 29db64070aa0bae49953bddbedbed5e317af48ba. The code contains extensive\n  modifications and additions. We aim to merge upstream changes occasionally.\n\nWe are very grateful to the maintainers of these repositories for all their hard\nwork on maintaining high-quality code bases.\n\n## External dependencies, prerequisites and porting notes\n\n*DeepMind Lab* currently ships as source code only. It depends on a few external\nsoftware libraries, which we ship in several different ways:\n\n * The `zlib`, `glib`, `libxml2`, `jpeg` and `png` libraries are referenced as\n   external Bazel sources, and Bazel BUILD files are provided. The dependent\n   code itself should be fairly portable, but the BUILD rules we ship are\n   specific to Linux on x86. To build on a different platform you will most\n   likely have to edit those BUILD files.\n\n * Message digest algorithms are included in this package (in\n   [`\u002F\u002Fthird_party\u002Fmd`](third_party\u002Fmd)), taken from the reference\n   implementations of their respective RFCs. A \"generic reinforcement learning\n   API\" is included in [`\u002F\u002Fthird_party\u002Frl_api`](third_party\u002Frl_api), which has\n   also been created by the *DeepMind Lab* authors. This code is portable.\n\n * EGL headers are included in this package (in\n   `\u002F\u002Fthird_party\u002FGL\u002F{`[`EGL`](third_party\u002FGL\u002FEGL)`,`[`KHR`](third_party\u002FGL\u002FKHR)`}`),\n   taken from the Khronos OpenGL\u002FOpenGL ES XML API Registry at\n   [www.khronos.org\u002Fregistry\u002FEGL](http:\u002F\u002Fwww.khronos.org\u002Fregistry\u002FEGL\u002F). The\n   headers have been modified slightly to remove the dependency of EGL on X.\n\n * Several additional libraries are required but are not shipped in any form;\n   they must be present on your system:\n   * SDL 2\n   * gettext (required by `glib`)\n   * OpenGL: A hardware driver and library are needed for hardware-accelerated\n     human play. The headless library that machine learning agents will want to\n     use can use either hardware-accelerated rendering via EGL or GLX or\n     software rendering via OSMesa, depending on the `--define headless=...`\n     build setting.\n   * Python 2.7 (other versions might work, too) with NumPy, PIL (a few tests\n     require a NumPy version of at least 1.8), or Python 3 (at least 3.5) with\n     NumPy and Pillow.\n\nThe build rules are using a few compiler settings that are specific to GCC. If\nsome flags are not recognized by your compiler (typically those would be\nspecific warning suppressions), you may have to edit those flags. The warnings\nshould be noisy but harmless.\n","# \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_ccae91b5ce45.png\" alt=\"DeepMind Lab\">\n\n*DeepMind Lab* 是一个基于 id Software 的\n[Quake III Arena](https:\u002F\u002Fgithub.com\u002Fid-Software\u002FQuake-III-Arena) 游戏引擎，\n通过 [ioquake3](https:\u002F\u002Fgithub.com\u002Fioquake\u002Fioq3) 和\n[其他开源软件](#upstream-sources) 构建的 3D 学习环境。\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=M40rN7afngY\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_dd0752c2014c.jpg\"\n         alt=\"DeepMind Lab - 导航迷宫关卡1\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gC_e8AHzvOw\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_7d8519ae5bee.jpg\"\n         alt=\"DeepMind Lab - 通往甜瓜的楼梯关卡\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=7syZ42HWhHE\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_readme_b2c294ee02c5.jpg\"\n         alt=\"DeepMind Lab - 激光标签太空弹跳关卡（困难）\"\n         width=\"240\" height=\"180\" border=\"10\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\u003Cbr \u002F>\n\u003C\u002Fdiv>\n\n*DeepMind Lab* 为学习型智能体提供了一系列具有挑战性的 3D 导航与解谜任务。\n其主要目的是作为人工智能研究，尤其是深度强化学习研究的测试平台。\n\n## 关于\n\n免责声明：本项目并非 Google 官方产品。\n\n如果您在研究中使用了 *DeepMind Lab* 并希望引用该环境，我们建议您参考\n[DeepMind Lab 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.03801)。\n\n如有任何问题，请发送邮件至 [lab@deepmind.com](mailto:lab@deepmind.com)。\n\n## 在 Linux 上开始使用\n\n* 从 [bazel.io](https:\u002F\u002Fdocs.bazel.build\u002Fversions\u002Fmaster\u002Finstall.html) 获取 Bazel。\n\n* 克隆 DeepMind Lab 仓库，例如运行以下命令：\n\n```shell\n$ git clone https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Flab\n$ cd lab\n```\n\n要运行一个随机智能体的示例，可以执行：\n\n```shell\nlab$ bazel run :python_random_agent --define graphics=sdl -- \\\n               --length=10000 --width=640 --height=480\n```\n\n更多详细的构建文档请参阅 [\u002Fdocs\u002Fusers\u002Fbuild.md]，\n其中包括如何安装缺失的依赖项。\n\n为了启用编译器优化，可以在每个 `bazel build`、`bazel test` 和 `bazel run`\n命令中添加 `--compilation_mode=opt` 或简写 `-c opt` 标志。出于简洁考虑，\n本文中的示例未包含此标志，但在实际训练和评估中，当性能至关重要时，\n应始终使用该标志。\n\n### 以人类玩家身份游玩\n\n若要使用键盘和鼠标等输入设备测试游戏，可以运行以下命令：\n\n```shell\nlab$ bazel run :game -- --level_script=tests\u002Fempty_room_test --level_setting=logToStdErr=true\n# 或者：\nlab$ bazel run :game -- -l tests\u002Fempty_room_test -s logToStdErr=true\n```\n\n将 `logToStdErr` 设置为 `false` 可以关闭大部分日志输出。\n\n可以通过为每个感兴趣的观测值添加 `--observation OBSERVATION_NAME` 标志，\n在每一步打印出环境暴露的观测值。\n\n```shell\nlab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT\n```\n\n### 训练智能体\n\n*DeepMind Lab* 自带一个示例随机智能体，位于\n[`python\u002Frandom_agent.py`](python\u002Frandom_agent.py) 中，\n可作为实现学习型智能体的起点。要让该智能体与 DeepMind Lab 进行交互并进行训练，\n可以运行以下命令：\n\n```shell\nlab$ bazel run :python_random_agent\n```\n\n智能体与环境之间的交互使用 [Python API](\u002Fdocs\u002Fusers\u002Fpython_api.md) 完成。\n我们还提供了与 DeepMind 的通用强化学习 API “[dm_env](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Fdm_env)” 的绑定，\n以及构建独立 PIP 包的方法；详细信息请参阅\n[单独的文档](python\u002Fpip_package\u002FREADME.md)。\n\n*DeepMind Lab* 随附多种不同的关卡，\n分别实现了不同的任务。这些任务可以通过 Lua 脚本进行配置，\n具体说明请参阅 [Lua API](\u002Fdocs\u002Fdevelopers\u002Freference\u002Flua_api.md)。\n\n-----------------\n\n## 上游源代码\n\n*DeepMind Lab* 基于 *ioquake3* 游戏引擎构建，并使用工具\n*q3map2* 和 *bspc* 来创建地图。源自这些项目的错误修复和清理工作，\n最好先在上游解决，然后再合并到 *DeepMind Lab* 中。\n\n* *bspc* 源自 [github.com\u002FTTimo\u002Fbspc](https:\u002F\u002Fgithub.com\u002FTTimo\u002Fbspc)，修订版为 d9a372db3fb6163bc49ead41c76c801a3d14cf80。几乎没有本地修改，但我们已将其代码集成到 ioq3 主代码库中，未在 `deps` 目录中保留副本。我们预计这段代码会保持稳定。\n\n* *q3map2* 源自 [github.com\u002FTTimo\u002FGtkRadiant](https:\u002F\u002Fgithub.com\u002FTTimo\u002FGtkRadiant)，修订版为 d3d00345c542c8d7cc74e2e8a577bdf76f79c701。我们做了一些小的本地修改以增加同步功能。我们也认为这段代码是稳定的。\n\n* *ioquake3* 源自 [github.com\u002Fioquake\u002Fioq3](https:\u002F\u002Fgithub.com\u002Fioquake\u002Fioq3)，修订版为 29db64070aa0bae49953bddbedbed5e317af48ba。该代码包含了大量修改和新增内容。我们计划定期合并上游的更改。\n\n我们非常感谢这些仓库的维护者们为保持高质量代码库所付出的努力。\n\n## 外部依赖、先决条件及移植注意事项\n\n*DeepMind Lab* 目前仅以源代码形式发布。它依赖于若干外部软件库，我们通过多种方式提供这些库：\n\n * `zlib`、`glib`、`libxml2`、`jpeg` 和 `png` 等库被引用为 Bazel 的外部源，并提供了相应的 Bazel BUILD 文件。相关代码本身应具有较好的可移植性，但随附的 BUILD 规则专用于 x86 架构下的 Linux 系统。若要在其他平台上构建，很可能需要修改这些 BUILD 文件。\n\n * 消息摘要算法包含在本包中（位于 [`\u002F\u002Fthird_party\u002Fmd`](third_party\u002Fmd)），取自各自 RFC 的参考实现。此外，还包含一个“通用强化学习 API”（位于 [`\u002F\u002Fthird_party\u002Frl_api`](third_party\u002Frl_api)），该 API 亦由 *DeepMind Lab* 的作者开发。这部分代码具有可移植性。\n\n * EGL 头文件也包含在本包中（位于 `\u002F\u002Fthird_party\u002FGL\u002F{`[`EGL`](third_party\u002FGL\u002FEGL)`,`[`KHR`](third_party\u002FGL\u002FKHR)`}`），取自 Khronos 组织的 OpenGL\u002FOpenGL ES XML API 注册表，网址为 [www.khronos.org\u002Fregistry\u002FEGL](http:\u002F\u002Fwww.khronos.org\u002Fregistry\u002FEGL\u002F)。这些头文件经过轻微修改，去除了 EGL 对 X11 的依赖。\n\n * 还有一些额外的库是必需的，但并未随本包一同提供，您需要确保它们已安装在系统中：\n   * SDL 2\n   * gettext（`glib` 所需）\n   * OpenGL：进行硬件加速的人机交互需要硬件驱动程序和库。而机器学习智能体将使用的无头渲染库，则可根据 `--define headless=...` 的构建选项，选择通过 EGL 或 GLX 实现硬件加速渲染，或通过 OSMesa 进行软件渲染。\n   * Python 2.7（其他版本也可能适用）并配备 NumPy、PIL（部分测试要求 NumPy 版本至少为 1.8）；或者 Python 3（至少 3.5）并配备 NumPy 和 Pillow。\n\n构建规则使用了若干特定于 GCC 编译器的编译选项。如果您的编译器无法识别某些标志（通常是特定的警告抑制选项），则可能需要对这些标志进行调整。尽管会产生大量警告信息，但这些警告并无实际危害。","# DeepMind Lab 快速上手指南\n\nDeepMind Lab 是一个基于 Quake III Arena 引擎的 3D 学习环境，专为人工智能（特别是深度强化学习）研究设计。它提供了一系列具有挑战性的导航和谜题任务。\n\n## 环境准备\n\n### 系统要求\n*   **操作系统**: Linux (x86 架构)。虽然代码具有可移植性，但官方提供的构建规则主要针对 Linux。\n*   **编译器**: GCC (构建规则包含特定于 GCC 的标志)。\n\n### 前置依赖\n在开始之前，请确保系统已安装以下库和工具：\n\n1.  **构建工具**:\n    *   [Bazel](https:\u002F\u002Fdocs.bazel.build\u002Fversions\u002Fmaster\u002Finstall.html) (必须安装)\n\n2.  **系统库** (需通过包管理器安装，例如 `apt`):\n    *   SDL 2\n    *   gettext (glib 依赖)\n    *   OpenGL (硬件加速需要显卡驱动；无头模式可使用 EGL, GLX 或 OSMesa)\n    *   zlib, glib, libxml2, jpeg, png (通常作为 Bazel 外部源处理，但系统需具备基础开发环境)\n\n3.  **Python 环境** (二选一):\n    *   **Python 2.7**: 需安装 `NumPy` (版本 >= 1.8), `PIL`\n    *   **Python 3.5+**: 需安装 `NumPy`, `Pillow`\n\n## 安装步骤\n\n### 1. 克隆项目\n使用 git 克隆 DeepMind Lab 源代码：\n\n```shell\n$ git clone https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Flab\n$ cd lab\n```\n\n> **提示**: 如果国内访问 GitHub 较慢，建议使用 Gitee 镜像或配置代理加速。\n\n### 2. 验证安装 (运行随机智能体)\n安装完成后，运行一个简单的随机智能体示例来验证环境是否构建成功。此命令会自动处理部分依赖下载和编译：\n\n```shell\nlab$ bazel run :python_random_agent --define graphics=sdl -- \\\n               --length=10000 --width=640 --height=480\n```\n\n> **性能优化建议**: 在实际训练和评估中，务必添加 `-c opt` 标志以启用编译器优化：\n> `bazel run -c opt :python_random_agent ...`\n\n## 基本使用\n\n### 1. 人类玩家试玩\n你可以像玩普通游戏一样控制角色，用于测试关卡或观察环境：\n\n```shell\nlab$ bazel run :game -- --level_script=tests\u002Fempty_room_test --level_setting=logToStdErr=true\n# 或者简写形式:\nlab$ bazel run :game -- -l tests\u002Fempty_room_test -s logToStdErr=true\n```\n\n*   若要减少日志输出，可移除 `logToStdErr=true` 设置。\n*   若要打印特定观测值（如速度），可添加 `--observation` 参数：\n    ```shell\n    lab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT\n    ```\n\n### 2. 训练智能体\nDeepMind Lab 内置了一个随机智能体示例 (`python\u002Frandom_agent.py`)，可作为开发学习算法的起点。\n\n运行该智能体与环境交互：\n\n```shell\nlab$ bazel run :python_random_agent\n```\n\n*   **API 使用**: 智能体与环境的交互通过 [Python API](\u002Fdocs\u002Fusers\u002Fpython_api.md) 进行。\n*   **兼容接口**: 项目提供了对 DeepMind 通用强化学习接口 `dm_env` 的绑定。\n*   **关卡配置**: 不同的任务关卡通过 Lua 脚本配置，详见 [Lua API 文档](\u002Fdocs\u002Fdevelopers\u002Freference\u002Flua_api.md)。\n\n### 3. 打包使用 (可选)\n如果需要将 DeepMind Lab 作为独立的 Python 包集成到其他项目中，可以参考 `python\u002Fpip_package\u002FREADME.md` 构建 PIP 包。","某高校强化学习实验室的研究团队正致力于训练智能体在复杂三维空间中完成导航与解谜任务，以验证新型深度强化学习算法的泛化能力。\n\n### 没有 lab 时\n- 研究人员需自行从零搭建 3D 仿真环境，耗费数周时间处理图形渲染、物理引擎碰撞检测等底层代码，严重挤占算法研究时间。\n- 缺乏统一的标准测试关卡，不同论文使用的自定义场景差异巨大，导致实验结果难以复现，同行评审时经常因环境不一致而被质疑。\n- 现有开源模拟器要么过于简单（如二维网格），要么接口封闭不支持自定义任务逻辑，无法模拟“寻找出口”或“激光标签”等需要空间推理的复杂行为。\n- 环境观测数据（如速度向量、旋转角度）提取困难，往往需要修改引擎源码才能获取训练所需的精细状态信息。\n\n### 使用 lab 后\n- 团队直接调用 lab 内置的基于 Quake III 的高保真 3D 引擎，通过 Lua 脚本在几小时内即可定制出“迷宫导航”或“楼梯寻物”等专用测试关卡。\n- 依托 lab 提供的标准化基准任务套件，实验数据可与全球顶尖研究直接对标，大幅提升了论文的可信度与复现性。\n- 利用其灵活的 Python API 和 dm_env 接口，智能体能迅速与环境交互，轻松实现从随机探索到复杂策略学习的平滑过渡。\n- 无需修改底层代码，仅需添加命令行参数即可实时输出速度、旋转等关键观测值，让模型训练过程中的状态监控变得透明且高效。\n\nlab 将研究人员从繁琐的环境构建中解放出来，使其能专注于核心算法创新，成为连接理论模型与真实三维世界的关键桥梁。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-deepmind_lab_dd0752c2.jpg","google-deepmind","Google DeepMind","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle-deepmind_06b1dd17.png","",null,"https:\u002F\u002Fwww.deepmind.com\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind",[84,88,92,96,100,104,108,112,116,120],{"name":85,"color":86,"percentage":87},"C","#555555",81.3,{"name":89,"color":90,"percentage":91},"Lua","#000080",8.4,{"name":93,"color":94,"percentage":95},"C++","#f34b7d",6.5,{"name":97,"color":98,"percentage":99},"GLSL","#5686a5",1,{"name":101,"color":102,"percentage":103},"Python","#3572A5",0.9,{"name":105,"color":106,"percentage":107},"ShaderLab","#222c37",0.7,{"name":109,"color":110,"percentage":111},"Starlark","#76d275",0.5,{"name":113,"color":114,"percentage":115},"HTML","#e34c26",0.4,{"name":117,"color":118,"percentage":119},"Assembly","#6E4C13",0.2,{"name":121,"color":122,"percentage":123},"Roff","#ecdebe",0.1,7344,1400,"2026-04-03T22:06:44","NOASSERTION",4,"Linux","非必需。人类游玩模式需要支持硬件加速的 OpenGL 驱动；无头模式（Headless，用于机器学习代理）可通过 EGL、GLX 进行硬件加速渲染，或通过 OSMesa 进行软件渲染。未指定具体显卡型号或显存大小。","未说明",{"notes":133,"python":134,"dependencies":135},"该项目主要基于 Bazel 构建系统，提供的默认构建规则针对 x86 架构的 Linux 系统优化。若在非 Linux 平台或其他架构上运行，可能需要修改 BUILD 文件。编译时建议使用 GCC，若使用其他编译器可能需要调整特定的警告抑制标志。项目依赖 ioquake3 引擎，支持通过 Lua 脚本配置任务关卡。","2.7 (需 NumPy, PIL) 或 3.5+ (需 NumPy, Pillow)",[136,137,138,139,140,141,142,143,144,145,146],"Bazel","SDL 2","gettext","OpenGL","NumPy (>=1.8)","PIL\u002FPillow","zlib","glib","libxml2","libjpeg","libpng",[13],[149,150,151,152],"machine-learning","artificial-intelligence","neural-networks","deep-learning","2026-03-27T02:49:30.150509","2026-04-06T06:44:02.162370",[156,161,166,171,176,181],{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},14580,"构建时出现 'Python include path missing' 或找不到头文件的错误怎么办？","这通常是因为编译所用的 Python 和 Numpy 开发库版本与运行时使用的 Python 二进制文件不匹配。请确保您针对编译的 Python 和 Numpy 开发库与您直接运行 `python` 命令时找到的 Python 版本一致。如果您使用 sudo 系统级安装通常没问题，但在使用 Homebrew (macOS) 或 Conda 等环境时，容易出现多个 Python 版本共存导致的冲突。此外，可能需要编辑 `lua.BUILD` 文件以匹配您系统的库路径。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Flab\u002Fissues\u002F32",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},14581,"如何将 DeepMind Lab 作为 Python 模块导入并直接运行实验脚本？","早期版本需要通过 Bazel (`bazel run`) 来运行实验。但从提交 `0a0638c24b0340516725a21da7d40bb4f31d1def` 开始，项目支持直接作为 Python 模块使用。您可以尝试构建 pip 包：`sudo bazel build python\u002Fpip_package:build_pip_package`，然后安装生成的 wheel 文件。安装后，即可在任意 Python 脚本中通过 `import deepmind_lab` 直接使用，无需再通过 Bazel 运行。如果在构建 pip 包时遇到 `lauxlib.h: No such file or directory` 错误，请检查 Lua 开发库是否已正确安装且路径配置正确。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Flab\u002Fissues\u002F37",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},14582,"在使用 Python multiprocessing 多进程运行 DeepMind Lab 时程序静默崩溃怎么办？","DeepMind Lab 在多进程环境下（特别是结合 Bazel 运行时）可能会出现静默崩溃，通常发生在子进程中初始化环境 (`deepmind_lab.Lab(...)`) 或重置环境 (`env.reset()`) 时。这是因为 Bazel 的运行文件结构 (`runfiles`) 在 fork 后的子进程中可能无法被正确访问。建议尝试先使用多线程 (`threading`) 代替多进程，因为多线程版本已被证实工作正常。如果必须使用多进程，请检查 `bazel-bin\u002F...\u002Frunfiles\u002F` 目录下的文件权限和路径，确保子进程有访问权限，或者尝试直接在容器外运行编译后的二进制文件而不是通过 `bazel run`。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Flab\u002Fissues\u002F53",{"id":172,"question_zh":173,"answer_zh":174,"source_url":175},14583,"编译时提示 'fatal error: SDL.h: No such file or directory' 如何解决？","此错误表明系统缺少 SDL (Simple DirectMedia Layer) 开发库。在 Ubuntu 系统上，您需要安装 `libsdl2-dev` 包。请使用以下命令安装：`sudo apt-get install libsdl2-dev`。安装完成后，重新运行 Bazel 构建命令即可。如果您使用的是其他图形后端（如 headless 模式），请确保在构建命令中通过 `--define graphics=sdl` 明确指定，或者改用 `--define headless=osmesa` 进行无头构建。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Flab\u002Fissues\u002F122",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},14584,"在 Python 3 或 Conda 环境中运行时出现 'ImportError: numpy.core.multiarray failed to import' 怎么办？","这通常是由于 NumPy 版本不兼容或路径冲突引起的。当在 Conda 环境中使用 Bazel 构建时，Bazel 可能会链接到系统默认的 Python\u002FNumPy，而运行时却使用了 Conda 环境中的版本（或反之）。请确保构建时指定的 Python 解释器和 NumPy 库与运行脚本时激活的环境完全一致。您可以尝试在激活 Conda 环境后，显式指定 Python 路径进行构建，或者重新安装与当前 Python 版本匹配的 NumPy (`pip install --upgrade --force-reinstall numpy`)。","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Flab\u002Fissues\u002F96",{"id":182,"question_zh":183,"answer_zh":184,"source_url":160},14585,"Bazel 构建警告输出基座位于 NFS 上会导致什么问题？","如果 Bazel 的输出基座（Output base，通常位于 `~\u002F.cache\u002Fbazel`）位于 NFS（网络文件系统）上，可能会导致“令人惊讶的失败和不确定的行为”。这是因为 Bazel 的沙盒机制和文件锁定在 NFS 上可能无法正常工作。解决方案是将 Bazel 输出目录移动到本地磁盘。您可以通过在运行 Bazel 命令时添加 `--output_base=\u002Ftmp\u002Fmy_local_bazel` 参数，或者在 `.bazelrc` 文件中配置本地路径来解决此问题。",[186,191,196,201,206,211,216,221],{"id":187,"version":188,"summary_zh":189,"released_at":190},81499,"release-2020-12-07","### 新关卡：\n\n1.  Psychlab。\n\n    1. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_extrapolate\n    2. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_holdout_extrapolate\n    3. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_holdout_interpolate\n    4. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_holdout_large\n    5. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_holdout_small\n    6. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_interpolate\n    7. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_train_large\n    8. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fexplore_goal_locations_train_small\n\n2.  语言绑定任务。\n\n    1. contributed\u002Ffast_mapping\u002Ffast_mapping\n    2. contributed\u002Ffast_mapping\u002Fslow_mapping\n\n### 新特性：\n\n1.  添加了一个属性系统，允许动态查询和修改环境状态。关卡脚本可以注册和使用自定义属性。\n2.  提供了一个新的 Python 模块 `dmenv_module`，它公开了 DeepMind 的 [`dm_env` API](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Fdm_env)。\n\n### 小改进：\n\n1.  现在可以通过只写属性来发出 Quake 控制台命令。\n2.  TensorView 和 Lua Tensor 类型新增了数值“累积”操作：求和、乘积、平方和以及两个张量的点积。\n\n### EnvCApi 变更：\n\n1.  EnvCApi 中增加了“属性”。属性可以被查询、设置和枚举。\n2.  新的 API 版本为 1.4（从 1.3 升级）。\n3.  EnvCApi 函数 `fps` 现已弃用；环境应改用新的属性系统来传递此信息。\n\n### Bug 修复：\n\n1.  修复了观测值 ‘VEL.ROT’，使其在与像素观测结合时能够返回非零值。此前，由于逻辑错误，像素观测的存在会导致角速度信息丢失。\n","2020-12-07T11:26:33",{"id":192,"version":193,"summary_zh":194,"released_at":195},81500,"release-2019-10-07","### 新关卡：\n\n1.  Psychlab。\n\n     1. contributed\u002Fpsychlab\u002Fcued_temporal_production\n     2. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Farbitrary_visuomotor_mapping_train\n     3. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Farbitrary_visuomotor_mapping_holdout_interpolate\n     4. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Farbitrary_visuomotor_mapping_holdout_extrapolate\n     5. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fchange_detection_train\n     6. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fchange_detection_holdout_interpolate\n     7. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fchange_detection_holdout_extrapolate\n     8. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fcontinuous_recognition_train\n     9. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fcontinuous_recognition_holdout_interpolate\n    10. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fcontinuous_recognition_holdout_extrapolate\n    11. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fwhat_then_where_train\n    12. contributed\u002Fpsychlab\u002Fmemory_suite_01\u002Fwhat_then_where_holdout_interpolate\n    13. contributed\u002Fpsychlab\u002Fready_set_go\n    14. contributed\u002Fpsychlab\u002Ftemporal_bisection\n    15. contributed\u002Fpsychlab\u002Ftemporal_discrimination\n    16. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fmemory_guided_saccade\n    17. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fodd_one_out\n    18. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fpathfinder\n    19. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fpursuit\n    20. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fvisual_match\n    21. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fvisually_guided_antisaccade\n    22. contributed\u002Fpsychlab\u002Fvisuospatial_suite\u002Fvisually_guided_prosaccade\n\n### 小改进：\n\n1.  `game` 演示可执行文件现在可以在每一步打印观测值。\n\n### EnvCApi 变更：\n\n1.  明确了主版本和次版本的含义以及由此产生的稳定性概念。新 API 版本为 1.3（从 1.2 升级）。\n2.  EnvCApi 的 `act` 函数现已弃用，取而代之的是两个更细粒度的函数：对 `act` 的调用应替换为调用 `act_discrete` 来设置离散动作，随后可选择调用 `act_continuous` 来设置连续动作。（DeepMind Lab 不使用连续动作。）\n3.  新增对“文本动作”的支持，可通过新的 `act_text` API 函数进行设置。（DeepMind Lab 不使用文本动作。）\n\n### 错误修复：\n\n1.  观测值 `'DEBUG.CAMERA_INTERLEAVED.TOP_DOWN'` 现在对于关卡 `dmlab30\u002Fexplore_object_rewards_{few,many}` 是正确的。\n\n    如果空间不足以放置所有可能的房间（无论随机生成是否真的会产生过大尺寸的房间），或者请求了非零数量的房间时，现在会抛出错误。\n\n    受影响的关卡已更新，将生成与之前相似的布局，但整个迷宫会偏移 100 个单位，物体的位置也会发生变化。\n2.  修复语言关卡的俯视摄像头问题。\n3.  修正基于 OpenArena 的机器人代码 `gargoyle_c.c` 的机器人 `Leonis` 技能等级 1 中的拼写错误。\n4.  ","2019-10-07T17:44:15",{"id":197,"version":198,"summary_zh":199,"released_at":200},81501,"release-2019-02-04","### 新关卡：\n\n1.  Psychlab。\n\n    1. contributed\u002Fpsychlab\u002Fharlow\n\n### 小改进：\n\n1.  改进关于如何配置非隔离依赖（Lua、Python、NumPy）的文档。\n2.  添加 `allowHoldOutLevels` 设置，以允许运行那些不应用于训练、而是留作评估的关卡。\n3.  添加日志库 `common.log`，该库可通过 `logLevel` 设置来控制哪些日志消息会被输出。\n4.  将 ioq3 上游代码更新至 [最新状态](https:\u002F\u002Fgithub.com\u002Fioquake\u002Fioq3\u002Ftree\u002F29db64070aa0bae49953bddbedbed5e317af48ba)。\n5.  Lua 5.1 现在从源码下载并构建，因此不再作为必需的本地依赖项。\n6.  代码中现在捆绑了一个最小化的 `realpath` 工具版本，从而 `realpath` 也不再是必需的本地依赖项。\n\n### 错误修复：\n\n1.  防止缺失音效导致客户端断开连接。\n2.  修复了主题回调函数 `placeFloorModels` 的调用错误，该错误曾在使用地板模型的纹理集（如 MINESWEEPER、GO 和 PACMAN 等文本关卡）编译过程中引发“'index' is missing”错误。\n3.  修复了 `keys_doors_medium`、`keys_doors_random` 和 `rooms_keys_doors_puzzle` 关卡无法接受通用 `logLevel` 设置的问题。\n4.  为 Python 随机智能体暴露了 `demofiles` 命令行参数，否则该智能体将无法录制或回放演示文件。\n5.  修复了由 [先前提交](https:\u002F\u002Fgithub.com\u002Fdeepmind\u002Flab\u002Fcommit\u002F467f2de3a5c495e0c879023b73fe9ed2a86bc69c) 引入的内存释放顺序错误。","2019-02-04T17:02:17",{"id":202,"version":203,"summary_zh":204,"released_at":205},81502,"release-2018-06-20","### 新关卡：\n\n1.  Psychlab。\n\n    1. contributed\u002Fpsychlab\u002Fglass_pattern_detection\n    2. contributed\u002Fpsychlab\u002FlandoltC_identification\n    3. contributed\u002Fpsychlab\u002Fmotion_discrimination{,_easy}\n    4. contributed\u002Fpsychlab\u002Fmultiple_object_tracking{,_easy}\n    5. contributed\u002Fpsychlab\u002Fodd_one_out\n\n### 错误修复：\n\n1.  允许将 Python 关卡缓存设置为 `None`，其含义与未设置时相同。\n2.  在 Python 3 模式下更改 Python 模块的初始化方式，以使 PIP 包在 Python 3 中正常工作。\n\n### 小幅改进：\n\n1.  为 `lua::Push` 和 `lua::Read` 添加对 `absl::variant` 的支持。\n2.  演示游戏 `:game` 新增了一个 `--start_index` 标志，用于从非 0 的剧集索引开始。\n3.  添加了一个控制台命令 `dm_pickup`，用于拾取指定 `id` 的物品。\n4.  更多 Python 演示和测试现在可以在 Python 3 中运行。\n5.  添加了一种用于渲染带有透明度贴花的着色器。","2018-06-20T12:36:08",{"id":207,"version":208,"summary_zh":209,"released_at":210},81503,"release-2018-05-15","### 新增关卡：\n\n1.  DMLab-30。\n\n    1.   contributed\u002Fdmlab30\u002Fpsychlab_arbitrary_visuomotor_mapping\n    2.   contributed\u002Fdmlab30\u002Fpsychlab_continuous_recognition\n\n2.  Psychlab。\n\n    1.   contributed\u002Fpsychlab\u002Farbitrary_visuomotor_mapping\n    2.   contributed\u002Fpsychlab\u002Fcontinuous_recognition\n\n### 新特性：\n\n1.  在 Python 模块中支持关卡缓存，以提升性能。\n2.  增加在任意位置动态生成拾取物的功能。\n3.  添加读取包括 Cifar10 和 Stimuli 在内的数据集的实现。\n4.  增加通过 `customDiscreteActionSpec` 和 `customDiscreteAction` 回调函数指定自定义动作的能力。\n\n### Bug 修复：\n\n1.  修复了 `game_rewards.lua` 中 `playerId` 和 `otherPlayerId` 错误加一的问题。\n2.  要求传递给 `game:addScore` 的 `playerId` 使用从 1 开始的索引，而非从 0 开始，并允许在没有 `playerId` 的情况下使用 `game:addScore`。\n3.  `game:renderCustomView` 现在以左上角为原点渲染视图。若需恢复之前的行为，可在返回的张量上调用 `reverse(1)`。\n4.  修复了 `image.scale` 中的一个 bug，该 bug 导致对数据偏移量的忽略。\n5.  修复了 `visual_search_factory.lua` 中一处 `require` 语句中的拼写错误。\n6.  修复了几处对 Lua 字典迭代顺序的错误依赖。\n7.  `game:AddScore` 现在即使在回合的最后一帧也能正常工作。\n\n### 小幅改进：\n\n1.  将 `.map` 文件移至 `assets\u002Fmaps\u002Fsrc`，将 `.bsp` 文件移至 `assets\u002Fmaps\u002Fbuilt`。新增了更多预构建地图，从而无需执行昂贵的 `:map_assets` 构建步骤。\n2.  允许游戏以左上角为原点进行渲染，而非左下角。\n3.  添加 `mixerSeed` 设置，用于更改所有随机数生成器的行为。\n4.  支持 BGR_INTERLEAVED 和 BGRD_INTERLEAVED 观测格式。\n5.  添加 Lua API，用于从文件内容加载 PNG 图像。\n6.  在 `playerInfo()` 中添加 `eyePos`，以更准确地获取玩家的眼位，取代原先的“玩家位置 + 身高”。\n7.  为 `lua::Push` 和 `lua::Read` 添加对 absl::string_view 的支持。\n8.  允许通过 `playerModel` 回调函数覆盖玩家模型。\n9.  增加通过 `customDiscreteActionSpec` 和 `customDiscreteAction` 回调函数指定自定义动作的能力。\n10. 添加 `game:console` 命令，用于直接发送 Quake 3 控制台命令。\n11. 在张量运算中添加 `clamp` 功能。\n12. 添加新的回调函数 `api:newClientInfo`，使每个客户端能够在玩家加载时进行拦截。\n13. Skymaze 关卡生成现在被限制为仅能生成 10 万个不同的关卡，以便通过缓存避免昂贵的重新编译。\n14. 添加 cvar 参数 `cg_drawScriptRectanglesAlways` 和 `cg_drawScriptTextAlways`，以在启用 reducedUI 或 minimalUI 时仍能显示脚本内容。\n15. 所有拾取物类型现在可以分别选择其移动方式，尤其是可以将所有拾取物设置为静止状态。对于每件物品，现在需要指定两个独立的表项：`typeTag","2018-05-15T00:37:01",{"id":212,"version":213,"summary_zh":214,"released_at":215},81504,"release-2018-02-07","### 新关卡：\n\n1.  DMLab-30。\n\n     1.  contributed\u002Fdmlab30\u002Frooms_collect_good_objects_{test,train}\n     2.  contributed\u002Fdmlab30\u002Frooms_exploit_deferred_effects_{test,train}\n     3.  contributed\u002Fdmlab30\u002Frooms_select_nonmatching_object\n     4.  contributed\u002Fdmlab30\u002Frooms_watermaze\n     5.  contributed\u002Fdmlab30\u002Frooms_keys_doors_puzzle\n     6.  contributed\u002Fdmlab30\u002Flanguage_select_described_object\n     7.  contributed\u002Fdmlab30\u002Flanguage_select_located_object\n     8.  contributed\u002Fdmlab30\u002Flanguage_execute_random_task\n     9.  contributed\u002Fdmlab30\u002Flanguage_answer_quantitative_question\n    10.  contributed\u002Fdmlab30\u002Flasertag_one_opponent_small\n    11.  contributed\u002Fdmlab30\u002Flasertag_three_opponents_small\n    12.  contributed\u002Fdmlab30\u002Flasertag_one_opponent_large\n    13.  contributed\u002Fdmlab30\u002Flasertag_three_opponents_large\n    14.  contributed\u002Fdmlab30\u002Fnatlab_fixed_large_map\n    15.  contributed\u002Fdmlab30\u002Fnatlab_varying_map_regrowth\n    16.  contributed\u002Fdmlab30\u002Fnatlab_varying_map_randomized\n    17.  contributed\u002Fdmlab30\u002Fskymaze_irreversible_path_hard\n    18.  contributed\u002Fdmlab30\u002Fskymaze_irreversible_path_varied\n    19.  contributed\u002Fdmlab30\u002Fpsychlab_sequential_comparison\n    20.  contributed\u002Fdmlab30\u002Fpsychlab_visual_search\n    21.  contributed\u002Fdmlab30\u002Fexplore_object_locations_small\n    22.  contributed\u002Fdmlab30\u002Fexplore_object_locations_large\n    23.  contributed\u002Fdmlab30\u002Fexplore_obstructed_goals_small\n    24.  contributed\u002Fdmlab30\u002Fexplore_obstructed_goals_large\n    25.  contributed\u002Fdmlab30\u002Fexplore_goal_locations_small\n    26.  contributed\u002Fdmlab30\u002Fexplore_goal_locations_large\n    27.  contributed\u002Fdmlab30\u002Fexplore_object_rewards_few\n    28.  contributed\u002Fdmlab30\u002Fexplore_object_rewards_many\n\n### 新特性：\n\n1.  基本的演示录制与回放支持。\n\n### 小改进：\n\n1.  添加将 DeepMind Lab 构建为 PIP 包的机制。\n2.  将基础测试扩展到 game_scripts\u002Flevels 下的所有关卡。\n3.  添加 `minimalUI` 和 `reducedUI` 设置，以避免渲染 HUD 的部分元素。\n4.  在 `game:playerInfo()` 中添加 `teleported` 标志，用于指示玩家在该帧是否进行了传送。\n5.  在迷宫生成 API 中添加 Lua 函数 `countEntities` 和 `countVariations`，分别用于统计特定实体或变体出现的次数。\n\n### 错误修复：\n\n1.  修复 Lua ‘image’ 库中的越界访问问题。\n2.  修复 renderergl1 网格渲染中的下标错误。","2018-02-07T16:53:10",{"id":217,"version":218,"summary_zh":219,"released_at":220},81505,"release-2018-01-26","### 新关卡：\n\n1.  Psychlab，一个用于实现认知心理学中经典实验范式的平台。\n\n    1.  contributed\u002Fpsychlab\u002Fsequential_comparison\n    2.  contributed\u002Fpsychlab\u002Fvisual_search\n\n### 新特性：\n\n1.  扩展内置 `tensor` Lua 库的功能。\n2.  添加用于加载和缩放 PNG 图像的内置 `image` Lua 库。\n3.  为 env_c_api 增加错误处理（版本 1.1）。\n4.  增加从 Lua 脚本创建事件的功能。\n5.  增加从 Lua 脚本获取游戏实体的功能。\n6.  增加在关卡加载时创建拾取物模型的功能。\n7.  增加在关卡加载后通过脚本更新纹理的功能。\n8.  添加可自定义的 Lua 主题。注意：此更改将 `maze_generation` 中的帮助函数命名改为小驼峰式（例如 `MazeGeneration` 改为 `mazeGeneration`）。\n9.  目录 `game_scripts` 已从 `assets` 目录中移出，关卡脚本现在与库代码分开，存放在 `levels` 子目录中。\n\n### 小改进：\n\n1.  移除地图资源对 Lua 脚本的不必要依赖，避免在修改脚本时导致地图耗时重建。\n2.  增加禁用奖励和目标拾取物上下晃动的功能。\n3.  设置项 `controls`（取值为 `internal`、`external`）已更名为 `nativeApp`（取值为 `true`、`false`）。当设置为 `true` 时，链接到 `game_lib_sdl` 的程序将使用原生 SDL 输入设备。\n4.  将 LuaSnippetEmitter 的方法改为使用表调用约定。\n5.  添加单色光照贴图的配置变量（`r_monolightmaps`），默认启用。\n6.  添加限制纹理大小的配置变量（`r_textureMaxSize`）。\n7.  api:modifyTexture 现在必须返回纹理是否已被修改。\n8.  增加调整奖励的功能。\n9.  增加在地图不同点之间进行射线检测的功能。\n10. 增加测试视图向量是否位于定向视图帧内某一角度范围内的功能。\n\n### 错误修复：\n\n1.  将当前得分存储类型由 short 改为 long。\n2.  修复关卡 lt_space_bounce_hard 中的斜坡跳跃速度问题。\n3.  修复模块 `dmlab.system.game` 中的 Lua 函数 `addScore`，使其允许为玩家添加负分。\n4.  移除引擎中的部分未定义行为。\n5.  减少与角度转换和归一化相关的精度误差。\n6.  团队出生点的行为现与玩家出生点一致。若需保持先前行为，需将 `spawnVar` 中的 `randomAngleRange` 设置为 0。","2018-01-26T14:18:04",{"id":222,"version":223,"summary_zh":224,"released_at":225},81506,"release-2016-12-06","这是 DeepMind Lab 的首次公开发布。\n","2016-12-08T21:58:37"]