VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam
VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
  1. Home
  2. Blog
  3. FluxVLA Engine: Hands-On Guide to the One-Stop VLA Platform
wholebody-vlavlalerobotpi0grootmanipulationdiffusion-policyimitation-learningwbc

FluxVLA Engine: Hands-On Guide to the One-Stop VLA Platform

LimX Dynamics' open-source FluxVLA Engine covers the full pipeline from data to real-robot deployment, supporting Pi0, GR00T, and OpenVLA in one unified framework.

Nguyễn Anh TuấnSeptember 17, 20269 min read
FluxVLA Engine: Hands-On Guide to the One-Stop VLA Platform

If you've ever tried to take a VLA paper from arxiv to a real robot, you know the hidden cost: it's rarely the algorithm that blocks you. It's the engineering. Pi0 ships one data format, GR00T another, OpenVLA a third. Each has its own training stack, its own deployment quirks, its own evaluation harness. Want to compare two models on the same task? Congratulations — you're now maintaining parallel infrastructure that will diverge silently over time.

FluxVLA Engine, released this week by LimX Dynamics together with teams from Nankai University and the University of Hong Kong (arXiv:2609.17210), attacks this problem directly. It doesn't introduce a new policy architecture. Instead, it's a standardized engineering platform that unifies the entire workflow from raw demonstrations to real-robot execution under a single, auditable configuration.

FluxVLA Engine — one-stop VLA platform by LimX Dynamics — source: FluxVLA/FluxVLA repo
FluxVLA Engine — one-stop VLA platform by LimX Dynamics — source: FluxVLA/FluxVLA repo

This guide walks through the full practical pipeline: environment setup, data preparation, training, simulation evaluation, accelerated inference, and deployment on real hardware.

The Three Problems FluxVLA Solves

The VLA ecosystem in 2026 has a fragmentation problem. Three specific bottlenecks:

1. Incompatible data formats — RLDS, LeRobot v2.1, HDF5, custom pickle. Each dataset ships a different schema. Switching models means rewriting your data loader from scratch — not because the algorithm changed, but because the file format did.

2. Tightly-coupled codebases — Pi0's training code isn't GR00T's training code. An apples-to-apples comparison of three architectures requires maintaining three separate training stacks, three evaluation harnesses, and three deployment pipelines that drift apart silently over months.

3. The sim-to-real gap — A policy that scores 95% in LIBERO simulation may fail completely on a real Franka arm if the inference pipeline doesn't correctly handle latency, sensor noise, and hardware timing. That gap lives in the infrastructure, not the algorithm.

FluxVLA standardizes interfaces at each of these points using explicit "contracts" between components — ensuring that the same preprocessing that ran at training time runs at inference time, and that a checkpoint always carries its resolved configuration.

Tool recommendations

VLA train/deploy stack

Train on cloud/workstation, then deploy optimized models to Jetson or the robot computer.

Cloud GPU for VLA / policy training Use for imitation learning, diffusion policies, RL, and robotics model fine-tuning. View cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Edge deployment hardware for perception, logging, and optimized inference. View Jetson → Hugging Face / robotics dataset hosting Host datasets, checkpoints, and model cards for cleaner LeRobot/VLA workflows. View platform →

Five-Layer Architecture

FluxVLA organizes the VLA lifecycle into five explicit layers:

Data Layer — Maps episodes into canonical sample dictionaries through composable transforms. The standard is LeRobot v2.1/v3.x Parquet with metadata in meta/episodes.jsonl. Critically, transforms compose into pipelines (crop → normalize → temporal stack) that run identically at training and inference time, eliminating the classic preprocessing drift bug.

Model Layer — Registry-based construction lets you swap any component independently:

  • Vision encoders: CLIP ViT-B/32, DINOv2 ViT-Large, SigLIP ViT-SO400M, PaliGemma
  • Language models: Qwen 2.5 (3B/7B), Llama 2 (7B), Gemma-family
  • Action heads: discrete token prediction (OpenVLA-style), continuous flow-matching (Pi0-style), DiT
  • Projectors: MLP or Linear bridge from visual tokens to language space

