Safari SDK: the SDK for Google DeepMind Gemini Robotics models
Project description
Safari SDK: the SDK for Google DeepMind Gemini Robotics models 🦓🦄🐘🐒🐍
Disclaimer
This is not an officially supported Google product.
Safari SDK provides full lifecycle toolings necessary for using Gemini Robotics models, including but not limited to, access checkpoint, serving a model, evaluate the model on robot and in sim, upload data, finetuning the model, download the finetuned checkpoint, etc. Most of the functionality requires you to join Gemini Robotics Trusted Tester Program to use. See details in Gemini Robotics main page.
Source Code
The source code can be found in GitHub.
Note: Unless stated otherwise, the commands below assume that your working
directory is the root of your repository clone (ie, the same directory which
contains the pyproject.toml file).
Installing the SDK
Installing Pip Dependencies
The pyproject.toml file specifies the dependencies for the Safari SDK, including allowed version ranges for some packages. The requirements.txt file specifies exact versions and hashes of each of those dependencies; internal unit tests use these versions, and installing them in a virtual environment before installing the SDK is recommended to avoid failures due to upstream package changes:
pip install -r requirements.txt
Updating Pip Dependencies
A script is provided which updates the requirements.txt file to the most recent versions of dependencies which satisfy the constraints in the pyproject.toml file. This allows those updates to be done at discrete times (rather than whenever those updates are pushed to PyPi) and tested in isolation before being pushed to all users. To run that script:
scripts/update_pip_dependencies.sh
Installing from PyPi
The Safari SDK can be easily installed via PyPI.
pip install safari_sdk
Installing from Source Code
The Safari SDK can also be installed from the source code.
pip install -e .[dev]
Building the Wheel
To build a Python wheel, run the following command from the root of the repository.
scripts/build_wheel.sh
This script will build a pip installable wheel for the Safari SDK, and print the file's path to stdout.
Model support
Safari SDK aims to support all models in the Gemini Robotics model series.
Trusted Testers can access the Gemini Robotics On Device model from SDK v2.4.1.
Libraries
Libraries related to robot data logging is in safari/logging.
Libraries related to model inference and interface with model servers are in
safari/model.
Libraries and binary related to accessing model checkpoints, upload data and
request of model finetune can be found in safari/flywheel.
Examples, including robot and simulation evaluation of models are in
examples/. Aloha specific eval code are in examples/aloha.
Flywheel CLI
The flywheel CLI is a convenient CLI tool available after installation of the pip package. It provides a set of commands to interact with the Gemini Robotics platform, such as training models, serving models, managing data, and downloading artifacts.
To use the CLI
flywheel-cli <command> [--flags] [--flags]
Supported commands are:
train: Train a model. Requires specifying task ID, start date, and end date.serve: Serve a model. Requires specifying the training job ID.list: List available training jobs.list_serve: List available serving jobs.data_stats: Show data statistics available for training.download: Download artifacts from a training job or a specific artifact ID.upload_data: Upload data to the data ingestion service.version: Show the version of the SDK.help: Show this help message with all the available commands and flags.
Agent
The Safari SDK includes a comprehensive agent framework for building interactive
robotics agents powered by Gemini models. See
YouTube Video: Gemini Robotics 1.5: Using agentic capabilities.
The framework is located in safari/agent/framework and provides a modular
architecture for creating agents that can perceive their environment, reason
about tasks, and control robot hardware.
Key Components
Agents (safari/agent/framework/agents/): Base agent classes that integrate
with the Gemini Live API to provide conversational interaction and tool use
capabilities.
Embodiments (safari/agent/framework/embodiments/): Hardware-specific
interfaces that connect agents to physical robot systems (e.g., Aloha robot).
Each embodiment provides tools for robot control.
Tools (safari/agent/framework/tools/): Modular capabilities that agents
can use, including:
- Run instruction
- Success detection
- Scene description
- etc.
Event Bus (safari/agent/framework/event_bus/): Asynchronous
publish-subscribe system for communication between agent components.
Configuration (safari/agent/framework/config.py): Centralized
configuration management using AgentFrameworkConfig, supporting both
programmatic configuration and flag-based setup.
Aloha Agent Example
The examples/aloha/agent/ directory contains agent implementations for the
Aloha robot platform.
The primary example is simple_agent.py, which provides a conversational agent
that can control the Aloha robot using natural language instructions.
To run the Aloha agent, use the provided run.py script:
python examples/aloha/agent/run.py --agent_name=simple_agent
The Aloha agent demonstrates integration of vision-based robot control, multi-camera perception, and conversational interaction with Gemini models.
Alternatively, you build your own agent using the agent framework.
The codebase is still in active development. We will update our most updated user guide with Trusted Testers of Gemini Robotics.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file safari_sdk-2.96.0.tar.gz.
File metadata
- Download URL: safari_sdk-2.96.0.tar.gz
- Upload date:
- Size: 17.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e419dad4bed04f3c03b9c7dcfbf0e0649543f669369fdf75bed87165495ba293
|
|
| MD5 |
622a0b569422bdd1575f379d13f6bb50
|
|
| BLAKE2b-256 |
c61e496e998de8901dffbd245a718821920ee2591ba4a4c40ca2d9f01e484514
|
File details
Details for the file safari_sdk-2.96.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: safari_sdk-2.96.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02a8ba5a8ce8c72eee6647be600678ab4ebc64c0849417846c4b3bb4cefabb30
|
|
| MD5 |
d4152971846632bf33b759969adc1071
|
|
| BLAKE2b-256 |
36c9bbd184fab3994bee1f124f4cebc41db63d070058074ebc5e24dda4258f6a
|
File details
Details for the file safari_sdk-2.96.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: safari_sdk-2.96.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b17156ec33e6bd8dd6df8393ec3980364ddd95b4fef46f7061cd321c140dc23e
|
|
| MD5 |
615c7dfc080cc1c17bb30a3a7b3c5326
|
|
| BLAKE2b-256 |
30a26fe8c21c8c453c8df00f86b6d5f56c723b624b6f65967560ef058b95e55f
|
File details
Details for the file safari_sdk-2.96.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: safari_sdk-2.96.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab63aa6b861a0cc270091aab4e7aa86409987e70777b8a75531936b68392e30f
|
|
| MD5 |
a9949eb694e19dd78909f841a8622fc9
|
|
| BLAKE2b-256 |
d4510cf97f9ffd4b778c833f324898a821daf86df7210362e436abe52eb2e248
|