TurboVLA logo

TurboVLA

TurboVLA: Real-Time Vision-Language-Action Model at 32 Hz on an RTX 4090 with <1 GB VRAM

Developer ToolsPythonApache-2.0 156 14Health 82
Paper arXivHomepage TurboVLACode GitHub🤗 Hugging Face Model
GitHub

What is it?

What it is

A real-time Vision-Language-Action (VLA) model designed for efficient robotic manipulation.

Why it exists

To overcome the high computational and memory overhead of conventional LLM-centric VLA paradigms by replacing the LLM-centric interface with a direct V + L -> A mapping.

Who should use it

Robotics researchers and engineers who need efficient, real‑time vision‑language‑action policies for manipulation tasks, especially those working with consumer‑grade GPUs (e.g., RTX 4090) and simulation environments like LIBERO or RoboTwin.

Who should avoid it

Users with limited GPU resources, beginners unfamiliar with deep learning frameworks, or those who require large LLM‑centric VLA models for tasks beyond real‑time robotic control.

How it works

A quick walkthrough in plain English

How TurboVLA works

Step 1 of 3

You interact with it

Open TurboVLA, send a request, or connect it to your stack.

Features

Direct V + L -> A mapping paradigm
Lightweight bidirectional vision-language interaction
Compact decoder for continuous action chunk prediction
Real-time inference at 32 Hz
Low VRAM footprint (<1 GB on RTX 4090)
Support for LIBERO and RoboTwin benchmarks
Compatible with DINOv3, BERT, and GroundingDINO

Advantages

  • Significantly reduced computational and memory overhead compared to LLM-centric VLA models
  • High performance matching or outperforming larger VLA policies
  • High success rates on LIBERO (97.7% average success)
  • Efficient enough for consumer-grade hardware (RTX 4090)
  • Simpler architecture than conventional V -> L -> A pathways

Disadvantages

  • Requires external pretrained models (DINOv3, BERT, GroundingDINO)
  • Requires specific simulator/data stacks (LIBERO or RoboTwin) for evaluation
  • Requires significant storage for external datasets and model weights

Installation

cloud

not found

docker

not found

native

git clone https://github.com/H-EmbodVis/TurboVLA.git
cd TurboVLA

# For LIBERO:
conda create -n turbovla-libero python=3.10 -y
conda activate turbovla-libero
pip install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121
pip install -e ".[libero]"

# For RoboTwin:
conda create -n turbovla-robotwin python=3.10 -y
conda activate turbovla-robotwin
pip install -e ".[robotwin]"
pip install flash-attn==2.7.4.post1 --no-build-isolation

compose

not found

FAQ

How do I set up the LIBERO environment for TurboVLA?

Clone the repo, create a conda env with Python 3.10, install the correct CUDA‑compatible PyTorch build, then install the project dependencies for LIBERO: ```bash git clone https://github.com/H-EmbodVis/TurboVLA.git cd TurboVLA conda create -n turbovla-libero python=3.10 -y conda activate turbovla-libero pip install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121 pip install -e ".[libero]" ``` Install the LIBERO simulator separately in the same environment.

Where can I download the pretrained TurboVLA checkpoints and assets?

Use the Hugging Face hub to pull the full release, which includes model weights and normalization metadata: ```bash pip install -U huggingface_hub hf download H-EmbodVis/TurboVLA \ --local-dir pretrained/TurboVLA ```

What command trains TurboVLA on the LIBERO benchmark?

Run the following torchrun command (adjust paths as needed): ```bash torchrun --nproc_per_node=4 experiments/libero/train.py \ --dataset_dir data/libero/libero_10_no_noops/1.0.0 \ --dataset_dirs "data/libero/libero_10_no_noops/1.0.0,data/libero/libero_goal_no_noops/1.0.0,data/libero/libero_object_no_noops/1.0.0,data/libero/libero_spatial_no_noops/1.0.0" \ --stats_path experiments/libero/configs/libero_all4_stats.json \ --stats_key libero_all4_no_noops \ --dinov3_path facebook/dinov3-vitb16-pretrain-lvd1689m \ --bert_path google-bert/bert-base-uncased \ --allow_hf_download \ --pretrained_init_ckpt /path/to/groundingdino_swint_ogc.pth \ --checkpoint_dir outputs/libero ```

How do I evaluate a trained TurboVLA checkpoint on a LIBERO suite?

Use the evaluate script with the checkpoint and required assets: ```bash python experiments/libero/evaluate.py \ --ckpt_path pretrained/TurboVLA/checkpoints/libero/libero_object.pth \ --dinov3_path /path/to/dinov3-vitb \ --bert_path /path/to/bert-base-uncased \ --stats_path experiments/libero/configs/libero_all4_stats.json \ --stats_key libero_all4_no_noops \ --task_suite_name libero_object \ --num_trials_per_task 50 \ --chunk_size 12 \ --num_open_loop_steps 12 \ --seed 7 \ --precision bf16 \ --result_json_path outputs/evaluation/libero_object.json ```

What is the procedure to evaluate TurboVLA on the RoboTwin simulator?

First set the environment variables for the RoboTwin path, policy env, and CUDA devices, then run the evaluation script: ```bash export ROBOTWIN_PATH=/path/to/RoboTwin export STARVLA_PYTHON=/path/to/policy-env/bin/python export ROBOTWIN_PYTHON=/path/to/robotwin-env/bin/python export CUDA_VISIBLE_DEVICES=0,1,2,3 ROBOTWIN_TEST_NUM=100 \ bash scripts/robotwin/evaluate.sh \ pretrained/TurboVLA/checkpoints/robotwin/steps_55000_ema_model.safetensors ``` Omit task names to evaluate all 50 clean tasks, or append specific task names to run a subset.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for TurboVLA

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
TurboVLA | MushyBook