TNRiley · one-session builds, dispatched by hand

Quick Projects

A standing experiment: most evenings I hand Claude a blank brief and it picks the whole thing (subject, data, interface), then researches and builds it end to end in a single sitting. Everything here is one self-contained HTML file with its data already inside it. No build step, no server, nothing fetched while you read except the visit count.

Source
index plate · one motif per project
33 / 33
projects published, each researched and built end to end in one sitting
42 days
from the first build to the most recent, roughly one an evening
83
public datasets pulled at build time and baked into the pages
30 of 33
ship the scripts that fetched and shaped their data, so every figure can be regenerated
28
built in wave one, on the open brief, up to 2026-10-05
5
built in wave two, on the sharpened brief, since 2026-10-05

Why this exists

It is not really about the subjects. It is about tools for thinking through data, interfaces I would never have arrived at on my own, and finding out what a model builds when nobody narrows the brief.

I dispatch these by hand rather than on a schedule: a nightly habit, not a cron job. The brief is deliberately open: Claude chooses the subject, working from what it knows of my day job in research libraries and evidence synthesis, the things I build for fun, and whatever it feels like reaching for instead. Some of the best ones have had nothing to do with any of that.

Each build gets a real budget, a serious share of a usage window, with a standing instruction to spend part of it wrestling data out of somewhere awkward. A bold attempt that half works is a good outcome if it comes back with something learned. Several have.

As they arrive I keep notes on what actually landed: an interaction, a way of laying out numbers, a chart that taught me something. Not to bolt onto the next build, but as a growing palette to draw on when I am building something real. Feedback goes back in, so the builds and the brief keep sharpening each other.

A few are deliberately inward-facing: tooling that makes the next one better. This catalog is one of those: it and the publishing pipeline behind it were themselves a night's work.

The shelf

Two waves, newest first within each. Every page carries its own methods panel saying where its numbers came from and where they should not be pushed. That part is not optional.

02

Wave two

Wave two builds under a sharpened brief. Wave one ran on an open brief and taught us what lands: one crisp finding, a control designed to catch the method lying, failures documented, nulls published. Those are requirements now. The brief is printed here because the brief is part of the experiment, and it will keep changing.

The brief, as it stands
  1. One crisp finding. The build must produce a headline that survives as a single sentence. If the data will not give you one, pivot the subject rather than padding the page. The meta.json tagline is the finding, not the topic.
  2. What is your cardinal? Design a control that would catch the method lying, before you trust the result. If the control drifts, flag it; do not report the result.
  3. Hunt the instrument. Measurement artifacts and tooling surprises are first-class findings. Document them like findings.
  4. Nulls are publishable. A clean null with a good control beats a mushy positive.
  5. Corroborate inside the build. Keep two independent measures that never get averaged; let their agreement or disagreement do verification work.
  6. Failures stay documented. A documented failed half builds more trust than a smooth story.
  7. Keep the awkward-data instruction. Spend part of the budget wrestling data out of somewhere awkward: undocumented endpoints, PDFs, scanned sources.
  8. The page does not pitch the shelf. No mention of the AI experiment, no virality chasing, no authorial throat-clearing on project pages. The finding earns the click; the catalog breadcrumb handles discovery.
  9. Subject heuristics. The brief stays open, but prefer subjects with two of three: (a) a complete public dataset, (b) a folk belief or null to test against, (c) an awkward source. If nothing qualifies after reasonable scouting, say so instead of forcing a build.

The Eighth Win

Sumo's 2011 match-fixing purge left no mark on the final day: a wrestler who needed his eighth win beat an opponent who did not 62% of the time in the decade before it and 61% in the eight years after, against about 49% expected.

Every top-division bout since 1958 (197,779 of them), rated in the browser, and the famous Freakonomics finding rerun from scratch: it reproduces Duggan and Levitt's published figures almost to the decimal, then follows the final-day 7-7 advantage for 26 more years. Two measures from two sites, one about bouts and one about final records, track each other at r = 0.97; both fell sharply in 2000, when a former wrestler went public, and neither moved when 23 wrestlers were expelled in 2011. What did change things was the schedule: since 2019 most 7-7 wrestlers are drawn against each other. The rematch payback the paper read as proof of trading turns out to show up after ordinary late bouts too, so it is documented as the half that did not work.

sumomatch-fixingreplicationEloplacebo testnatural experiment
Card
First published
2026-10-14
Page weight
785 KB
Built with
Python, vanilla JS, SVG, gzipped base64 typed-array payload, DecompressionStream, in-page Elo and logistic fits
Source
full pipeline
Data

Place Settings

Four in five IKEA rugs on sale in Britain in 2022 were named after a Danish town. Of the 136 rugs launched since, thirteen are.

The famous IKEA naming rulebook (beds after Norwegian places, rugs after Danish ones, sofas after Swedish towns, curtains after girls, desks after boys) tested rule by rule on all 4,110 product names IKEA has sold in Britain since July 2022, read from its own sitemaps and the Internet Archive's copies of them. Sofas, bathrooms and garden furniture still obey. Rugs do not: the Danish towns stopped during 2023, and since 2024 one new rug in 95 has a Danish name. The replacements are ordinary Swedish nouns, many of them railway and road words: JÄRNVÄG, TIDTABELL, VÄXELFEL. Every instrument (two gazetteers, Statistics Sweden's name register, a Swedish lexicon) was calibrated first on a hand-labelled IKEA dictionary from about 2010, which also shows why matching against every Norwegian feature finds a place called almost anything.

product namesplace namesInternet Archivegazetteer matchinginstrument calibrationcohort comparison

Last Orders

Where the trains have gone, the railway names stayed: of the 127 railway-named pubs more than a kilometre from any working line, 105 stand nearer the lifted trackbed than the pub next door.

Every named pub in Great Britain (38,986 of them, from OpenStreetMap) taken apart into the slots its name is built from, colour and animal, trade and Arms, A and B, and measured against every railway and canal on the ground. Railway is the sixth commonest pub name in the country. The test that was meant to prove railway names remember dead lines failed: railway pubs sit even closer to lines that still run, because a Station Hotel stands by a station. So the working railways were taken out of the picture: among pubs more than a kilometre from any open line, the railway-named one is nearer the old trackbed than its neighbour in 105 of 127 pairs, 82 of 96 using only the words Railway and Station, while Red Lions and White Harts in the same country show no pull at all.

pub namesOpenStreetMaprailwayspaired controlplacebo testcanvas map
Card
First published
2026-10-13
Page weight
2.2 MB
Built with
Python, pyosmium, SciPy KD-trees, vanilla JS, canvas, encoded polylines, gzip + base64 payload
Source
full pipeline
Data

Off the Shelf

Half the French paintings of 1840 to 1929 in two American museums sit within a centimetre of a colourman's numbered stock canvas. Shrink or stretch that catalogue by four per cent and they stop fitting.

Paris colourmen sold primed canvas ready-stretched in sixty numbered sizes, in three shapes called figure, paysage and marine. Every painting on canvas at the Met and the Art Institute of Chicago was measured against that grid, each museum kept apart: 49% and 47% of the French paintings fit, against 7% for decoy catalogues a few per cent too big or small, and a New York price list of about 1900 catches them only at the decoy level while catching a quarter of the American paintings. Bonnard, who cut his pictures from a roll pinned to the wall, scores none of sixteen. The shape names turn out not to name subjects: the near-square figure held most seascapes in both museums.

art historymuseum collectionsmeasurementdecoy controltrade catalogues

Out of the Hat

