3.0 KiB
3.0 KiB
Repository Guidelines
Project Structure & Module Organization
roboimi/is the main package: simulation code inroboimi/envs/, assets/helpers inroboimi/assets/, VLA models/config inroboimi/vla/, and runnable scripts inroboimi/demos/plusroboimi/demos/vla_scripts/.tests/holdsunittestregressions for training, rollout, dataset loading, and asset resolution.docs/superpowers/stores design specs and plans.docs/experiment-guide.mdstore how beginning experimentruns/,outputs/,swanlog/,.worktrees/, andcheckpoints/are generated experiment artifacts, not source modules.
Build, Test, and Development Commands
conda env create -f environment.yml && conda activate roboimi— create the standard environment.pip install -e .— editable install.python -m unittest discover -s tests -p 'test_*.py'— run all tests.python -m unittest tests.test_train_vla_rollout_validation -v— run one focused test module.python roboimi/vla/scripts/calculate_stats.py— regenerate normalization stats.python roboimi/demos/vla_scripts/train_vla.py train.max_steps=1000— quick training smoke test.python roboimi/demos/vla_scripts/eval_vla.py eval.ckpt_path=checkpoints/vla_model_best.pt eval.num_episodes=5— evaluate a checkpoint.
Coding Style & Naming Conventions
- Use Python, 4-space indentation, and PEP 8–style naming.
- Prefer
snake_casefor files, functions, variables, and Hydra keys; useCamelCasefor classes. - Match existing Hydra namespaces such as
train.*,eval.*, andagent.*. - Keep diffs focused and imports tidy. Experiment names usually encode host/GPU, e.g.
...-l20g3-...,...-5880g1-..., or...-5090-....
Testing Guidelines
- Tests use
unittestandunittest.mock. - Name files
tests/test_*.pyand classes*Test. - Add direct regression coverage for changes to training, rollout, config, or dataset code paths.
- No strict coverage target is defined, but changed behavior should be tested and affected suites should pass before review.
Commit & Pull Request Guidelines
- Follow existing prefixes:
feat,fix,chore,docs,debug, optionally with scope, e.g.feat(eval): export rollout video timing. - Keep commit messages imperative and specific.
- PRs should state the goal, touched configs/scripts, exact test commands, and dataset/checkpoint assumptions. Attach visual artifacts only when outputs change.
Experiment Host Reference
- Local workstation (
droid-z790eagleax) — local shell; 1× RTX 5090 32 GB; env:/home/droid/.conda/envs/roboimi/bin/python. - 5880 node (
droid-System-Product-Name) — username:droid; IP:100.73.14.65; connect withssh droid@100.73.14.65; 2× RTX 5880 Ada 48 GB; env:/home/droid/miniforge3/envs/roboimi/bin/python; trusted tailnet host. - L20 node (
droid-G5500-V7) — username:droid; IP:100.119.99.14; connect withssh droid@100.119.99.14; 8× NVIDIA L20 46 GB; env:/home/droid/miniforge3/envs/roboimi/bin/python; store large experiment data under/data.