Animated versions of Figure 1 from the perspective “AI for Science: Is This Progress? On the Utility of Predictive Systems for Scientific Discovery” (Jug, 2026). The preprint introduces the concepts shown here — inductive commitments, capacity bounds, interpolation vs. extrapolation, and how uncertainty can guide what data to collect.
Figure 1 sketches predictive systems as radar plots over (illustrative) knowledge dimensions d₁ … d_k. For each system, a solid outline marks what it has learned from data so far, and a dashed outline marks the most it could ever reach — its capacity bound, set by its inductive commitment. These four short movies make the ideas in the figure move, for use in talks.
All geometry, colours, and line weights are taken directly from the original
Illustrator figure (source.ai), so the movies match the paper.
Just want the videos? Ready-made 1080p MP4s of all four movies, for white and for black slides, are attached to the latest release.
Based on Fig. 1(a). New observations arrive one at a time and the orange system’s learned region grows toward its capacity bound — close to it, touching it in places, but never beyond it.
Some observations fall outside the dashed bound (red ring, grey fill). The system cannot make sense of them, so its outline barely moves.
Picks up exactly where movie 1 ends. The observations the orange system could not use are taken up by a second, complementary system (blue) — for example a human next to an agentic LLM system. More data arrives in a region only the blue system can learn from; the orange outline stays where it is.
The last observation (half blue, half orange) lies within reach of both systems, and both outlines grow to meet it.
Based on Fig. 1(d, e). This movie is about prediction, not learning. Query points (hollow, dashed rings) are posed to the blue system and turn green when predicted correctly and orange when not:
- Interpolation inside the learned region works.
- Extrapolation beyond the learned region works too — in places.
- Queries outside the capacity bound are strictly unpredictable.
- But some queries inside the capacity bound fail as well …
- … because they lie outside the extrapolation reach (dotted line), which is revealed at the end and is narrower than the capacity bound.
Short captions fade in and out at each step.
Data is expensive. Two identical copies of the blue system from Fig. 1(d, e) learn side by side; below each, bars track new data acquired and new area covered.
- Left — random data acquisition. 20 observations arrive at random. Most land inside the area already learned and are redundant (grey with olive ring, as in Fig. 1(c)); only a few expand the outline.
- Right — guided by epistemic uncertainty. The system is queried all over its plot; each query is coloured by its epistemic uncertainty, from green (low) to red (high). An experiment is run only where the system is most unsure, and the new observation expands the outline. After just 5 such experiments, the learned area has grown as much — and into the same shape — as with 20 random ones.
The message: guiding expensive data acquisition by epistemic uncertainty gets you to a better predictive system with far less effort.
Every movie is rendered in two colour schemes from the same code:
| Theme | Use it for | Colours |
|---|---|---|
light |
white slides, the web | exactly the paper’s figure |
dark |
black slides | same hues, brightened to read on black; fills become dark tints |
All colours live in themes.py. To add a scheme (e.g. for a different
slide template), copy one of the entries under a new name — the render script
picks it up automatically.
You need uv (it installs the right Python and all dependencies for you):
curl -LsSf https://astral.sh/uv/install.sh | shThen, in this folder:
uv syncFonts. Labels and captions use Times New Roman, which ships with macOS and
Windows. On Linux, install it first (e.g. sudo apt install ttf-mscorefonts-installer).
Linux only. Manim needs Cairo and Pango
(sudo apt install libcairo2-dev libpango1.0-dev pkg-config). On macOS and Windows
everything comes with the Python packages.
Render all movies in all themes (1080p, about 15 s on a laptop):
uv run python render_all.pyThe finished movies land in movies/<theme>/<movie>.mp4. Some variants:
uv run python render_all.py dark # one theme only
uv run python render_all.py -q l # quick 480p drafts
uv run python render_all.py -q k # 4KTo render and immediately watch a single movie while working on it:
THEME=dark uv run manim -ql -p what_can_be_predicted.py WhatCanBePredicted| What | Where |
|---|---|
| Data points of movie 1 (where, in which order) | DATA_B in radar.py |
| Data points of movie 2 | DATA_A and SHARED in not_all_data_is_for_everyone.py |
| Query points, captions, and timing of movie 3 | what_can_be_predicted.py |
| Number of random points and guided rounds, uncertainty model, layout of movie 4 | top of uncertainty_guided_acquisition.py |
| Colours | themes.py |
Points are given as (axis, radius): axis 0 is d₁ at the top, counting
clockwise up to 7 (d_k), and the radius is in the figure’s units (points in
source.ai; the outer circle is 145).
Movie 4 draws its data at random, from two fixed seeds chosen so that both sides end with the same gain in area and nearly the same shape. If you change its settings, find a new matching pair with:
uv run python uncertainty_guided_acquisition.pyradar.py shared drawing code: radar (any size/position), outlines, data points
data_expands_reach.py movie 1
not_all_data_is_for_everyone.py movie 2
what_can_be_predicted.py movie 3
uncertainty_guided_acquisition.py movie 4
themes.py colour schemes
render_all.py renders every movie in every theme
source.ai original Figure 1 (Illustrator, PDF-compatible)
docs/ previews used in this README
LICENSE MIT license
CITATION.cff citation metadata (GitHub “Cite this repository”)
If you use these animations, please cite the preprint:
Jug, F. (2026). AI for Science: Is This Progress? On the Utility of Predictive Systems for Scientific Discovery. Zenodo. https://doi.org/10.5281/zenodo.23242357
@misc{jug2026progress,
author = {Jug, Florian},
title = {{AI} for Science: Is This Progress? On the Utility of Predictive
Systems for Scientific Discovery},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.23242357},
url = {https://doi.org/10.5281/zenodo.23242357}
}GitHub’s “Cite this repository” button (right sidebar) offers the same reference in other formats.
MIT © 2026 Florian Jug




