[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-benelot--pybullet-gym":3,"tool-benelot--pybullet-gym":61},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},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 真正成长为懂上",161692,"2026-04-20T11:33:57",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":24,"env_os":89,"env_gpu":90,"env_ram":90,"env_deps":91,"category_tags":100,"github_topics":102,"view_count":24,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":105,"updated_at":106,"faqs":107,"releases":128},10218,"benelot\u002Fpybullet-gym","pybullet-gym","Open-source implementations of OpenAI Gym MuJoCo environments for use with the OpenAI Gym Reinforcement Learning Research Platform.","pybullet-gym 是一个开源项目，旨在为 OpenAI Gym 强化学习平台提供免费的 MuJoCo 环境替代实现。在强化学习研究中，许多高难度的连续控制任务通常依赖 MuJoCo 物理引擎，但该软件属于商业性质，免费试用期仅 30 天，这给学术研究和算法复现带来了门槛。pybullet-gym 通过使用完全开源免费的 Bullet Physics 引擎（经由 pybullet 封装）重新构建了这些经典环境，让用户无需购买许可证即可无缝接入 OpenAI Gym 框架进行训练和测试。\n\n该项目非常适合强化学习研究人员、算法开发者以及高校师生使用，尤其是那些希望降低研究成本、避免商业软件授权限制的用户。其技术亮点在于不仅完整复刻了倒立摆、行走机器人、蚂蚁等多个标准测试环境，还预置了经过训练的代理模型作为基准参考，方便用户快速验证算法效果或进行对比实验。此外，部分环境已与 Tensorforce 等主流强化学习库集成，支持开箱即用的训练流程。通过消除商业壁垒，pybullet-gym 有效促进了开放科研生态的发展，让全球研究者能更公平地获取高质量的仿真工具。","PyBullet Gymperium\n-----------\n\n*PyBullet Gymperium is an open-source implementation of the OpenAI Gym MuJoCo environments for use with the OpenAI Gym Reinforcement Learning Research Platform in support of open research.*\n\nOpenAI gym is currently one of the most widely used toolkit for developing and comparing reinforcement learning algorithms. Unfortunately, for several challenging continuous control environments it requires the user to install MuJoCo, a commercial physics engine which requires a license to run for longer than 30 days. Such a commercial barrier hinders open research, especially in the perspective that other appropriate physics engines exist. This repository provides alternative implementations of the original MuJoCo environments which can be used for free. The environments have been reimplemented using [BulletPhysics'](https:\u002F\u002Fgithub.com\u002Fbulletphysics\u002Fbullet3) python wrapper pybullet, such that they seamlessly integrate into the OpenAI gym framework. In order to show the usability of the new environments, several RL agents from the [Tensorforce](https:\u002F\u002Fgithub.com\u002Freinforceio\u002Ftensorforce) Reinforcement Learning Library are configured to be trainable out of the box. To simplify research with the implemented environment, each environment is featured with pretrained agents which serve as unit tests for the implementations and could well serve as baselines for other purposes. \u003C!--To further simplify the training of agents, a Trainer class was implemented which helps to capture commandline arguments in a unified fashion. The Trainer provides a set of standard arguments, but additional arguments can be defined by the agent and the environment to enable the researcher to provide special parameters to either one.-->\n\nIf you find our work useful in your research please consider citing as follows:\n\n@misc {benelot2018,\nauthor = {Benjamin Ellenberger},\ntitle = {PyBullet Gymperium},\nhowpublished = {\\url{ https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym}} ,\nyear = {2018--2019}\n}\n\n## State of implementations\n\nEnvironment Name | Implemented | Similar to Reference Implementation | Pretrained agent available\n---------|---------|---------|---------\n| **RoboSchool Envs** |\nInvertedPendulumPyBulletEnv-v0          | Yes | Yes | No\nInvertedDoublePendulumPyBulletEnv-v0    | Yes | Yes | No\nInvertedPendulumSwingupPyBulletEnv-v0   | Yes | Yes | No\nReacherPyBulletEnv-v0                   | Yes | Yes | No\nWalker2DPyBulletEnv-v0                  | Yes | No | No\nHalfCheetahPyBulletEnv-v0               | Yes | No | No\nAntPyBulletEnv-v0                       | Yes | Yes | No\nHopperPyBulletEnv-v0                    | Yes | Yes | No\nHumanoidPyBulletEnv-v0                  | Yes | Yes | No\nHumanoidFlagrunPyBulletEnv-v0           | Yes | Yes | No\nHumanoidFlagrunHarderPyBulletEnv-v0     | Yes | Yes | No\nAtlasPyBulletEnv-v0                     | WIP | No | No\nPusherPyBulletEnv-v0                    | WIP | No | No\nThrowerPyBulletEnv-v0                   | WIP | No | No\nStrikerPyBulletEnv-v0                   | WIP | No | No\n| **MuJoCo Envs** |\nInvertedPendulumMuJoCoEnv-v0            | Yes | Yes | Yes\nInvertedDoublePendulumMuJoCoEnv-v0      | Yes | Yes | Yes\nReacherMuJoCoEnv-v0                     | No | No | No\nWalker2DMuJoCoEnv-v0                    | Yes | No | No\nHalfCheetahMuJoCoEnv-v0                 | Yes | No | No\nAntMuJoCoEnv-v0                        | Yes | No | No\nHopperMuJoCoEnv-v0                      | Yes | No | No\nHumanoidMuJoCoEnv-v0                    | Yes | No | No\nPusherMuJoCoEnv-v0                      | No | No | No\nThrowerMuJoCoEnv-v0                     | No | No | No\nStrikerMuJoCoEnv-v0                     | No | No | No\n\n\n[See What's New section below](#What's New)\n\n## Basics\n(taken from OpenAI gym readme)\n\nThere are two basic concepts in reinforcement learning: the\nenvironment (namely, the outside world) and the agent (namely, the\nalgorithm you are writing). The agent sends `actions` to the\nenvironment, and the environment replies with `observations` and\n`rewards` (that is, a score).\n\nThe core `gym` interface is `Env \u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fcore.py>`_, which is\nthe unified environment interface. There is no interface for agents;\nthat part is left to you. The following are the ``Env`` methods you\nshould know:\n\n- `reset(self)`: Reset the environment's state. Returns `observation`.\n- `step(self, action)`: Step the environment by one timestep. Returns `observation`, `reward`, `done`, `info`.\n- `render(self, mode='human', close=False)`: Render one frame of the environment. The default mode will do something human friendly, such as pop up a window. Passing the `close` flag signals the renderer to close any such windows.\n\n**In addition to the basic concepts of reinforcement learning, this framework extends the notion of an environment into two subconcepts being the robot (the agents directly controllable body) and the scene (all things the agents interacts with). Implementing RL environments in this way allows us to switch parts of the environment to generate new robot-scene combinations.**\n\n\n## Installing Pybullet-Gym\n\nFirst, you can perform a minimal installation of OpenAI Gym with\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym.git\ncd gym\npip install -e .\n```\n\nThen, the easiest way to install Pybullet-Gym is to clone the repository and install locally\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym.git\ncd pybullet-gym\npip install -e .\n```\n\nImportant Note: *Do not* use `python setup.py install` as this will not copy the assets (you might get missing SDF file errors).\n\nFinally, to test installation, open python and run\n```python\nimport gym  # open ai gym\nimport pybulletgym  # register PyBullet enviroments with open ai gym\n\nenv = gym.make('HumanoidPyBulletEnv-v0')\n# env.render() # call this before env.reset, if you want a window showing the environment\nenv.reset()  # should return a state vector if everything worked\n```\n\n\n## Supported systems\n\nWe currently support Linux, Windows and OS X running Python 2.7 or 3.5.\n\n\nTo run ``pip install -e '.[all]'``, you'll need a semi-recent pip.\nPlease make sure your pip is at least at version ``1.5.0``. You can\nupgrade using the following: ``pip install --ignore-installed\npip``. Alternatively, you can open `setup.py\n\u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fsetup.py>`_ and\ninstall the dependencies by hand.\n\n## Agents\n\nAs some sort of unit test for the environments, we provide pretrained agents for each environment. The agents for the roboschool envs and the mujoco were trained on the original implementations of roboschool and mujoco respectively.\n\n\n\n## Environments\n\nThe code for each environment group is housed in its own subdirectory\n`gym\u002Fenvs\n\u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fenvs>`_. The\nspecification of each task is in `gym\u002Fenvs\u002F__init__.py\n\u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fenvs\u002F__init__.py>`_. It's\nworth browsing through both.\n\n\u003C!--\n## Examples\n\nSee the 'examples' directory.\n\n- Run [File here](link here) to run an actual learning agent on the something environment.\n\n##Add all examples\n\n-->\n\n## What's new\n\n* 2018-01-09 Pybullet-gym is born.\n\n## Roadmap\n\u003Col>\n\t\u003Cli> [ROBOSCHOOL GYMS] The current gyms are the roboschool gyms ported to\npybullet. So far, most of them work well, except for the manipulator envs\nstriker, pusher and thrower, where the robot is not correctly loaded. This\n\t\twill have to be fixed with Erwin Coumans.\u003C\u002Fli>\n\u003Cli> [OPENAI MUJOCO GYMS] Soon I will start to port the OpenAI gyms, which\nunfortunately have a slightly different observation (and probably action)\nvector. I can setup all the gyms quickly, but it will take a while to find\nout what some of observations are in mujoco and what they correspond to in\npybullet. Some of the observations might not be exposed on pybullet, then\nwe can request them, for others it is already hard to know what they are in\nmujoco.\u003C\u002Fli>\n\u003Cli>[OPENAI ROBOTICS GYMS] Next in line would be the robotics gyms in OpenAI.\nThese are particularly delicate simulations and might take some tuning to\neven be simulatable in pybullet.\u003C\u002Fli>\n\u003Cli>[DEEPMIND CONTROL SUITE] Then there is Deepmind Control Suite, another set\nof gyms which are in mujoco and need to be freed. \u003C\u002Fli>\n\u003C\u002Fol>\n\n","PyBullet Gymperium\n-----------\n\n*PyBullet Gymperium 是 OpenAI Gym MuJoCo 环境的一个开源实现，用于与 OpenAI Gym 强化学习研究平台一起使用，以支持开放研究。*\n\nOpenAI Gym 目前是开发和比较强化学习算法最常用的工具包之一。然而，对于一些具有挑战性的连续控制环境，它要求用户安装 MuJoCo——一款需要许可证才能运行超过 30 天的商业物理引擎。这种商业壁垒阻碍了开放研究，尤其是在存在其他合适的物理引擎的情况下。本仓库提供了原始 MuJoCo 环境的替代实现，可以免费使用。这些环境使用 [BulletPhysics](https:\u002F\u002Fgithub.com\u002Fbulletphysics\u002Fbullet3) 的 Python 封装 pybullet 重新实现，从而能够无缝集成到 OpenAI Gym 框架中。为了展示新环境的可用性，来自 [Tensorforce](https:\u002F\u002Fgithub.com\u002Freinforceio\u002Ftensorforce) 强化学习库的几个 RL 代理被配置为开箱即用即可训练。为了简化对已实现环境的研究，每个环境都配备了预训练好的代理，它们既可作为实现的单元测试，也可以作为其他用途的基准。\u003C!--为进一步简化代理的训练，我们实现了一个 Trainer 类，该类有助于以统一的方式捕获命令行参数。Trainer 提供了一组标准参数，但代理和环境也可以定义额外的参数，以便研究人员为其中一方提供特殊参数。-->\n\n如果您在研究中发现我们的工作有所帮助，请考虑按以下方式引用：\n\n@misc {benelot2018,\nauthor = {Benjamin Ellenberger},\ntitle = {PyBullet Gymperium},\nhowpublished = {\\url{ https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym}} ,\nyear = {2018--2019}\n}\n\n## 实现状态\n\n环境名称 | 已实现 | 与参考实现相似 | 是否有预训练代理\n---------|---------|---------|---------\n| **RoboSchool 环境** |\nInvertedPendulumPyBulletEnv-v0          | 是 | 是 | 否\nInvertedDoublePendulumPyBulletEnv-v0    | 是 | 是 | 否\nInvertedPendulumSwingupPyBulletEnv-v0   | 是 | 是 | 否\nReacherPyBulletEnv-v0                   | 是 | 是 | 否\nWalker2DPyBulletEnv-v0                  | 是 | 否 | 否\nHalfCheetahPyBulletEnv-v0               | 是 | 否 | 否\nAntPyBulletEnv-v0                       | 是 | 是 | 否\nHopperPyBulletEnv-v0                    | 是 | 是 | 否\nHumanoidPyBulletEnv-v0                  | 是 | 是 | 否\nHumanoidFlagrunPyBulletEnv-v0           | 是 | 是 | 否\nHumanoidFlagrunHarderPyBulletEnv-v0     | 是 | 是 | 否\nAtlasPyBulletEnv-v0                     | 开发中 | 否 | 否\nPusherPyBulletEnv-v0                    | 开发中 | 否 | 否\nThrowerPyBulletEnv-v0                   | 开发中 | 否 | 否\nStrikerPyBulletEnv-v0                   | 开发中 | 否 | 否\n| **MuJoCo 环境** |\nInvertedPendulumMuJoCoEnv-v0            | 是 | 是 | 是\nInvertedDoublePendulumMuJoCoEnv-v0      | 是 | 是 | 是\nReacherMuJoCoEnv-v0                     | 否 | 否 | 否\nWalker2DMuJoCoEnv-v0                    | 是 | 否 | 否\nHalfCheetahMuJoCoEnv-v0                 | 是 | 否 | 否\nAntMuJoCoEnv-v0                        | 是 | 否 | 否\nHopperMuJoCoEnv-v0                      | 是 | 否 | 否\nHumanoidMuJoCoEnv-v0                    | 是 | 否 | 否\nPusherMuJoCoEnv-v0                      | 否 | 否 | 否\nThrowerMuJoCoEnv-v0                     | 否 | 否 | 否\nStrikerMuJoCoEnv-v0                     | 否 | 否 | 否\n\n\n[请参阅下方“新增内容”部分](#What's New)\n\n## 基础知识\n（摘自 OpenAI Gym 的 README）\n\n强化学习中有两个基本概念：环境（即外部世界）和代理（即您编写的算法）。代理向环境发送“动作”，而环境则返回“观测”和“奖励”（即得分）。\n\n`gym` 的核心接口是 `Env \u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fcore.py>`_，它是统一的环境接口。代理没有专门的接口；这部分由您自行处理。以下是您应该了解的 `Env` 方法：\n\n- `reset(self)`: 重置环境的状态。返回 `observation`。\n- `step(self, action)`: 让环境向前推进一个时间步。返回 `observation`, `reward`, `done`, `info`。\n- `render(self, mode='human', close=False)`: 渲染环境的一帧画面。默认模式会执行对人类友好的操作，例如弹出一个窗口。传递 `close` 标志表示渲染器应关闭任何此类窗口。\n\n**除了强化学习的基本概念之外，本框架还将环境的概念扩展为两个子概念：机器人（代理可以直接控制的身体）和场景（代理所交互的一切事物）。以这种方式实现 RL 环境，使我们能够切换环境中的不同部分，从而生成新的机器人-场景组合。**\n\n\n## 安装 Pybullet-Gym\n\n首先，您可以进行 OpenAI Gym 的最小化安装：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym.git\ncd gym\npip install -e .\n```\n\n然后，安装 Pybullet-Gym 最简单的方法是克隆仓库并在本地安装：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym.git\ncd pybullet-gym\npip install -e .\n```\n\n重要提示：*请勿*使用 `python setup.py install`，因为这不会复制资源文件（您可能会遇到缺少 SDF 文件的错误）。\n\n最后，要测试安装情况，打开 Python 并运行：\n```python\nimport gym  # open ai gym\nimport pybulletgym  # 将 PyBullet 环境注册到 open ai gym\n\nenv = gym.make('HumanoidPyBulletEnv-v0')\n# env.render() # 如果您想看到显示环境的窗口，请在 env.reset 之前调用此方法\nenv.reset()  # 如果一切正常，应该返回一个状态向量\n```\n\n\n## 支持的系统\n\n我们目前支持运行 Python 2.7 或 3.5 的 Linux、Windows 和 OS X。\n\n\n要运行 `pip install -e '.[all]'`，您需要一个较新的 pip 版本。请确保您的 pip 至少为版本 `1.5.0`。您可以通过以下命令升级：`pip install --ignore-installed pip`。或者，您也可以打开 `setup.py \u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fsetup.py>`_ 并手动安装依赖项。\n\n## 代理\n\n作为对环境的一种单元测试，我们为每个环境提供了预训练好的代理。RoboSchool 和 MuJoCo 环境的代理分别是在 RoboSchool 和 MuJoCo 的原始实现上训练得到的。\n\n\n\n## 环境\n\n每个环境组的代码都位于其各自的子目录 `gym\u002Fenvs \u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fenvs>`_ 中。每个任务的规范都在 `gym\u002Fenvs\u002F__init__.py \u003Chttps:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym\u002Fblob\u002Fmaster\u002Fgym\u002Fenvs\u002F__init__.py>`_ 中。值得浏览这两处内容。\n\n\u003C!--\n\n## 示例\n\n请参阅 'examples' 目录。\n\n- 运行[此处的文件](此处链接)，即可在某个环境中运行一个实际的学习智能体。\n\n## 添加所有示例\n\n-->\n\n## 新内容\n\n* 2018-01-09 Pybullet-gym 正式诞生。\n\n## 路线图\n\u003Col>\n\t\u003Cli> [ROBOSCHOOL GYMS] 当前的环境是移植到 pybullet 上的 roboschool 环境。到目前为止，大多数环境都能正常工作，除了 manipulator 环境中的 striker、pusher 和 thrower，这些环境中机器人未能正确加载。这个问题需要与 Erwin Coumans 一起解决。\u003C\u002Fli>\n\u003Cli> [OPENAI MUJOCO GYMS] 我很快将开始移植 OpenAI 的环境，但不幸的是，这些环境的观测（可能还有动作）向量略有不同。我可以快速搭建起所有环境，但要弄清楚 mujoco 中某些观测的具体含义以及它们在 pybullet 中对应的表示，则需要花费一些时间。有些观测可能在 pybullet 中并未暴露，届时我们可以提出需求；而对于另一些观测，在 mujoco 中究竟是什么含义，目前也很难确定。\u003C\u002Fli>\n\u003Cli>[OPENAI ROBOTICS GYMS] 接下来将是 OpenAI 中的 robotics 环境。这些模拟场景尤为复杂，可能需要进行大量调优才能在 pybullet 中成功运行。\u003C\u002Fli>\n\u003Cli>[DEEPMIND CONTROL SUITE] 最后是 Deepmind Control Suite，这是一组同样基于 mujoco 的环境，也需要被移植出来。\u003C\u002Fli>\n\u003C\u002Fol>","# PyBullet Gym 快速上手指南\n\nPyBullet Gymperium 是 OpenAI Gym MuJoCo 环境的开源实现，旨在使用免费的 Bullet 物理引擎替代商业授权的 MuJoCo，从而降低强化学习研究的门槛。它无缝集成到 OpenAI Gym 框架中，提供了多种连续控制环境。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：支持 Linux、Windows 或 macOS。\n*   **Python 版本**：Python 2.7 或 Python 3.5+（推荐使用 Python 3.6+ 以获得更好的兼容性）。\n*   **前置依赖**：\n    *   `pip` 版本需至少为 `1.5.0`。如需升级，可运行：\n        ```bash\n        pip install --ignore-installed pip\n        ```\n    *   建议先安装基础的 OpenAI Gym 库。\n\n> **提示**：国内开发者在安装 Python 依赖时，推荐使用清华或阿里镜像源以加速下载。例如：`pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple ...`\n\n## 安装步骤\n\n请按照以下顺序执行命令进行安装。**注意**：切勿使用 `python setup.py install`，否则会导致资源文件（如 SDF 文件）缺失。\n\n### 1. 安装 OpenAI Gym (基础依赖)\n\n首先克隆并安装最小化的 OpenAI Gym：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym.git\ncd gym\npip install -e .\n```\n\n*(国内加速可选)*:\n```bash\ngit clone https:\u002F\u002Fgitee.com\u002Fmirrors\u002Fgym.git # 如果存在镜像\ncd gym\npip install -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 安装 PyBullet Gym\n\n克隆本仓库并进行本地安装：\n\n```bash\ncd .. # 返回上一级目录\ngit clone https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym.git\ncd pybullet-gym\npip install -e .\n```\n\n*(国内加速可选)*:\n```bash\ngit clone https:\u002F\u002Fgitee.com\u002Fmirrors\u002Fpybullet-gym.git # 假设存在镜像，否则使用原地址\ncd pybullet-gym\npip install -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 验证安装\n\n打开 Python 交互式终端，运行以下代码测试环境是否注册成功：\n\n```python\nimport gym\nimport pybulletgym\n\n# 创建一个环境实例\nenv = gym.make('HumanoidPyBulletEnv-v0')\n\n# 重置环境，若返回状态向量则说明安装成功\nobservation = env.reset()\nprint(\"Installation successful! Observation shape:\", observation.shape)\n\n# 可选：渲染画面（需在支持图形界面的环境中运行）\n# env.render() \n```\n\n## 基本使用\n\nPyBullet Gym 的使用方式与标准的 OpenAI Gym 完全一致。核心概念包括**环境**（Environment）和**智能体**（Agent）。\n\n### 核心接口\n\n*   `env.reset()`: 重置环境状态，返回初始观测值 (`observation`)。\n*   `env.step(action)`: 执行一步动作，返回 `(observation, reward, done, info)`。\n*   `env.render()`: 渲染当前帧（默认弹出窗口显示）。\n\n### 最小运行示例\n\n以下是一个简单的随机动作测试脚本：\n\n```python\nimport gym\nimport pybulletgym\n\n# 1. 创建环境 (可选环境见 README 表格，如 InvertedPendulumPyBulletEnv-v0)\nenv = gym.make('InvertedPendulumPyBulletEnv-v0')\n\n# 2. 重置环境\nobservation = env.reset()\n\n# 3. 运行循环\nfor _ in range(1000):\n    # 渲染画面 (如果需要可视化)\n    env.render()\n    \n    # 生成随机动作\n    action = env.action_space.sample()\n    \n    # 执行动作\n    observation, reward, done, info = env.step(action)\n    \n    # 如果回合结束，重置环境\n    if done:\n        observation = env.reset()\n\nenv.close()\n```\n\n### 可用环境列表\n\n部分常用已实现环境如下：\n\n| 环境名称 | 状态 | 备注 |\n| :--- | :--- | :--- |\n| `InvertedPendulumPyBulletEnv-v0` | ✅ 可用 | 倒立摆 |\n| `HalfCheetahPyBulletEnv-v0` | ✅ 可用 | 半猎豹 (与 MuJoCo 实现略有差异) |\n| `HopperPyBulletEnv-v0` | ✅ 可用 | 单足跳机器人 |\n| `Walker2DPyBulletEnv-v0` | ✅ 可用 | 双足行走机器人 |\n| `AntPyBulletEnv-v0` | ✅ 可用 | 四足蚂蚁机器人 |\n| `HumanoidPyBulletEnv-v0` | ✅ 可用 | 人形机器人 |\n\n*注：部分复杂操作臂环境（如 Pusher, Thrower）目前仍在开发中 (WIP)。*","某高校强化学习实验室的研究团队正致力于开发新型连续控制算法，需要在多种物理环境中进行大规模训练与对比实验。\n\n### 没有 pybullet-gym 时\n- **高昂的授权门槛**：复现经典的 MuJoCo 环境（如 HalfCheetah、Ant）必须购买商业许可证，否则每 30 天需重新激活，严重阻碍长期实验。\n- **环境配置繁琐**：团队成员需各自处理复杂的 MuJoCo 安装依赖，不同操作系统下的兼容性问题导致“在我机器上能跑”的协作困境。\n- **基线对比困难**：由于缺乏免费且统一的预训练模型，研究人员难以快速验证新算法是否优于现有基准，拖慢了论文迭代速度。\n- **研究复现受阻**：外部合作者或开源社区成员因无法承担软件费用，难以复现和验证该团队发表的实验结果，降低了研究的透明度。\n\n### 使用 pybullet-gym 后\n- **零成本无缝替换**：直接调用基于 Bullet Physics 重构的免费环境（如 `HalfCheetahPyBulletEnv-v0`），无需任何许可证即可无限期运行，彻底消除经济壁垒。\n- **开箱即用的集成**：环境与 OpenAI Gym 框架完美兼容，团队成员只需一行代码即可切换后端，统一了开发环境，大幅减少配置时间。\n- **内置预训练代理**：利用工具自带的预训练模型作为即时基线（Baseline），研究人员可立即评估新算法性能，显著缩短实验验证周期。\n- **促进开放协作**：生成的代码和环境配置对全球研究者完全开放，任何人皆可免费复现实验，极大提升了成果的传播力与公信力。\n\npybullet-gym 通过提供免费、高保真的物理环境替代方案，让强化学习研究从商业授权的束缚中解放出来，真正实现了开放科学的愿景。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbenelot_pybullet-gym_8fd54a83.png","benelot","Benjamin Ellenberger","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbenelot_008b1b00.jpg","Lead Data Scientist @ IDSC Insel Uni Hospital, PhD in the Comp. Neuro. Group of Walter Senn at Uni Bern, personally on Google @bulletphysics @brax and Deep-R","IDSC.io","Bern, Switzerland",null,"https:\u002F\u002Fgithub.com\u002Fbenelot",[81],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,881,127,"2026-03-24T23:37:24","NOASSERTION","Linux, Windows, macOS","未说明",{"notes":92,"python":93,"dependencies":96},"安装时请勿使用 'python setup.py install' 命令，否则会导致资产文件（如 SDF 文件）缺失从而引发错误；该工具旨在作为 MuJoCo 的免费开源替代方案，用于强化学习环境仿真。",[94,95],"2.7","3.5",[97,98,99],"gym","pybullet","pip>=1.5.0",[14,101],"其他",[103,104,98],"python","openai-gym","2026-03-27T02:49:30.150509","2026-04-20T22:37:42.779695",[108,113,118,123],{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},45849,"安装 pybullet-gym 时遇到与 pybullet 2.6.0 版本不兼容的 ImportError 错误怎么办？","这是一个已知的版本兼容性问题。如果您在创建环境（例如 `gym.make('HumanoidPyBulletEnv-v0')`）时遇到报错，通常是因为 pybullet 版本过新或过旧。解决方案是更新您的安装以确保使用兼容的版本组合。维护者确认该问题已通过修复解决，请尝试重新安装最新版本的 pybullet-gym 和 pybullet：\n```\npip install --upgrade pybullet pybullet-gym\n```\n如果问题依旧，请检查是否使用了受支持的 Python 版本（如 3.6 或 3.7）。","https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym\u002Fissues\u002F36",{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},45850,"为什么调用 env.render() 后窗口没有显示或无法渲染环境？","这通常是因为 `render()` 和 `reset()` 的调用顺序不正确。在 pybullet-gym 中，必须在调用 `env.reset()` 之前先调用 `env.render()` 才能正确初始化渲染窗口。\n正确的代码顺序如下：\n```python\nimport gym\nimport pybulletgym\n\nenv_name = 'HumanoidPyBulletEnv-v0'\nenv = gym.make(env_name)\n\n# 关键：先 render，再 reset\nenv.render()\nenv.reset()\n\nfor i in range(10000):\n    obs, rewards, done, _ = env.step(env.action_space.sample())\n    # 后续步骤中也可以继续调用 render\n    env.render()\n```\n如果顺序颠倒（先 reset 后 render），窗口可能不会弹出。","https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym\u002Fissues\u002F25",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},45851,"训练后的代理在测试时无法渲染环境（窗口不显示但不报错）是什么原因？","这种情况通常也是由渲染初始化的时机问题引起的。确保在每次测试回合开始时，在 `env.reset()` 之前调用 `env.render(mode='human')`。\n示例测试函数结构：\n```python\ndef test(episodes=10):\n    for episode in range(episodes):\n        state = env.reset()\n        # 确保在 reset 之后立即渲染，或者在循环开始前初始化一次\n        env.render(mode='human') \n        done = False\n        while not done:\n            action = agent.predict(state) # 假设的代理预测方法\n            state, reward, done, info = env.step(action)\n            env.render(mode='human')\n```\n如果在训练脚本中渲染正常但在独立测试脚本中失败，请检查测试脚本是否遗漏了初始的 `render()` 调用或 GUI 后端配置。","https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym\u002Fissues\u002F19",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},45852,"倒立摆环境（inverted_pendulum_env.py）中的终止条件（done）逻辑是否正确？","是的，代码逻辑是正确的。虽然代码写法看起来与原始 OpenAI Gym 的实现略有不同，但它们在逻辑上是等价的。\n原始逻辑：\n```python\nnotdone = np.isfinite(ob).all() and (np.abs(ob[1]) \u003C= .2)\ndone = not notdone\n```\n等价于：\n```python\ndone = not (np.isfinite(ob).all() and (np.abs(ob[1]) \u003C= .2))\n```\n根据德摩根定律和 Python 运算符优先级（`not` 高于 `and`），这进一步等价于仓库中的实现：\n```python\ndone = (not np.isfinite(ob).all()) or (np.abs(ob[1]) > .2)\n```\n仓库中保留括号是为了提高代码可读性，明确逻辑分组，功能上没有任何错误。","https:\u002F\u002Fgithub.com\u002Fbenelot\u002Fpybullet-gym\u002Fissues\u002F44",[]]