Rio 2016 athletes
athletes.py loads the Rio 2016 roster with Polars, a dataframe library for Python, and calculates age, medal awards, sport participation, and athlete profiles. One notebook backs all three views.
Compare the views
Rio 2016 athletes
A report, linked explorer, and Three.js briefing share the Rio 2016 roster.
In Report, change Sport. The native Marimo control selects one of 29 prepared notebook states. Four mo-value totals, the browser-drawn roster, and the top_sports chart update from that result.
In Explorer, select a sport bar or brush an age range. Mosaic coordinates that browser-side selection while the notebook remains the source of the complete athlete table.
In Field briefing, move through the roster as a four-chapter Three.js 3D presentation. The same records regroup by sport, medal status, height, weight, and age. Its sport control uses the same 29 prepared states as Report.
Open Notebook to inspect the controls and Polars operations in their analytical context.
Run locally
From the repository root:
uv run marimo edit examples/athletes.py --sandboxOpen Studio from the marimo editor, then switch among overview, explorer, and field. The notebook fetches the pinned athlete CSV from raw.githubusercontent.com. The explorer and field briefing also load the remote font or module origins declared by their view source.
Read the source
The three views use sibling-relative URLs, so their links survive a deployment base path and a copied parent directory.