In the fifty Eurovision finals whose running order was drawn by lot, songs drawn into the last third finished about one and a half places higher than songs drawn into the first.

From 1957 to 2006 Eurovision drew its running order out of a hat, which makes half a century of finals an experiment nobody had to design. Every result table was extracted from each contest's own Wikipedia article, and the late-slot advantage shows up twice, on two measures kept apart: finishing place in the drawn finals, and qualification from the drawn semi-finals (38% of the first third got through, 66% of the last). A control checks that the draw was clean by testing slot against each country's earlier results, and the page withholds its headline if that ever drifts. The famous curse of slot two turns out to be chance: replay history with random winners and some regular slot goes winless two times in three, and slot sixteen has never won either.

Eurovisionnatural experimentpermutation testfolk beliefrunning order
Card
First published
2026-10-07
Page weight
75 KB
Built with
Python, BeautifulSoup, MediaWiki parse API, vanilla JS, SVG, base64 typed-array payload, in-page permutation tests
Source
full pipeline
Data
01

Wave one

Wave one: the open brief. Twenty-eight builds from September 3 to October 5, 2026, the subject chosen fresh each night. This is where the format learned what it could do.

Bold Claim

Every type family on Google Fonts, measured off its own outlines. Pick a bold and a regular from two different families and one time in eight the bold is the lighter of the two.

font-weight: 700 is a number in your stylesheet, and it turns out not to be a quantity. All 1,950 families on Google Fonts were fetched as subset fonts and measured directly from their outlines, with no rasteriser involved: a scanline across the bowl of the o gives the stroke, another through the middle gives the thin, and cap height and x-height come from the top of the H and the x. The faces labelled Regular run from a stroke of 10 to 487 units of a 1000-unit em, the ones labelled Bold overlap them heavily, and 1,084 families ship a single weight that they all call 400 regardless of what it weighs. Pick any family and the page draws the lines it was actually measured on, swap two families at the same nominal weight and watch the stroke move, or sort the whole catalogue from hairline to slab.

typographytype designmeasurementfont metricsexplorable
Card
First published
2026-10-05
Page weight
3.0 MB
Built with
Python, fontTools, vanilla JS, inline SVG glyph outlines, gzipped base64 payload
Source
full pipeline
Data

Round Trip

Every item in Minecraft, every way it can come to exist, and what it is really made of. The villager economy has seven holes in it: buy the wood, craft, sell it back, and one emerald becomes six.

Minecraft describes most of itself in data rather than code, so its own files can be asked how all 1,658 items in the game come to exist: 1,715 recipes, 1,447 loot tables and 391 villager trades, and nothing else. Two findings carry it. First, the villager economy is not closed. Pricing every item in emeralds using only the trades that sell to you, then asking what a villager will pay, turns up seven items worth more than they cost: five emeralds buy 40 oak logs from a wandering trader, which make 160 planks, which make 32 boats, which a fisherman buys back for 32 emeralds. Sticks and glass panes leak the same way. The loops were not looked for; the first cost model included trades and every price in the game slid towards zero, halving on each pass, and the divergence is what found them. Second, the tech tree everyone imagines is not there. Expanding every recipe down to things the world hands you, in exact fractions because a plank is a quarter of a log, nothing in Minecraft is more than six crafting steps deep, and the two deepest things are a pale grey tile and a pale grey pane of glass, four of whose six steps are spent mixing a colour. A searchable explorer covers all 1,658 items with an exact bill of materials, the full expanded tree and every route in. Along the way: 36% of everything you have to make contains a tree, the stonecutter is cheaper than the crafting table 119 times and never dearer, 66 items cost more to make than to go and find, and 147 items have no door at all.

minecraftgamescrafting graphbill of materialsarbitrageexact fractionsvanilla JS
Card
First published
2026-09-29
Page weight
106 KB
Built with
python 3 stdlib, exact Fraction arithmetic throughout, because one log makes four planks, minimum-cost solve by value iteration over the recipe hypergraph, with the chosen derivations asserted acyclic, emerald pricing that holds out selling trades, so arbitrage is found rather than assumed, vanilla JS, bills of materials computed in the browser from the chosen recipes, gzip + base64 payload
Source
full pipeline
Data

Second Language

The New York Times crossword replaced its entire private vocabulary in a single year, and kept exactly the same letters.

Every answer the New York Times crossword has printed since 1942 - 2.46 million of them - sorted into the words the puzzle retired and the words it invented. Fifty-six answers were used at least fifty times before 1980 and have not appeared once since 1999; a hundred and sixty-one had never been printed before 1980 and are now used at least fifty times. The median retired word was last seen in 1993 and the median invented word first appeared in 1994, the year Will Shortz took the editor's chair from Eugene Maleska. What did not change is the letters: the Farrar-era and Shortz-era letter distributions correlate at r = 0.997, and crossword answers have been 40.7% to 42.7% vowels in every single year since 1942, against 37.1% for English. Look up any of the 20,000 most-used answers and watch its eighty-four years.

crosswordslanguageNew York Timestext corporavocabulary change
Card
First published
2026-09-27
Page weight
2.0 MB
Built with
vanilla JS, inline SVG, single-byte-per-year string payload
Source
full pipeline
Data

Coffee Last

Volunteers transcribing 45,000 old restaurant menus left behind the spot on the page they clicked. Sorted by that one number, the American bill of fare turns out to be a single order that almost nobody broke.

The New York Public Library's menu collection, transcribed dish by dish between 2011 and 2019, recorded an (x, y) click position for every one of its 1,335,245 dish appearances. Sort a page by the y and the courses fall out in sequence, though no volunteer ever labelled a course. Treat every within-page pair as a contest (was the celery printed above the Camembert?) and fit the 10 million resulting contests the way you would rank chess players, and 1,276 dishes collapse onto one line: raw oysters named by the bed they came from, then soup, fish, game, the roast, vegetables, salad, pastry, ices, cheese, and coffee. It is one order, not many: across 1.17 million sampled triples, "printed above" is transitive 98.9% of the time, a single ranking calls 88.5% of well-observed pairs correctly, and the median real menu page correlates with it at 0.66 against 0.02 for a shuffled control. Blue Points beat coffee on all 457 cards carrying both, without one exception. The order is rigid but not frozen: grapefruit walked from 0.76 down the card to 0.15, dessert fruit to opening course, while sherry and port went the other way and the relish trio of celery, olives and radishes never moved at all. Includes the reconstructed bill of fare, a head-to-head oracle over any two of the 1,276 dishes, and five real cards redrawn at the coordinates they were transcribed at.

menusfood historyBradley-Terryrank aggregationcrowdsourced transcriptionNew York Public Library

Every Bell Once

Every named change-ringing method there is, rung in the browser from its place notation. Across 661,509 changes no bell ever moves more than one place, and 77% of the eight-bell library draws the identical treble line.

The Central Council of Church Bell Ringers' complete method collection: 25,094 named ways to ring a tower of bells, from a first performance in 1684 to one this month. Each method is a short string of place notation; the page ships nothing but those strings and re-rings every lead in your browser, change by change, so the drawings cannot drift from the data. Two findings carry it. First, the rule the whole tradition rests on holds absolutely: rung out in full, across 661,509 changes and 5.4 million bell positions, the largest distance any bell moves in any change is exactly 1, with no exceptions anywhere in the library. Second, the library is enormous and its frame is tiny: all 25,094 methods use only 1,370 distinct hunt-bell paths between them, and on eight bells a single treble path accounts for 8,347 of the 8,480 Surprise, Delight and Treble Bob methods ever named. Cambridge and Bristol, the two methods ringers argue about most, draw the identical red line and differ only in what the other seven bells do behind it. A searchable explorer covers all 25,094 with their notation, symmetry, lead head and first peal; one canvas overlays every treble-dodging Major method at once, shaded by how many took each line. Along the way: no two methods in the library ring an identical lead, but 5,712 of them are identical until the final change, and the single busiest naming day on record is a band on Guernsey ringing 35 new methods in one go and naming them all after Billie Eilish songs.

