Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
open-edge-platform/physical-ai-studio: Physical AI Studio is an end-to-end framework for training robots to perform tasks through imitation learning from human demonstrations.

open-edge-platform/physical-ai-studio: Physical AI Studio is an end-to-end framework for training robots to perform tasks through imitation learning from human demonstrations.

Physical AI Studio

Train and deploy Vision-Language-Action (VLA) models for robotic imitation learning

Key Features • Quick Start • Documentation • Contributing


What is Physical AI Studio?

Physical AI Studio is an end-to-end framework for teaching robots to perform tasks through imitation learning from human demonstrations.

Key Features

  • End-to-End Pipeline - From demonstration recording to robot deployment
  • State-of-the-Art Policies - Native policy implementations such as ACT, SmolVLA, Pi0.5, and RLDX-1, plus the full LeRobot policy zoo
  • Flexible Interface - Use Python API, CLI, or GUI
  • Production Export - Deploy to OpenVINO, ONNX, or Torch for any hardware
  • Standardized Benchmarks - Evaluate on benchmarks such as LIBERO, PushT, and RoboCasa
  • Inference Optimizations - SnapFlow gives about 3× faster Pi0.5 action-chunk inference; LIBERO results
  • Built on Lightning - PyTorch Lightning for distributed training, mixed precision, and more

Quick Start

Application (GUI)

For users who prefer a visual interface for end-to-end workflow:

Application demo

Download the full demo video →

Application Documentation →

Docker

Run the full application (backend + UI) in a single container (using Docker):

# Clone the repository
git clone https://github.com/open-edge-platform/physical-ai-studio.git
cd physical-ai-studio

Setup and run docker services

cd application/docker ./setup-devices.sh --xpu # or use --cuda, --cpu docker compose up -d

Application runs at . See the Docker README for hardware configuration (Intel XPU, NVIDIA CUDA) and device setup.

If you plan to train Hugging Face Hub-backed policies (for example, SmolVLA, Pi0.5, and others), configure HF_TOKEN to avoid unauthenticated Hub access warnings. See Hugging Face Integration.

Native: installation & running

Run the application in development mode, using uv package manager and node v24 (we recommend using nvm)

Note: native setup requires additional OS-level libraries (OpenCV/video/USB and Python build dependencies). See the Prerequisites section in Application Installation.

# Clone the repository
git clone https://github.com/open-edge-platform/physical-ai-studio.git
cd physical-ai-studio

Install and run backend

cd application/backend

Start the backend, or use --extra cpu, --extra cuda

uv run --extra xpu physicalai-studio serve # or: ./run.sh
# In a new terminal: install and run UI
cd application/ui
npm install

Start the UI

npm run start

Open in your browser.

If you plan to train Hugging Face Hub-backed policies (for example, SmolVLA, Pi0.5, and others), configure a Hugging Face token in Settings > General > Hugging Face in the UI to avoid unauthenticated Hub access warnings. See Hugging Face Integration.

Library (Python/CLI)

For programmatic control over training, benchmarking, and deployment with both API and CLI

pip install physicalai-train

Training

``python test="skip" reason="requires dataset download" from physicalai.data import LeRobotDataModule from physicalai.policies import ACT from physicalai.train import Trainer

datamodule = LeRobotDataModule(repo_id="lerobot/aloha_sim_transfer_cube_human") model = ACT() trainer = Trainer(max_epochs=100) trainer.fit(model=model, datamodule=datamodule)

</details>

<details> <summary>Benchmark</summary>

python test="skip" reason="requires checkpoint and libero" from physicalai.benchmark import LiberoBenchmark from physicalai.policies import ACT

policy = ACT.load_from_checkpoint("experiments/lightning_logs/version_0/checkpoints/last.ckpt") benchmark = LiberoBenchmark(task_suite="libero_10", num_episodes=20) results = benchmark.evaluate(policy) print(f"Success rate: {results.aggregate_success_rate:.1f}%")

</details>

<details> <summary>Export</summary>

python test="skip" reason="requires checkpoint" from physicalai.export import get_available_backends from physicalai.policies import ACT

See available backends

print(get_available_backends()) # ['onnx', 'openvino', 'torch', 'executorch']

Export to OpenVINO

policy = ACT.load_from_checkpoint("experiments/lightning_logs/version_0/checkpoints/last.ckpt") policy.export("./policy", backend="openvino")
</details>

<details> <summary>Inference</summary>

python test="skip" reason="requires exported model and environment" from physicalai.inference import InferenceModel

policy = InferenceModel("./policy") obs, info = env.reset() done = False

while not done: action = policy.select_action(obs) obs, reward, terminated, truncated, info = env.step(action) done = terminated or truncated

</details>

<details> <summary>CLI Usage</summary>

bash

Train

physicalai fit --config configs/physicalai/act/pusht/default.yaml

Evaluate

physicalai benchmark --config configs/benchmark/libero.yaml --ckpt_path model.ckpt

Export (Python API only - CLI coming soon)

Use: policy.export("./policy", backend="openvino")

``

Library Documentation →

Documentation

| Resource | Description | | ------------------------------------------- | ----------------------------------- | | Library Docs | API reference, guides, and examples | | Application Docs | GUI setup and usage | | Contributing | Contributing and development setup |

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Chat with me