HomeMachine Learning & Neural NetworksWhy Git Can't Track a Changing Dataset (and What DVC-Style Tools Do Instead)

🗂️ Why Git Can't Track a Changing Dataset

Interactive 3D dataset-versioning timeline where creating simulated dataset snapshots shows a DVC-style pointer system tracking large-file versions without bloating a git-style repo.

Machine Learning & Neural Networks3DModerate60 FPS
version-control-for-datasets-lab ↗ Open standalone

A side-by-side 3D repository timeline: commit dataset snapshots and watch a naive Git repo grow a full-size block every time, while a DVC-style repo stays flat, storing only tiny pointer files and pushing the real bytes into a deduplicated content-addressable store.

🔬 What It Demonstrates

Every "Add dataset snapshot" click commits to both repos at once. The naive Git rail stacks a full-size blob per version forever; the DVC rail adds only a ~3.4KB pointer, and its storage rail only grows when the content hash actually changes.

🎮 How to Use

Set the snapshot size and how much of the dataset changed since last time. Drop "Change" to 0% and add a snapshot to trigger a dedup cache hit — the storage block pulses instead of duplicating. Try Auto-commit to watch the gap widen on its own.

💡 Did You Know?

DVC's .dvc files are plain text — just a path, a file size and a hash — small enough that git diffs and merges them like any other text file, even though the data they point to can be gigabytes.

⚙ Under the hood

Interactive 3D dataset-versioning timeline where creating simulated dataset snapshots shows a DVC-style pointer system tracking large-file versions without bloating a git-style repo.

data-version-controldvcdataset-versioningmlopsreproducibilitymachine-learning

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)