The AY-Robots policies comparison page showing the five trainable robot policies with parameter counts, GPU tier, inference latency and minimum episode counts
LicensingVLA modelsGR00TPi0.5SmolVLAOpen source

Open Weights vs Open Source: Which Robot Policies You Can Ship

AY-Robots ResearchAugust 23, 202617 min read

GR00T N1.5 is non-commercial and N1.7 is not. Pi0.5's Apache repo ships a Gemma licence. SmolVLA declares none. What each robot policy licence permits, verified at source.

The OpenVLA model card on Hugging Face says the weights are MIT: "All OpenVLA checkpoints, as well as our training codebase are released under an MIT License." The README in the OpenVLA repository, written by the same team, says the opposite: the pretrained models "are derived from Llama-2, and as such are subject to the Llama Community License." Both were live on 23 August 2026. Only one survives a legal review.

"Open weights" and "open source" are not the same thing. A vision-language-action model ships as three separable layers: training code, model parameters, and the data behind them. Each carries its own terms, and a badge only describes the first. Below: what each of the five policies you can fine-tune here is licensed under, the document that says so, and where two official documents disagree.

What you need to know

  • GR00T N1.7 weights are under the NVIDIA Open Model License (24 October 2025), which permits commercial use. GR00T N1.5 and GR00T N1 weights are under the NVIDIA OneWay Noncommercial License. Same repo, same Apache-2.0 code, opposite answers on shipping.
  • The Isaac-GR00T README says in one place that N1.7 is "fully commercially licensable under Apache 2.0" and in another that the weights are under the NVIDIA Open Model License. Apache-2.0 covers code only.
  • Pi0.5 lives in an Apache-2.0 repo that also ships LICENSE_GEMMA.txt. The LeRobot base checkpoint declares license: gemma, and serving a derivative over an API counts as Distribution.
  • The lerobot/smolvla_base card declares no licence, and the SmolVLA paper never uses the word "license" in 24 pages.
  • ACT is the clean case: there is no ACT base model at all. Its one catch is an ImageNet-pretrained ResNet-18 loaded by default.
  • This reads published documents as of 23 August 2026. It is not legal advice.

Open weights, open source, and the word the OSI actually defined

The Open Source Initiative's Open Source AI Definition 1.0 is the only widely cited attempt to pin the phrase down for a trained policy. It grants four freedoms (use, study, modify, share) and then lists what must be published for them to be exercisable. That list is where robot models fall over.

OSAID 1.0 componentWhat it demandsWhat robot policies publish
Data InformationEnough that a skilled person could rebuild an equivalent system, plus a listing of public training dataA prose paragraph. GR00T N1 gives its dataset licence as "Release Legal Tracker (GR00T-N1)", an internal reference nobody outside NVIDIA can read
CodeFull training and inference source under an OSI-approved licencePresent: Isaac-GR00T, openpi, lerobot, openvla and octo are Apache-2.0 or MIT
ParametersThe weights, under OSI-approved termsRarely. NVIDIA Open Model License, Gemma Terms and Llama Community License are custom, not OSI licences
The three questions that decide everything

For any checkpoint going on a robot you sell: (1) what licence covers the code, (2) what covers the parameter file, a separate artifact hosted elsewhere, (3) what terms attach to the training data. Answer 2 decides whether you can ship, and the badge never tells you.

The licence of every policy you can train today

Every cell below was read from the live source on 23 August 2026.

PolicyCode licenceWeights licenceCommercial?Where it says so
GR00T N1.7Apache-2.0 (Isaac-GR00T)NVIDIA Open Model License, 24 Oct 2025Yes, with notice plus Cosmos attributionModel card plus repo README
GR00T N1.5Apache-2.0 (same repo)NVIDIA License (the OneWay Noncommercial PDF)No. Card: "ready for non-commercial use"Model card License/Terms of Use
Pi0.5Apache-2.0 (openpi)Gemma Terms of UseYes, with pass-through dutiesopenpi root plus pi05_base frontmatter
SmolVLAApache-2.0 (lerobot)Not declaredUndeterminedsmolvla_base has no license field
ACTMIT (original), Apache-2.0 (LeRobot)No pretrained weights existYes, subject to your dataRepo LICENSE files and headers
OpenVLAMITCard says MIT; repo README says Llama Community LicenseContested by two official docsModel card versus repo README
OctoMITMITYesRepo LICENSE and octo-base card
The AY-Robots policies comparison table showing GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA and ACT with parameter counts, GPU tier, inference latency and minimum episodes
The /policies page compares the five models on parameters, GPU tier, latency and minimum episodes. It does not compare them on licence, the axis that decides whether you can sell the result.

GR00T: one repository, two opposite sentences

The GR00T N1.7 case shows why a single line is never enough. The Isaac-GR00T README contains both of these, about 530 lines apart.

text
# Isaac-GR00T README, line 70:
GR00T N1.7 is fully commercially licensable under Apache 2.0. It delivers
comparable performance to N1.6, with improved generalization ...

# Isaac-GR00T README, License section, line 599:
## License

- **Code:** Apache 2.0 - see [LICENSE](LICENSE)
- **Model weights:** [NVIDIA Open Model License](...)
Two statements from one file. The first reads as if the weights are Apache-2.0. The License section says they are not.

The License section is correct, and the card agrees: "This model is released under the NVIDIA Open Model License Agreement", described as "ready for commercial/non-commercial use". So N1.7 is shippable. The line-70 phrasing is loose rather than malicious, but quote it in a compliance document and you have cited the wrong licence.

Distributing the model or a derivative requires the notice "Licensed by NVIDIA Corporation under the NVIDIA Open Model License". Because the backbone is Cosmos-Reason2-2B, the Cosmos clause adds "Built on NVIDIA Cosmos" in your documentation, website or interface. The licence terminates automatically on patent or copyright litigation, or on circumventing a safety guardrail. NVIDIA claims no ownership in outputs.

GR00T N1.5 and GR00T N1 are non-commercial

The GR00T N1.5 card states "This model is ready for non-commercial use" and links a PDF headed only "NVIDIA License"; the name OneWay Noncommercial and the date 22 March 2022 live in the filename, not in the document. Open it anyway: section 3.3 defines "non-commercially" as "for research or evaluation purposes only", narrower than most readers assume. The GR00T N1 (2B) card links the same PDF but carries no "ready for" sentence at all. Building a product rather than a paper, pick N1.7: the head-to-head covers the rest.

The AY-Robots comparison page putting GR00T N1.7 against Pi0.5, with parameters, GPU requirement, inference latency and dataset format
GR00T N1.7 against Pi0.5 on /compare. The technical rows differ by 333 ms per action step; the licence rows differ by whether NVIDIA or Google sets your obligations.

A smaller wrinkle on the same card: the line announcing the backbone reads "GR00T-N1.7 VLM backbone is now Cosmos-Reason2-2B" while the link under it points at Cosmos-Reason2-8B. Both pages resolve and carry the same licence, which is why nobody has noticed.

Pi0.5: an Apache-2.0 repository with a second licence file in it

The Pi0.5 code lives in Physical Intelligence's openpi repository. GitHub reports it as Apache-2.0, which is right for the code. The repository root holds two licence files.

text
$ ls   # openpi repository root
CONTRIBUTING.md
LICENSE              <- Apache License 2.0
LICENSE_GEMMA.txt    <- "Gemma Terms of Use, Last modified: February 21, 2024"
README.md
docs/  examples/  packages/  scripts/  src/  third_party/
openpi ships the Gemma Terms of Use alongside Apache-2.0. The README mentions neither file.

The reason is architectural: Pi0.5 is a flow matching policy on a PaliGemma backbone, and PaliGemma ships under the Gemma Terms of Use, not an OSI licence. That propagates to the LeRobot mirror of the base checkpoint, which is the artifact this platform fine-tunes. Its frontmatter says so in one line.