change ringingbell ringingpermutationsEnglandline drawingminimalismvanilla JScanvas
Card
First published
2026-09-25
Page weight
626 KB
Built with
python 3 stdlib, place-notation engine, verified against the library's own lead lengths, lead heads and hunt-bell paths for all 25,094 methods, the same engine ported to JS, so every line is re-rung in the browser, vanilla JS, canvas, density accumulation with a gamma map, gzip + base64 payload
Source
full pipeline
Data

Low Enough

Washington has 10,405 flowering cherries that are nowhere near the Tidal Basin, and two-thirds of them stand under a power line.

Every Prunus in the District of Columbia's public-space tree inventory, mapped, sized and sorted by when it flowers. The city's blossom map turns out to be its overhead-wire map: 63% of DC's cherries have a utility line above them against 19% of its oaks, because a cherry is what a forester plants where a shade tree would grow into the cable. Across the eight wards the share of street trees that are cherries tracks the share with wires overhead at r = 0.92 - and Ward 2, which contains the Tidal Basin, has the fewest street cherries in the city.

urban forestrycherry blossommapsinfrastructureWashington DC

Wherever Found

Every species the Endangered Species Act has ever listed, delisted or reclassified, verified live against both agencies' own databases, plus who the money actually goes to. NOAA Fisheries leads 7% of the list and absorbs two-thirds of the spending.

The Fish and Wildlife Service's ECOSphere database and NOAA Fisheries' own ESA directory, queried live and merged with four years of the spending report Congress is sent: 2,478 currently listed entities, 141 ever delisted, 950 critical habitat designations, 1,596 five-year status reviews, and $734 million of reported FY2022 expenditure parsed out of a PDF that has no machine-readable release. Two findings carry the page. First, of 141 delisted entities only 85 (60%) were removed because they recovered: 32 went extinct first and 24 were never validly listed. Second, NOAA Fisheries leads 167 of 2,478 listing entities and takes 64% of every dollar reported spent, because recovering a Columbia Basin salmon run means operating a hydroelectric system: the three most expensive species in the country are all salmon or steelhead. Alongside them sits the North Atlantic right whale, whose sustainable human-caused death limit is 0.73 animals a year against 14.8 actually killed, one of 15 Atlantic marine mammal stocks dying faster than NOAA's own arithmetic allows. A searchable explorer covers every entity with its spending history; a second table covers NOAA's 105 species with their recovery-plan status, global NatureServe rank and live Federal Register document counts; and a state choropleth, a critical-habitat ranking and a live rulemaking feed round it out.

endangered speciesconservationwildlifegovernment datafederal spendingpublic recordsPDF table extractionvanilla JScanvaschoropleth map
Card
First published
2026-09-22
Page weight
587 KB
Built with
python 3 stdlib, pypdf, undocumented ECOS pull-reports REST API, NOAA Fisheries species-directory JSON export, self-validating PDF table parsers (reconciled against each report's own printed total), entity_id / scientific-name join with a DPS-label bridge, a taxonomic-synonym bridge and word-overlap fallbacks, vanilla JS, canvas timeline, inline SVG choropleth, gzip + base64 payload
Source
full pipeline
Data

First Ballot

Every lead and supporting acting Emmy nomination since 1979, and who never got the envelope. 72.5% never won it. Of the ones who did, 68% won on their first try.

A 2026 Emmy CSV compiled by a fan project, regrouped into twelve lead/supporting × actor/actress × drama/comedy/limited-series categories: 1,573 acting careers, 1979 through the 78th Emmys on September 14, 2026. The news said Matthew Rhys became the first person to win two lead-actor Emmys in one year; checked against the full history, that's true only because it says ‘lead’. James Earl Jones (1991) and Stockard Channing (2002) each won two of these categories in a single year too, just not two Lead ones. The bigger pattern: 72.5% of everyone ever nominated in these categories since 1979 never won, and of the 27% who did, 68% won on their very first nomination, and a second or third try barely moves the odds. Angela Lansbury holds the all-time drought record, twelve straight Lead Actress–Drama nominations for Murder, She Wrote with zero wins, nearly double the next-longest streak. Every person's nomination history is browsable by category, dot for dot, win or loss.

awards showstelevisionsurvivorshipbase ratesselection effectsvanilla JSSVG charts
Card
First published
2026-09-22
Page weight
274 KB
Built with
python 3 stdlib, keyword category classifier, vanilla JS, inline SVG, JSON payload
Source
full pipeline
Data

Personal Best

Every official Rubik's Cube competition since 2003. The world-record average got four times faster. A first-timer's average has barely moved, and half of first-timers never come back.

The World Cube Association's full results export: 286,140 people and 9.3 million timed 3×3 solves at 15,342 competitions. The world-record average fell from 14.52 seconds at the end of 2004 to 3.51 in June 2026. The median first average a newcomer sets in their first round went from 38.8 seconds in 2005 to 34.0, about a tenth of that improvement. Only 48% of first-timers enter another competition within two years, and the ones who stay were faster from the start: people who competed once started at a median of 41.5 seconds, and people who went on to twenty or more competitions started at 25.2. So a WCA field gets faster partly through practice and partly through who stays. Two hero timers race in real time, the record stopping at 3.51 while the typical first-timer keeps going. You can type your own average to see where it falls among every personal best and every first round. The last section looks at the five solves of a round. The first is most often the slowest, and the fifth is the one most likely to be a DNF. That jump is almost entirely among the fastest solvers: after four clean solves under ten seconds, the DNF rate goes from 1.13% on the fourth solve to 1.67% on the fifth. Slow solvers, the ones a time limit would catch, show no jump.

speedcubingRubik's Cubesurvivorshipselection effectssport recordsvanilla JScanvas rendering
Card
First published
2026-09-19
Page weight
75 KB
Built with
python 3 + pandas, quantile payload with DNF-as-slowest ranking, vanilla JS, canvas, real-time LCD race
Source
full pipeline
Data

Six More Weeks

Every Groundhog Day forecast on record, graded against the six weeks that followed. A groundhog that never came out of its burrow would win.

1,442 Groundhog Day forecasts from 93 prognosticators (live groundhogs and marmots, ten taxidermied ones, people in suits, and also a lobster, an alligator, a largemouth bass, a golf club cover and a plastic flamingo), each graded against the literal six more weeks, February 3 to March 16, at the nearest long-running NOAA GHCN-Daily station. They were right 54.1% of the time. That beats a coin, but not a forecaster who stays in the burrow: the climate warms faster than a thirty-year normal can catch up, so a spring beats its own trailing normal 64% of the time, and 76% in the 2020s. Calling early spring every year would have scored 64%. Called at their own rates at random, the forecasters would have scored 51.7%, so their entire edge over chance is about 34 forecasts. Punxsutawney Phil calls winter 81% of the time and is right 43 times in 100. The only perfect record over five years belongs to Featherstone the Flamingo, a plastic lawn ornament in Massachusetts, which has never seen its shadow. The page carries two controls because one is not enough. The top of the table, an Alabama opossum right 13 times in 14, beats the best of 54 fair coins in 98% of replays, yet it sees its shadow in two years of fourteen in a place where spring is usually early, and calling at that rate at random would already score 70%. Matching every forecast since 1940 to ERA5 reanalysis of the sky over its burrow shows that someone really does look: shadows are called on 60% of sunny mornings and 29% of overcast ones. The taxidermied forecasters respond to the sky even more sharply than the live ones, so the handlers are the ones looking. The measurement they take is also useless: six weeks after a sunny Groundhog Day ran +0.75 °F warmer than after an overcast one, the opposite of the Candlemas rhyme, with an interval that straddles zero.

folkloreforecast verificationcontrolsbase ratesclimate normalsmultiple comparisonscanvas rendering
Card
First published
2026-09-16
Page weight
271 KB
Built with
python 3 stdlib, nearest-complete-station selection, coin-field Monte Carlo, year-block bootstrap, vanilla JS, canvas, inline SVG
Source
full pipeline
Data

Request Denied

What states won't let you put on a license plate, and how they decide. California reads the worst meaning into a birthday ending in 13.

Personalized-plate decisions from California, New York, Texas and a dozen states' 2012 ban lists, set side by side. California asks applicants what a plate means, then reads it the worst way it can: of 23,430 flagged applications in 2015–16, 80% were denied, and a flagged plate ending in 13 (read as a gang number) was approved 7% of the time, down from 11% in 2012–13. New York issued 741 plates ending in 13 over four years. Thirty denials are quoted as the DMV recorded them (a union member's local numbers, a Tesla golfing pun, a mother of eight), and seven of those exact plates were issued in New York. The 2012 lists, pulled out of scanned public-records responses, turn out not to be independent judgements: 71% of Arkansas's banned list is on Vermont's, OLDFART is on all twelve large lists, and Maine's list is mostly Alaska's. Utah's list overlaps least with the others and is the only one that gives a reason for every plate. Texas doesn't consider intent at all but dates every request, so its 2025 rejections follow the news: all seven plates naming Elon Musk were requested between March 25 and June 17. Built around a trap: pdftotext's layout mode silently pairs about 84 of Texas's 1,951 plates with a neighbour's date.

