GigaBrain-0: A World Model-Powered Vision-Language-Action Model
GigaBrain-0: A World Model-Powered Vision-Language-Action Model
[2026/09/02] Released VLM evaluation code and RoboColiseum, RoboTwin 2.0, and EBench training and evaluation workflows.[2026/08/25] Released the GigaBrain-0.7 Code, Model and Sample Data.[2026/08/17] Released the GigaBrain-0.7 technical report.[2026/03/10] We will host the GigaBrain Challenge 2026 @ CVPR 2026 with three competition tracks: RoboTwin (simulation), GigaWorld (World Model), and RoboChallenge (real robot). We also have a call for papers on OpenReview and will select a Best Paper Award.[2026/02/13] Released GigaBrain-0.5M* technical report. GigaBrain-0.5M* is a VLA that learns from world model-based reinforcement learning.[2026/02/09] GigaBrain-0.1 achieved 1st place on the RoboChallenge leaderboard. [2026/02/02] Released GigaBrain-0.1 model weights, which follow the same usage as GigaBrain-0 but achieve better performance.[2025/11/27] Released GigaBrain-0 model weights. This version of the model excludes depth images and intermediate 2D manipulation trajectories for more user-friendly use. However, the code supports these features — if your dataset contains them and you wish to use them, simply enable the corresponding options in the configuration.[2025/11/27] Released the model architecture, as well as the pre-training and post-training implementations.Vision-language-action (VLA) models have become a dominant paradigm for generalist embodied agents, demonstrating strong complex and long-horizon task completion in structured settings. Yet it remains an open question whether current VLA systems can benefit from more effective architectural design, scale to substantially larger and more heterogeneous data regimes, and achieve broader generalization across tasks and embodiments. To this end, we present GigaBrain-0.7, an embodied foundation model with substantially improved generalization across diverse robot embodiments. Specifically, GigaBrain-0.7 unifies understanding, prediction, and action through a three-system architecture, scales pretraining to over 37,000 hours of heterogeneous embodied data, and introduces one-stage alignment training that jointly optimizes vision-language understanding and multi-embodiment action generation. Compared with the preceding GigaBrain-0 series and prior state-of-the-art models including π0.5, GigaBrain-0.7 achieves substantial improvements in foundation zero-shot capabilities, language-conditioned instruction following, and post-training task success rates. In particular, on our in-house Maker H01 platform and mainstream robot embodiments, GigaBrain-0.7 demonstrates strong task adaptability and completion ability across both home and industrial scenarios.
The GigaBrain-0.7 summarizes 37.3k hours of heterogeneous embodied pre-training data, including real-robot, UMI, egocentric, simulation, and world-model-generated data.
This installation supports the two top-level mainline training configs:
gb07_pg2_pick_and_place_piper_30k.py
and
gb07_pg2_push_buttons_h01_30k.py.
Benchmark workflows use their own installation instructions and external
dependencies; see the guides in Benchmark releases.
The mainline workflow uses the following dependencies:
Use a fresh environment for the pinned PaliGemma2 stack:
conda create -n gigabrain07 python=3.11.10 -y
conda activate gigabrain07
# Run from the GigaBrain-0.7 repository root.
export GIGA_BRAIN_ROOT="$PWD"
python -m pip install -r requirements-paligemma2.txt
python -m pip install "giga-datasets==1.1.0"
python -m pip install "giga-train==1.1.0"
python -m pip install "git+https://github.com/open-gigaai/[email protected]" --no-deps
export PYTHONPATH="$GIGA_BRAIN_ROOT${PYTHONPATH:+:$PYTHONPATH}"LeRobot v2.1 compatibility for the two mainline configs: If their input
data uses the LeRobot v2.1 format, replace the giga-datasets==1.1.0
installation above with:
python -m pip install "giga-datasets==1.0.0"This substitution is not a repository-wide benchmark requirement. Benchmark workflows may use different dataset readers and dependency versions; follow the corresponding benchmark guide instead.
This section covers the mainline PiPER and H01 configs linked in Installation. Run all commands from the repository root after completing the installation and environment exports above. For benchmark training or evaluation, start from the corresponding guide in Benchmark releases.
Download GigaBrain-0.7 models and sample data from Hugging Face.
| Resource | HF Link | Description |
|---|---|---|
| GigaBrain-0.7-3.5B-Base | Hugging Face | The pretrained 3.5B base model for GigaBrain-0.7. |
| GigaBrain-0.7-3.5B-RoboTwin2.0-Clean | Hugging Face | The GigaBrain-0.7 3.5B model fine-tuned on clean RoboTwin2.0 data. |
| GigaBrain-0.7-3.5B-EBench | Hugging Face | The GigaBrain-0.7 3.5B model fine-tuned for EBench. |
| GigaBrain-0.7-SampleData | Hugging Face | Sample data for running the GigaBrain-0.7 training workflow. |
Training data is expected in LeRobot format. Use
compute_norm_stats_fast.py
to read the LeRobot frame Parquet files directly and compute normalization
statistics for observation.state and action:
python scripts/compute_norm_stats_fast.py \
--data-paths /path/to/your/data/lerobot_dataset1 /path/to/your/data/lerobot_dataset2 \
--output-path /path/to/your/norm/norm_stats.json \
--embodiment-id 6 \
--delta-mask \
True True True True True True False True \
True True True True True False False False \
--sample-rate 1.0 \
--action-chunk 50 \
--action-dim 32 \
--num-workers 64The mask above is the AgileX Cobot Magic example. Replace --embodiment-id
and the complete, space-separated Boolean mask for other robot types. Keep
--sample-rate 1.0 when generating final training statistics; lower values
are useful only for an I/O smoke test. Point norm_stats_path (or the
corresponding norm_cfg) in the training config to the generated file. The
task-specific configs in
configs show robot-type masks and dataset layouts
for the current GigaBrain-0.7 training stack.
Training configs live under configs. Adjust
gpu_ids, batch_size_per_gpu, dataset paths, and normalization paths for
your environment. The example configs contain placeholder paths and must be
updated for your environment. Logs and checkpoints are written
below project_dir. For a new run, choose a new project_dir and set
train.resume=False; keep train.resume=True only when deliberately resuming
an existing run.
GigaBrain-0.7 uses the following embodiment IDs. These IDs select the embodiment-specific state and action projections, so keep the pretrained IDs unchanged when post-training from an existing checkpoint.
| Embodiment ID | Model category | Typical robot_type values |
|---|---|---|
| 0 | AGILEX |
aloha, mobile_aloha, arx5, ur5, and other 6-DoF-per-arm joint-control layouts |
| 1 | AGIBOT_G1 |
agibot_g1, agibot_world, franka, and other 7-DoF-per-arm joint-control layouts |
| 2 | AGIBOT_DEX |
agibot_g1_dexhand and other dexterous-hand robot layouts |
| 3 | UMI_OMIN |
UMI_omin, umi-giga |
| 4 | EGO_DEX |
EgoDex dexterous-hand data |
| 5 | EGODEX_EEF_HANDBASE |
egodex_eef_handbase, egoverse_eef_handbase, wiyh_eef_handbase, marker_u01_eef_handbase |
| 6 | ROBOCOIN_AGILEX_COBOT_MAGIC |
agilex_cobot_magic (the 16D release configuration) |
| 7 | H01_ROBOT |
h01_robot |
The complete default mapping is defined by EmbodimentId, RobotType, and
robot_type_mapping in
giga_brain_0_transforms.py.
IDs 6 and 7 are built into this mapping and do not require a config override.
To select an embodiment in a training config, make sure the LeRobot dataset's
robot_type metadata matches the config key. The training transform resolves
the embodiment ID automatically. For example:
ROBOT_TYPE = "agilex_cobot_magic"
# Inside config["dataloaders"]["train"]["transform"]:
transform=dict(
type="GigaBrain07Transform",
delta_action_cfg=dict(
selector="robot_type",
mask={ROBOT_TYPE: AGILEX_COBOT_MAGIC_DELTA_MASK},
# ...
),
norm_cfg=dict(
selector="data_path",
norm_stats_path=[
dict(data_paths=DATA_PATHS, path=NORM_STATS_PATH),
],
# ...
),
# ...
),
# Inside config["models"]:
models=dict(
num_embodiments=8,
# ...
),Do not set robot_type_embodiment_id_overrides for the built-in IDs above. A
custom override is needed only for a genuinely new robot type or model slot.
In that case, set models.num_embodiments to at least the largest ID plus one;
for example, a new ID of 8 requires num_embodiments=9. Use the resolved
embodiment ID and the same delta mask when generating normalization statistics,
and point norm_cfg to those statistics. Also update the dataset paths, camera
keys/repacking, action mask, and action dimensions to match the new robot's
actual data layout. The two provided configs use the built-in mappings for
AgileX Cobot Magic (ID 6) and H01 (ID 7), respectively.
# Train GigaBrain-0.7 for AgileX PiPER.
python scripts/train.py \
--config configs/gb07_pg2_pick_and_place_piper_30k.py
# Train GigaBrain-0.7 for Maker H01.
python scripts/train.py \
--config configs/gb07_pg2_push_buttons_h01_30k.pyBoth configs have been validated through real data loading, forward, backward, AdamW, and scheduler updates. In a controlled ten-step smoke test using the same batch and flow noise, the pick-and-place loss decreased by 51.27% and the push-buttons loss decreased by 31.97%. Normal training changes both the batch and flow noise each step, so inspect a moving average or validation loss rather than expecting every raw training loss to decrease monotonically.
See configure_introduction.md for the configuration schema.
For the two mainline configs, the maintained offline LeRobot rollout entry point is
inference_gigabrain07_flow_rollout.py. It rebuilds the training transform,
loads the EMA checkpoint by default, and writes per-episode MSE/MAE metrics
(and optional plots/replays).
This evaluates saved LeRobot episodes; it is separate from the VLM-Benchmark, RoboColiseum, RoboTwin 2.0, and EBench evaluation workflows linked under Benchmark releases.
python scripts/inference/inference_gigabrain07_flow_rollout.py \
--checkpoint-path /path/to/your/model/checkpoint_epoch_step \
--config-path configs/gb07_pg2_pick_and_place_piper_30k.py \
--datNo open issues yet, or sync has not completed.