From 2fbed5e6c93b6ef754a02759036497fe71bc8873 Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:29:53 +0200
Subject: [PATCH 1/9] R3 updates
---
lerobot-goes-to-driving-school.md | 60 ++++++++++++++++---------------
1 file changed, 32 insertions(+), 28 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 0c4f38f401..7448a65539 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -113,25 +113,25 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
Fig 3: Multimodal data visualization with Visualization: Nutron (only 3 of 6 cameras shown for clarity)
-| Modality | LeRobotDataset v2.1 key | Shape | alignment\[tol\]\[strategy\] |
+| Modality | LeRobotDataset v3.0 key | Shape | alignment\[tol\]\[strategy\] |
| :---- | :---- | :---- | :---- |
-| image (x6) | [observation.images.front\_left](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L17)\[left\_forward,..\] | N3HW | [asof\[20ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| speed | [observation.state.vehicle.speed](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L185) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
-| heading | [observation.state.vehicle.heading](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L186)\[heading\_error\] | N1 | [asof\[50ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| GPS | [observation.state.vehicle.latitude](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L188)\[longitude/altitude\] | N1 | [asof\[50ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| IMU | [observation.state.vehicle.acceleration\_x](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L191)\[y\] | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
-| waypoints | [observation.state.vehicle.waypoints](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L196) | N2L | [asof\[10m\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| timestamp | [observation.state.timestamp](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L207) | N1 | observation.images.front\_left |
-| gas | [action.continous.gas\_pedal\_normalized](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L225) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
-| brake | [action.continous.brake\_pedal\_normalized](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L226) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
-| steering | [action.continous.steering\_angle\_normalized](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L227) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
-| turn signal | [action.discrete.turn\_signal](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L238) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L239) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
-| language | [task.policy](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L218) | N1 | — |
-| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/lerobot-driving-school/blob/main/meta/info.json#L225) | N1 | — |
+| image (x6) | [observation.images.front\_left](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L193)\[left\_forward,..\] | N3HW | [asof\[20ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| speed | [observation.state.vehicle.speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L24) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
+| heading | [observation.state.vehicle.heading](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L25)\[heading\_error\] | N1 | [asof\[50ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| GPS | [observation.state.vehicle.latitude](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L27)\[longitude/altitude\] | N1 | [asof\[50ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| IMU | [observation.state.vehicle.acceleration\_x](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L30)\[y\] | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
+| waypoints | [observation.state.vehicle.waypoints](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L84) | N2L | [asof\[10m\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| timestamp | [observation.state.timestamp](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L95) | N1 | observation.images.front\_left |
+| gas | [action.continous.gas\_pedal\_normalized](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L127) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
+| brake | [action.continous.brake\_pedal\_normalized](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L128) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
+| steering | [action.continous.steering\_angle\_normalized](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L129) | N1 | [interp](https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.interpolate_by.html) |
+| turn signal | [action.discrete.turn\_signal](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L141) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
+| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
- Table 2: Modality types, LeRobot v2.1 key, shape and interpolation strategy.
+ Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
L2D follows the official German [driving task catalog](https://docs.google.com/spreadsheets/d/1phItCf1n6AVQqEIiP7lmfj0G07gR52iD7q93mMmrZio/edit?usp=sharing)
@@ -238,7 +238,7 @@ we used approx 30 pairs of known natural language queries and route tasks for in
## LeRobot
-L2D on 🤗 is converted to [LeRobotDataset v2.1](https://github.com/huggingface/lerobot/pull/711) format to fully leverage
+L2D on 🤗 is converted to [LeRobotDataset v2.1](https://github.com/huggingface/lerobot/pull/711) and [LeRobotDataset v3.0](https://huggingface.co/blog/lerobot-datasets-v3) format to fully leverage
the current and future models supported within [LeRobot](https://github.com/huggingface/lerobot).
The AI community can now build end-to-end self-driving models leveraging the state-of-the-art imitation learning
and reinforcement learning models for real world robotics like [ACT](https://tonyzhaozh.github.io/aloha),
@@ -264,9 +264,9 @@ information about the episodes. Each release **R1+** is a superset of the previo
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [R0](https://huggingface.co/datasets/yaak-ai/L2D/tree/R0) | [R0](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/300b7174-b6aa-4598-83e8-fc28cc5fcbe3/search/list/session-logs?context=5s) | March 2025 | 100 | 0.5+ hr | 9,5 GB | ☑️ | | | |
| [R1](https://huggingface.co/datasets/yaak-ai/L2D/tree/R1) | [R1](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/1cb18573-f731-47b1-ae89-7ea2f026b8d0/search/list/session-logs?context=5s) | April 2025 | 1K | 5+ hr | 95 GB | ☑️ | | | |
-| [R2](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | [R2](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/6e53636a-59ed-466b-8722-2c0b415f9bca/search/list/session-logs?context=5s) | May 2025 | 10K | 50+ hr | 1 TB | ☑️ | ☑️ | ☑️ | ☑️ |
-| R3 | R3 | June 2025 | 100K | 500+ hr | 10 TB | ☑️ | ☑️ | ☑️ | ☑️ |
-| R4 | R4 | July 2025 | 1M | 5000+ hr | 90 TB | ☑️ | ☑️ | ☑️ | ☑️ |
+| [R2](https://huggingface.co/datasets/yaak-ai/L2D/tree/R2) | [R2](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/6e53636a-59ed-466b-8722-2c0b415f9bca/search/list/session-logs?context=5s) | May 2025 | 10K | 50+ hr | 1 TB | ☑️ | ☑️ | ☑️ | ☑️ |
+| [R3](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | R3 | Sept 2025 | 100K | 500+ hr | 5 TB | ☑️ | ☑️ | ☑️ | ☑️ |
+| R4 | R4 | Nov 2025 | 1M | 5000+ hr | 90 TB | ☑️ | ☑️ | ☑️ | ☑️ |
Table 5: L2D release dates
@@ -290,22 +290,26 @@ ImageNet moment for spatial intelligence.
# Using L2D with HF/LeRobot
+For R0, R1 we recommend using `LeRobotDataset`, with `revision=[R0|R1]`, which can be used directly from the pypi release of LeRobot. For R2+, please follow installation [outlined here](https://huggingface.co/blog/lerobot-datasets-v3#install-lerobot-and-record-a-dataset) or install from main as below, as we recommend using [`StreamingLeRobotDataset`](https://github.com/huggingface/lerobot/blob/main/src/lerobot/datasets/streaming_dataset.py#L43) as R3 is is [Dataset v3.0](https://huggingface.co/blog/lerobot-datasets-v3) format.
+
```
# uv for python deps
curl -LsSf https://astral.sh/uv/install.sh | sh
# install python version and pin it
uv init && uv python install 3.12.4 && uv python pin 3.12.4
-# add lerobot to deps
+# add lerobot to deps for R0, R1
uv add lerobot
+# for R2+
+GIT_LFS_SKIP_SMUDGE=1 uv add "git+https://github.com/huggingface/lerobot.git@main"
uv run python
->>> from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
-# This will load 3 episodes=[0, 1001, 9999], to load all the episodes please remove it
->>> dataset = LeRobotDataset("yaak-ai/L2D", episodes=[0, 1001, 9999])
->>> dataset
-LeRobotDataset({
+>>> from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset
+# This will load 3 episodes=[0, 9999, 99999], to load all the episodes please remove it
+>>> dataset = StreamingLeRobotDataset("yaak-ai/L2D", episodes=[0, 9999, 99999], streaming=True, buffer_size=1000)
+>>> print(dataset)
+StreamingLeRobotDataset({
Repository ID: 'yaak-ai/L2D',
- Number of selected episodes: '3',
- Number of selected samples: '326',
+ Number of selected episodes: '100000',
+ Number of selected samples: '19042712',
Features: '['observation.images.front_left', 'observation.images.left_forward', 'observation.images.right_forward', 'observation.images.left_backward', 'observation.images.right_backward', 'observation.images.rear', 'observation.images.map', 'observation.state.vehicle', 'observation.state.waypoints', 'observation.state.timestamp', 'task.policy', 'task.instructions', 'action.continuous', 'action.discrete', 'timestamp', 'frame_index', 'episode_index', 'index', 'task_index']',
})',
```
From c728f402abf3fd98a6d483fa86b0ae6b59d91e7f Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:44:27 +0200
Subject: [PATCH 2/9] R3 updates
---
lerobot-goes-to-driving-school.md | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 7448a65539..f511879932 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -17,6 +17,8 @@ TL;DR of [L2D](https://huggingface.co/datasets/yaak-ai/L2D), the world's largest
- 90+ TeraBytes of multimodal data (5000+ hours of driving) from 30 cities in Germany
- 6x surrounding HD cameras and complete vehicle state: Speed/Heading/GPS/IMU
- Continuous: Gas/Brake/Steering and discrete actions: Gear/Turn Signals
+- Environment state: Lane count, Road type (highway|residential), Road surface (asphalt, cobbled, sett), Max speed limit.
+- Environment conditions: Precipitation, Conditions (Snow, Clear, Rain), Lighting (Dawn, Day, Dusk)
- Designed for training end-to-end models conditioned on natural language instructions or future waypoints
- Natural language instructions. F.ex ["When the light turns green, drive over the tram tracks and then through the roundabout"](https://huggingface.co/spaces/lerobot/visualize_dataset?dataset=yaak-ai%2FL2D&episode=82) for each episode
- [Future waypoints](#OpenStreetMap) snapped to OpenStreetMap graph, aditionally rendered in birds-eye-view
@@ -129,6 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
+| lane count | ["observation.state.lanes"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | — |
+| road type | ["observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | — |
+| road surface | ["observation.state.surface"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | — |
+| max speed | ["observation.state.max_speed"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | — |
+| precipitation | ["observation.state.precipitation"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | — |
+| conditions | ["observation.state.conditions"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | — |
+| lighting | ["observation.state.lighting"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | — |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
@@ -264,8 +273,8 @@ information about the episodes. Each release **R1+** is a superset of the previo
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [R0](https://huggingface.co/datasets/yaak-ai/L2D/tree/R0) | [R0](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/300b7174-b6aa-4598-83e8-fc28cc5fcbe3/search/list/session-logs?context=5s) | March 2025 | 100 | 0.5+ hr | 9,5 GB | ☑️ | | | |
| [R1](https://huggingface.co/datasets/yaak-ai/L2D/tree/R1) | [R1](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/1cb18573-f731-47b1-ae89-7ea2f026b8d0/search/list/session-logs?context=5s) | April 2025 | 1K | 5+ hr | 95 GB | ☑️ | | | |
-| [R2](https://huggingface.co/datasets/yaak-ai/L2D/tree/R2) | [R2](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/6e53636a-59ed-466b-8722-2c0b415f9bca/search/list/session-logs?context=5s) | May 2025 | 10K | 50+ hr | 1 TB | ☑️ | ☑️ | ☑️ | ☑️ |
-| [R3](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | R3 | Sept 2025 | 100K | 500+ hr | 5 TB | ☑️ | ☑️ | ☑️ | ☑️ |
+| [R2](https://huggingface.co/datasets/yaak-ai/L2D/tree/R2) | [R2](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/6e53636a-59ed-466b-8722-2c0b415f9bca/search/list/session-logs?context=5s) | May 2025 | 10K | 50+ hr | 0.5 TB | ☑️ | | ☑️ | ☑️ |
+| [R3](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | R3 | Sept 2025 | 100K | 500+ hr | 5 TB | ☑️ | | ☑️ | ☑️ |
| R4 | R4 | Nov 2025 | 1M | 5000+ hr | 90 TB | ☑️ | ☑️ | ☑️ | ☑️ |
@@ -285,7 +294,7 @@ ImageNet moment for spatial intelligence.
- Fig 1: Searching episodes by natural language instructions
+ Fig 7: Searching episodes by natural language instructions
# Using L2D with HF/LeRobot
From bc1c33be4806be268afe0b22fa8b9e35484b13ba Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:46:02 +0200
Subject: [PATCH 3/9] R3 updates
---
lerobot-goes-to-driving-school.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index f511879932..4d3b236e88 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -131,13 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
-| lane count | ["observation.state.lanes"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | — |
-| road type | ["observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | — |
-| road surface | ["observation.state.surface"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | — |
-| max speed | ["observation.state.max_speed"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | — |
-| precipitation | ["observation.state.precipitation"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | — |
-| conditions | ["observation.state.conditions"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | — |
-| lighting | ["observation.state.lighting"](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | — |
+| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | — |
+| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | — |
+| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | — |
+| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | — |
+| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | — |
+| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | — |
+| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | — |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
From 12a535fb655981689e992a69a0e8827d13c4ffcf Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:48:54 +0200
Subject: [PATCH 4/9] R3 updates
---
lerobot-goes-to-driving-school.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 4d3b236e88..978e819855 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -131,13 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
-| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | — |
-| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | — |
-| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | — |
-| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | — |
-| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | — |
-| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | — |
-| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | — |
+| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | asof[500ms][nearest] |
+| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | asof[500ms][nearest] |
+| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | asof[500ms][nearest] |
+| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | asof[500ms][nearest] |
+| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | asof[1hr][nearest] |
+| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | asof[1hr][nearest] |
+| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | asof[1hr][nearest] |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
From cb8a6b7acd87ec556bc34a0b6de0d2ba085ad6c6 Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:51:19 +0200
Subject: [PATCH 5/9] R3 updates
---
lerobot-goes-to-driving-school.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 978e819855..5f5a591b45 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -131,13 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
-| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | asof[500ms][nearest] |
-| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | asof[500ms][nearest] |
-| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | asof[500ms][nearest] |
-| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | asof[500ms][nearest] |
-| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | asof[1hr][nearest] |
-| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | asof[1hr][nearest] |
-| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | asof[1hr][nearest] |
+| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
From 67ca2cedeb7145efab9dd079df453db482dcca40 Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:52:48 +0200
Subject: [PATCH 6/9] R3 updates
---
lerobot-goes-to-driving-school.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 5f5a591b45..9bd4b66c89 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -131,13 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
-| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | [asof\[500ms\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | [asof\[1hr\][nearest]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | [asof\[1hr\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | [asof\[1hr\]\[nearest\]\((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | [asof\[1hr\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
From 3f7774c4d4fa58d4ab8dd7128bf9b6fb7c5fa6ce Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Wed, 24 Sep 2025 10:54:30 +0200
Subject: [PATCH 7/9] R3 updates
---
lerobot-goes-to-driving-school.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 9bd4b66c89..86d02b21d6 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -131,13 +131,13 @@ feasible to enhance precision (See Table 2.) and finally reduced the sampling ra
| gear | [action.discrete.gear](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L140) | N1 | [asof\[100ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
| language | [task.policy](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L106) | N1 | — |
| language | [task.instructions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L113) | N1 | — |
-| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | [asof\[500ms\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | [asof\[1hr\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | [asof\[1hr\]\[nearest\]\((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
-| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | [asof\[1hr\]\[nearest\]]((https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html)) |
+| lane count | [observation.state.lanes](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L35) | N1 | [asof\[500ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| road type | [observation.state.road](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L42) | N1 | [asof\[500ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| road surface | [observation.state.surface](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L49) | N1 | [asof\[500ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| max speed | [observation.state.max_speed](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L56) | N1 | [asof\[500ms\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| precipitation | [observation.state.precipitation](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L63) | N1 | [asof\[1hr\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| conditions | [observation.state.conditions](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L70) | N1 | [asof\[1hr\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
+| lighting | [observation.state.lighting](https://huggingface.co/datasets/yaak-ai/L2D/blob/main/meta/info.json#L77) | N1 | [asof\[1hr\]\[nearest\]](https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.join_asof.html) |
Table 2: Modality types, LeRobot v3.0 key, shape and interpolation strategy.
From 0e8dc598941a6bb439a3a5f26ff9ac1e73f09b19 Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Mon, 6 Oct 2025 15:51:31 +0200
Subject: [PATCH 8/9] Add R3 collection Nutron path
---
lerobot-goes-to-driving-school.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 86d02b21d6..470c1b80ba 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -274,7 +274,7 @@ information about the episodes. Each release **R1+** is a superset of the previo
| [R0](https://huggingface.co/datasets/yaak-ai/L2D/tree/R0) | [R0](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/300b7174-b6aa-4598-83e8-fc28cc5fcbe3/search/list/session-logs?context=5s) | March 2025 | 100 | 0.5+ hr | 9,5 GB | ☑️ | | | |
| [R1](https://huggingface.co/datasets/yaak-ai/L2D/tree/R1) | [R1](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/1cb18573-f731-47b1-ae89-7ea2f026b8d0/search/list/session-logs?context=5s) | April 2025 | 1K | 5+ hr | 95 GB | ☑️ | | | |
| [R2](https://huggingface.co/datasets/yaak-ai/L2D/tree/R2) | [R2](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/6e53636a-59ed-466b-8722-2c0b415f9bca/search/list/session-logs?context=5s) | May 2025 | 10K | 50+ hr | 0.5 TB | ☑️ | | ☑️ | ☑️ |
-| [R3](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | R3 | Sept 2025 | 100K | 500+ hr | 5 TB | ☑️ | | ☑️ | ☑️ |
+| [R3](https://huggingface.co/datasets/yaak-ai/L2D/tree/main) | [R3](https://nutron-sandbox.yaak.ai/collections/fcbb0dfd-40ae-4fd2-b023-7f300f35c5c7/8930821d-b793-4885-b8c1-98cc10e20e81/search/list?context=5s) | Sept 2025 | 100K | 500+ hr | 5 TB | ☑️ | | ☑️ | ☑️ |
| R4 | R4 | Nov 2025 | 1M | 5000+ hr | 90 TB | ☑️ | ☑️ | ☑️ | ☑️ |
@@ -314,12 +314,12 @@ uv run python
>>> from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset
# This will load 3 episodes=[0, 9999, 99999], to load all the episodes please remove it
>>> dataset = StreamingLeRobotDataset("yaak-ai/L2D", episodes=[0, 9999, 99999], streaming=True, buffer_size=1000)
->>> print(dataset)
-StreamingLeRobotDataset({
+dataset.meta
+LeRobotDatasetMetadata({
Repository ID: 'yaak-ai/L2D',
- Number of selected episodes: '100000',
- Number of selected samples: '19042712',
- Features: '['observation.images.front_left', 'observation.images.left_forward', 'observation.images.right_forward', 'observation.images.left_backward', 'observation.images.right_backward', 'observation.images.rear', 'observation.images.map', 'observation.state.vehicle', 'observation.state.waypoints', 'observation.state.timestamp', 'task.policy', 'task.instructions', 'action.continuous', 'action.discrete', 'timestamp', 'frame_index', 'episode_index', 'index', 'task_index']',
+ Total episodes: '100000',
+ Total frames: '19042712',
+ Features: '['observation.state.vehicle', 'observation.state.lanes', 'observation.state.road', 'observation.state.surface', 'observation.state.max_speed', 'observation.state.precipitation', 'observation.state.conditions', 'observation.state.lighting', 'observation.state.waypoints', 'observation.state.timestamp', 'task.policy', 'task.instructions', 'action.continuous', 'action.discrete', 'timestamp', 'frame_index', 'episode_index', 'index', 'task_index', 'observation.images.left_forward', 'observation.images.front_left', 'observation.images.right_forward', 'observation.images.left_backward', 'observation.images.rear', 'observation.images.right_backward', 'observation.images.map']',
})',
```
From 0aae48330768688e8c3cb51b10e12389eef1c67d Mon Sep 17 00:00:00 2001
From: Harsimrat Sandhawalia
Date: Mon, 6 Oct 2025 15:54:28 +0200
Subject: [PATCH 9/9] Add R3 collection Nutron path
---
lerobot-goes-to-driving-school.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lerobot-goes-to-driving-school.md b/lerobot-goes-to-driving-school.md
index 470c1b80ba..52ae400a09 100644
--- a/lerobot-goes-to-driving-school.md
+++ b/lerobot-goes-to-driving-school.md
@@ -314,7 +314,7 @@ uv run python
>>> from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset
# This will load 3 episodes=[0, 9999, 99999], to load all the episodes please remove it
>>> dataset = StreamingLeRobotDataset("yaak-ai/L2D", episodes=[0, 9999, 99999], streaming=True, buffer_size=1000)
-dataset.meta
+>>> dataset.meta
LeRobotDatasetMetadata({
Repository ID: 'yaak-ai/L2D',
Total episodes: '100000',