# HumanEgo: robot policies from human egocentric video, with dependency traps documented in the requirements file

> The TX-Leo repository that trains robot policies from minutes of Aria glasses footage, released as code, dataset and docs in June 2026 with no tagged release. What the install, the download paths and the pinned versions actually commit you to.

**TX-Leo/HumanEgo** — HumanEgo: Zero-Shot Robot Learning from Minutes of Human Egocentric Videos

- Repository: https://github.com/TX-Leo/HumanEgo
- Website: https://humanego-ai.github.io
- Stars: 569 · Forks: 55
- Language: Python
- License: NOASSERTION
- Published: 2026-09-20 · Updated: 2026-09-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/tx-leo-humanego

## The release banner points at three artifacts, none of them versioned

The repository has no GitHub releases, yet the opening line of the README is a banner announcing that HumanEgo is fully released, with code, dataset and docs all live as of June 7, 2026. Those are three separate things and only one of them is pinned. Nothing in the tree carries a version number, there is no changelog, and the newest commit on the default branch dates from 2026-09-22. What the banner actually points at is a project page at humanego-ai.github.io, an arXiv entry, a YouTube link, and on HuggingFace a dataset, a model page and a gallery space, with an anchors bar linking to a BibTeX block. A reader who wants to reproduce a result has to record the commit they used, because the repository offers no tag to record and the dataset version is not stated on the page.

## The licence field reads NOASSERTION while a LICENSE file sits at the root

GitHub reports the licence for this repository as NOASSERTION, and a LICENSE file is present in the tree at the same time. Those two facts do not agree, and the page never states which terms govern, so nothing in the documentation resolves the conflict in either direction. That matters twice over here, because what is being reused is not only code. A recording lands at ./data/<task>/aria/mps_<task>_<id>_vrs/ and carries a preprocess/ folder, so the released material is footage of human activity captured with wearable glasses plus precomputed hand and scene output derived from it. The terms attached to that material are not summarized anywhere. Read the file at the root before reusing either the code or the data, and treat the mismatch on the repository page as a reason to ask rather than as a settled fact.

## Two env vars named for skipping are set to 0 to turn features on

The default install is deliberately partial, and three environment variables decide how much gets added. SKIP_HAND and SKIP_HARDWARE are named for what they skip, so passing 0 enables the optional packages rather than disabling anything, which reads backwards the first time you see it. The three forms are given directly in the page.

```bash
SKIP_HAND=0     bash setup.sh   # + MediaPipe / WiLoR / HaMeR (alternative hand-tracking methods)
SKIP_HARDWARE=0 bash setup.sh   # + pyrealsense2 / trossen-arm (real-robot collection & deployment)
PREDOWNLOAD=1   bash setup.sh   # pre-download model weights now (else fetched on first run)
```

What the default run leaves out is the alternative hand detectors MediaPipe, WiLoR and HaMeR, plus the pyrealsense2 and trossen-arm pieces used for real-robot collection and deployment, because the pipeline leans on the hand tracking built into Project Aria recordings. The third variable matters for anyone timing a first run: weights are not fetched during setup, so the first training command pays for the downloads unless PREDOWNLOAD=1 is set.

## torch is held at 2.5.1 because the newest wheel reports no CUDA at all

The requirements file pins PyTorch to a CUDA 12.1 build and explains why in a comment, which is unusual enough to quote. An unpinned torch of 2.5 or newer resolves to the newest cu13x wheel, that wheel fails on the common CUDA 12.x drivers, and the symptom is silent rather than loud: torch.cuda.is_available() returns False. The same comment names the failure in the other direction, noting that newer GPUs such as Blackwell may need a newer cu12x or cu13x build, so the constraint is two-sided.

```
--extra-index-url https://download.pytorch.org/whl/cu121
torch==2.5.1
torchvision==0.20.1
```

The file states that this works on driver 525 or newer with CUDA 12.x, and it gives the one-line check to run afterwards, python -c "import torch; print(torch.cuda.is_available())". Two consequences follow for anyone reusing this environment on newer hardware: the pin is tied to a driver generation rather than to a project release, and the guidance is to adjust the version and the index to match your own driver.

## Two dependency conflicts are documented and left in place on purpose

The requirements file records two more problems and resolves neither. projectaria-client-sdk 1.1.0 hard-pins projectaria-tools at 1.5.2a1 while the pipeline needs 1.7.1, and setup.sh installs both with --no-deps so that pip prints a resolver-conflict warning the file describes as harmless. transformers is held below 5.0 for a separate reason: version 5.x breaks Grounding DINO's AutoProcessor, which the preprocess dinosam stage depends on, so the ceiling is protecting one pipeline stage rather than expressing a compatibility policy for the whole stack. Both caps are pinned to code paths rather than to a release cadence. A clean install is therefore expected to print a dependency warning, an automated environment check that fails on pip output will trip over an intended condition, and anyone upgrading either package has to re-check that the dinosam stage still runs.