Every model inherits from BaseVLA for consistent distributed training and action prediction interfaces.

Execution Layer — DDP and FSDP via scripts/train.py. Checkpoints are self-contained with their resolved configuration — you always know which config produced which weights, making experiments reproducible months later.

Serving Layer — ZMQ-based transport for observation/action I/O. Models can run on a dedicated GPU server and serve inference over the network, or run locally. This is critical for edge setups where the robot controller and the inference backend live on different hardware.

Operator Layer — Translates framework abstractions into simulator or robot SDK calls. Currently supports: Franka dual-arm and single-arm, ALOHA, UR3, TRON 2, and the Oli humanoid for whole-body manipulation.

Supported Models

Model Params Architecture Best for
OpenVLA 7B Token prediction (SigLIP + LLaMA) Research, benchmarking
GR00T N1.5 3B Cross-attention DiT head Humanoid WBC
GR00T N1.7 3B Improved N1.5 Humanoid WBC
Pi0/Pi0.5 3B Flow-matching, dual Gemma experts ALOHA, UR3, LIBERO
FastWAM 5B World-action model Multi-task generalization
SmolVLA 450M Lightweight Jetson Orin, low-latency
DiT4DiT varies Diffusion-in-tokenizer High-dexterity tasks
DreamZero varies World model integration Sim-augmented training

Also supported as VLM backbones: Qwen2.5-VL (3B), Qwen3-VL (30B), SmolVLM2 (500M).

Installation

FluxVLA provides an automated installer with three modes — pick the right one to avoid unnecessary dependencies:

conda create -n fluxvla python=3.10 -y
conda activate fluxvla

# Simulation only (LIBERO, RoboCasa, MuJoCo)
bash scripts/install_env.sh sim-only

# Real robot only (lighter, no sim dependencies)
bash scripts/install_env.sh real-only

# Full installation (sim + real + all features)
bash scripts/install_env.sh full

The script handles all the painful dependencies automatically: PyTorch + CUDA, FlashAttention wheel build, FFmpeg + av, and the full FluxVLA package.

Headless server note: For training on a GPU server without a display, configure EGL rendering for simulation:

export MUJOCO_GL=egl
export EGL_DEVICE_ID=0  # target GPU index

Data Preparation

FluxVLA uses LeRobot v2.1/v3.x Parquet format as its canonical representation. Pre-processed datasets are available on Hugging Face under the FluxVLA organization:

FluxVLA/libero-spatial-lerobot   — LIBERO Spatial (10 tasks)
FluxVLA/libero-object-lerobot    — LIBERO Object
FluxVLA/libero-goal-lerobot      — LIBERO Goal
FluxVLA/libero-10-lerobot        — LIBERO 10 (long-horizon)
FluxVLA/robocasa-gr1-lerobot     — RoboCasa GR1 tabletop tasks
FluxVLA/franka-realrobot-lerobot — Real-robot Franka demonstrations

For custom datasets (HDF5 from ACT/ALOHA, RLDS from Open X-Embodiment), use the conversion scripts:

# Convert from RLDS
python scripts/convert_rlds_to_lerobot.py \
  --data-dir /path/to/rlds \
  --output-dir /path/to/lerobot_dataset

# Verify structure
python scripts/verify_dataset.py --data-dir /path/to/lerobot_dataset

Expected dataset structure:

dataset/
├── meta/
│   └── episodes.jsonl       # per-episode metadata
├── data/
│   ├── chunk-000/
│   │   ├── episode_000000.parquet
│   │   └── episode_000001.parquet
│   └── chunk-001/
│       └── ...
└── videos/                  # optional compressed observations

Training

FluxVLA uses Python config files (mmengine-style) where a single file manages the entire pipeline: model architecture, data loading, training hyperparameters, evaluation protocol, and deployment interfaces. This is the core of the configuration-as-code approach — one file, one experiment, reproducible forever.

Training Pi0.5 on LIBERO-10:

