← back to CelebritySignatures
add 'Oldest Signatures in History' research dataset, spreadsheet + Met-art mural
57c16d5605974eb03faccc20709bf16a64f6a76d · 2026-06-19 10:17:48 -0700 · SteveStudio2
Files touched
M .gitignoreA data/oldest-signatures-enriched.jsonA data/oldest-signatures.csvA data/oldest-signatures.jsonA output/mural-oldest-signatures-named.pngA output/mural-oldest-signatures.pngA scripts/build-oldest-signatures.py
Diff
commit 57c16d5605974eb03faccc20709bf16a64f6a76d
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Fri Jun 19 10:17:48 2026 -0700
add 'Oldest Signatures in History' research dataset, spreadsheet + Met-art mural
---
.gitignore | 1 +
data/oldest-signatures-enriched.json | 398 +++++++++++++++++++++++++++++++
data/oldest-signatures.csv | 20 ++
data/oldest-signatures.json | 20 ++
output/mural-oldest-signatures-named.png | Bin 0 -> 927834 bytes
output/mural-oldest-signatures.png | Bin 0 -> 858101 bytes
scripts/build-oldest-signatures.py | 240 +++++++++++++++++++
7 files changed, 679 insertions(+)
diff --git a/.gitignore b/.gitignore
index a2dcb27..9681475 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@ data/saves.json
data/sessions.json
.deploy.conf
+tmp_oldest_cache/
diff --git a/data/oldest-signatures-enriched.json b/data/oldest-signatures-enriched.json
new file mode 100644
index 0000000..2dfe8e0
--- /dev/null
+++ b/data/oldest-signatures-enriched.json
@@ -0,0 +1,398 @@
+[
+ {
+ "name": "GAR.AMA (Uruk scribe)",
+ "approx_date": "c. 3100 BCE",
+ "era_sort": -3100,
+ "category_type": "clay colophon",
+ "what_was_signed": "Proto-cuneiform lexical clay tablet listing 41 titles/professions (Schøyen MS 2429/4), Sumer",
+ "significance": "Cited by the Schøyen Collection as the earliest extant autograph signature — a named scribe signing a lexical list.",
+ "signature_image_available": "no",
+ "signature_image_url": "",
+ "source_url": "https://www.schoyencollection.com/scribes-collection/scribal-training/lexical-list-oldest-autograph-ms-2494-4",
+ "notes": "Scribal colophon impressed in wet clay, not cursive handwriting.",
+ "met_query": "cuneiform tablet",
+ "sig_thumb_url": "",
+ "sig_local": "",
+ "met_object_id": 329081,
+ "met_title": "Proto-Cuneiform tablet with seal impressions: administrative account of barley distribution with cylinder seal impression of a male figure, hunting dogs, and boars",
+ "met_date": "ca. 3100–2900 BCE",
+ "met_culture": "Sumerian",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/an/web-large/DP293243.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/329081",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-gar-ama-uruk-scribe.png"
+ },
+ {
+ "name": "Kushim (Uruk accountant)",
+ "approx_date": "c. 3200–3000 BCE",
+ "era_sort": -3100,
+ "category_type": "clay colophon",
+ "what_was_signed": "18 proto-cuneiform barley-account tablets bearing the name 'Kushim', Uruk (mostly Louvre)",
+ "significance": "Widely cited as the oldest recorded personal name in history — an accountant's mark on institutional barley receipts.",
+ "signature_image_available": "no",
+ "signature_image_url": "",
+ "source_url": "https://en.wikipedia.org/wiki/Kushim_(Uruk_period)",
+ "notes": "CONTESTED: 'Kushim' may be a title/office, not a person (Harari popularized it; Assyriologists are split). Impressed clay, not a handwritten autograph.",
+ "met_query": "cuneiform tablet account",
+ "sig_thumb_url": "",
+ "sig_local": "",
+ "met_object_id": 329081,
+ "met_title": "Proto-Cuneiform tablet with seal impressions: administrative account of barley distribution with cylinder seal impression of a male figure, hunting dogs, and boars",
+ "met_date": "ca. 3100–2900 BCE",
+ "met_culture": "Sumerian",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/an/web-large/DP293243.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/329081",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-kushim-uruk-accountant.png"
+ },
+ {
+ "name": "Inspector Merer",
+ "approx_date": "c. 2560 BCE",
+ "era_sort": -2560,
+ "category_type": "papyrus log",
+ "what_was_signed": "The Diary of Merer (Wadi el-Jarf Papyrus) — first-person logbook of Great Pyramid logistics, 26th year of Khufu",
+ "significance": "World's oldest surviving inscribed papyrus, written by a named first-person official.",
+ "signature_image_available": "no",
+ "signature_image_url": "",
+ "source_url": "https://en.wikipedia.org/wiki/Diary_of_Merer",
+ "notes": "A first-person record, not a discrete signature.",
+ "met_query": "Egyptian papyrus Old Kingdom",
+ "sig_thumb_url": "",
+ "sig_local": "",
+ "met_object_id": 551898,
+ "met_title": "Composite Papyrus Capital",
+ "met_date": "380–343 B.C.",
+ "met_culture": "Egyptian Art",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/eg/web-large/10.177.2_EGDP018080.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/551898",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-inspector-merer.png"
+ },
+ {
+ "name": "Enheduanna",
+ "approx_date": "c. 2285–2250 BCE",
+ "era_sort": -2270,
+ "category_type": "clay colophon",
+ "what_was_signed": "Cuneiform colophons on the 'Exaltation of Inanna' hymns; named on the alabaster Disc of Enheduanna (Penn Museum B16665)",
+ "significance": "Earliest known named author in literary history; signed her own literary colophons.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Disk_of_Enheduanna.JPG",
+ "source_url": "https://www.worldhistory.org/Enheduanna/",
+ "notes": "The disc is sculpted, not handwritten; surviving tablet copies postdate her by centuries (attribution debated).",
+ "met_query": "Akkadian cylinder seal",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Disk_of_Enheduanna.JPG/960px-Disk_of_Enheduanna.JPG",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-enheduanna.png",
+ "met_object_id": 329090,
+ "met_title": "Cylinder seal and modern impression: hunting scene",
+ "met_date": "ca. 2250–2150 BCE",
+ "met_culture": "Akkadian",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/an/web-large/DT860.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/329090",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-enheduanna.png"
+ },
+ {
+ "name": "Cleopatra VII",
+ "approx_date": "33 BCE",
+ "era_sort": -33,
+ "category_type": "cursive (contested)",
+ "what_was_signed": "Papyrus Bingen 45 — royal tax-exemption decree for P. Canidius; bottom word 'ginesthoi' (γινέσθωι, 'so be it')",
+ "significance": "Argued by some scholars to be the only surviving handwritten word by Cleopatra.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Papyrus_document_containing_signature_of_Cleopatra_VII_of_Egypt.jpg",
+ "source_url": "https://en.wikipedia.org/wiki/Papyrus_Bingen_45",
+ "notes": "HOTLY DISPUTED (van Minnen/Zimmermann vs. Sarri/Bagnall) — may be a scribe's hand throughout.",
+ "met_query": "Ptolemaic Egypt papyrus",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/b/b1/Papyrus_document_containing_signature_of_Cleopatra_VII_of_Egypt.jpg",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-cleopatra-vii.png",
+ "met_object_id": 259138,
+ "met_title": "Plaster cast of a metal emblema of Isis-Tyche",
+ "met_date": "2nd half of the 3rd century – 2nd century B.C",
+ "met_culture": "Egyptian",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/gr/web-large/sftr236ab2012.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/259138",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-cleopatra-vii.png"
+ },
+ {
+ "name": "Charlemagne",
+ "approx_date": "c. 769–814 CE",
+ "era_sort": 790,
+ "category_type": "seal monogram",
+ "what_was_signed": "Carolingian royal diplomas bearing the cruciform 'signum manus' monogram spelling KAROLVS (~180 originals)",
+ "significance": "Authenticated royal mark of the most important medieval Western ruler.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Charlemagne_autograph.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Signum_manus",
+ "notes": "Monogram device drawn by scribes; Charlemagne may have added only the central stroke. Not cursive.",
+ "met_query": "Carolingian manuscript",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Charlemagne_autograph.svg/960px-Charlemagne_autograph.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-charlemagne.png",
+ "met_object_id": 464278,
+ "met_title": "Triptych",
+ "met_date": "1250–1260",
+ "met_culture": "North French",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/md/web-large/DP142954.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/464278",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-charlemagne.png"
+ },
+ {
+ "name": "Pope Leo IX",
+ "approx_date": "c. 1049–1054 CE",
+ "era_sort": 1051,
+ "category_type": "seal device (rota)",
+ "what_was_signed": "Papal bulls bearing the first 'rota' — a wheel-and-cross authentication device with the pope's name",
+ "significance": "First pope to adopt the rota, the standard papal authentication for centuries.",
+ "signature_image_available": "no",
+ "signature_image_url": "",
+ "source_url": "https://en.wikipedia.org/wiki/Rota_(papal_signature)",
+ "notes": "Chancery-drawn symbol, not cursive handwriting.",
+ "met_query": "medieval papal bull seal",
+ "sig_thumb_url": "",
+ "sig_local": "",
+ "met_object_id": 436282,
+ "met_title": "The Crucifixion; The Last Judgment",
+ "met_date": "ca. 1436–38",
+ "met_culture": "European Paintings",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/ep/web-large/LC-33_92ab-Primary_Temp.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/436282",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-pope-leo-ix.png"
+ },
+ {
+ "name": "El Cid (Rodrigo Díaz de Vivar)",
+ "approx_date": "1098 CE",
+ "era_sort": 1098,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Charter endowing the Cathedral of Valencia; 'ego Ruderico … afirmo' (Cathedral of Salamanca archive)",
+ "significance": "Widely called the oldest surviving handwritten cursive autograph of a famous named individual.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Signature_of_El_Cid.svg",
+ "source_url": "https://en.wikipedia.org/wiki/El_Cid",
+ "notes": "A genuine cursive Latin subscription — the first 'true autograph' tier in this list.",
+ "met_query": "medieval Spanish illuminated manuscript",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/72/Signature_of_El_Cid.svg/960px-Signature_of_El_Cid.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-el-cid-rodrigo-d-az-de-vivar.png",
+ "met_object_id": 466191,
+ "met_title": "Leaf from a Beatus Manuscript: at the Clarion of the Fifth Angel's Trumpet, a Star Falls from the Sky; the Bottomless Pit is Opened with a Key; Emerging from the Smoke, Locusts Come Upon the Earth and Torment the Deathless",
+ "met_date": "ca. 1180",
+ "met_culture": "Spanish",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/cl/web-large/DP-20629-001.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/466191",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-el-cid-rodrigo-d-az-de-vivar.png"
+ },
+ {
+ "name": "Isabella I of Castile",
+ "approx_date": "c. 1474–1504 CE",
+ "era_sort": 1492,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Royal decrees incl. the 1492 Capitulations of Santa Fe (Columbus), signed 'Yo la Reina'",
+ "significance": "Her 'Yo la Reina' authorized the European encounter with the Americas.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Isabella_I_of_Castile_Signature.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Isabella_I_of_Castile",
+ "notes": "Genuine cursive autograph.",
+ "met_query": "Spanish Renaissance",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Isabella_I_of_Castile_Signature.svg/960px-Isabella_I_of_Castile_Signature.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-isabella-i-of-castile.png",
+ "met_object_id": 207259,
+ "met_title": "Pendant with the Virgin and Child",
+ "met_date": "probably first half 17th century",
+ "met_culture": "European Sculpture and Decorative Arts",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/es/web-large/DP-36189-001.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/207259",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-isabella-i-of-castile.png"
+ },
+ {
+ "name": "Michelangelo Buonarroti",
+ "approx_date": "1499 CE",
+ "era_sort": 1499,
+ "category_type": "carved + cursive",
+ "what_was_signed": "The Pietà sash (St. Peter's): 'MICHAEL.ANGELUS.BONAROTUS.FLORENT.FACIEBAT'; 342 autograph letters (Casa Buonarroti)",
+ "significance": "The Pietà is the only artwork he ever signed.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Michelangelo_Signature2.svg",
+ "source_url": "https://commons.wikimedia.org/wiki/Category:Signatures_of_Michelangelo_Buonarroti",
+ "notes": "Pietà signature is carved marble; handwritten letter signatures also survive.",
+ "met_query": "Michelangelo drawing",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Michelangelo_Signature2.svg/960px-Michelangelo_Signature2.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-michelangelo-buonarroti.png",
+ "met_object_id": 435844,
+ "met_title": "The Musicians",
+ "met_date": "1597",
+ "met_culture": "European Paintings",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/ep/web-large/DP-687-001.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/435844",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-michelangelo-buonarroti.png"
+ },
+ {
+ "name": "Leonardo da Vinci",
+ "approx_date": "c. 1487–1519 CE",
+ "era_sort": 1500,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Manuscripts incl. Forster Codex and Codice Atlantico ('io Lionardo')",
+ "significance": "Rare autographs from the defining Renaissance polymath, who seldom signed paintings.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Leonardo_Da_Vinci_signature_from_Forster_codex.svg",
+ "source_url": "https://commons.wikimedia.org/wiki/Category:Signatures_of_Leonardo_da_Vinci",
+ "notes": "Wrote in mirror-script; 19+ signature files on Commons.",
+ "met_query": "Leonardo da Vinci drawing",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Leonardo_Da_Vinci_signature_from_Forster_codex.svg/960px-Leonardo_Da_Vinci_signature_from_Forster_codex.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-leonardo-da-vinci.png",
+ "met_object_id": 337494,
+ "met_title": "Compositional Sketches for the Virgin Adoring the Christ Child, with and without the Infant St. John the Baptist; Diagram of a Perspectival Projection (recto); Slight Doodles (verso)",
+ "met_date": "1480–85",
+ "met_culture": "Drawings and Prints",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/dp/web-large/DP832657.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/337494",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-leonardo-da-vinci.png"
+ },
+ {
+ "name": "Albrecht Dürer",
+ "approx_date": "c. 1494–1528 CE",
+ "era_sort": 1500,
+ "category_type": "monogram mark",
+ "what_was_signed": "Paintings/engravings/woodcuts bearing the nested 'AD' monogram (e.g., 1500 Self-Portrait)",
+ "significance": "First artist's trademark defended in court — the pioneer of artistic copyright.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Albrecht_D%C3%BCrer_Monogramm.svg",
+ "source_url": "https://commons.wikimedia.org/wiki/Category:Monogram_of_Albrecht_D%C3%BCrer",
+ "notes": "A device/brand mark plus a cursive hand in letters.",
+ "met_query": "Albrecht Durer engraving",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Albrecht_D%C3%BCrer_Monogramm.svg/960px-Albrecht_D%C3%BCrer_Monogramm.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-albrecht-d-rer.png",
+ "met_object_id": 436243,
+ "met_title": "Salvator Mundi",
+ "met_date": "ca. 1505",
+ "met_culture": "European Paintings",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/ep/web-large/DP-38479-001.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/436243",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-albrecht-d-rer.png"
+ },
+ {
+ "name": "Christopher Columbus",
+ "approx_date": "c. 1493–1506 CE",
+ "era_sort": 1502,
+ "category_type": "true cursive autograph (sigla)",
+ "what_was_signed": "Letters incl. to the Office of St. George (Seville, 1502); cryptic pyramidal sigla S·A·S / X·M·Y / Xpo FERENS",
+ "significance": "One of history's most mysterious signatures — a cipher he ordered his heirs to keep using.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Columbus_Signature.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Christopher_Columbus",
+ "notes": "Upper tiers of the cipher remain unresolved.",
+ "met_query": "Age of Exploration navigation",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Columbus_Signature.svg/960px-Columbus_Signature.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-christopher-columbus.png",
+ "met_object_id": 466311,
+ "met_title": "Column Statue of a King",
+ "met_date": "ca. 1150–60",
+ "met_culture": "French",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/md/web-large/DP359502.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/466311",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-christopher-columbus.png"
+ },
+ {
+ "name": "Henry VIII of England",
+ "approx_date": "c. 1509–1547 CE",
+ "era_sort": 1513,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Royal letters/decrees signed 'Henry R' (earliest confirmed 1513)",
+ "significance": "Among the most collected and most forged royal autographs in history.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:HenryVIIISig.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Will_of_Henry_VIII",
+ "notes": "A dry-stamp device was used in his final illness; beware fakes.",
+ "met_query": "Tudor England portrait",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/HenryVIIISig.svg/960px-HenryVIIISig.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-henry-viii-of-england.png",
+ "met_object_id": 23939,
+ "met_title": "Armor Garniture of George Clifford (1558–1605), \nThird Earl of Cumberland",
+ "met_date": "1586",
+ "met_culture": "British, Greenwich",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/aa/web-large/DT259974.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/23939",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-henry-viii-of-england.png"
+ },
+ {
+ "name": "Martin Luther",
+ "approx_date": "c. 1517–1546 CE",
+ "era_sort": 1517,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Hundreds of letters incl. the 95 Theses cover letter to Archbishop Albert of Mainz (1517)",
+ "significance": "Autograph letters among the most consequential documents of the Reformation.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Martin_Luther_Signature.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Martin_Luther",
+ "notes": "Signed 'Martinus LütheR D' with a raised-R flourish.",
+ "met_query": "Reformation Cranach print",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Martin_Luther_Signature.svg/960px-Martin_Luther_Signature.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-martin-luther.png",
+ "met_object_id": 436037,
+ "met_title": "The Judgment of Paris",
+ "met_date": "ca. 1528",
+ "met_culture": "European Paintings",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/ep/web-large/DP280358.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/436037",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-martin-luther.png"
+ },
+ {
+ "name": "Queen Elizabeth I",
+ "approx_date": "c. 1544–1603 CE",
+ "era_sort": 1558,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "State documents/letters signed 'Elizabeth R' with an elaborate italic flourish",
+ "significance": "One of the most recognizable autographs in English history.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Autograph_of_Elizabeth_I_of_England.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Elizabeth_I_of_England",
+ "notes": "Distinctive humanist italic hand that evolved over her reign.",
+ "met_query": "Elizabethan England portrait",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Autograph_of_Elizabeth_I_of_England.svg/960px-Autograph_of_Elizabeth_I_of_England.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-queen-elizabeth-i.png",
+ "met_object_id": 22139,
+ "met_title": "Armor of Sir James Scudamore (1558–1619)",
+ "met_date": "ca. 1595–96; restored and completed, 1915",
+ "met_culture": "British, Greenwich",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/aa/web-large/DP271845.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/22139",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-queen-elizabeth-i.png"
+ },
+ {
+ "name": "Galileo Galilei",
+ "approx_date": "c. 1595–1642 CE",
+ "era_sort": 1610,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Very rare signed documents/letters (e.g., a 1595 Padua document)",
+ "significance": "'Of the utmost rarity' — only a few authenticated specimens in private hands.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:Galileo_Galilei_Signature_2.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Galileo_Galilei",
+ "notes": "Two signature SVGs confirmed on Commons.",
+ "met_query": "Galileo astronomy instrument",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Galileo_Galilei_Signature_2.svg/960px-Galileo_Galilei_Signature_2.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-galileo-galilei.png",
+ "met_object_id": 377877,
+ "met_title": "Galileo and personifications of Astronomy, Perspective and Mathematics, frontispiece for 'Opere di Galileo Galilei'",
+ "met_date": "1656",
+ "met_culture": "Drawings and Prints",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/dp/web-large/DP818079.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/377877",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-galileo-galilei.png"
+ },
+ {
+ "name": "William Shakespeare",
+ "approx_date": "1612–1616 CE",
+ "era_sort": 1613,
+ "category_type": "true cursive autograph",
+ "what_was_signed": "Six signatures on four legal documents (Bellott v. Mountjoy deposition; Blackfriars deeds; the three-page will)",
+ "significance": "Only six authenticated signatures survive — none on any literary manuscript.",
+ "signature_image_available": "yes",
+ "signature_image_url": "https://commons.wikimedia.org/wiki/File:William_Shakespeare_Signature.svg",
+ "source_url": "https://en.wikipedia.org/wiki/Shakespeare%27s_handwriting",
+ "notes": "Secretary-hand; he spelled his own name differently across the six.",
+ "met_query": "Jacobean England engraving",
+ "sig_thumb_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/William_Shakespeare_Signature.svg/960px-William_Shakespeare_Signature.svg.png",
+ "sig_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/sig-william-shakespeare.png",
+ "met_object_id": 194067,
+ "met_title": "Watch in the form of a Lesser George",
+ "met_date": "ca. 1600",
+ "met_culture": "European Sculpture and Decorative Arts",
+ "met_image_url": "https://images.metmuseum.org/CRDImages/es/web-large/DP340439.jpg",
+ "met_object_url": "https://www.metmuseum.org/art/collection/search/194067",
+ "met_local": "/Users/stevestudio2/Projects/CelebritySignatures/tmp_oldest_cache/met-william-shakespeare.png"
+ }
+]
\ No newline at end of file
diff --git a/data/oldest-signatures.csv b/data/oldest-signatures.csv
new file mode 100644
index 0000000..71d5bb8
--- /dev/null
+++ b/data/oldest-signatures.csv
@@ -0,0 +1,20 @@
+era_sort,name,approx_date,category_type,what_was_signed,significance,signature_image_available,signature_image_url,met_object_id,met_title,met_date,met_culture,met_object_url,source_url,notes
+-3100,GAR.AMA (Uruk scribe),c. 3100 BCE,clay colophon,"Proto-cuneiform lexical clay tablet listing 41 titles/professions (Schøyen MS 2429/4), Sumer",Cited by the Schøyen Collection as the earliest extant autograph signature — a named scribe signing a lexical list.,no,,329081,"Proto-Cuneiform tablet with seal impressions: administrative account of barley distribution with cylinder seal impression of a male figure, hunting dogs, and boars",ca. 3100–2900 BCE,Sumerian,https://www.metmuseum.org/art/collection/search/329081,https://www.schoyencollection.com/scribes-collection/scribal-training/lexical-list-oldest-autograph-ms-2494-4,"Scribal colophon impressed in wet clay, not cursive handwriting."
+-3100,Kushim (Uruk accountant),c. 3200–3000 BCE,clay colophon,"18 proto-cuneiform barley-account tablets bearing the name 'Kushim', Uruk (mostly Louvre)",Widely cited as the oldest recorded personal name in history — an accountant's mark on institutional barley receipts.,no,,329081,"Proto-Cuneiform tablet with seal impressions: administrative account of barley distribution with cylinder seal impression of a male figure, hunting dogs, and boars",ca. 3100–2900 BCE,Sumerian,https://www.metmuseum.org/art/collection/search/329081,https://en.wikipedia.org/wiki/Kushim_(Uruk_period),"CONTESTED: 'Kushim' may be a title/office, not a person (Harari popularized it; Assyriologists are split). Impressed clay, not a handwritten autograph."
+-2560,Inspector Merer,c. 2560 BCE,papyrus log,"The Diary of Merer (Wadi el-Jarf Papyrus) — first-person logbook of Great Pyramid logistics, 26th year of Khufu","World's oldest surviving inscribed papyrus, written by a named first-person official.",no,,551898,Composite Papyrus Capital,380–343 B.C.,Egyptian Art,https://www.metmuseum.org/art/collection/search/551898,https://en.wikipedia.org/wiki/Diary_of_Merer,"A first-person record, not a discrete signature."
+-2270,Enheduanna,c. 2285–2250 BCE,clay colophon,Cuneiform colophons on the 'Exaltation of Inanna' hymns; named on the alabaster Disc of Enheduanna (Penn Museum B16665),Earliest known named author in literary history; signed her own literary colophons.,yes,https://commons.wikimedia.org/wiki/File:Disk_of_Enheduanna.JPG,329090,Cylinder seal and modern impression: hunting scene,ca. 2250–2150 BCE,Akkadian,https://www.metmuseum.org/art/collection/search/329090,https://www.worldhistory.org/Enheduanna/,"The disc is sculpted, not handwritten; surviving tablet copies postdate her by centuries (attribution debated)."
+-33,Cleopatra VII,33 BCE,cursive (contested),"Papyrus Bingen 45 — royal tax-exemption decree for P. Canidius; bottom word 'ginesthoi' (γινέσθωι, 'so be it')",Argued by some scholars to be the only surviving handwritten word by Cleopatra.,yes,https://commons.wikimedia.org/wiki/File:Papyrus_document_containing_signature_of_Cleopatra_VII_of_Egypt.jpg,259138,Plaster cast of a metal emblema of Isis-Tyche,2nd half of the 3rd century – 2nd century B.C,Egyptian,https://www.metmuseum.org/art/collection/search/259138,https://en.wikipedia.org/wiki/Papyrus_Bingen_45,HOTLY DISPUTED (van Minnen/Zimmermann vs. Sarri/Bagnall) — may be a scribe's hand throughout.
+790,Charlemagne,c. 769–814 CE,seal monogram,Carolingian royal diplomas bearing the cruciform 'signum manus' monogram spelling KAROLVS (~180 originals),Authenticated royal mark of the most important medieval Western ruler.,yes,https://commons.wikimedia.org/wiki/File:Charlemagne_autograph.svg,464278,Triptych,1250–1260,North French,https://www.metmuseum.org/art/collection/search/464278,https://en.wikipedia.org/wiki/Signum_manus,Monogram device drawn by scribes; Charlemagne may have added only the central stroke. Not cursive.
+1051,Pope Leo IX,c. 1049–1054 CE,seal device (rota),Papal bulls bearing the first 'rota' — a wheel-and-cross authentication device with the pope's name,"First pope to adopt the rota, the standard papal authentication for centuries.",no,,436282,The Crucifixion; The Last Judgment,ca. 1436–38,European Paintings,https://www.metmuseum.org/art/collection/search/436282,https://en.wikipedia.org/wiki/Rota_(papal_signature),"Chancery-drawn symbol, not cursive handwriting."
+1098,El Cid (Rodrigo Díaz de Vivar),1098 CE,true cursive autograph,Charter endowing the Cathedral of Valencia; 'ego Ruderico … afirmo' (Cathedral of Salamanca archive),Widely called the oldest surviving handwritten cursive autograph of a famous named individual.,yes,https://commons.wikimedia.org/wiki/File:Signature_of_El_Cid.svg,466191,"Leaf from a Beatus Manuscript: at the Clarion of the Fifth Angel's Trumpet, a Star Falls from the Sky; the Bottomless Pit is Opened with a Key; Emerging from the Smoke, Locusts Come Upon the Earth and Torment the Deathless",ca. 1180,Spanish,https://www.metmuseum.org/art/collection/search/466191,https://en.wikipedia.org/wiki/El_Cid,A genuine cursive Latin subscription — the first 'true autograph' tier in this list.
+1492,Isabella I of Castile,c. 1474–1504 CE,true cursive autograph,"Royal decrees incl. the 1492 Capitulations of Santa Fe (Columbus), signed 'Yo la Reina'",Her 'Yo la Reina' authorized the European encounter with the Americas.,yes,https://commons.wikimedia.org/wiki/File:Isabella_I_of_Castile_Signature.svg,207259,Pendant with the Virgin and Child,probably first half 17th century,European Sculpture and Decorative Arts,https://www.metmuseum.org/art/collection/search/207259,https://en.wikipedia.org/wiki/Isabella_I_of_Castile,Genuine cursive autograph.
+1499,Michelangelo Buonarroti,1499 CE,carved + cursive,The Pietà sash (St. Peter's): 'MICHAEL.ANGELUS.BONAROTUS.FLORENT.FACIEBAT'; 342 autograph letters (Casa Buonarroti),The Pietà is the only artwork he ever signed.,yes,https://commons.wikimedia.org/wiki/File:Michelangelo_Signature2.svg,435844,The Musicians,1597,European Paintings,https://www.metmuseum.org/art/collection/search/435844,https://commons.wikimedia.org/wiki/Category:Signatures_of_Michelangelo_Buonarroti,Pietà signature is carved marble; handwritten letter signatures also survive.
+1500,Leonardo da Vinci,c. 1487–1519 CE,true cursive autograph,Manuscripts incl. Forster Codex and Codice Atlantico ('io Lionardo'),"Rare autographs from the defining Renaissance polymath, who seldom signed paintings.",yes,https://commons.wikimedia.org/wiki/File:Leonardo_Da_Vinci_signature_from_Forster_codex.svg,337494,"Compositional Sketches for the Virgin Adoring the Christ Child, with and without the Infant St. John the Baptist; Diagram of a Perspectival Projection (recto); Slight Doodles (verso)",1480–85,Drawings and Prints,https://www.metmuseum.org/art/collection/search/337494,https://commons.wikimedia.org/wiki/Category:Signatures_of_Leonardo_da_Vinci,Wrote in mirror-script; 19+ signature files on Commons.
+1500,Albrecht Dürer,c. 1494–1528 CE,monogram mark,"Paintings/engravings/woodcuts bearing the nested 'AD' monogram (e.g., 1500 Self-Portrait)",First artist's trademark defended in court — the pioneer of artistic copyright.,yes,https://commons.wikimedia.org/wiki/File:Albrecht_D%C3%BCrer_Monogramm.svg,436243,Salvator Mundi,ca. 1505,European Paintings,https://www.metmuseum.org/art/collection/search/436243,https://commons.wikimedia.org/wiki/Category:Monogram_of_Albrecht_D%C3%BCrer,A device/brand mark plus a cursive hand in letters.
+1502,Christopher Columbus,c. 1493–1506 CE,true cursive autograph (sigla),"Letters incl. to the Office of St. George (Seville, 1502); cryptic pyramidal sigla S·A·S / X·M·Y / Xpo FERENS",One of history's most mysterious signatures — a cipher he ordered his heirs to keep using.,yes,https://commons.wikimedia.org/wiki/File:Columbus_Signature.svg,466311,Column Statue of a King,ca. 1150–60,French,https://www.metmuseum.org/art/collection/search/466311,https://en.wikipedia.org/wiki/Christopher_Columbus,Upper tiers of the cipher remain unresolved.
+1513,Henry VIII of England,c. 1509–1547 CE,true cursive autograph,Royal letters/decrees signed 'Henry R' (earliest confirmed 1513),Among the most collected and most forged royal autographs in history.,yes,https://commons.wikimedia.org/wiki/File:HenryVIIISig.svg,23939,"Armor Garniture of George Clifford (1558–1605),
+Third Earl of Cumberland",1586,"British, Greenwich",https://www.metmuseum.org/art/collection/search/23939,https://en.wikipedia.org/wiki/Will_of_Henry_VIII,A dry-stamp device was used in his final illness; beware fakes.
+1517,Martin Luther,c. 1517–1546 CE,true cursive autograph,Hundreds of letters incl. the 95 Theses cover letter to Archbishop Albert of Mainz (1517),Autograph letters among the most consequential documents of the Reformation.,yes,https://commons.wikimedia.org/wiki/File:Martin_Luther_Signature.svg,436037,The Judgment of Paris,ca. 1528,European Paintings,https://www.metmuseum.org/art/collection/search/436037,https://en.wikipedia.org/wiki/Martin_Luther,Signed 'Martinus LütheR D' with a raised-R flourish.
+1558,Queen Elizabeth I,c. 1544–1603 CE,true cursive autograph,State documents/letters signed 'Elizabeth R' with an elaborate italic flourish,One of the most recognizable autographs in English history.,yes,https://commons.wikimedia.org/wiki/File:Autograph_of_Elizabeth_I_of_England.svg,22139,Armor of Sir James Scudamore (1558–1619),"ca. 1595–96; restored and completed, 1915","British, Greenwich",https://www.metmuseum.org/art/collection/search/22139,https://en.wikipedia.org/wiki/Elizabeth_I_of_England,Distinctive humanist italic hand that evolved over her reign.
+1610,Galileo Galilei,c. 1595–1642 CE,true cursive autograph,"Very rare signed documents/letters (e.g., a 1595 Padua document)",'Of the utmost rarity' — only a few authenticated specimens in private hands.,yes,https://commons.wikimedia.org/wiki/File:Galileo_Galilei_Signature_2.svg,377877,"Galileo and personifications of Astronomy, Perspective and Mathematics, frontispiece for 'Opere di Galileo Galilei'",1656,Drawings and Prints,https://www.metmuseum.org/art/collection/search/377877,https://en.wikipedia.org/wiki/Galileo_Galilei,Two signature SVGs confirmed on Commons.
+1613,William Shakespeare,1612–1616 CE,true cursive autograph,Six signatures on four legal documents (Bellott v. Mountjoy deposition; Blackfriars deeds; the three-page will),Only six authenticated signatures survive — none on any literary manuscript.,yes,https://commons.wikimedia.org/wiki/File:William_Shakespeare_Signature.svg,194067,Watch in the form of a Lesser George,ca. 1600,European Sculpture and Decorative Arts,https://www.metmuseum.org/art/collection/search/194067,https://en.wikipedia.org/wiki/Shakespeare%27s_handwriting,Secretary-hand; he spelled his own name differently across the six.
diff --git a/data/oldest-signatures.json b/data/oldest-signatures.json
new file mode 100644
index 0000000..03d9cb0
--- /dev/null
+++ b/data/oldest-signatures.json
@@ -0,0 +1,20 @@
+[
+ {"name":"GAR.AMA (Uruk scribe)","approx_date":"c. 3100 BCE","era_sort":-3100,"category_type":"clay colophon","what_was_signed":"Proto-cuneiform lexical clay tablet listing 41 titles/professions (Schøyen MS 2429/4), Sumer","significance":"Cited by the Schøyen Collection as the earliest extant autograph signature — a named scribe signing a lexical list.","signature_image_available":"no","signature_image_url":"","source_url":"https://www.schoyencollection.com/scribes-collection/scribal-training/lexical-list-oldest-autograph-ms-2494-4","notes":"Scribal colophon impressed in wet clay, not cursive handwriting.","met_query":"cuneiform tablet"},
+ {"name":"Kushim (Uruk accountant)","approx_date":"c. 3200–3000 BCE","era_sort":-3100,"category_type":"clay colophon","what_was_signed":"18 proto-cuneiform barley-account tablets bearing the name 'Kushim', Uruk (mostly Louvre)","significance":"Widely cited as the oldest recorded personal name in history — an accountant's mark on institutional barley receipts.","signature_image_available":"no","signature_image_url":"","source_url":"https://en.wikipedia.org/wiki/Kushim_(Uruk_period)","notes":"CONTESTED: 'Kushim' may be a title/office, not a person (Harari popularized it; Assyriologists are split). Impressed clay, not a handwritten autograph.","met_query":"cuneiform tablet account"},
+ {"name":"Enheduanna","approx_date":"c. 2285–2250 BCE","era_sort":-2270,"category_type":"clay colophon","what_was_signed":"Cuneiform colophons on the 'Exaltation of Inanna' hymns; named on the alabaster Disc of Enheduanna (Penn Museum B16665)","significance":"Earliest known named author in literary history; signed her own literary colophons.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Disk_of_Enheduanna.JPG","source_url":"https://www.worldhistory.org/Enheduanna/","notes":"The disc is sculpted, not handwritten; surviving tablet copies postdate her by centuries (attribution debated).","met_query":"Akkadian cylinder seal"},
+ {"name":"Inspector Merer","approx_date":"c. 2560 BCE","era_sort":-2560,"category_type":"papyrus log","what_was_signed":"The Diary of Merer (Wadi el-Jarf Papyrus) — first-person logbook of Great Pyramid logistics, 26th year of Khufu","significance":"World's oldest surviving inscribed papyrus, written by a named first-person official.","signature_image_available":"no","signature_image_url":"","source_url":"https://en.wikipedia.org/wiki/Diary_of_Merer","notes":"A first-person record, not a discrete signature.","met_query":"Egyptian papyrus Old Kingdom"},
+ {"name":"Cleopatra VII","approx_date":"33 BCE","era_sort":-33,"category_type":"cursive (contested)","what_was_signed":"Papyrus Bingen 45 — royal tax-exemption decree for P. Canidius; bottom word 'ginesthoi' (γινέσθωι, 'so be it')","significance":"Argued by some scholars to be the only surviving handwritten word by Cleopatra.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Papyrus_document_containing_signature_of_Cleopatra_VII_of_Egypt.jpg","source_url":"https://en.wikipedia.org/wiki/Papyrus_Bingen_45","notes":"HOTLY DISPUTED (van Minnen/Zimmermann vs. Sarri/Bagnall) — may be a scribe's hand throughout.","met_query":"Ptolemaic Egypt papyrus"},
+ {"name":"Charlemagne","approx_date":"c. 769–814 CE","era_sort":790,"category_type":"seal monogram","what_was_signed":"Carolingian royal diplomas bearing the cruciform 'signum manus' monogram spelling KAROLVS (~180 originals)","significance":"Authenticated royal mark of the most important medieval Western ruler.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Charlemagne_autograph.svg","source_url":"https://en.wikipedia.org/wiki/Signum_manus","notes":"Monogram device drawn by scribes; Charlemagne may have added only the central stroke. Not cursive.","met_query":"Carolingian manuscript"},
+ {"name":"El Cid (Rodrigo Díaz de Vivar)","approx_date":"1098 CE","era_sort":1098,"category_type":"true cursive autograph","what_was_signed":"Charter endowing the Cathedral of Valencia; 'ego Ruderico … afirmo' (Cathedral of Salamanca archive)","significance":"Widely called the oldest surviving handwritten cursive autograph of a famous named individual.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Signature_of_El_Cid.svg","source_url":"https://en.wikipedia.org/wiki/El_Cid","notes":"A genuine cursive Latin subscription — the first 'true autograph' tier in this list.","met_query":"medieval Spanish illuminated manuscript"},
+ {"name":"Pope Leo IX","approx_date":"c. 1049–1054 CE","era_sort":1051,"category_type":"seal device (rota)","what_was_signed":"Papal bulls bearing the first 'rota' — a wheel-and-cross authentication device with the pope's name","significance":"First pope to adopt the rota, the standard papal authentication for centuries.","signature_image_available":"no","signature_image_url":"","source_url":"https://en.wikipedia.org/wiki/Rota_(papal_signature)","notes":"Chancery-drawn symbol, not cursive handwriting.","met_query":"medieval papal bull seal"},
+ {"name":"Isabella I of Castile","approx_date":"c. 1474–1504 CE","era_sort":1492,"category_type":"true cursive autograph","what_was_signed":"Royal decrees incl. the 1492 Capitulations of Santa Fe (Columbus), signed 'Yo la Reina'","significance":"Her 'Yo la Reina' authorized the European encounter with the Americas.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Isabella_I_of_Castile_Signature.svg","source_url":"https://en.wikipedia.org/wiki/Isabella_I_of_Castile","notes":"Genuine cursive autograph.","met_query":"Spanish Renaissance"},
+ {"name":"Christopher Columbus","approx_date":"c. 1493–1506 CE","era_sort":1502,"category_type":"true cursive autograph (sigla)","what_was_signed":"Letters incl. to the Office of St. George (Seville, 1502); cryptic pyramidal sigla S·A·S / X·M·Y / Xpo FERENS","significance":"One of history's most mysterious signatures — a cipher he ordered his heirs to keep using.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Columbus_Signature.svg","source_url":"https://en.wikipedia.org/wiki/Christopher_Columbus","notes":"Upper tiers of the cipher remain unresolved.","met_query":"Age of Exploration navigation"},
+ {"name":"Leonardo da Vinci","approx_date":"c. 1487–1519 CE","era_sort":1500,"category_type":"true cursive autograph","what_was_signed":"Manuscripts incl. Forster Codex and Codice Atlantico ('io Lionardo')","significance":"Rare autographs from the defining Renaissance polymath, who seldom signed paintings.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Leonardo_Da_Vinci_signature_from_Forster_codex.svg","source_url":"https://commons.wikimedia.org/wiki/Category:Signatures_of_Leonardo_da_Vinci","notes":"Wrote in mirror-script; 19+ signature files on Commons.","met_query":"Leonardo da Vinci drawing"},
+ {"name":"Michelangelo Buonarroti","approx_date":"1499 CE","era_sort":1499,"category_type":"carved + cursive","what_was_signed":"The Pietà sash (St. Peter's): 'MICHAEL.ANGELUS.BONAROTUS.FLORENT.FACIEBAT'; 342 autograph letters (Casa Buonarroti)","significance":"The Pietà is the only artwork he ever signed.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Michelangelo_Signature2.svg","source_url":"https://commons.wikimedia.org/wiki/Category:Signatures_of_Michelangelo_Buonarroti","notes":"Pietà signature is carved marble; handwritten letter signatures also survive.","met_query":"Michelangelo drawing"},
+ {"name":"Albrecht Dürer","approx_date":"c. 1494–1528 CE","era_sort":1500,"category_type":"monogram mark","what_was_signed":"Paintings/engravings/woodcuts bearing the nested 'AD' monogram (e.g., 1500 Self-Portrait)","significance":"First artist's trademark defended in court — the pioneer of artistic copyright.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Albrecht_D%C3%BCrer_Monogramm.svg","source_url":"https://commons.wikimedia.org/wiki/Category:Monogram_of_Albrecht_D%C3%BCrer","notes":"A device/brand mark plus a cursive hand in letters.","met_query":"Albrecht Durer engraving"},
+ {"name":"Martin Luther","approx_date":"c. 1517–1546 CE","era_sort":1517,"category_type":"true cursive autograph","what_was_signed":"Hundreds of letters incl. the 95 Theses cover letter to Archbishop Albert of Mainz (1517)","significance":"Autograph letters among the most consequential documents of the Reformation.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Martin_Luther_Signature.svg","source_url":"https://en.wikipedia.org/wiki/Martin_Luther","notes":"Signed 'Martinus LütheR D' with a raised-R flourish.","met_query":"Reformation Cranach print"},
+ {"name":"Henry VIII of England","approx_date":"c. 1509–1547 CE","era_sort":1513,"category_type":"true cursive autograph","what_was_signed":"Royal letters/decrees signed 'Henry R' (earliest confirmed 1513)","significance":"Among the most collected and most forged royal autographs in history.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:HenryVIIISig.svg","source_url":"https://en.wikipedia.org/wiki/Will_of_Henry_VIII","notes":"A dry-stamp device was used in his final illness; beware fakes.","met_query":"Tudor England portrait"},
+ {"name":"Queen Elizabeth I","approx_date":"c. 1544–1603 CE","era_sort":1558,"category_type":"true cursive autograph","what_was_signed":"State documents/letters signed 'Elizabeth R' with an elaborate italic flourish","significance":"One of the most recognizable autographs in English history.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Autograph_of_Elizabeth_I_of_England.svg","source_url":"https://en.wikipedia.org/wiki/Elizabeth_I_of_England","notes":"Distinctive humanist italic hand that evolved over her reign.","met_query":"Elizabethan England portrait"},
+ {"name":"William Shakespeare","approx_date":"1612–1616 CE","era_sort":1613,"category_type":"true cursive autograph","what_was_signed":"Six signatures on four legal documents (Bellott v. Mountjoy deposition; Blackfriars deeds; the three-page will)","significance":"Only six authenticated signatures survive — none on any literary manuscript.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:William_Shakespeare_Signature.svg","source_url":"https://en.wikipedia.org/wiki/Shakespeare%27s_handwriting","notes":"Secretary-hand; he spelled his own name differently across the six.","met_query":"Jacobean England engraving"},
+ {"name":"Galileo Galilei","approx_date":"c. 1595–1642 CE","era_sort":1610,"category_type":"true cursive autograph","what_was_signed":"Very rare signed documents/letters (e.g., a 1595 Padua document)","significance":"'Of the utmost rarity' — only a few authenticated specimens in private hands.","signature_image_available":"yes","signature_image_url":"https://commons.wikimedia.org/wiki/File:Galileo_Galilei_Signature_2.svg","source_url":"https://en.wikipedia.org/wiki/Galileo_Galilei","notes":"Two signature SVGs confirmed on Commons.","met_query":"Galileo astronomy instrument"}
+]
diff --git a/output/mural-oldest-signatures-named.png b/output/mural-oldest-signatures-named.png
new file mode 100644
index 0000000..cf86d68
Binary files /dev/null and b/output/mural-oldest-signatures-named.png differ
diff --git a/output/mural-oldest-signatures.png b/output/mural-oldest-signatures.png
new file mode 100644
index 0000000..29c3b35
Binary files /dev/null and b/output/mural-oldest-signatures.png differ
diff --git a/scripts/build-oldest-signatures.py b/scripts/build-oldest-signatures.py
new file mode 100644
index 0000000..79695e3
--- /dev/null
+++ b/scripts/build-oldest-signatures.py
@@ -0,0 +1,240 @@
+#!/usr/bin/env python3
+"""
+Oldest Signatures in History — spreadsheet + mural builder.
+
+- Resolves each entry's Wikimedia Commons signature image (File: page -> rasterized
+ thumbnail) and verifies it loads.
+- For every entry, finds a PUBLIC-DOMAIN artwork from the Met Museum Open Access API
+ (collectionapi.metmuseum.org, no key) to use as the visual plate — essential for the
+ ancient clay-tablet / papyrus / seal entries that have no clean signature image.
+- Writes data/oldest-signatures.csv (the spreadsheet).
+- Composes output/mural-oldest-signatures(.png / -named.png): a chronological grid,
+ signature image where one exists, otherwise the Met artwork, each cell labeled.
+
+Free / local except for public no-key HTTP (Wikimedia + Met). $0.
+"""
+import json, os, re, time, urllib.parse, urllib.request, csv
+from io import BytesIO
+from PIL import Image, ImageDraw, ImageFont
+
+ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+DATA = os.path.join(ROOT, "data", "oldest-signatures.json")
+CSV_OUT = os.path.join(ROOT, "data", "oldest-signatures.csv")
+CACHE = os.path.join(ROOT, "tmp_oldest_cache")
+OUT = os.path.join(ROOT, "output")
+UA = "CelebritySignatures-research/1.0 (steve@designerwallcoverings.com)"
+COMMONS = "https://commons.wikimedia.org/w/api.php"
+MET = "https://collectionapi.metmuseum.org/public/collection/v1"
+os.makedirs(CACHE, exist_ok=True); os.makedirs(OUT, exist_ok=True)
+
+
+def get(url, tries=3):
+ for i in range(tries):
+ try:
+ req = urllib.request.Request(url, headers={"User-Agent": UA})
+ with urllib.request.urlopen(req, timeout=25) as r:
+ return r.read()
+ except Exception as e:
+ if i == tries - 1:
+ print(f" ! fetch failed {url[:80]} :: {e}")
+ return None
+ time.sleep(1.2 * (i + 1))
+
+
+def getjson(url):
+ b = get(url)
+ try:
+ return json.loads(b) if b else None
+ except Exception:
+ return None
+
+
+def cache_img(url, key):
+ if not url:
+ return None
+ ext = ".png"
+ p = os.path.join(CACHE, re.sub(r"[^a-z0-9]+", "-", key.lower()).strip("-") + ext)
+ if os.path.exists(p) and os.path.getsize(p) > 200:
+ return p
+ b = get(url)
+ if not b:
+ return None
+ try:
+ im = Image.open(BytesIO(b)).convert("RGBA")
+ im.save(p)
+ return p
+ except Exception as e:
+ print(f" ! decode failed {key}: {e}")
+ return None
+
+
+def resolve_commons(file_page_url, width=700):
+ """Commons 'File:Name' page URL -> rasterized thumbnail URL (handles SVG)."""
+ if not file_page_url or "File:" not in file_page_url:
+ return None
+ title = "File:" + file_page_url.split("File:")[-1]
+ title = urllib.parse.unquote(title)
+ q = (f"{COMMONS}?action=query&titles={urllib.parse.quote(title)}"
+ f"&prop=imageinfo&iiprop=url&iiurlwidth={width}&format=json")
+ d = getjson(q)
+ try:
+ pages = d["query"]["pages"]
+ info = next(iter(pages.values()))["imageinfo"][0]
+ return info.get("thumburl") or info.get("url")
+ except Exception:
+ return None
+
+
+def met_public_domain(query):
+ """Return first public-domain Met object with an image for a search query."""
+ s = getjson(f"{MET}/search?q={urllib.parse.quote(query)}&hasImages=true")
+ ids = (s or {}).get("objectIDs") or []
+ for oid in ids[:12]:
+ o = getjson(f"{MET}/objects/{oid}")
+ if not o:
+ continue
+ if o.get("isPublicDomain") and (o.get("primaryImageSmall") or o.get("primaryImage")):
+ return {
+ "met_object_id": oid,
+ "met_title": o.get("title", ""),
+ "met_date": o.get("objectDate", ""),
+ "met_culture": o.get("culture") or o.get("department", ""),
+ "met_image_url": o.get("primaryImageSmall") or o.get("primaryImage"),
+ "met_object_url": o.get("objectURL", ""),
+ }
+ time.sleep(0.05)
+ return None
+
+
+def font(sz, bold=False):
+ for p in ([
+ "/System/Library/Fonts/Supplemental/Georgia Bold.ttf" if bold else "/System/Library/Fonts/Supplemental/Georgia.ttf",
+ "/System/Library/Fonts/Supplemental/Arial Bold.ttf" if bold else "/System/Library/Fonts/Supplemental/Arial.ttf",
+ ]):
+ try:
+ return ImageFont.truetype(p, sz)
+ except Exception:
+ continue
+ return ImageFont.load_default()
+
+
+def gather():
+ data = json.load(open(DATA))
+ data.sort(key=lambda r: r["era_sort"])
+ for r in data:
+ print(f"· {r['name']} ({r['approx_date']})")
+ # signature image
+ r["sig_thumb_url"] = ""
+ r["sig_local"] = ""
+ if r.get("signature_image_url"):
+ t = resolve_commons(r["signature_image_url"])
+ if t:
+ r["sig_thumb_url"] = t
+ r["sig_local"] = cache_img(t, "sig-" + r["name"]) or ""
+ print(f" sig: {'OK' if r['sig_local'] else 'resolve-only'}")
+ # Met public-domain art
+ m = met_public_domain(r.get("met_query", r["name"]))
+ if m:
+ r.update(m)
+ r["met_local"] = cache_img(m["met_image_url"], "met-" + r["name"]) or ""
+ print(f" met: PD #{m['met_object_id']} — {m['met_title'][:48]}")
+ else:
+ for k in ("met_object_id", "met_title", "met_date", "met_culture", "met_image_url", "met_object_url"):
+ r[k] = ""
+ r["met_local"] = ""
+ print(" met: none found")
+ time.sleep(0.1)
+ return data
+
+
+def write_csv(data):
+ cols = ["era_sort", "name", "approx_date", "category_type", "what_was_signed",
+ "significance", "signature_image_available", "signature_image_url",
+ "met_object_id", "met_title", "met_date", "met_culture", "met_object_url",
+ "source_url", "notes"]
+ with open(CSV_OUT, "w", newline="") as fh:
+ w = csv.DictWriter(fh, fieldnames=cols, extrasaction="ignore")
+ w.writeheader()
+ for r in data:
+ w.writerow(r)
+ print(f"\nSpreadsheet -> {os.path.relpath(CSV_OUT, ROOT)} ({len(data)} rows)")
+
+
+def fit(im, bw, bh):
+ im = im.copy(); im.thumbnail((bw, bh), Image.LANCZOS); return im
+
+
+def build_mural(data, named):
+ COLS = 4
+ rows = (len(data) + COLS - 1) // COLS
+ PLATE_W, PLATE_H = 360, 300
+ PAD = 26
+ LABEL_H = 96 if named else 0
+ CELL_W = PLATE_W + PAD
+ CELL_H = PLATE_H + LABEL_H + PAD
+ HEADER_H = 200
+ FOOT = 70
+ W = COLS * CELL_W + PAD
+ H = HEADER_H + rows * CELL_H + FOOT
+ INK = (26, 24, 22); MUTED = (120, 116, 110); LINE = (224, 220, 214)
+ img = Image.new("RGB", (W, H), (250, 249, 246))
+ d = ImageDraw.Draw(img)
+ # header
+ d.text((PAD + 8, 54), "Oldest Signatures in History", font=font(52, True), fill=INK)
+ d.text((PAD + 10, 122),
+ "From the earliest cuneiform scribal marks (c. 3100 BCE) to the Renaissance — paired with public-domain artifacts from The Met.",
+ font=font(20), fill=MUTED)
+ d.line([(PAD + 8, HEADER_H - 18), (W - PAD - 8, HEADER_H - 18)], fill=LINE, width=2)
+
+ for i, r in enumerate(data):
+ cx = PAD + (i % COLS) * CELL_W
+ cy = HEADER_H + (i // COLS) * CELL_H
+ # plate background
+ d.rectangle([cx, cy, cx + PLATE_W, cy + PLATE_H], fill=(255, 255, 255), outline=LINE, width=2)
+ used = None
+ # prefer the signature image; else the Met artwork
+ src = r.get("sig_local") or r.get("met_local")
+ is_met = not r.get("sig_local") and r.get("met_local")
+ if src and os.path.exists(src):
+ try:
+ im = Image.open(src).convert("RGBA")
+ bg = Image.new("RGBA", im.size, (255, 255, 255, 255))
+ im = Image.alpha_composite(bg, im).convert("RGB")
+ im = fit(im, PLATE_W - 28, PLATE_H - 28)
+ img.paste(im, (cx + (PLATE_W - im.width) // 2, cy + (PLATE_H - im.height) // 2))
+ used = "met" if is_met else "sig"
+ except Exception as e:
+ print(f" ! paste {r['name']}: {e}")
+ if not used:
+ d.text((cx + 18, cy + PLATE_H // 2 - 10), "(no public-domain image)", font=font(15), fill=MUTED)
+ # tiny provenance tag
+ tag = "Met artifact" if used == "met" else ("signature" if used == "sig" else "")
+ if tag:
+ d.text((cx + 12, cy + 10), tag, font=font(13, True), fill=(150, 120, 60) if used == "met" else (90, 130, 90))
+ if named:
+ ly = cy + PLATE_H + 12
+ d.text((cx + 8, ly), r["name"][:34], font=font(19, True), fill=INK)
+ d.text((cx + 8, ly + 28), f"{r['approx_date']} · {r['category_type']}", font=font(15), fill=MUTED)
+ if used == "met" and r.get("met_title"):
+ d.text((cx + 8, ly + 50), ("art: " + r["met_title"])[:46], font=font(13), fill=(150, 120, 60))
+
+ d.text((PAD + 8, H - 48),
+ "Research-grade chronology · 'oldest signature' is contested (Kushim/GAR.AMA debate; Cleopatra papyrus disputed). Artifacts: The Met Open Access (public domain).",
+ font=font(14), fill=MUTED)
+ suffix = "-named" if named else ""
+ out = os.path.join(OUT, f"mural-oldest-signatures{suffix}.png")
+ img.save(out)
+ print(f"Mural -> {os.path.relpath(out, ROOT)} ({W}×{H}px, {len(data)} cells)")
+
+
+if __name__ == "__main__":
+ data = gather()
+ write_csv(data)
+ build_mural(data, named=True)
+ build_mural(data, named=False)
+ # provenance sidecar for the site / catalog
+ json.dump(data, open(os.path.join(ROOT, "data", "oldest-signatures-enriched.json"), "w"),
+ indent=2, ensure_ascii=False)
+ n_sig = sum(1 for r in data if r.get("sig_local"))
+ n_met = sum(1 for r in data if r.get("met_local"))
+ print(f"\nDone. {len(data)} entries · {n_sig} with signature image · {n_met} with Met public-domain art.")
← f4efd0f narrow catalog to historical figures (Declaration + Politics
·
back to CelebritySignatures
·
wire Oldest Signatures into storefront: grid category + mura 3a77cd8 →