Spaces:
Running
Running
| 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) | |