zk0 [zee-ΛkΕ] is an Open Source Humanoid AI trained collaboratively by a community of builders.
First Milestone:
Ultimate Goal and Massive Transformative Purpose:
π Latest Model Release
The zk0 SmolVLA Federated Learning model is now available on Hugging Face Hub!
You can also read this post with more detailes about the SmolVLA FL milestone.
For the latest extended run results (250 rounds, final loss 0.495) and analysis on skill retention, see the Update: SmolVLA Federated Learning Progress, which includes WandB visualizations.
- Model: ivelin/zk0-smolvla-fl
- Training: 250 rounds of federated learning with FedProx (ΞΌ=0.01, dynamic LR/MU scheduling)
- Final Policy Loss: 0.495
- Clients: 4 clients on diverse SO-100 robotics tasks
- Framework: Flower + SmolVLA + SO-100 datasets
- WandB Run: zk0-sim-fl-run-2025-10-20_23-44-35
from transformers import AutoModel, AutoConfig
import torch
# Load the federated model
model = AutoModel.from_pretrained("ivelin/zk0-smolvla-fl")
config = AutoConfig.from_pretrained("ivelin/zk0-smolvla-fl")
# Ready for robotics manipulation tasks!
Why
AI technology has advanced enough to speculate that within a decade most people will have their own humanoid buddy. By some estimates humanoids will become $100 Trillion market (5B humanoids * $20,000 per unit).
Todayβs leading closed source humanoid is trained on 100,000+ GPU farm with real world data collected from millions of cars labeled by able human drivers and a growing number of humanoid robot prototypes used in real world manufacturing environment. This is an enormous scale of compute and data that is hard to compete with as a centralized entity. However it would be interesting to see if a decentralized approach might produce useful results over time. On the chance that proprietary humanoids ever go rogue, it would be nice to have open source alternatives.
Community Events
Upcoming Events
- Register now for the zk0 event at the upcoming DevConnect conference in Buenos Aires, Argentina on November 18, 2025.
Attending @EFDevcon? Diving deep into Robotics AI?
— ivelin.eth π‘οΈπ€ (@ivelini) October 30, 2025
Join us for the https://t.co/lkOfzCU5G1 meetup: Federated Learning for Robotics AI with ZK Proofs.
The only way to collect a cool https://t.co/lkOfzCU5G1 POAP is to be there in person.https://t.co/UXE5KInLSn pic.twitter.com/jx3Mdl5sXm
Past Events
- Watch a recorded presentation of the project at the Flower Monthly Webcast.
Join the Community
Join our Discord server to connect with other contributors, ask questions, and stay updated on the latest developments:
For more detailed contribution guidelines, see CONTRIBUTING.md and docs/DEVELOPMENT.md.
How
zk0 is composed of several major building blocks:
- Physical Embodiment:
- Open Source 3D printed robot parts
- Base: 3D model so100 series from HuggingFace LeRobot
- Generative AI:
- End-to-end Vision Language Action models.
- Base: SmolVLA model from HuggingFace LeRobot
- Federated Learning:
- Distributed network of nodes contributing local data and training compute to a shared model.
- Base: Flower FL framework
Roadmap
- Zero Knowledge Proofs that allow quick verification and data privacy:
- Onchain contributor coordination
- Immutable contribution history
- Programmable network participation rules, incentives and project governance
- Hosting blockchain: TBD
Quick Start
For detailed setup, see docs/INSTALLATION.md.
Prerequisites
- Python 3.10+, Conda, Git.
- NVIDIA GPU recommended.
Clone and Setup
git clone <repository-url> .
cd zk0
# Create conda env
conda create -n zk0 python=3.10 -y
conda activate zk0
conda install ffmpeg=7.1.1 -c conda-forge
# Install deps
pip install -e .
# Env vars
cp .env.example .env # Edit as needed (e.g., HF_TOKEN)
Run the Simulation
See docs/INSTALLATION.md for full instructions.
# Quick test (1 round, serialized GPU)
./train.sh
# Full run (5 rounds)
conda run -n zk0 flwr run . local-simulation-serialized-gpu --run-config "num-server-rounds=5"
# Docker alternative
./train.sh --docker
Push Model to Hugging Face Hub
After training, your model checkpoint will be automatically pushed to Hugging Face Hub as a complete checkpoint directory. However if the training stops early for any reason, you can still push a saved intermediate checkpoint directory to HF Hub:
# Push model checkpoint directory to HF Hub
conda run -n zk0 python -m zk0.push_to_hf outputs/2025-10-09_13-59-05/models/checkpoint_round_30
# Push to custom repository
conda run -n zk0 python -m zk0.push_to_hf outputs/2025-10-09_13-59-05/models/checkpoint_round_30 --repo-id your-username/your-model
- Defaults: 500 rounds, 4 clients, SO-100/SO-101 datasets.
- Outputs:
outputs/<timestamp>/with logs, metrics, charts (eval_policy_loss_chart.png), checkpoint directories, videos. - HF Hub Push: For tiny/debug runs (e.g.,
num-server-rounds < checkpoint_interval=20), the final model push to Hugging Face Hub is skipped to avoid repository clutter with incomplete checkpoints. Local checkpoints are always saved. Full runs (β₯20 rounds) will push to the configuredhf_repo_id.
Tested: Completes 500 rounds in ~10-15 minutes; policy loss tracks convergence with early stopping.
Repository Branches
- main: Stable releases. Use this for production setups and quick starts.
- staging: Final polish before merging with main. No new features. Only bug fixes and docs polish.
- dev: Active feature development. Pull requests should target dev. Clone or switch with
git checkout devfor latest features (may be unstable).
Project Status
π Current Stage: Beta
Advanced development with core FL for SmolVLA on SO-100/SO-101. v0.3.11 updates: CI workflow consolidation with single matrix job for cleaner testing, lerobot CI fixes, Python 3.10 standardization, and removed redundant artifacts. Enhanced security with bidirectional SHA256 parameter validation between client and server. Consolidated metrics implementation for unified reporting. Dynamic LR/MU scheduling with warm restarts, adaptive boosts, and spike detection. Prepare for commit workflow established for consistent code quality assurance.
Completed Milestones
- β Core Infrastructure: Flower 1.20.0 + Ray 2.31.0 + LeRobot 0.3.0.
- β Client Implementation: SmolVLA training, dataset partitioning.
- β Testing: 30%+ coverage, unit/integration suites.
- β CI/CD: GitHub Actions, auto-testing.
- β Config/Tooling: YAML datasets, env management.
- β Enhanced Security: Bidirectional SHA256 parameter validation.
- β Consolidated Metrics: Server-side evaluation files now include both aggregated and individual client metrics with dataset identification (v0.1.19).
In Progress
- Preparing client and server modules for production deployment
- ZK proofs, onchain coordination.
Full status: docs/ARCHITECTURE.md. Baselines: docs/TECHNICAL-OVERVIEW.md.
Config: 12 clients available (4 active: LEGO bin, direction test, plush toy, stuffed animal); 500 rounds; policy loss metric; FedProx (ΞΌ=0.01); server-side evaluation with 3 diverse evaluation datasets.
Documentation
- Installation: Setup, execution, outputs, troubleshooting.
- Architecture: FL design, components.
- Development: Testing, logging, guidelines.
- Technical Overview: Comparisons, reproducibility, videos.
Contributing
We welcome contributions from the community! At this Beta stage, weβre particularly interested in:
Node Operators
Requirements
- Hardware: LeRobot SO100 or SO101 robotic arm. Contributors can either:
- Build a DIY arm using the official LeRobot SO101 repository
- Or order a pre-built kit, for example this one from Florin who runs the Austin Robotics Meetup.
- Compute: Local machine with RTX 3090 GPU or better, compatible with LeRobot library
- Network: Stable internet connection for federated communication
- Data: Unique training data from your robotics setup
If you meet these requirements, weβd love for you to join as a node operator. Your unique training data and compute resources will help improve the federated learning system. For detailed setup instructions, see CONTRIBUTING.md.
Other Ways to Contribute
There are several ways you can contribute to this project:
- Node Operators: Join the federated network with your hardware and data
- Code Contributors: Improve the codebase, add features, fix bugs
- Documentation: Help improve documentation and tutorials
- Testing: Report bugs, test new features, improve test coverage
- Feedback: Share your experience and suggestions
For more details on each, see CONTRIBUTING.md.
Social Media
It's time for a complete open-source stack for autonomy/robotics plus distributed learning. The first step is here: @LeRobotHF + @flwrlabs LFG π@comma_ai @wayve_ai @Figure_robot @Tesla https://t.co/8O8cSD3SbO https://t.co/oVUOLTvwzm
— nic lane (@niclane7) January 15, 2025
Open-source robots just got a boost. Frameworks like Flower FL enable faster learning, efficient scaling, and continuous knowledge sharing using real-world data. https://t.co/j8VSGiWF0W
— ππͺπΎπ‘π‘πΎ (@gm8xx8) January 15, 2025
We are not so far from a future where robots will be constantly learning by interacting with humans and their environments.
— Remi Cadene (@RemiCadene) January 15, 2025
Frameworks like @flwrlabs will enable these robots to learn much faster by continuously sharing their learnings.
We really live in a sci-fi movie π https://t.co/kAz3xZ2qvB
Federated Learning Meets Robotics: π€ LeRobot + πΌ Flower
— Flower (@flwrlabs) January 15, 2025
This demo demonstrates how robots in remote environments can collaboratively train an AI model using their local data, which is then aggregated into a shared model.
In this quickstart, you will train a Diffusion policy⦠pic.twitter.com/i32MkbxoPW