yaml
---
language:
- en
library_name: lerobot
pipeline_tag: robotics
tags:
- vision-language-action
- imitation-learning
- lerobot
inference: false
license: gemma
---
Frontmatter of lerobot/pi05_base. The last line is the one that sets your obligations.
  • A fine-tuned Pi0.5 checkpoint is a "Model Derivative", defined as any modification to Gemma or work based on it.
  • "Distribution" explicitly includes "providing or making Gemma or its functionality available as a hosted service via API, web access, or any other electronic or remote means". Serving your policy from a cloud endpoint is Distribution.
  • On distribution you must pass the Section 3.2 use restrictions through in your own enforceable terms, give recipients a copy of the agreement, and mark modified files. The Notice file reading "Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms" is required for every Distribution other than through a Hosted Service, so the API case skips that one duty.
  • Google reserves the right to restrict usage, remotely or otherwise, of anything it reasonably believes breaches the agreement.
  • Outputs are not Model Derivatives and Google claims no rights in them. The joint angles your policy emits are yours.
The vendored licence is a 2024 snapshot

LICENSE_GEMMA.txt in openpi is stamped "Last modified: February 21, 2024". The live terms at ai.google.dev/gemma/terms are stamped 1 April 2026. Diff them: every clause quoted above is unchanged, but Section 4.1 dropped the 2024 duty to "make reasonable efforts to use the latest version of Gemma", and the list of covered models moved into an Appendix that names PaliGemma outright. Fetch the live version and record the date.

SmolVLA: the licence field is empty

The SmolVLA code is unambiguous: lerobot is Apache-2.0 and the SmolVLM-2 backbone checkpoints are Apache-2.0. The weights are the problem, because there is nothing there to read. The lerobot/smolvla_base frontmatter ends at inference: false with no license key, the Hub API returns none, and the SmolVLA paper does not contain the string "license" once in 24 pages.

bash
# check any Hugging Face repo's declared licence without cloning it
curl -s https://huggingface.co/api/models/lerobot/smolvla_base \
  | python3 -c "import sys,json; c=json.load(sys.stdin).get('cardData',{}); \
      print('license:', c.get('license'), '| name:', c.get('license_name'))"
# license: None | name: None

curl -s https://huggingface.co/api/models/lerobot/pi05_base \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['cardData'].get('license'))"
# gemma
The Hub API is the fastest licence check there is. It reads the frontmatter the web page renders as a badge.

This is not bad faith. By the OSAID standard SmolVLA is the most open model here, because the team published the data too: pretraining used a filtered subset of 481 community datasets from the Hub, 22.9K episodes and 10.6M frames. GR00T and Pi0.5 publish nothing comparable. But undeclared is undeclared, and those 481 LeRobot datasets came from hobbyists whose licence fields drift as described below. If you need a written permission for a reviewer, open an issue on the lerobot repository.

ACT: clean, with one ImageNet-shaped asterisk

The ACT case is easy structurally: there is no ACT base model. It trains from scratch on your task, so no vendor checkpoint enters your build. The original ALOHA repository is MIT, copyright 2023 Tony Z. Zhao; the LeRobot port carries an Apache-2.0 header crediting Zhao and Hugging Face; the action chunking model definitions are adapted from DETR, which is Apache-2.0. Every layer is OSI-approved. The asterisk is in the default config.

python
# lerobot/src/lerobot/policies/act/configuration_act.py
chunk_size: int = 100
n_action_steps: int = 100
vision_backbone: str = "resnet18"
pretrained_backbone_weights: str | None = "ResNet18_Weights.IMAGENET1K_V1"
The ACT defaults. The last line pulls ImageNet-1k pretrained weights from torchvision on first run.
The clause that catches people who thought they trained from scratch

The torchvision code is BSD-3-Clause, but the ImageNet terms of access state that "Researcher shall use the Database only for non-commercial research and educational purposes", and bind a for-profit employer too. Whether that reaches a downstream ResNet-18 weight file has never been tested. To make the argument not exist, set pretrained_backbone_weights: null and train the vision tower from random init, at the cost of more episodes.

OpenVLA and Octo: two MITs that mean different things