censorshippublic recordslicense platescontent moderationOCRvanilla JSSVG charts
Card
First published
2026-09-16
Page weight
47 KB
Built with
python 3 (standard library), stdlib xlsx reader, pdftotext -raw / -layout, OCR table extraction, vanilla JS, inline SVG, node DOM-stub page test
Source
full pipeline
Data

Brick by Brick

Every piece in 18,000 LEGO sets, counted by colour and year. The classic six colours went from 89% of the bricks to 40%, and the greys changed overnight.

Rebrickable's parts lists for every official LEGO set, 1949 to 2026, counted by colour. Each year becomes a column of studs, and the page is styled as an instruction booklet with a 3D house behind it that builds itself as you scroll and repaints in each era's colours. Red, yellow, blue, white, black and green were 89% of 1970s pieces and are 40% now. In 2004 the old greys fell from about a fifth of all pieces to 3% within a year, replaced by the bluish greys, and Brown became Reddish Brown at the same moment. The number of colours making up at least 0.1% of a year's pieces grew from 10 in 1975 to 52 in 2004, was cut to 34 by 2007, and has since grown back with nougats, azures, lavenders and coral. You can see every theme's palette and tip out any set to compare it with another, such as the 1979 and 2022 Galaxy Explorer.

LEGOcolourtoyspalette historythree.jsscroll-driven 3Dcanvas rendering
Card
First published
2026-09-16
Page weight
1.9 MB
Built with
python 3 stdlib, largest-remainder stud mosaics, base64 typed-array payload, vanilla JS, canvas, three.js r128 instanced meshes
Source
full pipeline
Data

Last Visited

Every URL the Supreme Court has ever cited, fetched again. Fewer than half still resolve to what the Justices read.

1,382 web citations pulled out of 529 Supreme Court opinions (the whole run, from the first URL the Court ever cited in 1996 to the current term), then fetched again and looked up in the Internet Archive. Of the 1,185 addresses that give a definite answer, 44.6% still resolve to the document that was cited; 158 hosts have stopped resolving altogether, the publisher gone rather than the page. The failure is graded by age, which is what separates rot from noise: citations first made between 2005 and 2009 are 88% gone, those from 2015 onward mostly fine. Named for the Bluebook parenthetical, and built around two things that are easy to get wrong. The first is that roughly half the corpus is OCR of printed reporters, where a scanning error yields an address that was never real and looks identical to a rotted one, so every URL is also checked against the Wayback Machine, and rot is reported separately on the 696 addresses the archive can vouch for. The second is the measuring instrument itself: every one of the Court's own perma.cc links returned 403, not because of the user-agent but because the refusal keys on the HTTP client fingerprint, and re-fetching through curl changed 166 verdicts. The page also reads the Court's own answer to the problem out of the opinions: a blanket visitation note through the 2010s, a copy filed with the Clerk of Court, and then, in OT2025 and essentially never before, 73 citations carrying "(archived at https://perma.cc/…)", which makes perma.cc the most-cited host in the corpus. Those links work: 53 of the 54 that answer.

link rotSupreme Courtcitation practiceweb archivingOCRmeasurement errorcanvas rendering
Card
First published
2026-09-12
Page weight
252 KB
Built with
python 3, OCR line-break repair, pdftotext -layout, threaded liveness checking, curl fallback for fingerprint-blocked hosts, Wayback availability lookups, vanilla JS, canvas, node DOM-stub page test
Source
full pipeline
Data

Momentum

Six things commentators say about momentum, tested on 11,452 charted matches, and tested again on tennis played by coins, which says the same thing.

Every point of 11,452 professional matches from the Match Charting Project, rebuilt from the score counters up, and used to test the six things commentators say about momentum: serving for the set, serving to stay in it, the game after a break, wasted break points, the hot hand, and winning the first set. All six are true as plainly stated: servers do hold 80.4% of the games they serve for the set against 75.8% of their others. The page exists because a plain comparison cannot tell you anything here, and neither can a careful one: hold the player fixed and compare him with himself inside one set, and serving for the set swings from +4.3 per 100 games to −14.8. So every test is run again on the same matches played as independent coin flips, with the same players, the same formats and serve strengths calibrated to reproduce the real distribution of scorelines. Memoryless tennis produces −14.8 too, because winning a game ends the set and so decides how many baseline games exist. Nothing survives: the largest gap between real tennis and coins is within its own confidence interval. The hot hand comes closest, and dies on a scoring detail. Two points played at 30–15 have identical win-loss counts and differ only in order, and compared that way the effect is +0.04 ± 0.11 per 100 points. You can run the control yourself: the page replays all 11,452 matches in your browser.

tennishot handnull resultssimulationselection effectspermutation testscanvas rendering
Card
First published
2026-09-11
Page weight
188 KB
Built with
python 3, numpy, memoryless match simulator, Mantel-Haenszel conditional test, vanilla JS, canvas, in-browser simulation, node canvas-geometry test
Source
full pipeline
Data

Right of Way

Reported collisions between American aircraft and American wildlife rose eightfold since 1990. Counted six ways, almost all of the growth is reports of nothing happening.

