Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.

EgoCrowd

Crowdsourced egocentric manipulation data pipeline for robot learning.

Turn iPhone recordings into robot training data. Zero additional hardware required.

Paper Dataset Demo

Install

pip install egocrowd

With GPU support (for local object detection + hand pose):

pip install egocrowd[gpu]

With simulation (for MuJoCo replay):

pip install egocrowd[sim]

Quick Start

Download and explore the dataset

from egocrowd import download_dataset
import h5py

# Download from HuggingFace
path = download_dataset("egocrowd/pick-mug-v5")

with h5py.File(path, "r") as f:
    ep = f["episode_0"]
    qpos = ep["observations/qpos_arm"][:]       # (270, 7) joint positions
    ee = ep["observations/ee_pos"][:]            # (270, 3) end-effector XYZ
    actions = ep["actions/target_qpos"][:]       # (270, 7) target joints
    print(f"Mug lift: {ep.attrs['mug_lift_cm']:.1f}cm")
# -> Mug lift: 17.7cm

Process a new recording

# Parse .r3d file from Record3D
egocrowd process recording.r3d --object mug --output ./my_dataset

# With cloud GPU processing (GroundingDINO + HaMeR)
egocrowd process recording.r3d --cloud --output ./my_dataset

Use as a library

from egocrowd import parse_r3d, spatial_trajectory
from egocrowd.export import to_lerobot_hdf5, to_rlds_json

# Parse iPhone recording
data = parse_r3d("recording.r3d", output_dir="parsed/")

# Generate robot trajectory (after hand pose extraction)
traj = spatial_trajectory(
    hamer_results="parsed/hamer_results.json",
    object_poses="parsed/object_poses_3d.json",
)

# Export to LeRobot format
to_lerobot_hdf5(traj, qpos_data, "output/data.hdf5")

Pipeline Architecture

iPhone (.r3d)
    |
    v
[1. Parse] ──> RGB frames + LiDAR depth + camera poses
    |
    v
[2. Detect] ──> GroundingDINO: open-vocab object detection
    |
    v
[3. Hand Pose] ──> HaMeR: 3D hand mesh reconstruction (93.7% coverage)
    |
    v
[4. Retarget] ──> Spatial trajectory: hand motion -> robot EE targets
    |
    v
[5. Export] ──> LeRobot HDF5 | RLDS JSON | Raw JSON

Key Results

  • 18.1cm clean mug lift in MuJoCo simulation from a single iPhone recording
  • 93.7% hand pose coverage via HaMeR (no wearable sensors needed)
  • $0 contributor hardware cost (core tier: iPhone with LiDAR only)
  • 9-55x cheaper than teleoperation-based data collection

Supported Formats

Format File Use Case
LeRobot HDF5 data.hdf5 HuggingFace ecosystem, policy training
RLDS JSON episode.json RT-X, Octo, Open X-Embodiment
Raw JSON raw.json Custom pipelines, analysis

Citation

@article{nyamekye2026egocrowd,
  title={EgoCrowd: Crowdsourced Egocentric Manipulation Data at Consumer Cost},
  author={Nyamekye, Christian},
  journal={arXiv preprint arXiv:TODO},
  year={2026}
}

License

CC-BY-4.0

Metadata

Release files for egocrowd 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for egocrowd 0.1.0
File Size Uploaded Provenance Actions
egocrowd-0.1.0.tar.gz 11.4 kB Without provenance Details for egocrowd-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for egocrowd 0.1.0
File Interpreter ABI Platform Actions
egocrowd-0.1.0-py3-none-any.whl Python 3 none any Details for egocrowd-0.1.0-py3-none-any.whl

Total release size: 23.2 kB

Release files / egocrowd-0.1.0.tar.gz

Download URL egocrowd-0.1.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
70fc097903616766a8a2f53514fc4bc39b35d4f9efeef36c015080961b45f0ba
BLAKE2b-256 checksum
How to use checksums
2aad34210333ee3cee81f328d1cf154c13c4a53cd18e45b562860d8b9bf61091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / egocrowd-0.1.0-py3-none-any.whl

Download URL egocrowd-0.1.0-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc371fdef212a950de9a1f8ad119546ceda67ea84778083e7c0544f8906d775a
BLAKE2b-256 checksum
How to use checksums
8e3cf6e89cd1a4ef1555ddf5aeba5ddb5dce5cc1aed61abc6e4d68126423e0ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Security for egocrowd 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page