zk0 [zee-ˈkō] is an Open Source Humanoid AI trained collaboratively by a community of builders.

First Milestone:

Lerobot + Flower Quickstart Tutorial

Ultimate Goal and Massive Transformative Purpose:

image

πŸš€ 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.

Past Events

Join the Community

Join our Discord server to connect with other contributors, ask questions, and stay updated on the latest developments:

Join zk0 Discord

For more detailed contribution guidelines, see CONTRIBUTING.md and docs/DEVELOPMENT.md.

How

zk0 is composed of several major building blocks:

  • Physical Embodiment:
  • Generative AI:
  • 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:
    • Quickly verifiable proofs that an FL node is making meaningful contributions.
    • Frameworks under consideration:
  • 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 configured hf_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 dev for 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

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:
  • 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:

  1. Node Operators: Join the federated network with your hardware and data
  2. Code Contributors: Improve the codebase, add features, fix bugs
  3. Documentation: Help improve documentation and tutorials
  4. Testing: Report bugs, test new features, improve test coverage
  5. Feedback: Share your experience and suggestions

For more details on each, see CONTRIBUTING.md.

Social Media


Share

image

License: LICENSE Repository: GitHub