[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-cheind--pytorch-blender":3,"tool-cheind--pytorch-blender":61},[4,18,26,36,44,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":10,"last_commit_at":24,"category_tags":25,"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":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":77,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":98,"env_os":99,"env_gpu":100,"env_ram":101,"env_deps":102,"category_tags":109,"github_topics":110,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":149},8716,"cheind\u002Fpytorch-blender","pytorch-blender",":sweat_drops: Seamless, distributed, real-time integration of Blender into PyTorch data pipelines","pytorch-blender（核心组件为 blendtorch）是一个专为深度学习设计的 Python 框架，旨在将 Blender 三维创作软件与 PyTorch 训练流程无缝集成。它主要解决了人工智能模型训练中高质量标注数据稀缺的痛点，允许用户利用 Blender 强大的实时渲染引擎（如 Eevee），按需生成带有精确标注的合成图像或视频流，并直接输入到 PyTorch 的数据管道中。\n\n这一工具特别适合从事计算机视觉的研究人员、算法工程师以及需要构建强化学习环境的开发者。通过 pytorch-blender，用户不仅能实现数据的分布式实时传输，避免传统离线渲染导致的训练停滞，还能支持双向通信：即在模型训练过程中，Blender 场景可根据网络反馈动态调整参数，实现域随机化或交互式仿真。此外，它还内置了数据回放功能，无需再次启动 Blender 即可复现数据，并原生支持 OpenAI Gym 接口，方便构建复杂的强化学习训练环境。无论是进行目标检测、分割任务，还是训练智能体控制策略，pytorch-blender 都能帮助团队高效构建大规模、多样化的合成数据集，显著提升模型的泛化","pytorch-blender（核心组件为 blendtorch）是一个专为深度学习设计的 Python 框架，旨在将 Blender 三维创作软件与 PyTorch 训练流程无缝集成。它主要解决了人工智能模型训练中高质量标注数据稀缺的痛点，允许用户利用 Blender 强大的实时渲染引擎（如 Eevee），按需生成带有精确标注的合成图像或视频流，并直接输入到 PyTorch 的数据管道中。\n\n这一工具特别适合从事计算机视觉的研究人员、算法工程师以及需要构建强化学习环境的开发者。通过 pytorch-blender，用户不仅能实现数据的分布式实时传输，避免传统离线渲染导致的训练停滞，还能支持双向通信：即在模型训练过程中，Blender 场景可根据网络反馈动态调整参数，实现域随机化或交互式仿真。此外，它还内置了数据回放功能，无需再次启动 Blender 即可复现数据，并原生支持 OpenAI Gym 接口，方便构建复杂的强化学习训练环境。无论是进行目标检测、分割任务，还是训练智能体控制策略，pytorch-blender 都能帮助团队高效构建大规模、多样化的合成数据集，显著提升模型的泛化能力与训练效率。","[![Build Status](https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Factions\u002Fworkflows\u002Fpython-package.yml)\n\n# blendtorch\n\n**blendtorch** is a Python framework to seamlessly integrate Blender into PyTorch for deep learning from artificial visual data. We utilize Eevee, a new physically based real-time renderer, to synthesize images and annotations in real-time and thus avoid stalling model training in many cases. \n\nIf you find the project helpful, you consider [citing](#cite_anchor) it.\n\nFeature summary\n - ***Data Generation***: Stream distributed Blender renderings directly into PyTorch data pipelines in real-time for supervised learning and domain randomization applications. Supports arbitrary pickle-able objects to be send alongside images\u002Fvideos. Built-in recording capability to replay data without Blender. Bi-directional communication channels allow Blender simulations to adapt during network training. \u003C\u002Fbr>More info [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen), [\\[examples\u002Fcompositor_normals_depth\\]](examples\u002Fcompositor_normals_depth),  [\\[examples\u002Fdensityopt\\]](examples\u002Fdensityopt)\n - ***OpenAI Gym Support***: Create and run remotely controlled Blender gyms to train reinforcement agents. Blender serves as simulation, visualization, and interactive live manipulation environment.\n \u003C\u002Fbr>More info [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol)\n\nThe figure below visualizes the basic concept of **blendtorch** used in the context of generating artificial training data for a real-world detection task.\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"etc\u002Fblendtorch_intro_v3.svg\" width=\"90%\">\u003Cbr>\n\u003Csup>\u003Cstrong>Fig 1:\u003C\u002Fstrong> With Blendtorch, you are able to train your PyTorch modules on massively randomized artificial data generated by Blender simulations.\u003C\u002Fsup>\n\u003C\u002Fdiv>\n\n## Getting started\n 1. Read the installation instructions below\n 1. To get started with **blendtorch** for training data training read [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen). \n 1. To learn about using **blendtorch** for creating reinforcement training environments read [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol).\n\n## Prerequisites\nThis package has been tested with\n - [Blender](https:\u002F\u002Fwww.blender.org\u002F) >= 2.83\u002F2.91\u002F3.0\u002F3.1 (Python >= 3.7)\n - [PyTorch](http:\u002F\u002Fpytorch.org) >= 1.5\u002F1.10 (Python >= 3.7)\n\nrunning Windows 10 and Linux. Other versions might work as well, but have not been tested. \n\n## Installation\n\n**blendtorch** is composed of two distinct sub-packages: \n - `bendtorch.btt` located in [pkg_pytorch](.\u002Fpkg_pytorch) and \n - `blendtorch.btb` located in [pkg_blender](.\u002Fpkg_blender),\n\nproviding the PyTorch and Blender views on **blendtorch**. `bendtorch.btt` will be installed to your local Python environment, while `blendtorch.btb` will be installed to the Python environment that ships with Blender.\n\n1. Clone this repository\n    \n    ```\n    git clone https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender.git \u003CDST>\n    ```\n1. Extend `PATH`    \n    \n    Ensure Blender executable is in your environments lookup `PATH`. On Windows this can be accomplished by\n    ```\n    set PATH=c:\\Program Files\\Blender Foundation\\Blender 2.91;%PATH%\n    ```\n    On Ubuntu when blender is [installed using snap](https:\u002F\u002Fsnapcraft.io\u002Finstall\u002Fblender\u002Fubuntu), the path may be included by adding the following line to your ~\u002F.bashrc,\n    ```\n    export PATH=\u002Fsnap\u002Fblender\u002Fcurrent\u002F${PATH:+:${PATH}}\n    ```\n1. Complete Blender settings\n    \n    Open Blender at least once, and complete the initial settings. If this step is missed, some of the tests (especially the tests relating RL) will fail (Blender 2.91).\n1. Install `blendtorch.btb`\n    \n    Run\n    ```\n    blender --background --python \u003CDST>\u002Fscripts\u002Finstall_btb.py\n    ```\n    to `blendtorch-btb` into the Python environment bundled with Blender. \n1. Install `blendtorch.btt`\n\n    Run\n    ```\n    pip install -e \u003CDST>\u002Fpkg_pytorch\n    ```\n    installs `blendtorch-btt` into the Python environment that you intend to run PyTorch from. \n1. Install `gym` [optional]\n\n    While not required, it is advised to install OpenAI gym if you intend to use **blendtorch** for reinforcement learning\n    ```\n    pip install gym\n    ```\n1. Install dev requirements [optional]\n\n    This step is optional. If you plan to run the unit tests\n    ```\n    pip install -r requirements_dev.txt\n    pytest tests\u002F\n    ```\n\n## Troubleshooting\nRun\n```\nblender --version\n```\nand check if the correct Blender version (>=2.83) is written to console. Next, ensure that `blendtorch-btb` installed correctly\n```\nblender --background --python-use-system-env --python-expr \"import blendtorch.btb as btb; print(btb.__version__)\"\n```\nwhich should print **blendtorch** version number on success. Next, ensure that `blendtorch-btt` installed correctly\n```\npython -c \"import blendtorch.btt as btt; print(btt.__version__)\"\n```\nwhich should print **blendtorch** version number on success.\n\n## Architecture\nPlease see [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen) and [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol) for an in-depth architectural discussion. Bi-directional communication is explained in [\\[examples\u002Fdensityopt\\]](examples\u002Fdensityopt).\n\n## Runtimes\n\nThe following tables show the mean runtimes per batch (8) and per image for a simple Cube scene (640x480xRGBA). See [benchmarks\u002Fbenchmark.py](.\u002Fbenchmarks\u002Fbenchmark.py) for details. The timings include rendering, transfer, decoding and batch collating. Reported timings are for Blender 2.8. Blender 2.9 performs equally well on this scene, but is usually faster for more complex renderings.\n\n| Blender Instances  | Runtime sec\u002Fbatch | Runtime sec\u002Fimage | Arguments|\n|:-:|:-:|:-:|:-:|\n| 1  | 0.236 | 0.030| UI refresh|\n| 2  | 0.14 | 0.018| UI refresh|\n| 4  | 0.099 | 0.012| UI refresh|\n| 5  | 0.085 | 0.011| no UI refresh|\n\nNote: If no image transfer is needed, i.e in reinforcement learning of physical simulations, 2000Hz are easily achieved.\n\n\u003Ca name=\"cite_anchor\">\u003C\u002Fa>\n## Cite\nThe code accompanies our academic work [[1]](https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.01879),[[2]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11696) in the field of machine learning from artificial images. Please consider the following publications when citing **blendtorch**\n```\n@inproceedings{blendtorch_icpr2020_cheind,\n    author = {Christoph Heindl, Lukas Brunner, Sebastian Zambal and Josef Scharinger},\n    title = {BlendTorch: A Real-Time, Adaptive Domain Randomization Library},\n    booktitle = {\n        1st Workshop on Industrial Machine Learning \n        at International Conference on Pattern Recognition (ICPR2020)\n    },\n    year = {2020},\n}\n\n@inproceedings{robotpose_etfa2019_cheind,\n    author={Christoph Heindl, Sebastian Zambal, Josef Scharinger},\n    title={Learning to Predict Robot Keypoints Using Artificially Generated Images},\n    booktitle={\n        24th IEEE International Conference on \n        Emerging Technologies and Factory Automation (ETFA)\n    },    \n    year={2019}\n}\n```\n\n## Caveats\n- Despite offscreen rendering is supported in Blender 2.8x it requires a UI frontend and thus cannot run in `--background` mode. If your application does not require offscreen renderings you may enable background usage (see [tests\u002F](tests\u002F) for examples).\n- The renderings produced by Blender are by default in linear color space and thus will appear darker than expected when displayed.\n","[![构建状态](https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Factions\u002Fworkflows\u002Fpython-package.yml)\n\n# blendtorch\n\n**blendtorch** 是一个 Python 框架，旨在将 Blender 无缝集成到 PyTorch 中，用于基于人工视觉数据的深度学习。我们利用 Eevee——一种新的基于物理的实时渲染器——来实时合成图像和标注，从而在许多情况下避免模型训练停滞。\n\n如果您觉得该项目有所帮助，请考虑[引用](#cite_anchor)它。\n\n功能概览\n- ***数据生成***：将分布式 Blender 渲染流直接实时注入 PyTorch 数据管道，适用于监督学习和领域随机化应用。支持任意可 pickle 序列化的对象与图像\u002F视频一同发送。内置录制功能，可在无需 Blender 的情况下回放数据。双向通信通道允许 Blender 模拟在神经网络训练过程中自适应调整。\u003C\u002Fbr>更多信息 [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen), [\\[examples\u002Fcompositor_normals_depth\\]](examples\u002Fcompositor_normals_depth),  [\\[examples\u002Fdensityopt\\]](examples\u002Fdensityopt)\n- ***OpenAI Gym 支持***：创建并运行远程控制的 Blender Gym 环境，以训练强化学习智能体。Blender 充当仿真、可视化以及交互式实时操控的环境。\n\u003C\u002Fbr>更多信息 [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol)\n\n下图展示了 **blendtorch** 的基本概念，用于为实际检测任务生成人工训练数据。\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"etc\u002Fblendtorch_intro_v3.svg\" width=\"90%\">\u003Cbr>\n\u003Csup>\u003Cstrong>图 1：\u003C\u002Fstrong> 使用 Blendtorch，您可以在由 Blender 模拟生成的大规模随机化人工数据上训练您的 PyTorch 模块。\u003C\u002Fsup>\n\u003C\u002Fdiv>\n\n## 开始使用\n1. 阅读下方的安装说明\n1. 如需开始使用 **blendtorch** 进行训练数据生成，请参阅 [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen)。\n1. 如需了解如何使用 **blendtorch** 创建强化学习训练环境，请参阅 [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol)。\n\n## 前提条件\n本包已在以下环境中测试通过：\n- [Blender](https:\u002F\u002Fwww.blender.org\u002F) >= 2.83\u002F2.91\u002F3.0\u002F3.1（Python >= 3.7）\n- [PyTorch](http:\u002F\u002Fpytorch.org) >= 1.5\u002F1.10（Python >= 3.7）\n\n操作系统包括 Windows 10 和 Linux。其他版本也可能适用，但尚未经过测试。\n\n## 安装\n\n**blendtorch** 由两个独立的子包组成：\n- `bendtorch.btt` 位于 [pkg_pytorch](.\u002Fpkg_pytorch)，提供 PyTorch 视角；\n- `blendtorch.btb` 位于 [pkg_blender](.\u002Fpkg_blender)，提供 Blender 视角。\n\n`bendtorch.btt` 将被安装到您的本地 Python 环境中，而 `blendtorch.btb` 则会被安装到 Blender 自带的 Python 环境中。\n\n1. 克隆此仓库\n    \n    ```\n    git clone https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender.git \u003CDST>\n    ```\n1. 扩展 `PATH`\n    \n    确保 Blender 可执行文件位于您的环境查找路径 `PATH` 中。在 Windows 上，可以通过以下命令实现：\n    ```\n    set PATH=c:\\Program Files\\Blender Foundation\\Blender 2.91;%PATH%\n    ```\n    在 Ubuntu 上，如果使用 snap 安装了 Blender，则可通过在 `~\u002F.bashrc` 中添加以下行来包含路径：\n    ```\n    export PATH=\u002Fsnap\u002Fblender\u002Fcurrent\u002F${PATH:+:${PATH}}\n    ```\n1. 完成 Blender 设置\n    \n    至少打开一次 Blender，并完成初始设置。若遗漏此步骤，部分测试（尤其是与强化学习相关的测试）可能会失败（Blender 2.91）。\n1. 安装 `blendtorch.btb`\n    \n    运行以下命令将 `blendtorch-btb` 安装到 Blender 自带的 Python 环境中：\n    ```\n    blender --background --python \u003CDST>\u002Fscripts\u002Finstall_btb.py\n    ```\n1. 安装 `blendtorch.btt`\n\n    运行以下命令将 `blendtorch-btt` 安装到您打算运行 PyTorch 的 Python 环境中：\n    ```\n    pip install -e \u003CDST>\u002Fpkg_pytorch\n    ```\n1. 安装 `gym` [可选]\n\n    虽非必需，但建议在计划使用 **blendtorch** 进行强化学习时安装 OpenAI gym：\n    ```\n    pip install gym\n    ```\n1. 安装开发依赖 [可选]\n\n    此步骤为可选。如计划运行单元测试：\n    ```\n    pip install -r requirements_dev.txt\n    pytest tests\u002F\n    ```\n\n## 故障排除\n运行以下命令检查是否正确输出了 Blender 版本（>=2.83）：\n```\nblender --version\n```\n接下来，确保 `blendtorch-btb` 安装正确：\n```\nblender --background --python-use-system-env --python-expr \"import blendtorch.btb as btb; print(btb.__version__)\"\n```\n成功时应打印出 **blendtorch** 的版本号。然后，确认 `blendtorch-btt` 安装无误：\n```\npython -c \"import blendtorch.btt as btt; print(btt.__version__)\"\n```\n同样，成功时应显示 **blendtorch** 的版本号。\n\n## 架构\n有关深入的架构讨论，请参阅 [\\[examples\u002Fdatagen\\]](examples\u002Fdatagen) 和 [\\[examples\u002Fcontrol\\]](examples\u002Fcontrol)。双向通信机制在 [\\[examples\u002Fdensityopt\\]](examples\u002Fdensityopt) 中有详细说明。\n\n## 运行时\n\n下表展示了针对简单立方体场景（640x480xRGBA）的每批次（8 张）和每张图像的平均运行时间。详情请参阅 [benchmarks\u002Fbenchmark.py](.\u002Fbenchmarks\u002Fbenchmark.py)。这些计时包括渲染、传输、解码和批次整理。报告的时间数据基于 Blender 2.8。Blender 2.9 在该场景上的表现相当，但在更复杂的渲染中通常更快。\n\n| Blender 实例数 | 每批次运行时间（秒） | 每张图像运行时间（秒） | 参数 |\n|:-:|:-:|:-:|:-:|\n| 1  | 0.236 | 0.030| 启用 UI 刷新|\n| 2  | 0.14 | 0.018| 启用 UI 刷新|\n| 4  | 0.099 | 0.012| 启用 UI 刷新|\n| 5  | 0.085 | 0.011| 不启用 UI 刷新|\n\n注意：若无需图像传输，例如在物理模拟的强化学习中，轻松可达 2000Hz。\n\n\u003Ca name=\"cite_anchor\">\u003C\u002Fa>\n## 引用\n该代码伴随着我们在基于人工图像的机器学习领域的学术工作 [[1]](https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.01879),[[2]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11696)。引用 **blendtorch** 时，请参考以下文献：\n```\n@inproceedings{blendtorch_icpr2020_cheind,\n    author = {Christoph Heindl, Lukas Brunner, Sebastian Zambal and Josef Scharinger},\n    title = {BlendTorch: A Real-Time, Adaptive Domain Randomization Library},\n    booktitle = {\n        1st Workshop on Industrial Machine Learning \n        at International Conference on Pattern Recognition (ICPR2020)\n    },\n    year = {2020},\n}\n\n@inproceedings{robotpose_etfa2019_cheind,\n    author={Christoph Heindl, Sebastian Zambal, Josef Scharinger},\n    title={Learning to Predict Robot Keypoints Using Artificially Generated Images},\n    booktitle={\n        24th IEEE International Conference on \n        Emerging Technologies and Factory Automation (ETFA)\n    },    \n    year={2019}\n}\n```\n\n## 注意事项\n- 尽管 Blender 2.8x 支持离屏渲染，但它需要一个 UI 前端，因此无法在 `--background` 模式下运行。如果您的应用不需要离屏渲染，您可以启用后台模式（示例请参见 [tests\u002F](tests\u002F)）。\n- Blender 生成的渲染默认使用线性颜色空间，因此在显示时会比预期更暗。","# blendtorch 快速上手指南\n\n**blendtorch** 是一个 Python 框架，旨在将 Blender 无缝集成到 PyTorch 中，用于基于人工视觉数据的深度学习。它利用 Eevee 实时渲染器合成图像和标注，避免模型训练停滞，支持监督学习、域随机化及强化学习环境构建。\n\n## 环境准备\n\n本工具已在以下环境中测试通过：\n\n*   **操作系统**: Windows 10 或 Linux\n*   **Blender**: 版本 >= 2.83 (推荐 2.91\u002F3.0\u002F3.1)，内置 Python >= 3.7\n    *   下载地址：[Blender 官网](https:\u002F\u002Fwww.blender.org\u002F)\n*   **PyTorch**: 版本 >= 1.5 (推荐 1.10+)，Python >= 3.7\n    *   安装建议（国内加速）：\n        ```bash\n        pip install torch torchvision torchaudio -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n        ```\n*   **OpenAI Gym** (可选): 仅在使用强化学习功能时需要\n    ```bash\n    pip install gym -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n> **注意**: 首次安装 Blender 后，请务必至少打开一次 Blender 并完成初始设置向导，否则部分测试（特别是强化学习相关）可能会失败。\n\n## 安装步骤\n\n`blendtorch` 由两个子包组成：`btt` (PyTorch 端) 和 `btb` (Blender 端)。请按顺序执行以下步骤：\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender.git \u003CDST>\n    cd \u003CDST>\n    ```\n    *(请将 `\u003CDST>` 替换为你希望存放代码的实际目录路径)*\n\n2.  **配置环境变量**\n    确保 Blender 可执行文件在系统的 `PATH` 中。\n    *   **Windows**:\n        ```cmd\n        set PATH=c:\\Program Files\\Blender Foundation\\Blender 2.91;%PATH%\n        ```\n        *(请根据实际安装路径调整)*\n    *   **Linux (Snap 安装)**:\n        在 `~\u002F.bashrc` 中添加：\n        ```bash\n        export PATH=\u002Fsnap\u002Fblender\u002Fcurrent\u002F${PATH:+:${PATH}}\n        ```\n\n3.  **安装 Blender 端组件 (`blendtorch.btb`)**\n    此步骤将包安装到 Blender 自带的 Python 环境中：\n    ```bash\n    blender --background --python \u003CDST>\u002Fscripts\u002Finstall_btb.py\n    ```\n\n4.  **安装 PyTorch 端组件 (`blendtorch.btt`)**\n    此步骤将包安装到你运行 PyTorch 的 Python 环境中：\n    ```bash\n    pip install -e \u003CDST>\u002Fpkg_pytorch\n    ```\n    *(国内用户可添加 `-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple` 加速)*\n\n5.  **验证安装**\n    *   检查 Blender 端：\n        ```bash\n        blender --background --python-use-system-env --python-expr \"import blendtorch.btb as btb; print(btb.__version__)\"\n        ```\n    *   检查 PyTorch 端：\n        ```bash\n        python -c \"import blendtorch.btt as btt; print(btt.__version__)\"\n        ```\n    若均输出版本号，则安装成功。\n\n## 基本使用\n\n`blendtorch` 的核心工作流是：Blender 作为服务端实时渲染数据，通过双向通信通道将图像和张量数据流式传输给 PyTorch 训练脚本。\n\n### 场景 1：生成训练数据 (Data Generation)\n\n适用于监督学习和域随机化。Blender 实时渲染图像并发送给 PyTorch DataLoader。\n\n**简要流程：**\n1.  在 Blender 中编写脚本，使用 `blendtorch.btb` 设置渲染输出和通信端口。\n2.  在 PyTorch 侧使用 `blendtorch.btt` 创建数据集类，连接该端口获取数据。\n\n参考官方示例获取完整代码：\n*   基础数据生成：[examples\u002Fdatagen](examples\u002Fdatagen)\n*   合成深度图与法线图：[examples\u002Fcompositor_normals_depth](examples\u002Fcompositor_normals_depth)\n\n### 场景 2：强化学习环境 (Reinforcement Learning)\n\n适用于创建远程控制的 Blender Gym 环境。Blender 充当仿真、可视化和交互环境。\n\n**简要流程：**\n1.  定义继承自 `gym.Env` 的类，内部调用 Blender 进行步长仿真 (`step`) 和重置 (`reset`)。\n2.  PyTorch 代理通过与该环境交互来训练策略网络。\n\n参考官方示例获取完整代码：\n*   控制与环境交互：[examples\u002Fcontrol](examples\u002Fcontrol)\n\n### 性能提示\n*   **多实例加速**: 可以启动多个 Blender 实例并行渲染以提升数据吞吐率（例如 4 个实例可将单张图像渲染时间降至约 0.012 秒）。\n*   **后台模式**: 若不需要离屏渲染的高级特性，可尝试在后台模式运行以提升稳定性；但注意 Blender 2.8x 的离屏渲染通常需要 UI 前端支持。\n*   **色彩空间**: Blender 默认输出线性色彩空间图像，直接显示可能会偏暗，请在预处理阶段进行伽马校正。","某自动驾驶初创团队正在训练一个用于识别极端天气下交通标志的深度学习模型，但苦于缺乏足够的真实暴雨或大雾场景数据。\n\n### 没有 pytorch-blender 时\n- **数据准备周期漫长**：团队需先在 Blender 中手动渲染成千上万张不同天气条件的图片并保存至硬盘，耗时数天才能凑齐一个 epoch 的训练集。\n- **训练流程频繁中断**：由于磁盘 I\u002FO 瓶颈和预生成数据的固定性，模型训练经常因等待数据加载而停滞，无法实现真正的端到端实时训练。\n- **场景调整成本高昂**：一旦发现模型对某种特定角度的雨滴折射过拟合，工程师必须停止训练，重新修改 Blender 脚本、渲染新数据并再次启动训练，迭代效率极低。\n- **标注与仿真割裂**：生成的图像与其对应的深度图、法线图或语义分割掩码往往分步处理，难以保证在动态变化场景下的严格同步。\n\n### 使用 pytorch-blender 后\n- **实时数据流注入**：pytorch-blender 利用 Eevee 实时渲染引擎，将 Blender 中的动态仿真画面直接以数据流形式传入 PyTorch 管道，无需中间存储，实现了“边渲染边训练”。\n- **训练零等待**：数据生成与模型更新完全并行，消除了磁盘读写延迟，GPU 利用率始终保持在饱和状态，大幅缩短了实验验证周期。\n- **动态域随机化**：在训练过程中，pytorch-blender 支持双向通信，可根据模型当前的损失反馈实时调整 Blender 中的雨量、雾气浓度或光照角度，针对性地强化模型弱点。\n- **多模态同步输出**：工具能一次性同步传输图像及其对应的任意可序列化标注对象（如深度、法线、边界框），确保了复杂监督学习任务的数据一致性。\n\npytorch-blender 通过将离线渲染转变为在线实时数据流，彻底解决了合成数据训练中的 I\u002FO 瓶颈与迭代滞后问题，让基于仿真数据的模型训练变得高效且灵活。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcheind_pytorch-blender_897cc54c.png","cheind","Christoph Heindl","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcheind_737d93d5.png","I am a computer scientist working at the interface of perception, robotics and deep learning.",null,"Austrian area","https:\u002F\u002Fcheind.dev","https:\u002F\u002Fgithub.com\u002Fcheind",[82,86,90],{"name":83,"color":84,"percentage":85},"Python","#3572A5",99.6,{"name":87,"color":88,"percentage":89},"Shell","#89e051",0.3,{"name":91,"color":92,"percentage":93},"Batchfile","#C1F12E",0.1,582,44,"2026-01-30T17:40:46","MIT",4,"Windows, Linux","未说明（依赖 Blender 渲染引擎，通常建议配备支持 CUDA 的 NVIDIA 显卡以加速渲染，但文档未明确指定型号或显存）","未说明",{"notes":103,"python":104,"dependencies":105},"该工具由两个子包组成：'blendtorch.btt'安装在运行 PyTorch 的本地 Python 环境中，'blendtorch.btb'安装在 Blender 自带的 Python 环境中。Blender 可执行文件必须添加到系统 PATH 环境变量中。首次使用需打开一次 Blender 完成初始化设置，否则部分测试会失败。Blender 2.8x 版本进行离屏渲染时需要 UI 前端，无法在 '--background' 模式下运行；若不需要离屏渲染可启用后台模式。默认渲染图像为线性色彩空间，直接显示可能会偏暗。","3.7+",[106,107,108],"Blender>=2.83","PyTorch>=1.5","gym (可选)",[14],[111,112,113,114,115],"blender","pytorch","zmq","reinforcement-learning","openai-gym","2026-03-27T02:49:30.150509","2026-04-18T09:19:30.923757",[119,124,129,134,139,144],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},39055,"运行 CartPole 示例时遇到 TypeError: 期望 float 类型但收到了 numpy.ndarray，如何解决？","这是由于 Blender 的 RigidBodyConstraint.motor_lin_target_velocity 属性期望接收浮点数而非数组。需要修改 `examples\u002Fcontrol\u002Fcartpole_gym\u002Fenvs\u002Fcartpole.blend.py` 文件中的代码。确保在 `_env_reset` 中将速度设为标量 `0.`，并在计算观察值时正确提取标量数据。参考修复后的代码逻辑：\n```python\ndef _env_reset(self):\n    self.motor.motor_lin_target_velocity = 0.\n    self.cart.location = np.array([0.0, 0, 1.2])\n    self.polerot.rotation_euler[1] = np.random.uniform(-0.6, 0.6)\n    return self._env_post_step()\n```\n同时检查 `_apply_motor_force` 方法，确保传递给 motor 属性的值是标量（float）而不是 numpy 数组。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F20",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},39056,"是否有生成物体检测数据集的代码？","是的，相关代码已合并到主分支。您可以访问专门的仓库获取清理后的版本：https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender-dr。此外，开发分支（develop）也已合并了合成器支持（compositor-support）及其他修复，适用于 T-LESS 等数据集的生成。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F12",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},39057,"如何将虚拟相机绑定到移动的智能体（Agent）上以观察环境？","BlendTorch 支持通过 `btb.OffScreenRenderer` 进行离线渲染，您只需传入 Blender 相机的名称即可。如果该相机通过约束（constraints）绑定到了其他角色（actor）或智能体上，生成的图像也会随之移动和旋转。\n您可能需要修改示例代码（如 `examples\u002Fcontrol\u002Fcartpole_gym\u002Fenvs\u002Fcartpole.blend.py`），将渲染后的图像包含在返回的字典中，以便传递给模型进行训练。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F29",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},39058,"DataLoader 能否返回场景中的实际网格（mesh）数据而不仅仅是图像？","可以。虽然默认示例主要处理图像，但发布器（publisher）能够发送任何可 pickle 的对象。您需要修改代码，从 Blender 中提取网格的顶点（vertices）和面（faces）并发布它们，而不是发布图像。\n具体可以参考 `examples\u002Fcompositor_normals_depth\u002Fcompositor_normals_depth.blend.py` 的逻辑，并将发布对象改为网格数据。发布器实现见：`pkg_blender\u002Fblendtorch\u002Fbtb\u002Fpublisher.py`。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F27",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},39059,"安装 blendtorch.btb 失败，报错提示版本号无效（Invalid version），如何解决？","该问题通常是由于版本号字符串包含了多余的引号导致的（例如 `\"0.4.0\"` 而不是 `0.4.0`），不符合 PEP 440 标准。\n解决方法是找到定义版本的文件（通常在安装脚本或配置文件中），移除版本号周围的引号。另外，按照 Blender 插件开发规范，版本号通常应在 `bl_info` 字典中声明，而不是单独作为字符串变量处理。请尝试拉取最新的 develop 分支，该问题已在其中修复。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F24",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},39060,"运行 cartpole.py 示例时报 KeyError: 'obs' 错误，原因是什么？","这是因为 PyTorch 端的 `reset` 函数试图从返回的字典中弹出 'obs' 键，但 Blender 端的 `_pre_animation` 函数发送的上下文字典（`self.ctx`）中未包含 'obs' 字段（仅包含 'prev_action' 和 'done'）。\n该问题已通过 PR #19 修复。如果您遇到此错误，请确保您的代码库已更新到包含该修复的版本，或者手动修改 Blender 端代码，确保在步骤结束时将观测数据（observation）添加到返回的字典中。","https:\u002F\u002Fgithub.com\u002Fcheind\u002Fpytorch-blender\u002Fissues\u002F18",[150,155,160,165],{"id":151,"version":152,"summary_zh":153,"released_at":154},314980,"v0.4","- 升级到 Blender 2.91\n- 添加了合成器渲染支持，可访问不同的渲染通道。请参阅示例。\n- 将伽马校正从渲染器移至 btb 命名空间\n- 添加了用于渲染相机空间法线的功能性材质\n- 修复了控制测试的单元测试失败问题","2021-02-02T12:48:18",{"id":156,"version":157,"summary_zh":158,"released_at":159},314981,"v0.3","新增\n- Blender 与 PyTorch 之间的双向通信\n- 新的示例 `densityopt`","2020-08-27T12:36:27",{"id":161,"version":162,"summary_zh":163,"released_at":164},314982,"v0.2","- 支持在 Blender 中定义的 OpenAI 环境下训练强化学习智能体。详情请参阅 `examples\u002Fcontrol`。\n- 当 `num_workers > 0` 时，支持数据集转换。\n- 当 `num_workers > 0` 时，支持消息记录功能。\n- 将 `blendtorch.btb` 和 `blendtorch.btt` 打造成可安装的 Python 包。详情请参阅 `Readme.md`。\n- 远程数据流现已采用 PyTorch 的 IterableDataset，从而简化了接口。详情请参阅 `examples\u002Fdatagen`。\n- 添加了单元测试和持续集成（CI）。","2020-08-04T07:45:01",{"id":166,"version":167,"summary_zh":168,"released_at":169},314983,"v0.1","添加了 Blender 2.8 支持","2020-08-04T07:36:06"]