Skip to content

Commit 0c41167

Browse files
committed
rename project from robot-harness to roboharness
Rename the package before its initial PyPI release for a catchier, more memorable name aligned with projects like roboflow and robocorp. Changes span: - pyproject.toml: package name, optional deps, wheel config - src/robot_harness/ → src/roboharness/: directory and all imports - All test, example, and documentation files updated - CI workflows, issue templates, and SVG assets updated Closes #21 https://claude.ai/code/session_01LA2Uo7hCVdpo5gjGXief4H
1 parent 83ffba0 commit 0c41167

34 files changed

Lines changed: 108 additions & 108 deletions

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: Bug Report
3-
about: Report a bug in Robot-Harness
3+
about: Report a bug in Roboharness
44
title: "[Bug] "
55
labels: bug
66
assignees: ''
@@ -14,7 +14,7 @@ A clear description of the bug.
1414

1515
- OS:
1616
- Python version:
17-
- Robot-Harness version:
17+
- Roboharness version:
1818
- Simulator (MuJoCo/Isaac Lab/ManiSkill/etc.):
1919
- Simulator version:
2020

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- name: Verify package
2121
run: |
2222
pip install dist/*.whl
23-
python -c "import robot_harness; print('Install OK')"
23+
python -c "import roboharness; print('Install OK')"
2424
- uses: actions/upload-artifact@v4
2525
with:
2626
name: dist

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Contributing to Robot-Harness
1+
# Contributing to Roboharness
22

3-
Thank you for your interest in contributing! Robot-Harness is in early development and we welcome contributions of all kinds.
3+
Thank you for your interest in contributing! Roboharness is in early development and we welcome contributions of all kinds.
44

55
## How to Contribute
66

@@ -34,7 +34,7 @@ Thank you for your interest in contributing! Robot-Harness is in early developme
3434

3535
We especially welcome new simulator backends! To add one:
3636

37-
1. Create a new file in `src/robot_harness/backends/`
37+
1. Create a new file in `src/roboharness/backends/`
3838
2. Implement the `SimulatorBackend` protocol (see `core/harness.py`)
3939
3. Add an example in `examples/`
4040
4. Add the simulator's dependencies to `pyproject.toml` as an optional dependency group

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div align="center">
22

3-
# Robot-Harness
3+
# Roboharness
44

55
**A Visual Testing Harness for AI Coding Agents in Robot Simulation**
66

@@ -20,26 +20,26 @@
2020

2121
</div>
2222

23-
## What is Robot-Harness?
23+
## What is Roboharness?
2424

25-
Robot-Harness is a framework that lets AI Coding Agents (Claude Code, OpenAI Codex, [OpenClaw](https://github.com/openclaw/openclaw), etc.) control robot simulations through a **visual feedback loop**:
25+
Roboharness is a framework that lets AI Coding Agents (Claude Code, OpenAI Codex, [OpenClaw](https://github.com/openclaw/openclaw), etc.) control robot simulations through a **visual feedback loop**:
2626

2727
<p align="center">
28-
<img src="assets/architecture.svg" width="800" alt="Robot-Harness Architecture"/>
28+
<img src="assets/architecture.svg" width="800" alt="Roboharness Architecture"/>
2929
</p>
3030

31-
**Key insight**: Modern coding agents are already multimodal — they can write code AND see images AND make decisions. We don't need a separate VLM. Robot-Harness just needs to present simulation visuals in a format agents can directly consume.
31+
**Key insight**: Modern coding agents are already multimodal — they can write code AND see images AND make decisions. We don't need a separate VLM. Roboharness just needs to present simulation visuals in a format agents can directly consume.
3232

3333
## Installation
3434

3535
```bash
36-
pip install robot-harness
36+
pip install roboharness
3737

3838
# With MuJoCo + Meshcat backend
39-
pip install robot-harness[mujoco]
39+
pip install roboharness[mujoco]
4040

4141
# Development
42-
pip install robot-harness[dev]
42+
pip install roboharness[dev]
4343
```
4444

4545
## Quick Start
@@ -49,7 +49,7 @@ pip install robot-harness[dev]
4949
Run a complete grasp simulation with zero external dependencies:
5050

5151
```bash
52-
pip install robot-harness[mujoco] Pillow
52+
pip install roboharness[mujoco] Pillow
5353
python examples/mujoco_grasp.py --report
5454
```
5555

@@ -73,7 +73,7 @@ Wrap any Gymnasium-compatible environment with one line:
7373

7474
```python
7575
import gymnasium as gym
76-
from robot_harness.wrappers import RobotHarnessWrapper
76+
from roboharness.wrappers import RobotHarnessWrapper
7777

7878
env = gym.make("CartPole-v1", render_mode="rgb_array")
7979
env = RobotHarnessWrapper(env,
@@ -102,8 +102,8 @@ For custom simulator integrations:
102102
<summary><b>Show code example</b></summary>
103103

104104
```python
105-
from robot_harness import Harness
106-
from robot_harness.backends.mujoco_meshcat import MuJoCoMeshcatBackend
105+
from roboharness import Harness
106+
from roboharness.backends.mujoco_meshcat import MuJoCoMeshcatBackend
107107

108108
backend = MuJoCoMeshcatBackend(
109109
model_path="robot.xml",
@@ -130,7 +130,7 @@ For tasks with multiple grasp positions, each with multiple agent retry trials:
130130
<summary><b>Show code example and directory structure</b></summary>
131131

132132
```python
133-
from robot_harness.storage import GraspTaskStore
133+
from roboharness.storage import GraspTaskStore
134134

135135
store = GraspTaskStore(base_dir="./output", task_name="pick_and_place")
136136
store.add_grasp_position(position_id=1, xyz=(0.5, 0.0, 0.05), object_name="red_cube")
@@ -177,7 +177,7 @@ harness_output/
177177
<summary><b>Project structure</b></summary>
178178

179179
```
180-
robot_harness/
180+
roboharness/
181181
├── core/
182182
│ ├── harness.py # Main Harness class + SimulatorBackend protocol
183183
│ ├── checkpoint.py # Checkpoint management & state snapshots
@@ -218,7 +218,7 @@ We especially welcome:
218218
- Real-world usage examples
219219
- Integration with popular RL libraries (SB3, CleanRL, etc.)
220220

221-
**AI agents are welcome contributors!** We actively encourage contributions from AI coding agents such as [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenAI Codex](https://github.com/openai/codex), [OpenClaw](https://github.com/openclaw/openclaw), and other autonomous coding tools. If your agent can improve Robot-Harness, send a PR!
221+
**AI agents are welcome contributors!** We actively encourage contributions from AI coding agents such as [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenAI Codex](https://github.com/openai/codex), [OpenClaw](https://github.com/openclaw/openclaw), and other autonomous coding tools. If your agent can improve Roboharness, send a PR!
222222

223223
## License
224224

assets/architecture.svg

Lines changed: 2 additions & 2 deletions
Loading

docs/ci-strategy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CI Strategy: CPU + GPU Testing
22

3-
> 讨论背景:随着 Robot-Harness 集成 cuRobo 规划、WBC 运控、Policy 推理等 GPU 依赖组件,
3+
> 讨论背景:随着 Roboharness 集成 cuRobo 规划、WBC 运控、Policy 推理等 GPU 依赖组件,
44
> CI 需要从纯 CPU 扩展到 GPU 测试。本文档记录分层方案和平台选型。
55
66
## 当前状态

docs/context.en.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
# Robot-Harness: Context Document
1+
# Roboharness: Context Document
22

33
> **Document Version**: v0.1-draft | **Date**: 2026-04-02
4-
> **Purpose**: This is the complete context document for the robot-harness project, intended as a reference for Claude Code, Codex, and other AI Agents during code review, architecture design, and feature development.
4+
> **Purpose**: This is the complete context document for the roboharness project, intended as a reference for Claude Code, Codex, and other AI Agents during code review, architecture design, and feature development.
55
66
## Part 1: Project Overview and Motivation
77

8-
### 1.1 What is Robot-Harness
8+
### 1.1 What is Roboharness
99

10-
Robot-Harness is a **visual testing framework for AI Coding Agents in robot simulation**. Its core goal is to enable Claude Code, OpenAI Codex, and similar coding agents to:
10+
Roboharness is a **visual testing framework for AI Coding Agents in robot simulation**. Its core goal is to enable Claude Code, OpenAI Codex, and similar coding agents to:
1111

1212
1. **Control simulation stepping** (step-by-step execution) — pause simulation at critical moments
1313
2. **Capture multi-view screenshots** — acquire RGB/depth images from different camera positions at the same simulation moment
1414
3. **Autonomously judge task results** — agent directly observes screenshots to determine whether motion is reasonable, grasps are successful, etc.
1515
4. **Iteratively optimize algorithms** — based on visual judgment results, the agent autonomously modifies control code and reruns
1616

17-
**Fundamental difference from traditional approaches**: We don't need a separate VLM model for visual evaluation. Claude Code and Codex themselves are multimodal agents — they can write code, see images, and make decisions. Robot-Harness's responsibility is to **efficiently present simulation visual information in a format that agents can directly consume**.
17+
**Fundamental difference from traditional approaches**: We don't need a separate VLM model for visual evaluation. Claude Code and Codex themselves are multimodal agents — they can write code, see images, and make decisions. Roboharness's responsibility is to **efficiently present simulation visual information in a format that agents can directly consume**.
1818

1919
### 1.2 Core Use Case
2020

2121
Taking a grasping task as an example, the complete Agent-in-the-loop workflow is:
2222

2323
1. Agent writes/modifies grasp control code
24-
2. Robot-Harness runs the simulation, automatically pausing at predefined checkpoints (plan start, plan end, contact point, lift complete)
24+
2. Roboharness runs the simulation, automatically pausing at predefined checkpoints (plan start, plan end, contact point, lift complete)
2525
3. At each checkpoint, the Harness captures screenshots from multiple viewpoints and saves them as files
2626
4. Agent examines screenshots + structured state data, judging whether the current phase is normal
2727
5. If problems are found, the agent modifies code and reruns from the appropriate checkpoint
@@ -165,7 +165,7 @@ This workflow is running and producing real results, but is currently a custom i
165165
- **VLM-RMs** (ICLR 2024): CLIP cosine similarity as zero-shot reward signal
166166
- **RL-VLM-F** (ICML 2024): VLM compares image pairs to learn reward functions
167167
- **RoboCLIP** (NeurIPS 2023): Video-language model computes trajectory similarity
168-
- **StepEval** (2025): Sub-goal decomposition + VLM stage-by-stage evaluation — closest to the evaluation granularity needed by robot-harness
168+
- **StepEval** (2025): Sub-goal decomposition + VLM stage-by-stage evaluation — closest to the evaluation granularity needed by roboharness
169169
- **Robo2VLM** (2025): Generates 684,710 VQA questions from 176K real trajectories
170170

171171
### 3.4 AI Agent-Driven Simulation Iteration Frameworks

docs/context.zh-CN.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
# Robot-Harness: Context Document
1+
# Roboharness: Context Document
22

33
> **文档版本**: v0.1-draft | **日期**: 2026-04-02
4-
> **用途**: 本文件是 robot-harness 项目的完整上下文文档(Context Document),供 Claude Code、Codex 等 AI Agent 在进行代码 Review、架构设计和功能开发时作为背景参考。
4+
> **用途**: 本文件是 roboharness 项目的完整上下文文档(Context Document),供 Claude Code、Codex 等 AI Agent 在进行代码 Review、架构设计和功能开发时作为背景参考。
55
66
## 第一部分:项目概述与动机
77

8-
### 1.1 什么是 Robot-Harness
8+
### 1.1 什么是 Roboharness
99

10-
Robot-Harness 是一个 **为 AI Coding Agent 设计的机器人仿真视觉测试框架**。它的核心目标是让 Claude Code、OpenAI Codex 等编程 Agent 能够:
10+
Roboharness 是一个 **为 AI Coding Agent 设计的机器人仿真视觉测试框架**。它的核心目标是让 Claude Code、OpenAI Codex 等编程 Agent 能够:
1111

1212
1. **控制仿真步进**(step-by-step execution)— 在关键时刻暂停仿真
1313
2. **采集多视角截图** — 在同一仿真时刻从不同相机位置获取 RGB/深度图像
1414
3. **自主判断任务结果** — Agent 直接观察截图,判断运动是否合理、抓取是否成功
1515
4. **迭代优化算法** — 基于视觉判断结果,Agent 自主修改控制代码并重跑
1616

17-
**与传统方案的根本区别**:我们不需要单独的 VLM 模型来做视觉评估。Claude Code 和 Codex 本身就是多模态 Agent,它们既能写代码、又能看图片、又能做决策。Robot-Harness 的职责是 **把仿真的视觉信息以 Agent 能直接消费的格式高效地呈现出来**
17+
**与传统方案的根本区别**:我们不需要单独的 VLM 模型来做视觉评估。Claude Code 和 Codex 本身就是多模态 Agent,它们既能写代码、又能看图片、又能做决策。Roboharness 的职责是 **把仿真的视觉信息以 Agent 能直接消费的格式高效地呈现出来**
1818

1919
### 1.2 核心使用场景
2020

2121
以抓取任务为例,完整的 Agent-in-the-loop 流程是:
2222

2323
1. Agent 编写/修改抓取控制代码
24-
2. Robot-Harness 运行仿真,在预定义的检查点(plan 开始、plan 结束、接触点、抬升完成)自动暂停
24+
2. Roboharness 运行仿真,在预定义的检查点(plan 开始、plan 结束、接触点、抬升完成)自动暂停
2525
3. 在每个检查点,Harness 从多个视角截图并保存为文件
2626
4. Agent 查看截图 + 结构化状态数据,判断当前阶段是否正常
2727
5. 如果发现问题,Agent 修改代码并从适当的检查点重跑
@@ -165,7 +165,7 @@ Codex 分析截图 → 判断抓取效果
165165
- **VLM-RMs**(ICLR 2024):CLIP 余弦相似度作为零样本奖励信号
166166
- **RL-VLM-F**(ICML 2024):VLM 对比图像对学习奖励函数
167167
- **RoboCLIP**(NeurIPS 2023):视频-语言模型计算轨迹相似度
168-
- **StepEval**(2025):子目标分解 + VLM 逐阶段评估 — 最接近 robot-harness 需要的评估粒度
168+
- **StepEval**(2025):子目标分解 + VLM 逐阶段评估 — 最接近 roboharness 需要的评估粒度
169169
- **Robo2VLM**(2025):从 176K 真实轨迹生成 684,710 个 VQA 问题
170170

171171
### 3.4 AI Agent 驱动的仿真迭代框架

docs/simulator-survey.en.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Technical Survey of Open-Source Robot Control Projects and Robot-Harness Integration Analysis
1+
# Technical Survey of Open-Source Robot Control Projects and Roboharness Integration Analysis
22

33
> The Gymnasium Wrapper approach can cover 60% of mainstream projects, but two major ecosystems (legged_gym family and JAX/Brax family) require dedicated adapters.
44
@@ -45,7 +45,7 @@ Video recording is supported via `gymnasium.wrappers.RecordVideo` (requires `--e
4545

4646
Known issues: headless mode rendering hangs (#324), camera-enabled environments not rendering (#3250), recordings missing debug markers (#2233), WebRTC errors in Docker (#3192).
4747

48-
### Robot-Harness Integration Feasibility: Very High
48+
### Roboharness Integration Feasibility: Very High
4949

5050
The standard Gymnasium Wrapper approach is directly applicable:
5151

@@ -77,7 +77,7 @@ The configuration system uses nested Python classes (neither dataclasses nor YAM
7777

7878
**No automated tests, no CI/CD** — this is a notable weakness of the project.
7979

80-
### Robot-Harness Integration Feasibility: Moderately Difficult
80+
### Roboharness Integration Feasibility: Moderately Difficult
8181

8282
Five fundamental incompatibilities exist:
8383
1. **Vectorized vs. single-instance**: Isaac Gym runs 4096+ parallel environments simultaneously; Gymnasium expects a single instance
@@ -102,7 +102,7 @@ Entirely based on JAX functional programming. Environments are pure functions: `
102102

103103
Batch parallelism is achieved via `jax.vmap()`, and training loops complete full rollouts on-device using `jax.lax.scan`. Single-threaded MJX on GPU is 10x slower than CPU MuJoCo — its advantage comes entirely from massive parallelism (batch sizes of 1024–8192+).
104104

105-
### Robot-Harness Integration Feasibility: Difficult
105+
### Roboharness Integration Feasibility: Difficult
106106

107107
The standard Gymnasium Wrapper cannot be used directly because:
108108
1. **Explicit state passing vs. internal state**: The Wrapper must maintain `self._state` internally
@@ -137,13 +137,13 @@ env = ManiSkillVectorEnv(env, auto_reset=True)
137137
env = gym.make("PickCube-v1", num_envs=N)
138138
```
139139

140-
### Robot-Harness Integration Feasibility: Very High
140+
### Roboharness Integration Feasibility: Very High
141141

142142
The CPUGymWrapper mode is directly compatible with the standard Gymnasium Wrapper. The ManiSkillVectorEnv mode requires handling batched GPU data, similar to Isaac Lab. The RecordEpisode wrapper provides built-in recording functionality.
143143

144144
---
145145

146-
## Robot-Harness Integration Summary
146+
## Roboharness Integration Summary
147147

148148
| Project | Integration Feasibility | Integration Method | Estimated Effort |
149149
|---------|------------------------|-------------------|-----------------|

docs/simulator-survey.zh-CN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 机器人控制开源项目技术调研与 Robot-Harness 适配分析
1+
# 机器人控制开源项目技术调研与 Roboharness 适配分析
22

33
> Gymnasium Wrapper 方案能覆盖主流项目的 60%,但两大生态系统(legged_gym 系与 JAX/Brax 系)需要专门适配器。
44
@@ -45,7 +45,7 @@ Isaac Lab 是目前最成熟的 Gymnasium 原生机器人学习框架,GitHub
4545

4646
已知问题:无头模式渲染卡死(#324)、启用相机后不渲染(#3250)、录制不包含调试标记(#2233)、Docker 中 WebRTC 错误(#3192)。
4747

48-
### Robot-Harness 接入可行性:极高
48+
### Roboharness 接入可行性:极高
4949

5050
标准 Gymnasium Wrapper 模式直接适用:
5151

@@ -77,7 +77,7 @@ env = Sb3VecEnvWrapper(env) # RL 库 wrapper 必须在最后
7777

7878
**无自动化测试,无 CI/CD** — 这是该项目的显著弱点。
7979

80-
### Robot-Harness 接入可行性:中等偏难
80+
### Roboharness 接入可行性:中等偏难
8181

8282
存在五个根本性不兼容:
8383
1. **向量化 vs 单实例**:Isaac Gym 同时运行 4096+ 并行环境,Gymnasium 期望单实例
@@ -102,7 +102,7 @@ Google DeepMind 的 GPU 加速机器人学习框架,覆盖 50+ 环境(DM Con
102102

103103
批量并行通过 `jax.vmap()` 实现,训练循环通过 `jax.lax.scan` 在设备上完成完整 rollout。单线程 MJX 在 GPU 上比 CPU MuJoCo 慢 10 倍 — 其优势完全来自大规模并行(batch 1024–8192+)。
104104

105-
### Robot-Harness 接入可行性:困难
105+
### Roboharness 接入可行性:困难
106106

107107
标准 Gymnasium Wrapper 无法直接使用,原因是:
108108
1. **状态传递 vs 内部状态**:需在 Wrapper 内维护 `self._state`
@@ -137,13 +137,13 @@ env = ManiSkillVectorEnv(env, auto_reset=True)
137137
env = gym.make("PickCube-v1", num_envs=N)
138138
```
139139

140-
### Robot-Harness 接入可行性:极高
140+
### Roboharness 接入可行性:极高
141141

142142
CPUGymWrapper 模式直接适用标准 Gymnasium Wrapper。ManiSkillVectorEnv 模式需要处理批量 GPU 数据,与 Isaac Lab 类似。RecordEpisode wrapper 已内建录制功能。
143143

144144
---
145145

146-
## Robot-Harness 接入总结
146+
## Roboharness 接入总结
147147

148148
| 项目 | 接入可行性 | 接入方式 | 预估工作量 |
149149
|------|-----------|---------|-----------|

0 commit comments

Comments
 (0)