Skip to content

Agency mission imagery — build-time source map (ADR-046)

Evidence-backed notes for where each operator publishes mission stills, what Orrery can use anonymously at build time (CI / npm run fetch-assets), and licensing. Canonical mission ids and agency strings match static/data/missions/index.json plus legacy fetch ids mars2, mars6 (Soviet Mars programme, same editorial class as mars3).

Gate: Implementation prefers (A) stable direct image URLs or JSON search APIs, or (B) curated Wikimedia Commons filenames verified in-repo, then NASA Images API as a broad fallback with a strict credit filter (extended only for named missions; see ADR-046).


NASA

TopicNotes
PrimaryNASA Images API — anonymous GET, JSON, preview href links suitable for build-time download.
FallbacksWikimedia Commons for catalogue rows where API credits are thin; curated lists in scripts/fetch-assets.ts.
FeasibilityGo — already integrated.
License / creditNASA media usage guidelines; secondary_creator filtered in code for US NASA–family strings.

ROSCOSMOS (incl. Soviet lunar / Mars heritage)

TopicNotes
Primary operatorRoscosmos EN — press releases and galleries; no stable public JSON image search comparable to NASA Images API found for machine bulk download.
National wiresTASS and partner outlets often mirror handouts; URLs are HTML / CDN–opaque, not suitable as deterministic CI fetches.
FeasibilityNo-go for automated anonymous primary fetch without scraping or brittle HTML parsing (red-list).
ImplementationCurated Commons (mars3, luna9, luna17, luna24, legacy mars2 / mars6) as editorial primary; NASA API last, with queries tuned to historic cooperation / PIA assets where credits remain honest.

ESA

TopicNotes
Primary operatorESA Science & Exploration images, Photolibrary — browse-first web UI; image pages are HTML with assets behind site mechanics and session/cookie banners.
Machine APINo small, documented, anonymous JSON endpoint equivalent to NASA’s /search was identified for bulk mission stills suitable for this repo’s fetch script.
Spike outcomeNo-go for a dedicated fetchEsaImageUrls() adapter in CI without auth, headless browsing, or contractual API access.
ImplementationCurated Commons for mars-express (hero + gallery). NASA fallback allowed only when secondary_creator matches extended allowlist for mars-express (partner / ESA-credited NASA archive entries).

CNSA

TopicNotes
PrimaryCNSA / state press imagery is typically distributed via Chinese state media and exhibition photo sets; no assumed stable anonymous JSON image API for mission press packs.
FeasibilityNo-go for automated primary HTTP adapter.
ImplementationCurated Commons for tianwen1, change4, change5, change6; NASA API last and query-tuned (often thin); do not prefer NASA over Commons for these ids.

ISRO

TopicNotes
PrimaryISRO press gallery / social distribution; public Bhoonidhi-class portals target Earth observation products, not Mars/Moon press galleries — wrong domain for hero sourcing.
FeasibilityNo-go for EO API as mission gallery source.
ImplementationCurated Commons for mangalyaan, chandrayaan1, chandrayaan3; NASA fallback only with honest credits.

JAXA

TopicNotes
PrimaryJAXA Digital Archives, mission pages, SLIM/MMX press kits — browse-first or repository metadata; not a single obvious anonymous image search JSON for scripted gallery fill.
Spike outcomeNo-go for a minimal anonymous adapter without deeper integration or scraping.
ImplementationCurated Commons for slim, mmx. NASA fallback with mmx / slim-scoped credit allowlist (jaxa, isas, etc.) where editorially appropriate.

UAESA / MBRSC (Hope)

TopicNotes
PrimaryEmirates Mars Mission — official imagery; many pages are marketing HTML without stable direct JPEG URLs for CI.
Spike outcomeNo-go for non-scraping automated primary fetch; verify Terms before any future HTTP adapter.
ImplementationCurated Commons + NASA fallback with query emirates mars mission hope spacecraft; allowlist may include mbrsc, uae, emirates mars for hope-probe only.

SpaceX

TopicNotes
PrimaryOfficial site / X / Flickr history — URL patterns and CDNs change; bulk download risks ToS issues.
FeasibilityNo-go for scraping spacex.com.
ImplementationCurated Commons for starship-demo, starship-mars-crew; NASA fallback only for clearly NASA–SpaceX cooperation results (credit filter).

Blue Origin

TopicNotes
PrimaryCorporate press pages; no stable anonymous image API assumed.
ImplementationCurated Commons + tight NASA query for blue-moon-mk1.

Inspiration Mars

TopicNotes
PrimaryConcept / foundation imagery — mixed rights; prefer Commons files with clear licenses aligned to mission credit in base JSON.
ImplementationCurated Commons; avoid misleading NASA-only Orion imagery unless copy ties the foundation concept to NASA hardware and credits remain accurate.

Pipeline order (implemented)

  1. Optional Commons hero (commonsCoverFirst) → 01.jpg + legacy card cover.
  2. fetchAgencyPrimaryImageUrls — returns NASA API preview URLs only when normalizeAgency(agency) === 'NASA'; otherwise [] (agency “primary” is the curated Commons pass).
  3. Wikimedia fallback + gallery lists.
  4. NASA Images API fill for remaining slots (non-NASA agencies), with mission-scoped credit extensions documented in ADR-046.

Commons filename drift

Wikimedia Commons renames or deletes files over time. Curated lists in scripts/fetch-assets.ts are spot-checked with Special:FilePath during maintenance; broken commonsCoverFirst entries skip the hero and NASA search fills 01.jpg with a noisier default.

Maintenance recipe: for each curated Commons title (commonsCoverFirst / commonsHeroFirst / WIKIMEDIA_ISS_FALLBACK / wikimediaFallback / gallery arrays in scripts/fetch-assets.ts), GET
https://commons.wikimedia.org/wiki/Special:FilePath/{urlencoded_title}?width=800
with a descriptive User-Agent and ≥300–500 ms between checks; on 404, search action=query&list=search&srnamespace=6 on Commons, skip .pdf/.webm/unrelated hits, then re-verify the replacement.

Audits: 2026-05-07 — mission MISSION_IMAGE_QUERIES + WIKIMEDIA_MISSION_*. 2026-05-07 — ISS module heroes + cupola/canadarm gallery lists; earth-object panel heroes (Hubble, Chandra, XMM, JWST, Galileo nav, Ceres, Halley, 67P, …); small-body gallery strings; moon-site change3 Wikimedia list.

Changelog

  • 2026-05-06 — Initial map + ESA / JAXA / UAESA spike no-go for CI-grade HTTP adapters; Commons + NASA fallback strategy locked for implementation.

Orrery — architecture documentation · MIT · No tracking