---
title: dreambo-emotions-library
canonical_url: "https://www.modelscope.cn/datasets/tonylabs/dreambo-emotions-library"
md_url: "https://www.modelscope.cn/datasets/tonylabs/dreambo-emotions-library.md"
repository: tonylabs/dreambo-emotions-library
last_updated: 2026-05-16
license: "Apache License 2.0"
storage_size: "87 MB"
downloads: 38
stars: 0
---

# dreambo-emotions-library

> dreambo-emotions-library - tonylabs 在 ModelScope 开源的数据集。Dreambo Torso Emotions Library

tonylabs/dreambo-emotions-library 是 ModelScope 魔搭社区上的数据集，存储大小 87 MB，采用 Apache License 2.0 许可。

- **Repository**: tonylabs/dreambo-emotions-library
- **License**: Apache License 2.0
- **Storage size**: 87 MB
- **Downloads**: 38
- **Stars**: 0
- **Last updated**: 2026-05-16

Source: https://www.modelscope.cn/datasets/tonylabs/dreambo-emotions-library

---

# Dreambo Torso Emotions Library

Hand-puppeteered motion clips for the Dreambo robot torso, paired with
audio cues. Each clip is a single JSON file named after the emotion
(`yes1.json`, `proud2.json`, …) with one matching `.wav` for the audio
prompt.

## Schema

Per-clip JSON, written by
[`scripts/emotion_library/record.py`](https://github.com/tonylabs/dreambo_torso_sdk)
in the `dreambo_torso_sdk` repo:

```json
{
  "description": "Short English caption — 2nd person, behavior-focused.",
  "time": [0.00, 0.01, 0.02, ...],
  "set_target_data": [
    {"left_arm": [x, y, z], "right_arm": [x, y, z], "nose": [top, left, right]},
    {"left_arm": [x, y, z], "right_arm": [x, y, z], "nose": [top, left, right]},
    ...
  ]
}
```

- `time` — per-frame timestamps in seconds (relative to recording start).
- `set_target_data` — one entry per frame; per-frame entries hold:
  - `left_arm`, `right_arm` — upper-arm pointing direction as a unit
    3-vector in the spherical-5-bar's internal frame. On playback the SDK
    resolves these to motor angles via
    `DreamboArmKinematics.ik_from_direction`. Recordings made before the
    servos were homed may fall back to raw joint pairs `[theta_a, theta_b]`
    — the SDK loader accepts both shapes.
  - `nose` — `[top, left, right]` joint positions in rad.

The matching `<emotion>.wav` is a short audio prompt that plays at
recording start; SDK playback fires it again so the gesture and sound
stay in sync.

## Usage

```python
from dreambo_torso import Dreambo
from dreambo_torso.motion.recorded_move import RecordedMoves

mini = Dreambo()
library = RecordedMoves("tonylabs/dreambo-emotions-library")
move = library.get("yes1")
mini.play_move(move, initial_goto_duration=1.0)
```

## Recording new clips

Use `scripts/emotion_library/record.py` from
[`dreambo_torso_sdk`](https://github.com/tonylabs/dreambo_torso_sdk):
puppet-style capture with `r` to save and `q` to abort.