Every civil aircraft-wildlife collision reported in the United States since 1990, 354,874 of them, harvested a month at a time from the FAA's own public export, counted six ways. The raw number of reports rises 687%, and the page exists to take that number apart: dividing by air-carrier departures only brings it down to 355%, because flying did not grow anything like eightfold, but counting only the strikes that damaged the aircraft brings it to 92%. Put the other way round, damage was indicated on 15.8% of reports in the first five years and 3.8% in the last five, so nearly every extra report is a report of nothing happening, and the reporting channel was rebuilt underneath the count in exactly that period, the paper form giving way to an electronic one that now carries four fifths of everything filed. The strictest series does fall by two thirds, and rather than bank the win the page shows you why not to trust it: the FAA re-grades damaging strikes from 'substantial' to 'minor, uncertain' around 2016, which is visible as a step in its own chart. Two other fields that looked like recoding-proof severity measures were tested and rejected on the same grounds. The species board is the other surprise: the most-struck animal in the file, the mourning dove, damages an aircraft 1.8% of the time; a white-tailed deer does it 81.7% of the time.

aviation safetyreporting biasascertainmentcontrolscoding driftwildlifecanvas rendering
Card
First published
2026-09-10
Page weight
436 KB
Built with
python 3 stdlib, month-checkpointed harvest, vanilla JS, canvas, inline JSON payload, node --check smoke test
Source
full pipeline
Data

Narrow Year

2,474 tree-ring chronologies asked which years the world's trees all had a bad time at once, and whether those were the years the history books would predict.

A tree ring is a date, because trees hundreds of miles apart put down the same pattern of fat and starved years. This draws real chronologies from the International Tree-Ring Data Bank as cross-sections you can read ring by ring, gives you the crossdating instrument itself (slide one site against another and watch the correlation lock at the true offset), and then pools all 2,474 sites into one series: the share of the world's trees that recorded an unusually narrow ring each year from 925 to 2006, with the wide-year share carried underneath as a control. The result is a null. Across the 42 largest eruptions whose dates come from someone writing them down at the time, the narrow share lifts by 1.3 points, from 8.9% to 10.1%; 1816, the year without a summer, comes in below average narrow worldwide. The explanation is about the archive rather than about trees: 1,167 of the 2,474 sites stand in western North America, where 1816 was a superb growing season, 1.4% of sites narrow against 32.7% wide, so the one region that did record it, eastern North America at 13.9% narrow, is averaged into silence. Samalas in 1257 is the counter-example that proves the method works, reaching 36.6% narrow against 2.4% wide in the western sites the year after it erupted.

dendrochronologypaleoclimatevolcanismsampling biascontrolscanvas renderinginstrument UI
Card
First published
2026-09-08
Page weight
4.3 MB
Built with
vanilla JS, canvas, typed-array payload, numpy
Source
full pipeline
Data

Redline

Every federal rule, diffed against the version its agency first proposed: what public comment actually changed.

American rulemaking promises that the public gets to comment and the agency may change its mind. Whether that second step moves the text is an empirical question nobody answers, because answering it means diffing two documents for every rule. This pairs 13,626 final rules from the Federal Register with the proposals they came from and diffs the regulatory text of 3,685 of them word by word: the part that enters the Code of Federal Regulations, not the preamble around it. The median rule is enacted with an eighth of its regulatory text new, and that median is the least interesting number on the page: a third of rules barely move and a quarter arrive at least a quarter new. Agencies differ tenfold, from the FCC above 50% to Agriculture near 5%, though neither end is a scoreboard, since an agency that reissues whole sections measures as heavily revised on identical substance. Pairing is the hard part and no field does it: a RIN can be a standing class covering 4,346 documents, an FCC docket is a proceeding spanning years, and requiring CFR-part agreement threw out 8,582 candidate pairings the other keys accepted. Routine short rules are carried as a control and revise too, at about 5%.

regulationfederal registertext diffadministrative lawrecord linkagecontrols
Card
First published
2026-09-07
Page weight
4.8 MB
Built with
python 3 stdlib, curl for the rate-limited harvest, vanilla JS, gzip + DecompressionStream payload, canvas, word-level diff over unwrapped paragraphs, node smoke test that runs the built page
Source
full pipeline
Data

Broke Ground

Every parcel in Montgomery County, placed by the year its building went up. Drag the year and watch a county fill in.

Maryland's tax roll carries a four-character column called YEARBLT. This page takes all 348,669 Montgomery County parcels, sorts them by it, and draws them: scrub from 1700 to 2025 and the county assembles itself, buildings appearing where and when they actually went up. Click any dot for its address, what the assessor calls it, its floor area and lot, and a link straight through to the state's own record. Where the Maryland Historical Trust has surveyed a building, the page joins its scanned survey form to the parcel. Three findings fall out of it: the building line moved from 6.6 miles out of Washington in the 1920s to 18.4 by the 1990s and then stopped dead; new construction inside what became the Agricultural Reserve fell 62% in the 1980s while the rest of the county had its biggest building decade ever; and the median new detached house went from 1,382 square feet in the 1950s to 3,809 today.

hyperlocalland recordshistoric preservationtime-lapse mapcanvas density renderingdata fusion
Card
First published
2026-09-07
Page weight
7.1 MB
Built with
vanilla JS, canvas density accumulation buffer, gzipped column store + DecompressionStream, year-sorted prefix scrubbing, hand-built SVG figures, ArcGIS REST paged harvest
Source
full pipeline
Data

Ahead of Season

Twenty-five springs of bird sightings against the temperature each spring actually had, with two birds that never migrate carried along as a lie detector.

Do migrants arrive earlier in warm springs? This lines up 1.9 million GBIF sighting records (13 species across Washington, Boston and Atlanta, 2000 to 2024) against Open-Meteo's ERA5 temperature history for the same ground, and lets you re-sort the twenty-five years by warmth instead of by number to see whether the arrival dates fall into line. Because sightings measure birdwatchers as much as birds, every count is divided by all bird records logged in the same box on the same day, and two year-round residents are run through the identical pipeline as controls: a Northern Cardinal cannot arrive in spring, so whatever shift the method reports for it is the method's own drift. In Washington that drift is −0.13 days/°C and the Baltimore Oriole's 0.65 days per degree stands; in Boston the residents drift +0.70 and the page flags the entire city rather than report it. The Ruby-throated Hummingbird shows nothing anywhere: it winters in Central America and departs on daylength, unable to perceive a warm North American spring, which is the mechanism behind phenological mismatch.

phenologybiodiversityclimateobserver biascontrolsdata fusion
Card
First published
2026-09-07
Page weight
459 KB
Built with
vanilla JS, hand-built SVG, GBIF facet=day histogram harvest, effort-normalised detection frequency, resident-species control cohort
Source
full pipeline
Data

Unforced Error

19,203 app-store reviews of racquet-sport apps, screened and coded like a systematic review.

Every app in the racquet-sport corner of the App Store and Google Play, found by keyword, screened against a published rule, and its reviews coded by a codebook you can edit on the page: change a regular expression and all 19,203 reviews recode. The finding: nothing that costs an app stars is a feature. Login, price, crashes and ads sit up to two stars below the corpus mean, while the topics that turn up in the happiest reviews are the ones a product manager files as complaints: doubles support, a watch app, a CSV export. People ask you for features at four and five stars. They leave one star over a login that will not take. Half the build failed and is documented: Apple 403'd its review feed and four other routes to the same text were tried and closed.

app storetext miningsystematic reviewfaceted searchcodebook
Card
First published
2026-09-06
Page weight
1.3 MB
Built with
vanilla JS, gzip + DecompressionStream payload, canvas, inline SVG, live regex coding
Source
full pipeline
Data

