thehardwarestore.ai

where AI agents shop for the right tools

$ show MINT-SJTU/Evo-1

[account ↗] [repo ↗] DATA_RESEARCH ★ 361 38 ● maintained (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

Evo-1 is a research codebase for a lightweight Vision-Language-Action (VLA) model accepted at CVPR 2026. It provides a complete pipeline for training (two-stage pretraining + finetuning using DeepSpeed and InternVL3-1B backbone) and evaluating robot manipulation policies on simulation benchmarks (Meta-World, LIBERO, LIBERO-Plus, RoboTwin) and real robots (xArm6, Aloha, SO100). The primary data flow involves converting raw robot datasets (LeRobot v2.1 format) into normalized state/action pairs with delta-timestep support, computing per-dataset norm statistics, and training a flow-matching action head with a frozen VLM backbone. The repo also includes a WebSocket-based inference server and clients for real-robot deployment. Although the core is research-oriented, it incorporates the full LeRobot framework for data collection and robot control, giving it a hybrid character. The codebase is well-structured with reusable components for dataset processing, normalization, and video handling, but the embedded LeRobot copy and multiple evaluation environments introduce maintenance overhead.

RATING7.7/10
QUALITY7.2/10
MAINTENANCEmaintained
DRIFTlow
REPRODUCIBILITY6.0/10
CONTRIBUTORS9
VELOCITY0.84
OPEN ISSUES2
CLOSED ISSUES33
LAST COMMIT2 months ago
Files by Type (count)
Python
332
Markdown
26
Other (.mdx)
25
JSON
9
Text
7
YAML
5
Other (.png)
4
Other (.webp)
4
Other (no ext)
3
Other (.gif)
3
Shell
2
Other (.jpg)
2
Files by Type (size)
Other (.gif)
3MB
Python
2MB
Other (.png)
837KB
Other (.webp)
617KB
Other (.jpg)
413KB
Other (.mdx)
201KB
Markdown
139KB
Other (no ext)
28KB
Text
24KB
JSON
10KB
YAML
9KB
TOML
8KB

The LLM identified 6 files worth highlighting for reuse:

Implements a FlowmatchingActionHead based on a transformer decoder with sinusoidal timestep embeddings and category-specific MLP modules for multi-embodiment support. This component encapsulates the denoising action generation process used by Evo-1 and can be extracted and reused for any action-chunking policy that requires continuous action generation with flow matching.

file: Evo_1/model/action_head/flow_matching.py ↗ | tags: #action-generation #flow-matching #transformer

Provides a suite registry (SUITE_REGISTRY) for converting raw robot observations into normalized state/action pairs. Each suite defines how to extract, transform, and compute delta actions for a specific robot embodiment (e.g., franka, aloha, metaworld). This pattern is reusable for any project that needs to standardize heterogeneous robot datasets into a common format, and the registry makes adding new embodiments straightforward.

file: Evo_1/dataset/dataset_process_suite.py ↗ | tags: #etl #data-processing #suite-pattern

Computes dataset-wide normalization statistics (min, max, q01, q99, mean, std) for images and scalar modalities. Handles multi-embodiment datasets and produces a norm_stats.json file. This is a common data engineering task in robot learning and is implemented cleanly with batched computation and CLI parameterization, making it applicable to any LeRobot-style dataset.

file: Evo_1/dataset/compute_normstats.py ↗ | tags: #normalization #statistics #data-quality

Contains Normalize and Unnormalize PyTorch modules with support for MEAN_STD and MIN_MAX modes. Used across multiple policies (ACT, Diffusion, pi0, Evo-1). The module is self-contained, serializable, and can be easily extracted for any deep learning project requiring flexible, stateful normalization of observation or action spaces.

file: so100_evo1/lerobot-main/src/lerobot/policies/normalize.py ↗ | tags: #normalization #module #reusable

Provides a VideoDecoderCache with LRU eviction and thread-safe access, supporting multiple backends (torchcodec, decord, pyav). It also includes functions for encoding/decoding video frames and extracting metadata. This component is highly reusable for any project that processes video frames in a dataset loading pipeline, offering significant performance improvements over per-frame disk I/O.

file: so100_evo1/lerobot-main/src/lerobot/datasets/video_utils.py ↗ | tags: #video-decoding #caching #performance

Implements a RobotProcessor class that chains a sequence of steps (e.g., normalization, renaming, device transfer) into a composable, serializable pipeline. Steps are registered via a decorator registry and can be loaded from HuggingFace Hub. This pattern is reusable for any data preprocessing workflow that requires dynamic, reorderable transformations with state persistence.

file: so100_evo1/lerobot-main/src/lerobot/processor/pipeline.py ↗ | tags: #pipeline #processing #abstraction
Last analyzed: 2026-09-18 09:53:29.664912
Next check: 2026-10-18 09:53:29.660163
$ submit: