visualize_dataset / README.md
mishig's picture
mishig HF Staff
docs: update README with new features and dependencies
c3694ad
---
title: Visualize Dataset (v2.0+ latest dataset format)
emoji: 💻
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false
license: apache-2.0
---
# LeRobot Dataset Visualizer
LeRobot Dataset Tool and Visualizer is a web application for interactive exploration and visualization of robotics datasets, particularly those in the LeRobot format. It enables users to browse, view, and analyze episodes from large-scale robotics datasets, combining synchronized video playback with rich, interactive data graphs.
## Project Overview
This tool is designed to help robotics researchers and practitioners quickly inspect and understand large, complex datasets. It fetches dataset metadata and episode data (including video and sensor/telemetry data), and provides a unified interface for:
- Navigating between organizations, datasets, and episodes
- Watching episode videos
- Exploring synchronized time-series data with interactive charts
- Analyzing action quality and identifying problematic episodes
- Visualizing robot poses in 3D using URDF models
- Paginating through large datasets efficiently
## Key Features
- **Dataset & Episode Navigation:** Quickly jump between organizations, datasets, and episodes using a sidebar and navigation controls.
- **Synchronized Video & Data:** Video playback is synchronized with interactive data graphs for detailed inspection of sensor and control signals.
- **Overview Panel:** At-a-glance summary of dataset metadata, camera info, and episode details.
- **Statistics Panel:** Dataset-level statistics including episode count, total recording time, frames-per-second, and an episode-length histogram.
- **Action Insights Panel:** Data-driven analysis tools to guide training configuration — includes autocorrelation, state-action alignment, speed distribution, and cross-episode variance heatmap.
- **Filtering Panel:** Identify and flag problematic episodes (low movement, jerky motion, outlier length) for removal. Exports flagged episode IDs as a ready-to-run LeRobot CLI command.
- **3D URDF Viewer:** Visualize robot joint poses frame-by-frame in an interactive 3D scene, with end-effector trail rendering. Supports SO-100, SO-101, and OpenArm bimanual robots.
- **Efficient Data Loading:** Uses parquet and JSON loading for large dataset support, with pagination, chunking, and lazy-loaded panels for fast initial load.
- **Responsive UI:** Built with React, Next.js, and Tailwind CSS for a fast, modern user experience.
## Technologies Used
- **Next.js** (App Router)
- **React**
- **Recharts** (for data visualization)
- **Three.js** + **@react-three/fiber** + **@react-three/drei** (for 3D URDF visualization)
- **urdf-loader** (for parsing URDF robot models)
- **hyparquet** (for reading Parquet files)
- **Tailwind CSS** (styling)
## Getting Started
### Prerequisites
This project uses [Bun](https://bun.sh) as its package manager. If you don't have it installed:
```bash
# Install Bun
curl -fsSL https://bun.sh/install | bash
```
### Installation
Install dependencies:
```bash
bun install
```
### Development
Run the development server:
```bash
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `src/app/page.tsx` or other files in the `src/` directory. The app supports hot-reloading for rapid development.
### Other Commands
```bash
# Build for production
bun run build
# Start production server
bun start
# Run linter
bun run lint
# Format code
bun run format
```
### Environment Variables
- `DATASET_URL`: (optional) Base URL for dataset hosting (defaults to HuggingFace Datasets).
## Docker Deployment
This application can be deployed using Docker with bun for optimal performance and self-contained builds.
### Build the Docker image
```bash
docker build -t lerobot-visualizer .
```
### Run the container
```bash
docker run -p 7860:7860 lerobot-visualizer
```
The application will be available at [http://localhost:7860](http://localhost:7860).
### Run with custom environment variables
```bash
docker run -p 7860:7860 -e DATASET_URL=your-url lerobot-visualizer
```
## Contributing
Contributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request.
### Acknowledgement
The app was orignally created by [@Mishig25](https://github.com/mishig25) and taken from this PR [#1055](https://github.com/huggingface/lerobot/pull/1055)