Data Learning Apps is a collection of interactive demos that explain technical concepts through visuals and exploration. Each app lives under apps/<app_slug>/ and may use different frameworks such as Streamlit, Dash, or custom frontends. The shared goal is to make certain systems or methods more intuitive, by letting people poke at them directly. App-specific setup notes live in each app’s README.md, while testing instructions are documented in apps/<app_slug>/tests/TESTS.md.
Every app includes a DESIGN.md that outlines the functional goals of the experience: what the demo teaches, how the content is structured, and how interactive elements guide the learning journey. Draft or update the design document before changing an app so the educational story is settled first. A reusable template is available at DESIGN_TEMPLATE.md in the project root.
- Gradient Descent Explorer (
apps/gradient_descent/): Tune learning-rate controls and visualize how gradient descent optimizes a linear regression model. Seeapps/gradient_descent/README.mdfor run commands and tests. - Fuzzy Inverted Index Explorer (
apps/fuzzy_inverted_index/): Learn how n-gram fragmentation turns an inverted index into a fuzzy search engine with scoring explanations. Seeapps/fuzzy_inverted_index/README.mdfor details. - SIMD vs SIMT Explorer (
apps/simt_vs_simd/): Follow eight pixels through six guided steps to learn what SIMD and SIMT each mean, why anifcosts both of them, and which one you actually end up using. Assumes no GPU background. Seeapps/simt_vs_simd/README.mdfor details.
-
Install uv.
-
Install Python dependencies (this also creates a
.venvwith the right Python version):uv sync
-
Run any command in that environment by prefixing it with
uv run, e.g.uv run streamlit run apps/gradient_descent/main.py.
- Review the relevant app’s
DESIGN.mdbefore making changes to keep the learning story aligned with the implementation. - Keep each app self-contained with its own
README.md,DESIGN.md,tests/TESTS.md, and any framework-specific notes. - Run the commands listed in
tests/TESTS.mdand the app’s owntests/TESTS.mdbefore wrapping up changes. - Automation- or AI-specific guidelines for working in this repository live in
AGENTS.md(root and per-app).
- Create a new directory under
apps/(for example,apps/new_concept/). - Copy
DESIGN_TEMPLATE.mdtoapps/new_concept/DESIGN.mdand complete it to describe the learning experience. - Stop here and get the design approved. Share
DESIGN.md, iterate on it, and wait for explicit approval before any code is written. Steps 4 onward do not start until that approval exists — a finished implementation submitted alongside an unreviewed design does not satisfy this step. - Add any framework-specific instructions to
apps/new_concept/AGENTS.md. - Build the app according to the approved design document.
- Provide automated checks and document them in
apps/new_concept/tests/TESTS.md. - Add an
apps/new_concept/README.mddescribing the experience and run instructions. - Update the root
README.mdandtests/TESTS.mdto reference the new app.