torchrun --standalone --nnodes 1 --nproc-per-node 2 \
  scripts/train.py \
  --config configs/pi05/pi05_paligemma_libero_10_full_finetune.py \
  --work-dir ./work_dirs/pi05_libero_10_full_finetune \
  --cfg-options train_dataloader.per_device_batch_size=2

--nproc-per-node 2 for 2 GPUs; change to 1 for single-GPU training.

Training GR00T N1.5 on RoboCasa GR1:

torchrun --standalone --nnodes 1 --nproc-per-node 4 \
  scripts/train.py \
  --config configs/groot/groot_n15_robocasa_gr1_full_finetune.py \
  --work-dir ./work_dirs/groot_n15_robocasa_gr1 \
  --cfg-options train_dataloader.per_device_batch_size=4 \
                model.freeze_vision_encoder=True

Multi-node cluster training:

# Node 0 (master):
torchrun --nnodes 2 --nproc-per-node 8 \
  --node-rank 0 --master-addr <NODE0_IP> --master-port 29500 \
  scripts/train.py --config configs/fastwam/fastwam_5b_libero.py

# Node 1:
torchrun --nnodes 2 --nproc-per-node 8 \
  --node-rank 1 --master-addr <NODE0_IP> --master-port 29500 \
  scripts/train.py --config configs/fastwam/fastwam_5b_libero.py

LimX Dynamics claims "full training pipeline under 30 minutes" for smaller models on LIBERO — enabled by FSDP sharding and optimized checkpoint design.

Simulation Evaluation

torchrun --standalone --nnodes 1 --nproc-per-node 2 \
  scripts/eval.py \
  --config configs/pi05/pi05_paligemma_libero_10_full_finetune.py \
  --ckpt-path checkpoints/step-028548-epoch-18-loss=0.0111.safetensors

LIBERO benchmark results (average across 4 task suites):

Model Avg Success Rate
FastWAM-Joint 98.35%
Pi0.5 ~92%
GR00T N1.5 ~87%
OpenVLA ~81%
SmolVLA ~72%

FastWAM-Joint (5B) leads with 98.35% — the strongest result in the group on this benchmark. (See the paper for the full breakdown per task suite.)

RoboCasa GR1 — significantly harder than LIBERO:

Model Success Rate
DiT4DiT 57.25%
FastWAM ~48%
Pi0.5 ~41%
GR00T N1.5 ~35%
SmolVLA 8.75%

The lower numbers on RoboCasa reflect task complexity, not model quality — this benchmark is closer to real-world manipulation difficulty.

Accelerated Inference — 5-10x Speedup

This is FluxVLA's standout technical contribution on the engineering side. The inference pipeline achieves 5-10x speedup over baseline through multiple optimization layers:

FluxVLA inference speedup vs baseline — source: FluxVLA/FluxVLA repo
FluxVLA inference speedup vs baseline — source: FluxVLA/FluxVLA repo

  • CUDA Graph capture — Capture the computation graph once, replay to eliminate per-step CPU overhead
  • Triton kernel fusion — Merge small CUDA kernels into larger ones to reduce memory bandwidth pressure
  • Real-Time Chunking (RTC) — Training-time prefix conditioning combined with test-time guidance ensures smooth action chunk transitions without jerk artifacts at chunk boundaries
  • Trajectory post-processing — Joint-space optimization with jerk-limited filtering for physically smooth robot motion

On NVIDIA Jetson Orin (edge deployment):

  • GR00T-N1.5: 7.4 Hz — sufficient for real-time manipulation (5-10 Hz minimum required)
  • SmolVLA (450M): higher throughput for latency-sensitive applications

Remote inference with ZMQ (when the robot lacks onboard compute):

# On the GPU server:
python scripts/serve_inference.py \
  --config configs/groot/groot_n15_serving.py \
  --port 5555

# On the robot controller (NUC or Jetson):
python scripts/run_robot.py \
  --operator configs/operators/franka_operator.py \
  --inference-server tcp://192.168.1.100:5555

This split architecture is essential for Franka and ALOHA setups where the arm controller runs on a small embedded computer that can't host a 3B+ parameter model.