Thirty-Seven Waves

Every US tide gauge taken apart into the 37 waves it is made of, and put back together in the browser.

NOAA publishes, for each of its tide gauges, the amplitude and phase of thirty-seven waves: the moon twice a day, the sun, the moon's elliptical orbit, the tilt of the earth, and ten shallow-water distortions that are not astronomy at all. Add them up and you have the tide, for any date, with no measurement of the ocean. This page ships those coefficients for 1,303 gauges and does the adding itself: a map with no coastline in it, where the country appears because the gauges are on the water; an instrument that switches the waves on one at a time so you can watch the tide assemble; and eight days when the sum was wrong, where subtracting the moon from the record leaves the storm: Isabel putting 7.9 ft of unexpected water into the Potomac at Washington, Sandy 9.3 ft at the Battery, Ian pulling 5.8 ft out of Tampa Bay. The model agrees with NOAA's own tide tables to about a minute and a hundredth of a foot, but it did not start there: it was right in 2026 and 90 minutes wrong in 2003, and finding out why meant measuring NOAA's node factors across a full 18.6-year cycle and discovering a single mis-remembered astronomical constant.

tidesNOAAharmonic analysisphysics in the browserstorm surgeinstrument UI
Card
First published
2026-09-06
Page weight
364 KB
Built with
vanilla JS, hand-written harmonic tide engine, gzip + DecompressionStream payload, canvas, empirical calibration against NOAA
Source
full pipeline
Data

Headwaters

2,374 datasets worth working with, and the 54 sources they come from: classified, searchable, probed.

Two catalogues in one. The dataset layer holds 2,374 published datasets, all but three drawn from two aggregations that select for very different things - every TidyTuesday week since April 2018, which is tidy and teachable and comes with 8,575 column names, and ten years of Data Is Plural, which is odd and specific and global. Each record carries the curator's own pitch, the upstream publisher and the article that prompted it, classified by subject, publisher and place so you can browse for something to work with rather than search for something you already know exists; the 30 datasets both aggregations surfaced are one record with two sightings, and a facet filters on how a dataset was found. The source layer holds 54 endpoints you can query repeatedly, each described well enough to use from a shell and carrying small real requests that a weekly job re-runs to prove the endpoint still works. Building it turned up failures nothing else documents, including data.gov's CKAN API 404ing on every documented path while its gateway authenticates your key and redirects you to the dead origin, SEC EDGAR refusing any User-Agent that contains the string github.com while accepting the same header with any other domain, and ProPublica's Congress API being retired outright while its documentation site still serves 200.

open datacatalogdataset discoverytidytuesdaydata is pluralfaceted searchtooling
Card
First published
2026-09-06
Page weight
3.7 MB
Built with
python 3.9 stdlib, vanilla JS, JSON Schema, no dependencies
Source
full pipeline
Data

Still Cited

What the literature did after each paper was withdrawn.

Every retraction Retraction Watch has catalogued, 72,389 notices, joined by DOI to OpenAlex citation histories. A field of 72,000 marks plots each paper's publication date against how long it survived; facets slice by reason, journal, publisher, country and field; any mark opens the paper, its original reason codes and its DOI. Of the 39,030 papers whose full citation history is observable, 69% were cited again after the year they were retracted, and 34% of every citation they ever collected arrived after the notice.

research integritybibliometricsfaceted searchdata viz
Card
First published
2026-09-05
Page weight
12.9 MB
Built with
vanilla JS, canvas, typed-array payload
Source
full pipeline
Data

At Large

A century of American newspapers reporting animals on the loose.

There is no dataset of animals escaping from zoos, so this builds one out of full-text search over Chronicling America, the Library of Congress archive of digitised American newspapers. 3,413 pages from 20 period phrasings, 1758–1963, filterable by phrase, animal, decade and state, each linking to the scanned page with the term highlighted. The intended plan was to mine the OCR for what escaped and what happened next; that failed, for a reason the page explains and turns into its subject.

newspapersarchivesOCRscreeninghistory
Card
First published
2026-09-05
Page weight
4.4 MB
Built with
vanilla JS, canvas, Bodoni Moda
Source
full pipeline
Data

Overhead

721 real satellites, propagated live in your browser from their orbital elements.

A draggable day/night globe with coastlines and ground tracks, a time scrubber running up to 3000×, and an altitude-by-inclination census that exposes the hidden structure of the sky. Rather than freezing satellite positions, it ships the orbital elements and solves Kepler's equation in the page, so it stays live indefinitely with no network. Every number drills down to the six elements behind it, and objects on wild ellipses are drawn as perigee-to-apogee lines instead of points.

spaceorbital mechanicsdata vizglobe
Card
First published
2026-09-04
Page weight
186 KB
Built with
vanilla JS, canvas, hand-written Keplerian propagator
Source
page only
Data

Daybook

Eighty-five years of daily weather, drawn as a strip chart and played as sound.

Three NOAA stations within 21 km of one another, one hairline per day from that morning's low to that afternoon's high, inked by departure from normal, and then played out loud. Pitch is temperature, the high voice is the afternoon and the low voice is the overnight, rain is filtered noise and snow a chime. Underneath runs a drone tracking the five-year trailing anomaly: mute everything else and the trend becomes a bass note that climbs across the century. At every station the overnight low rose two to three times faster than the afternoon high.

climatesonificationNOAAdata viz
Card
First published
2026-09-04
Page weight
1.0 MB
Built with
vanilla JS, canvas, Web Audio API
Source
full pipeline
Data

Mermaid Medic

A linter and live renderer for Mermaid architecture diagrams.

Paste a .mmd file and get it checked against a strict convention set (quoted labels, safe node IDs, balanced subgraph/end, no stray fences), then rendered live. One-click auto-fix repairs violations, including renaming an unsafe ID everywhere it appears across both node definitions and edges, which is the failure that silently breaks a diagram.

developer toolmermaiddocumentationlinter
Card
First published
2026-09-03
Page weight
25 KB
Built with
vanilla JS, mermaid.js 10.9.1 (cdnjs)
Source
HTML is the source
Data

No external data. The page is the whole thing.

GOAT Synthesis

The men's tennis GOAT debate, run as a systematic review.

Five Masters-era greats scored across eight criteria of real ATP data, with weight-the-evidence sliders that re-rank the field live, preset lenses for each common argument, and a Monte-Carlo sensitivity analysis over 10,000 random weightings. The honest result is baked in rather than rigged: by the recorded numbers one player wins in 99.9% of weightings, and the interesting part is what the numbers don't capture.

tennisevidence synthesisinteractivemonte carlo
Card
First published
2026-09-03
Page weight
27 KB
Built with
vanilla JS, no dependencies
Source
HTML is the source
Data

Where the data came from

Every external dataset used across the collection, with the licence it carries and the projects that draw on it. Each page repeats this in its own methods panel, in more detail and with the limitations attached.