Back to the opening. The OpenVLA card declares license: mit in frontmatter, states "License: MIT" in the model summary, and asserts MIT for all checkpoints. The repository README, under "Explicit Notes on Model Licensing & Commercial Use", says the pretrained models inherit restrictions from Llama-2 and fall under the Llama Community License. The upstream Prismatic authors say the same about their own weights.

That difference is not academic. The Llama Community License adds a notice requirement, an acceptable use policy, a bar on improving competing language models, and a separate-licence trigger above 700 million monthly active users. MIT adds none of those. Because Hugging Face indexes the frontmatter, filtering the Hub by MIT returns openvla-7b, so the less careful document is the one everyone sees. Octo is the counterexample: MIT repo, MIT card, a T5-Base language encoder rather than a restrictively licensed LLM, 93 M parameters. Small models on permissive backbones do not accumulate licence debt.

The data layer, where the drift is worst

Dataset licences degrade every time somebody re-uploads a dataset in a new format. The clearest instance sits in NVIDIA's own N1.7 card, which names its SimplerEnv Bridge data as a LeRobot conversion of BridgeData V2.

DatasetLicence at the original sourceLicence on the Hub re-uploadNote
BridgeData V2, 60,096 trajectoriesCC BY 4.0, on the Berkeley project pageapache-2.0, on IPEC-COMMUNITY/bridge_orig_lerobotRe-upload lists Homepage and Paper as "More Information Needed"
Open X-Embodiment, 60 source datasetsApache-2.0 software, CC BY 4.0 for "all other materials", plus each component's termsVaries per subsetThe collection licence does not override a component's terms
GR00T-X-Embodiment-Simcc-by-4.0, declared by NVIDIASameAttribution required, which most writeups omit
SVLA SO100 PickPlaceapache-2.0SameThe SmolVLA reference set, 50 episodes
Re-uploads are where provenance dies

A CC BY 4.0 dataset relabelled apache-2.0 by a converter is not thereby Apache-2.0. CC BY requires attribution and Apache-2.0 does not, so training on the re-upload drops an obligation you never knew you had. Open the converted card, find the original project page, compare. Open X-Embodiment states its own split plainly: software Apache-2.0, all other materials CC BY 4.0. Practise on the dataset directory: read the licence before the episode count.

Auditing a policy's licence in about five minutes

Short enough that skipping it is a choice, and it catches every contradiction above.

  1. 1
    Read the weights frontmatter, not the rendered page

    An absent licence renders as no badge, not a warning. Query the API so it shows as None.

    bash
    for m in nvidia/GR00T-N1.7-3B nvidia/GR00T-N1.5-3B lerobot/pi05_base lerobot/smolvla_base; do
      echo -n "$m -> "
      curl -s "https://huggingface.co/api/models/$m" \
        | python3 -c "import sys,json; c=json.load(sys.stdin).get('cardData',{}); print(c.get('license'), c.get('license_name'))"
    done
  2. 2
    Look for a second licence file in the repository

    GitHub's detector reports one LICENSE. A second file means the project knows the code and the weights differ.

    bash
    git clone --depth 1 https://github.com/Physical-Intelligence/openpi
    ls openpi | grep -i licen
    
    # LICENSE
    # LICENSE_GEMMA.txt
  3. 3
    Grep the README and read every hit

    Do not skim. The contradictions live between the first hit and the last.

    bash
    curl -s https://raw.githubusercontent.com/NVIDIA/Isaac-GR00T/main/README.md \
      | grep -n -i "licen\|commercial"
    
    # 70: ... fully commercially licensable under Apache 2.0 ...
    # 601: - **Code:** Apache 2.0
    # 602: - **Model weights:** NVIDIA Open Model License
  4. 4
    Walk up the backbone chain until the terms have no parent

    GR00T N1.7 leads to Cosmos-Reason2-2B, Pi0.5 to PaliGemma, OpenVLA to Prismatic and then Llama-2. Note gating: a gated backbone is an account dependency.

    bash
    curl -s https://huggingface.co/api/models/nvidia/Cosmos-Reason2-2B \
      | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['cardData'].get('license_name'), '| gated:', d.get('gated'))"
    
    # nvidia-open-model-license | gated: auto
  5. 5
    Archive what you read, with the date

    Upstream edits model cards without a history a reviewer can follow. The copy you can produce in six months is the only one that counts.

    bash
    d=$(date +%F); mkdir -p licence-audit/$d
    curl -sL https://huggingface.co/nvidia/GR00T-N1.7-3B/raw/main/README.md \
      -o licence-audit/$d/groot-n17-card.md
    curl -sL https://raw.githubusercontent.com/Physical-Intelligence/openpi/main/LICENSE_GEMMA.txt \
      -o licence-audit/$d/openpi-gemma-terms.txt

