Skip to content

Commit cfca826

Browse files
committed
EgoInfinity: initial public release
Metric 3D hand-object tracking from a single static-camera RGB video, plus robot retargeting. See README.md.
0 parents  commit cfca826

446 files changed

Lines changed: 1837321 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
lint:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-python@v5
14+
with:
15+
python-version: "3.10"
16+
- name: Install ruff
17+
run: pip install ruff
18+
- name: ruff check
19+
run: ruff check .
20+
21+
import-smoke:
22+
# Verifies the package layout is sound — does NOT pull torch / wilor /
23+
# sam2 / etc. (heavy + needs CUDA). Just checks that pyproject.toml is
24+
# valid and that the top-level package imports without runtime deps.
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
- uses: actions/setup-python@v5
29+
with:
30+
python-version: "3.10"
31+
- name: Install build tools + minimal deps
32+
run: |
33+
pip install --upgrade pip setuptools wheel
34+
# No-deps install proves pyproject.toml is well-formed.
35+
pip install -e . --no-deps
36+
- name: Verify package metadata
37+
run: |
38+
python -c "from importlib.metadata import metadata; print(metadata('egoinfinity')['Name'])"
39+
- name: Smoke-import config (no torch needed for path resolution)
40+
# config.py does `import os` + path joins; skips runtime model code.
41+
run: |
42+
python -c "import sys; sys.path.insert(0, '.'); \
43+
import egoinfinity.pipeline.config as c; \
44+
print('REPO_ROOT:', c.REPO_ROOT); \
45+
print('CKPT_DIR:', c.CKPT_DIR); \
46+
print('WILOR_CFG:', c.WILOR_CFG)"

.gitignore

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Pretrained models — checkpoints downloaded by setup_weights.sh (or
2+
# linked from a shared NVMe location). The whole directory is ignored;
3+
# users get their own layout via env var EGOINFINITY_CKPT_DIR or the symlink.
4+
# WiLoR's tiny model_config.yaml lives in `configs/` instead and IS tracked.
5+
pretrained_models
6+
pretrained_models.bak.*
7+
8+
# Python cache
9+
__pycache__/
10+
*.pyc
11+
*.pyo
12+
13+
# Build artifacts (generated by `pip install -e .`)
14+
*.egg-info/
15+
build/
16+
dist/
17+
18+
# Demo output
19+
demo_out/
20+
21+
# Logs and temp
22+
logs/
23+
*.log
24+
*.log.bak.*
25+
*.tmp
26+
27+
# Internal-only dev tree — never published; stripped at the release tag.
28+
# Guard against accidental `git add private/...`.
29+
private/
30+
31+
# IDE
32+
.vscode/
33+
.idea/
34+
35+
# OS
36+
.DS_Store
37+
Thumbs.db
38+
39+
# Output data
40+
output/
41+
results/
42+
43+
# Large dataset files
44+
100DOH/*.json
45+
46+
# Favorites / per-clip cache (videos, frames, sam3 meshes, depth, pkl results).
47+
# Default location <repo>/cache; override with ACTION100M_CACHE.
48+
cache/
49+
50+
# Action100M index database (large, rebuilt locally by action100m_filter)
51+
action100m_index.db
52+
action100m_index.db-shm
53+
action100m_index.db-wal
54+
55+
# WiLoR (CC-BY-NC-ND, no-derivatives): NOT redistributed. Fetched verbatim
56+
# from upstream + patched locally by scripts/setup_wilor.sh. Only the patch
57+
# (third_party/wilor.patch) is tracked.
58+
third_party/wilor/
59+
60+
# MANO model — non-commercial license; see README "MANO model" section
61+
# for the manual download instructions (we cannot redistribute).
62+
third_party/wilor/mano_data/MANO_RIGHT.pkl
63+
64+
# Retarget large binaries — MuJoCo XML printout + training checkpoints.
65+
# The repo ships the URDF / STL meshes (small, structural), but training
66+
# artifacts are reproduced by re-running retarget/train_vn_alignment.py.
67+
retarget/MJMODEL.TXT
68+
retarget/runs/*/checkpoints/*.pt
69+
retarget/runs/*/checkpoints/*.pth
70+
retarget/runs/*/events.out.tfevents.*
71+
72+
# Batch run logs / SLURM artifacts (regenerated)
73+
batch_logs/
74+
75+
# action100m_filter caches MediaPipe model files locally; not redistributable
76+
action100m_filter/.cache/
77+
78+
# Tool audit / dry-run outputs (generated artifacts, not source)
79+
tools/_audit_*/
80+
_audit/
81+
82+
# Stray debug screenshots dropped at repo root
83+
/skel_on_*.jpg
84+
MUJOCO_LOG.TXT

0 commit comments

Comments
 (0)