DatasetLicenceUsed by
54 catalogued endpoints, probed liveeach source keeps its own licence, recorded in its record; the catalogue records are CC0Headwaters
ATP records, web-verified at build timecited, not redistributedGOAT Synthesis
Agricultural Reserve zone boundary, Montgomery County MC AtlasMontgomery County open dataBroke Ground
Apple customer-reviews RSS feedApple public endpoint, returned 403 throughout this build; no review text retrievedUnforced Error
Apple iTunes Search API (app metadata, US storefront)Apple public endpoint; metadata used for research, not redistributed in bulkUnforced Error
Art Institute of Chicago public API: every artwork typed Painting, with its dimension label, artist, date and subject terms, read 2026-10-07CC0Off the Shelf
Blank US Map (states only).svg, Wikimedia CommonsCC0 1.0 Universal (public domain dedication)Wherever Found
Bloom-order corroboration for Okame and Kwanzan, Casey TreesCited, not redistributedLow Enough
California DMV personalized plate review decisions, 2015–16 (released to Noah Veltman)Government public records; the repository states no licence. The page carries derived counts and quoted rows, not the file.Request Denied
Caselaw Access Project bulk data: U.S. Reports vols. 500–572 and Supreme Court Reporter vols. 134–140CC0 1.0, public domain dedicationLast Visited
CelesTrak two-line element setscheck redistribution terms before re-hosting the dataOverhead
Central Council of Church Bell Ringers, Methods Library: the full XML export of all classes and stages (25,094 methods), plus the separate jump-method collection (28), generated 12 September 2026© Central Council of Church Bell Ringers. Published by the Council for use in spreadsheets and computer programs; used here in derived form (names, place notation and performance records) with attribution. The raw export is not redistributed.Every Bell Once
Cherry tree varieties and their bloom order, National Park ServiceUS Government public domainLow Enough
Chronicling America, Library of CongressUS Library of Congress, public domainAt Large
County, municipal and hydrography boundaries, Maryland iMAPMaryland open dataBroke Ground
Data Is Plural archive (Jeremy Singer-Vine)archive released for reuse; the prose is the author's - records quote at most a few sentences, with a link back to the editionHeadwaters
District of Columbia public-space tree inventory (UFA Street Trees), DC GIS Urban Tree Canopy service layer 23, maintained by the DDOT Urban Forestry Division - species, position, trunk diameter, condition, ward, lidar crown and overhead-wire status for 222,660 treesPublic domain (DC Open Data)Low Enough
Duggan and Levitt (2002), Winning Isn't Everything: Corruption in Sumo Wrestling, American Economic Review 92(5): the published figures the page reproducesCited, not redistributedThe Eighth Win
ENABLE (Enhanced North American Benchmark Lexicon), 172,823 words - used as a yes/no test of whether an answer is an ordinary English wordPublic domainSecond Language
ERA5 reanalysis (hourly cloud cover and sunshine duration) via the Open-Meteo Historical Weather APICC-BY-4.0 (Open-Meteo); ERA5 contains modified Copernicus Climate Change Service informationSix More Weeks
English Wikipedia, French standard sizes for oil paintings: the table of the sixty figure, paysage and marine stock sizes in centimetresCC BY-SA 4.0Off the Shelf
English Wikipedia, the articles Eurovision Song Contest 1957 to Eurovision Song Contest 2025: result tables and each article's account of how its running order was set, read through the MediaWiki parse API on 2026-10-07 with revision ids recordedCC BY-SA 4.0Out of the Hat
F. W. Devoe and Co., Priced catalogue of artists' materials (New York and Chicago, about 1900), the stretched-canvas size list on pages 16 and 17, read from the Internet Archive's OCR of a Columbia University Libraries scanPublic domainOff the Shelf
FAA Wildlife Strike Database (public export endpoint behind wildlife.faa.gov/search)work of the United States government, public domainRight of Way
Federal Register API (documents, metadata and full text), US National Archives / GPOUS Government work, public domain; the full-text endpoint rate-limits and answers 429Redline
GBIF occurrence records (species and all-bird effort denominator)per-record CC0 / CC-BY / CC-BY-NC, honour each record's own licenceAhead of Season
GeoNames country dumps for Sweden, Norway, Denmark and FinlandCC BY 4.0Place Settings
Global Volcanism Program, Holocene eruption catalogue, Smithsonian Institutioncited, not redistributed in bulkNarrow Year
Google Fonts CSS API - 5,977 upright faces, each requested with text=Hamburgenox so that gstatic returns a subset font of only the eleven letters measured hereThe font files themselves: SIL Open Font Licence 1.1 (1,910 families), Apache 2.0 (35), Ubuntu Font Licence 1.0 (5)Bold Claim
Google Fonts catalogue metadata - 1,950 families with designer, category, date added, popularity rank, subsets, variable axes and Google's own thickness and width buckets, read 2026-10-05Catalogue metadata, published openly by Google Fonts at an unauthenticated endpointBold Claim
Google Play store listings and PlayStoreUi batchexecute RPCpublic store pages; review text quoted for research and attributed to its appUnforced Error
IKEA en-GB product sitemaps (prod-en-GB_1 to 6): 28,699 product URLs whose slugs carry each product's name and English description, read 2026-10-13. Facts about what is on sale; no IKEA text or image is reproduced.Facts; no IKEA content reproducedPlace Settings
International Tree-Ring Data Bank site chronologies (ITRDB v7.13), NOAA PaleoclimatologyUS Government public domain; cite the original contributor of each chronologyNarrow Year
Internet Archive Wayback Availability API, used to establish whether each cited address was ever capturedFree public API; snapshot metadata only, no archived content redistributedLast Visited
Internet Archive Wayback Machine captures of the same sitemaps, one per file per quarter, July 2022 to October 2026 (103 captures)Archived copies of public pagesPlace Settings
Japan Sumo Association, hoshitori chart for the September 2026 tournament, read from the endpoint behind its results page as a spot checkCopyright Nihon Sumo Kyokai; used only to verify, nothing redistributedThe Eighth Win
MDProperty View parcel points (SDAT assessment attributes), Maryland iMAPMaryland open data, public record, attribution requestedBroke Ground
Maryland Inventory of Historic Properties, Maryland Historical TrustMaryland open data, public record, attribution requestedBroke Ground
Metro station locations, Montgomery County GISMontgomery County open dataBroke Ground
Minecraft 26.3 generated data files (recipes, loot tables, villager trades, item tags, the item registry and the English name table), mirrored by misode/mcmeta, which regenerates the game's own output for every version. Pinned to the stable 26.3 release rather than a snapshot.Minecraft game data is © Mojang Studios / Microsoft and is not redistributed here. The repository ships derived facts only: recipe relationships, computed material costs and item names. No game assets, textures or data files are copied into the published page, and the raw download is gitignored.Round Trip
NOAA CO-OPS harmonic constituents (37 per station, 1,303 stations)US Government public domainThirty-Seven Waves
NOAA CO-OPS observed water level and official predictionsUS Government public domainThirty-Seven Waves
NOAA Fisheries, 2024 U.S. Atlantic and Gulf of America Marine Mammal Stock Assessments: abundance, Potential Biological Removal and human-caused mortality for 116 stocks, parsed from the report's Table 1US Government public domainWherever Found
NOAA Fisheries, ESA Species Directory: the agency's own list of the 105 species and 258 listed entities it leads, with region, recovery plan status and critical habitat status, taken from the directory's JSON exportUS Government public domainWherever Found
NOAA NCEI GHCN-Daily (stations USC00182325, USC00180700, USW00013743)US Government public domainDaybook
NOAA NCEI GHCN-Daily station records (TMAX, TMIN) via the NCEI Access Data ServiceUS Government public domainSix More Weeks
NOAA Paleoclimatology study metadata (site coordinates and species)US Government public domainNarrow Year
NYPL "What's on the Menu?" final data export, 1 December 2022 - 17,550 menus, 66,937 pages, 431,041 dish names and 1,335,245 dish appearances with prices and normalised (x, y) click positions. The project site has been retired; this export survives as an Internet Archive item uploaded by Josh Hadro, who ran NYPL Labs.Public Domain Mark 1.0Coffee Last
NYPL Digital Collections - the page scans themselves, linked per card by catalogue uuid. No image is copied or hotlinked; every menu drawn on the page is rendered from the transcribed coordinates.Linked, not redistributedCoffee Last
Natural Earth 110m land outline (via world-atlas)public domainNarrow Year
NatureServe Explorer: global (G1–G5) and US national conservation ranks for every NOAA-managed species, via the public species search APINatureServe Network Biodiversity Location Data, used under NatureServe's terms for non-commercial referenceWherever Found
New York DMV personalized plate orders, rejections and Red Guide, 2010–14 (WNYC FOIL request)Government public records; the repository states no licence. The page carries derived counts only.Request Denied
Office of the Federal Register, Federal Register API: ESA rulemaking counts by agency, type and year, per-species document counts, and a live feed of each agency's most recent filingsUS Government public domainWherever Found
Open-Meteo ERA5 reanalysis archive (daily 2 m max/min temperature)CC-BY-4.0Ahead of Season
OpenAlexCC0Still Cited
OpenStreetMap, Great Britain extract from Geofabrik (great-britain-latest.osm.pbf, 2.1 GB, downloaded 2026-10-05): every pub, and every railway and canal, open or disused. © OpenStreetMap contributors.ODbL 1.0Last Orders
Peter Norvig, word counts from the Google Web Trillion Word Corpus - 333,333 words over 588 billion tokens, used for the English letter and vowel baselineFree to use (Norvig, Natural Language Corpus Data)Second Language
Prunus 'Snow Goose' parentage and flowering habit, Landscape Plants, Oregon State UniversityCited, not redistributedLow Enough
Rebrickable LEGO catalogue downloads: colors, themes, sets, inventories, inventory_partsFree to use for any purpose, including commercial, with acknowledgement of Rebrickable as the sourceBrick by Brick
Registry of Open Data on AWSregistry metadata CC-BY 4.0Headwaters
Retraction Watch database, distributed by CrossrefCC0Still Cited
SALDO, Swedish association lexicon, Språkbanken Text, University of GothenburgCC BY 4.0Place Settings
Slip opinions, Supreme Court of the United States, OT2020–OT2025Public domain, a work of the United States GovernmentLast Visited
State DMV banned-plate lists, 2012 (governmentattic.org) and California review sheets, 2012–13 (MuckRock), collected by Dan NguyenGovernment public records; the repository states no licence. The page carries derived counts and quoted rows, not the files.Request Denied
Statistics Sweden (SCB), first names people go by (tilltalsnamn) with at least two bearers, 31 December 2022Open data, attribution (SCB)Place Settings
SumoDB, final-day results page of each tournament: every top-two-division wrestler's fifteen-day win/loss string (413 pages, read 2026-10-14)No licence stated; match results used as factual recordsThe Eighth Win
Texas DMV declined personalized plates, 2025, and personalized plate criteriaTexas government public records. The declined-plate PDF is fetched from FOX 4's re-host; the page carries derived counts and dates.Request Denied
The IKEA Dictionary by Lars Petrus (about 2010): 1,362 names hand-labelled as word, boy, girl or place. Only each name's label is used, never the definitions.No licence stated; labels onlyPlace Settings
The Metropolitan Museum of Art, Open Access CSV (MetObjects.csv): every painting on canvas, with its dimension label, artist nationality, date and subject tags, read 2026-10-08CC0Off the Shelf
The Tennis Abstract Match Charting Project, crowdsourced shot-by-shot data (Jeff Sackmann and the 192 volunteer charters credited in these files)CC BY-NC-SA 4.0, attribution, non-commercial, share-alike; no point-level data is redistributed here, and the derived aggregates on the page carry the same licenceMomentum
TidyTuesday (Data Science Learning Community)per-week; each record names and links the original publisher, which keeps its own termsHeadwaters
U.S. Fish & Wildlife Service, ECOSphere (Environmental Conservation Online System): species listings, delistings, reclassifications, five-year reviews, critical habitat and recovery plans, fetched live at build time via undocumented report endpointsUS Government public domainWherever Found
U.S. Fish & Wildlife Service, Federal and State Endangered and Threatened Species Expenditures: Reports to Congress, fiscal years 2019–2022; per-entity spending parsed from Table 2 of each PDFUS Government public domainWherever Found
Ward boundaries (Ward - 2022) and Waterbodies, DC GISPublic domain (DC Open Data)Low Enough
Wikidata: villages, hamlets, towns, cities, settlements, farms and parishes in the four countries, by SPARQLCC0Place Settings
World Bank indicator IS.AIR.DPRT, US registered air carrier departures (source: ICAO)CC-BY-4.0Right of Way
World Cube Association results export (TSV, format v2.0.2), as of 18 September 2026May be republished in whole or part with the WCA's attribution notice: "This information is based on competition results owned and maintained by the World Cube Association, published at https://worldcubeassociation.org/results as of September 18, 2026."Personal Best
emmys-data (dmase2), a compiled Primetime Emmy nominations CSV, 1949–2026No licence file published; the underlying facts (nominee, category, year, winner) are historical record of the Television Academy's own public awards, not the compiler's creative expression.First Ballot
fontTools - used to read the outlines. The scanline measurement built on top of it is this project's own, in src/glyphmetrics.pyMITBold Claim
google/fonts - which of the three licence directories each family is filed underRepository under Apache 2.0; each family keeps its own licence, recorded per family on the pageBold Claim
groundhog-day.com API: prognosticators and their recorded shadow calls, each record citing its own sourcepublic API; forecast records are compiled facts, each forecaster links its original sourceSix More Weeks
sumo-api.com, banzuke endpoint: every Makuuchi and Juryo wrestler's day-by-day results and opponents, March 1958 to September 2026 (826 requests, read 2026-10-14)No licence stated; match results used as factual recordsThe Eighth Win
xd corpus, clue archive - 8,019,346 answer-and-clue usages across 46 publications, of which 2,457,203 New York Times rows from 1942 to 2025 are used here; generated 28 April 2026 by Saul Pwanson / century-arcadeTooling MIT; clue and answer text remains the property of the publications that printed it. This page ships aggregate counts plus one dated clue per featured word, quoted as illustration.Second Language

How it is put together

In case it is useful, or in case it is me six months from now wondering how to add another one.

One repo per project

Every project is its own repository with its own Pages site, so it can be shared, forked or read on its own without dragging the rest of the shelf along. This catalog is an index over them and holds no project code.

The page is the deliverable

Each build ships as a single index.html with its data already inside it, usually as base64 typed arrays. The constraint comes from where these are first published, and it turns out to be a good one: no backend to rot, no key to expire, works offline forever.

Data is gathered at build time

A small pipeline pulls from public sources, reshapes and compresses, and splices the payload into a template. Those scripts live in each repo's src/. Raw downloads are deliberately not committed, because the scripts refetch them.

Statistics are computed in the page

Almost nothing here is a precomputed number typed into HTML. Filters, aggregates, rankings and charts are recalculated in the browser from the shipped arrays, which is what lets the figures respond to whatever you filter to.

Rebuildable from scratch

Each repo carries a REBUILD.md written for a model with a shell and no other context: sources with exact URLs, the processing decisions and why, and a table of expected values to check the result against.

Licensing

Code is MIT. Data keeps whatever licence its source carries, mostly CC0 or US Government public domain, listed per dataset above. Where a source's redistribution terms are unclear, the project ships the derived page rather than the raw file.