## The five-minute path trains on exactly one recording

The HumanEgo training job holds out the first recording of the task for evaluation and trains on the rest, and the quick start tells you to download two recordings for that reason. That makes the smoke test a one-recording training run: 000 is the eval set and 001 is the only input the trainer sees. The command carries the task as a flag and reads its configuration from cfg/training/<task>/HumanEgo.yaml.

```bash
python -m training.FlowMatchingTrainer --task serve_bread --use_cfg --job HumanEgo
```

The same convention holds for both released tasks, serve_bread and water_flowers, and the full dataset trains on every recording except 000 for its task. As a plumbing check that is the right size: download, preprocess and train all run end to end on a couple of hours of footage. As evidence of anything else it is not, because a held-out split of one recording cannot separate generalization from memorization.

## The same two recordings cost 1.2 GB or about 4 GB depending on one flag

The download script has a flag that decides whether you compute preprocessing yourself or accept the shipped result, and the size difference for the same two recordings is roughly three gigabytes. With --input-only the script fetches inputs only, about 1.2 GB, and leaves the preprocess/ folder for you to generate. Dropping the flag pulls the same two recordings with the precomputed preprocess output at about 4 GB, auto-extracted, which lets you jump straight to training. Either way each recording lands at ./data/<task>/aria/mps_<task>_<id>_vrs/. For the full release the script accepts --task all --num all, or one task at a time with --num all, and everything is served from the public HuggingFace dataset with no login or token required. The output-file reference and an alternative recipe built on huggingface_hub directly live in preprocess/README.md.

## The collect-your-own-data route begins with an application to a hardware vendor

The third way in, training on your own demonstrations, starts with a form rather than a command. Participants are sent to projectaria.com/glasses to apply for Meta Project Aria glasses, and only after that does the chain of recording with the glasses, processing the data through MPS, preprocessing, training and deployment apply. So the entry point for this route is an approval from a vendor, and it is also the only route that needs the hardware packages the default install omits. The page then begins to describe adding support for other capture hardware, naming Meta Aria Gen as an example, and stops there, leaving the list of supported devices one sentence long and unfinished. The repository tree reflects the split: datacollection/, inference/ and utils/ sit beside preprocess/, training/ and scripts/, with configuration under cfg/.

## Conclusion

Treat HumanEgo as a research pipeline with a released dataset rather than as a pinned dependency: the code, the dataset and the docs went live on June 7, 2026, and the repository still carries no tagged release to install against. What it does supply is unusually specific failure information, the CUDA wheel trap, the deliberate projectaria-tools conflict, the ceiling on transformers below 5.0 and the two optional install paths, which is worth more to a reader than a version number would be. Before committing to it, open the LICENSE file yourself, since the repository licence field reads NOASSERTION, and decide whether your path needs the hand tracking and hardware drivers that the default setup leaves out.

## FAQ

### Does HumanEgo need a robot to train a policy?

No. The quick start and the dataset path train with no hardware at all, and the requirements file pins CUDA builds for GPU training. Real-robot collection and deployment need pyrealsense2 and trossen-arm, which the default setup.sh leaves out until SKIP_HARDWARE=0 is passed.

### How much data does the HumanEgo quick start download?

python scripts/download_data.py --task serve_bread --num 2 --input-only fetches the two recordings at about 1.2 GB. Dropping --input-only pulls the same two recordings with the precomputed preprocess output at about 4 GB, auto-extracted from all_data.tar.

### Does HumanEgo have a tagged release to pin against?

No GitHub releases exist, even though the page opens by announcing that code, dataset and docs are all live as of June 7, 2026. The dataset, model and gallery live on HuggingFace under Leo-TX and need no login or token, and none of them is tied to a commit here.

### Which licence is HumanEgo released under?

The repository licence field reads NOASSERTION while a LICENSE file sits at the root of the tree, and the page does not restate the terms anywhere. Open the file at the root before reusing the code or the released recordings.

### What does the HumanEgo training entry point look like?

python -m training.FlowMatchingTrainer --task serve_bread --use_cfg --job HumanEgo, which trains on every recording of the task except 000 and reads cfg/training/<task>/HumanEgo.yaml. transformers is held below 5.0 because 5.x breaks the AutoProcessor that Grounding DINO needs in the preprocess dinosam stage.

## Sources

- [Issues](https://github.com/TX-Leo/HumanEgo/issues)
- [Project website](https://humanego-ai.github.io)
- [README](https://github.com/TX-Leo/HumanEgo/blob/main/README.md)
- [TX-Leo/HumanEgo on GitHub](https://github.com/TX-Leo/HumanEgo)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tx-leo-humanego