Doing it yourself versus doing it here

You clone the trainer and fetch the base checkpoint yourself, so you own the whole chain, including noticing which checkpoint you took. The two GR00T base models differ by one character in the path and by commercial versus non-commercial in the terms.

bash
# GR00T N1.7: weights under NVIDIA Open Model License, commercial use permitted
CUDA_VISIBLE_DEVICES=0 uv run python \
    gr00t/experiment/launch_finetune.py \
    --base-model-path nvidia/GR00T-N1.7-3B \
    --dataset-path demo_data/cube_to_bowl_5 \
    --embodiment-tag NEW_EMBODIMENT \
    --modality-config-path examples/SO100/so100_config.py \
    --num-gpus 1 \
    --output-dir /tmp/test_finetune \
    --max-steps 2000 \
    --global-batch-size 32 \
    --dataloader-num-workers 4

# change 1.7 to 1.5 above and your output checkpoint is non-commercial.
# Nothing in the CLI output will say so.
The Isaac-GR00T entry point. It is a tyro CLI and exposes no seed flag, so runs are not bit-for-bit reproducible.
bash
# Pi0.5 via openpi: Apache-2.0 code, Gemma-licensed weights
uv run scripts/compute_norm_stats.py --config-name pi05_libero
XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_libero \
    --exp-name=my_experiment --overwrite

# SmolVLA via lerobot: Apache-2.0 code, undeclared weights licence
lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/mydataset \
  --batch_size=64 --steps=20000 \
  --output_dir=outputs/train/my_smolvla \
  --policy.device=cuda
Two more trainers, two more licence regimes, no warning from either CLI.
What you gain

Complete provenance. You know the URL every byte came from and can archive the licence text next to the checkpoint. For anything that will be audited, this is the right answer.

Whether restrictive weights are worth it

Building on a permissively licensed policy instead of the strongest one
Advantages
  • ACT brings no upstream weights at all, and Octo's are MIT: retain the copyright notice and you are done. No acceptable use policy, no termination clause.
  • ACT runs at about 20 ms per action step against 152 ms for GR00T N1.7 and 485 ms for Pi0.5, which matters more than licence text once the arm moves.
  • The 24 GB tier costs about 1 to 3 USD per run against 4 to 12 USD for the 80 GB tier, so licence-clean experiments are also the cheap ones.
  • No gated backbone. Cosmos-Reason2-2B is gated on the Hub, one more account in your build pipeline.
Trade-offs
  • ACT needs 50 episodes here and has no language conditioning, so one checkpoint means one task. GR00T and Pi0.5 bring pretrained world knowledge it cannot fake.
  • SmolVLA is the middle ground at about 450 M parameters and 30 minimum episodes, but an undeclared licence is arguably worse than a restrictive one you can read.
  • The NVIDIA Open Model License does permit commercial use, so avoiding N1.7 on licence grounds alone is overcautious.
  • None qualifies as open source AI under OSAID 1.0, so "pick the open source one" is not an available strategy.

What this platform does not solve

AY-Robots rents GPUs, runs vendor trainers on your LeRobot dataset and serves the result. It does not grant you a licence, indemnify you, audit the dataset you supplied, or warn you when the model you picked is non-commercial. Your checkpoint carries whatever terms the vendor's base checkpoint carried.

A second limit shapes what you can ship at all: inference has to sit next to the servos for fast tasks. The control loop runs at 20 to 485 ms per action step depending on model, and public-internet round trips turn a working policy into a hesitant one. The inference pod auto-provisions a GPU and kills itself on an idle watchdog so nothing bills silently, but no watchdog fixes the speed of light. Cloud inference suits slow pick-and-place, not fast reactive motion.

The AY-Robots arena leaderboard, a sortable table of 85 vision-language-action models with 332 benchmark results linked to their sources
The arena tracks 85 VLA models and 332 benchmark results, each linked to its source. It ranks capability, not licence.

It helps indirectly: every benchmark number in the arena links to the paper or model card it came from, the same document that carries the licence.

85 models, 332 benchmark results, every number sourced

Vision-language-action models side by side, each score linked to the paper or model card it came from, which is the same page where the licence is written. Compare capability and terms in one pass.

Open the arena

A default that survives a legal review

One recommendation instead of a matrix: for a commercial SO-100 product, fine-tune GR00T N1.7, archive the NVIDIA Open Model License text with the date you fetched it, and put the required notice plus "Built on NVIDIA Cosmos" in your documentation. For research, anything here works including GR00T N1.5. For a product with no upstream weight terms at all, train ACT on your own imitation learning data with the ImageNet backbone disabled, and pay for that cleanliness in episodes.

One last licence-adjacent trap: a LeRobot v3.0 dataset crashes the GR00T loader and must be converted down to v2.1, and conversion is exactly where a licence field gets rewritten by whoever ran the script. See the dataset version failure mode, and the first-policy walkthrough. Further reading: how VLA models work, the flow matching lineage behind Pi0.5, and Open X-Embodiment, whose per-dataset terms sit under most of these models.

Can I sell a robot product that runs a fine-tuned GR00T N1.7 policy?

By the terms published on 23 August 2026, yes. The N1.7 card releases the model under the NVIDIA Open Model License Agreement and calls it "ready for commercial/non-commercial use". Distributing the model or a derivative requires the notice "Licensed by NVIDIA Corporation under the NVIDIA Open Model License", and because the backbone is Cosmos-Reason2-2B you must also display "Built on NVIDIA Cosmos". GR00T N1.5 and GR00T N1 point at the NVIDIA OneWay Noncommercial License instead.

The repo says Apache-2.0. Why is that not enough?

A repository licence covers the files in it, which are code. Weights are a separate artifact hosted elsewhere with their own terms. Isaac-GR00T says so in its License section: code Apache 2.0, model weights NVIDIA Open Model License. openpi is Apache-2.0 and ships LICENSE_GEMMA.txt for the same reason.

What does it mean that SmolVLA's weights have no licence?

No permission has been documented where permissions normally are. The card has no license field, the Hub API returns none, and the paper never uses the word. The code is Apache-2.0 and the intent is clearly open, but intent is not a grant. Ask the lerobot maintainers in writing.

Does fine-tuning strip the base model's licence?

No. Every set of terms here reaches derivatives explicitly. Gemma defines "Model Derivatives" to include any modification or work based on Gemma; the NVIDIA Open Model License covers Derivative Models; the Llama Community License covers derivative works. Outputs differ: Google and NVIDIA both disclaim ownership of what the model produces, so the joint angles your policy emits are yours.

Is serving a policy over an API the same as distributing it?

Under the Gemma terms, yes. Distribution includes "providing or making Gemma or its functionality available as a hosted service via API, web access, or any other electronic or remote means", so a Pi0.5 derivative behind an endpoint a customer's robot calls triggers the distribution obligations. Other licences draw the line elsewhere, which is why the layer-by-layer read matters.

Are any of these actually open source AI?

Not by the Open Source Initiative's Open Source AI Definition 1.0, which requires Data Information, Code and Parameters under open terms. All publish code openly; none publishes Data Information at the level the definition asks for. SmolVLA comes closest, since its 481 pretraining datasets are named and public, but its weights carry no declared terms.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started