Self-contained sites that take a fixed set of things, ask one question with a number for an answer, and follow that number until it says something the set alone would not.
Live at https://ekinertac.github.io/explorables/.
| # | Episode | The set | The question |
|---|---|---|---|
| 01 | Deep Time | 16 intervals of Earth's history | How long would an unequipped modern human survive in each? |
| 02 | Property. Pilgrim. Papers. | 20 centuries in one city, Rome | How long would you last, arriving with nothing? |
The format is narrow on purpose. A candidate that misses any of these is a listicle with better typography.
- A fixed, ordered set that already exists. Sixteen geological intervals, not sixteen things chosen to make a point. Nothing to argue with before the argument starts.
- One scalar answer per item, spanning orders of magnitude. Two minutes to decades. The range is what makes the comparison worth drawing.
- A hidden variable that switches partway through. In Deep Time the filter is oxygen for four billion years and then food. Without a switch there is no finding, only a table.
- One page per item on a single schema, so pages are comparable instead of each being a fresh essay.
- A section naming what is contested. Every episode ends each page with where its numbers are soft. That section is the credibility, not a disclaimer.
- Three image sets, each with a job. The place, what there is to eat, and the thing that kills you.
assets/ shared by every episode: site.css, fonts, lightbox.js, favicon
tools/ gen_img.py, the image engine, knows nothing about any subject
<episode>/ one directory per explorable, self-contained
index.html that episode's front page
content/ its Markdown sources (episode 02 onward)
build.py content/ -> the data the page reads (episode 02 onward)
prompts.py its items, prompt sets, palettes and captions
assets/ its own stylesheet, fonts, data and generated images
index.html the shelf
The split between tools/gen_img.py and <episode>/prompts.py is the one that
matters. The engine owns the API call, the seeds, the file naming and the
provenance log. The episode owns every word specific to its subject. Adding an
explorable means writing a prompts.py, not editing the tool.
tools/gen_img.py 1-16 --set kills # deep-time by default
tools/gen_img.py all --set menu --episode centuriesStatic files. No build step, no dependencies, no framework.
python3 -m http.server 8000MIT.