explaingit

noietch/eva-client

Analysis updated 2026-05-18

75PythonAudience · researcherComplexity · 5/5Setup · hard

TLDR

A browser based framework that deploys, evaluates, and collects data from real robots, working across multiple robot types and AI policy models.

Mindmap

mindmap
  root((EVA-Client))
    What it does
      Robot deployment
      Policy evaluation
      Data collection
    Tech stack
      Python
      ROS1 and ROS2
      ZeroMQ
    Use cases
      Real robot control
      Checkpoint sweeps
      Teleop data capture
    Audience
      Robotics researchers
      Embodied AI 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

What do people build with it?

USE CASE 1

Deploy an AI policy to control a real robot arm or humanoid from a single config file.

USE CASE 2

Run evaluation sweeps across multiple model checkpoints with recorded video and per trial scores.

USE CASE 3

Teleoperate a robot to collect training data directly into LeRobot dataset format.

USE CASE 4

Let a human step in mid rollout to correct a robot policy and capture that correction as training data.

What is it built with?

PythonROSZeroMQWebSocket

How does it compare?

noietch/eva-clientgoogle-cloud-ai/alphaevolve-on-googlecloudhumanmllm/swim
Stars757575
LanguagePythonPythonPython
Setup difficultyhardhardhard
Complexity5/54/55/5
Audienceresearcherdeveloperresearcher

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

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires real robot hardware, a supported policy backend, and a transport layer like ROS or ZeroMQ.

In plain English

EVA-Client is a framework for working with real robots, built to handle deployment, evaluation, and data collection all from a browser based console. The README describes it as one policy, any robot, meaning the same tool can drive different kinds of physical robot arms and humanoids through a shared workflow, letting you debug, record, evaluate, and visualize what the robot is doing without switching tools. On the deployment side, you write a single Python config file that wires together a transport layer, such as ROS1, ROS2, ZeroMQ, or replaying an offline dataset, a policy backend that runs the actual AI model, such as OpenPI, StarVLA, or GR00T, and an inference strategy that decides how actions are computed and timed. The framework currently supports six real robots, ranging from dual arm setups to full humanoids, and lets you switch between them from the same debug panel. For evaluation, EVA-Client can run sweeps across multiple model checkpoints and records detailed data for every trial, including camera video, a 3D scene reconstruction, per dimension state charts, and scores tied to specific prompts, all replayed later in a results tab. For data collection, you can teleoperate a robot and capture the session directly into the LeRobot dataset format, with a background process handling saving, an in browser pass or fail review step, and video encoding, so that both human demonstrations and AI generated rollouts share the same file layout on disk. A newer addition lets a person step in during a live policy run to correct or guide it, with the resulting interventions saved as extra training data, and there is also a real time chart showing an estimated value or quality signal as the robot works. For advanced users, the entire deploy, evaluate, and collect loop can also be run headless from a single config file over a socket connection, without needing the browser interface at all. This is a research and robotics engineering tool aimed at people who already work with physical robot hardware, not a general audience product.

Copy-paste prompts

Prompt 1
Help me write an EVA-Client config that connects a robot over ROS2 to an OpenPI policy backend.
Prompt 2
Explain how EVA-Client's evaluation tab records per trial data for checkpoint sweeps.
Prompt 3
Walk me through setting up teleop data collection in EVA-Client that saves to LeRobot format.
Prompt 4
Show me how to run EVA-Client headless over its ZMQ control channel without the browser console.

Frequently asked questions

What is eva-client?

A browser based framework that deploys, evaluates, and collects data from real robots, working across multiple robot types and AI policy models.

What language is eva-client written in?

Mainly Python. The stack also includes Python, ROS, ZeroMQ.

How hard is eva-client to set up?

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

Who is eva-client for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.