Skip to content

The dataset·

Embodied chain-of-thought, brain edition:

ECoT here
camera band power · CQ · motion · metrics · facial · events @ 8 Hz
reasoning TASK \| AMBIENT \| PLAN \| TOOL \| ACT \| REWARD
gripper the agent's speech
success your brain after the answer (Δstress, Δengagement)

An episode = 3 s before you speak → the streamed answer → 12 s after (catches the next met tick).

one turn replayed: bands, ambient line, answer, stamp, post-roll, REWARD

A real frame·

Every frame carries the whole turn as one task string. Decoded:

frame 80 · task string · decoded
TASKOne sentence: how does my brain look right now?
AMBIENT[brain: theta dominant · CQ 13/14 good]
PLANCalm and settled: theta's leading with solid contact…
TOOLnone
ACTCalm and settled…
REWARDΔstress=nan, Δengagement=nan

(nan is honest: met at 0.1 Hz didn't land inside that 12 s episode.)

Use it·

from lerobot.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset("cagataydev/emotiv-ecot")   # private
ds[80]["observation.state"].shape               # [70]
ds[80]["task"]                                  # the string above

● REC → talk → Publish. Or strands-emotiv record ambient --minutes 10 for baselines.

Full schema: DATASET.md.