Whole-Body Manipulation with the Oli Humanoid

FluxVLA supports the Oli humanoid platform for whole-body manipulation — distinguishing it from frameworks focused exclusively on tabletop robot arms. This support extends to the SARM (Segmented ARM) training workflow, which addresses a common real-world problem: uneven demonstration quality.

Arm Reward Modeling (ARM) with reweighting:

# Reward-Adjusted Behavioral Cloning (RA-BC)
torchrun --standalone --nnodes 1 --nproc-per-node 4 \
  scripts/train.py \
  --config configs/sarm/sarm_oli_wholebody.py \
  --cfg-options model.reweighting_method=ra_bc

# Advantage-Weighted Behavioral Cloning (AW-BC)
torchrun --standalone --nnodes 1 --nproc-per-node 4 \
  scripts/train.py \
  --config configs/sarm/sarm_oli_wholebody.py \
  --cfg-options model.reweighting_method=aw_bc

SARM segments demonstrations by quality and reweights gradient contributions — the model learns more from high-quality demos without discarding low-quality ones entirely. This is particularly valuable in real-robot collection where operator fatigue creates naturally uneven datasets.

For a deep-dive into Pi0.5 fine-tuning with teleop data collection, see the AXIS Browser teleop + Pi0.5 pipeline guide. To benchmark OpenVLA versus Pi0.5 on identical task sets with real numbers, the DexVerse comparison is the best reference. If your goal is deploying GR00T N1 on a G1 humanoid end-to-end, the GR00T N1 fine-tuning pipeline covers the complete workflow from data collection to deployment.

Summary

FluxVLA Engine solves the right problem: the VLA community doesn't lack good models — it lacks standardized infrastructure to run and compare them reproducibly.

Four things that make it worth the investment:

  1. Unified config — one Python file controls the entire lifecycle, from data to deployment
  2. Module decoupling — swap vision encoder, language model, or action head without rebuilding infrastructure
  3. 5-10x inference speedup — CUDA Graphs and Triton kernels that are practical for edge deployment, not just benchmarks
  4. Cross-embodiment support — from Franka single-arm to Oli humanoid whole-body manipulation

The codebase is on GitHub under Creative Commons BY 4.0. The paper, pre-processed datasets, and checkpoint downloads are all publicly available.


Related Posts

  • AXIS Browser Teleop + Pi0.5 Fine-tuning: Complete Pipeline
  • GR00T N1: Fine-tune on G1 Robot from Data to Deployment
  • DexVerse: OpenVLA vs Pi0.5 Benchmark on Manipulation Tasks
NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Khám phá VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions

Related Posts

NEWTutorial
DSPv2: Dense Policy Cho Whole-Body Mobile Manipulation
vlawbcwhole-body
wholebody-vla

DSPv2: Dense Policy Cho Whole-Body Mobile Manipulation

DSPv2 kết hợp 3D point cloud với multi-view DINOv2 để tạo policy toàn thân cho robot di động — hướng dẫn cài đặt, training và inference đầy đủ.

9/15/202617 min read
NT
NEWResearch
IntentVLA: Giải Bài Toán Quan Sát Mơ Hồ khi Fine-tune VLA
vlamanipulationimitation-learning
wholebody-vla

IntentVLA: Giải Bài Toán Quan Sát Mơ Hồ khi Fine-tune VLA

IntentVLA mã hóa lịch sử quan sát 16 frame thành intent vector ngắn hạn để giải quyết observation aliasing — vấn đề khiến VLA tạo action mâu thuẫn liên tiếp.

9/13/202615 min read
NT
NEWResearch
EgoHumanoid: Dạy Robot từ Demo VR Người, Không Cần Teleop
egohumanoidwholebody-vlavla
wholebody-vla

EgoHumanoid: Dạy Robot từ Demo VR Người, Không Cần Teleop

EgoHumanoid (RSS 2026) chứng minh co-train VLA từ egocentric human demo + ít robot data vượt robot-only baseline 51% ở môi trường mới.

9/13/202614 min read
NT
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam