gitwtfhub

wtf is soccerbot?

arjuncoder1/soccerbot — explained in plain English

Analysis updated 2026-05-18

1PythonAudience · researcherComplexity · 5/5Setup · hard

TL;DR

The codebase for a Unitree G1 humanoid robot that picks up a soccer ball with a learned AI skill, then runs a scripted goalkeeper routine to throw it.

Mindmap

mindmap
  root((Soccerbot))
    What it does
      Robot picks up ball
      Scripted goalkeeper moves
      Throws ball at person gone
    Tech stack
      Python
      GR00T model
      LeRobot
      Unitree G1
    Use cases
      Humanoid robot research
      Vision language action policies
      Robot fine tuning pipelines
    Audience
      Robotics researchers
      ML engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Study how a learned vision language action policy is combined with scripted robot behavior.

REASON 2

Fine tune a GR00T robotics model on demonstration data using the included Modal training pipeline.

REASON 3

Build a real time inference loop that drives a Unitree G1's arms from a trained checkpoint.

REASON 4

Use as a reference architecture for splitting learned and hardcoded robot behaviors.

What's in the stack?

PythonGR00TLeRobotModalunitree_sdk2pyuv

How it stacks up

arjuncoder1/soccerbot0xustaz/streamgatea-bissell/unleash-lite
Stars111
LanguagePythonPythonPython
Setup difficultyhardhardhard
Complexity5/54/54/5
Audienceresearcherdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1day+

Requires physical Unitree G1 hardware, a Modal cloud account for training, and several unfinished components before end to end use.

The README does not state a license.

Wtf does this do

Soccerbot is the codebase behind a real humanoid robot project, using a Unitree G1 robot, that performs a two part soccer trick. First, the robot picks a ball up off a table using a learned skill trained from demonstrations. Then it switches into a scripted, hardcoded sequence: it turns around 180 degrees, watches for a nearby person using its camera's depth sensing, shuffles side to side like a goalkeeper while someone is nearby, and throws the ball straight ahead once no person has been detected for six seconds. The two phases are built as deliberately separate systems. The pickup skill uses an AI model called GR00T, trained only to control the robot's two arms, without using its legs, waist, or fingers. The robot's hands stay in a fixed position rather than actively gripping, since there is no learned grasping. The goalkeeper sequence that follows is plain scripted robot control with no AI model involved at all, so the two parts never depend on each other. The repository is organized as a workspace with several separate pieces. A training component, which the README describes as implemented and tested, submits model fine-tuning jobs to cloud GPUs through a service called Modal. A vendored copy of an open source robotics library called LeRobot supplies most of the underlying machine learning code. Two other pieces, meant to run the trained model live on the real robot and to run the scripted goalkeeper behavior, are currently just placeholder stubs with no real logic yet. A top level orchestrator folder is also an empty stub with no defined purpose so far. The README is written specifically to also serve as an orientation document for AI coding assistants picking up the project, separate from a companion file covering local development environment setup. This is a research and robotics engineering project, not something that runs without physical hardware. The README does not state a license.

Yoink these prompts

Prompt 1
Explain how this repo's pickup phase and goalkeeper phase stay decoupled from each other.
Prompt 2
Walk me through running the GR00T training pipeline in training/main.py on Modal.
Prompt 3
What still needs to be built in local-vla-inference and scripted-behavior according to this README?
Prompt 4
Summarize the robot hardware and sensor setup this project assumes.

Frequently asked questions

wtf is soccerbot?

The codebase for a Unitree G1 humanoid robot that picks up a soccer ball with a learned AI skill, then runs a scripted goalkeeper routine to throw it.

What language is soccerbot written in?

Mainly Python. The stack also includes Python, GR00T, LeRobot.

What license does soccerbot use?

The README does not state a license.

How hard is soccerbot to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is soccerbot for?

Mainly researcher.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.