{
 "v": 1,
 "fetched": "2026-10-16",
 "credit": "Triton map: USGS / NASA Voyager 2 global color mosaic (Caltech/JPL/USGS, public domain); ring radii: NASA PDS Ring-Moon Systems Node and de Pater et al. 2018; moon data: NASA JPL SSD; Neptune, Proteus and Nereid maps: artistic",
 "items": [
  {
   "id": "neptune-procedural-map",
   "name": "Neptune colour map (procedural, artistic map based on Irwin et al. 2024 natural colour, Voyager 2 and Hubble observations)",
   "url": "https://doi.org/10.1093/mnras/stad3761",
   "credit": "Original work for this page. Colour target: P. G. J. Irwin et al. (2024) \"Modelling the seasonal cycle of Uranus's colour and magnitude, and comparison with Neptune's\", MNRAS 527, 11521, DOI 10.1093/mnras/stad3761 (Neptune and Uranus are both pale greenish blue, but Neptune is visibly bluer (pale azure), from a thinner haze layer; the deep blue of the Voyager 2 images was an enhancement, so the base colour here is a natural pale azure, (130, 178, 216) against the roughly (174, 219, 223) of the Uranus map).",
   "licence": "Own work",
   "fetched": "2026-10-16",
   "transform": "ARTISTIC map, no image data from any spacecraft or telescope was used; no Bjorn Jonsson or Solar System Scope map. Built by tools/build-textures.py: 4096 x 2048 equirectangular, planetocentric latitude, east longitude, x = 0 is lon -180, y = 0 is lat +90 (IAU north). Each pixel = base colour x (latitude profile + longitude noise), then sparse cloud streaks blended toward white. Profile: zonal banding (sum of three sines, total amplitude 3 percent, periods 19, 11, 6 deg latitude); slightly darker blue zones: a low-latitude band (gaussian at the equator, sigma 13 deg, depth 5.5 percent), a band near 30 S (sigma 5 deg, depth 5 percent) and a darker band near 65 S (sigma 4 deg, depth 7 percent), basis: the darker zones and the dark band near 60 to 70 S in Voyager 2 and Hubble images; a slightly brighter south polar zone poleward of about 76 S (smoothstep 70 to 82 S, +5 percent), basis: the bright south polar region seen by Voyager 2 and Hubble (the south is the sunlit pole in 2026); low-amplitude longitudinal noise (1.0 percent, gaussian blurred 46 x 5 px, fixed seed, faded toward the poles by 0.4 + 0.6 cos(lat)^1.5, so rotation is perceptible up close); 19 sparse bright methane-cloud streaks (11 between 44 S and 24 S, 6 between 22 N and 38 N, 2 between 76 S and 68 S; random positions from a fixed seed, 6 to 22 deg long, 0.8 to 1.8 deg wide, 15 to 32 percent toward white; the number and latitudes follow where Voyager 2 and Hubble show bright clouds, the positions are not real). No Great Dark Spot. The map has no physical longitude anchor. All parameters: base_rgb = (130, 178, 216); equator_lat = 0.0; equator_sigma = 13.0; equator_depth = 0.055; band_lat = -30.0; band_sigma = 5.0; band_depth = 0.05; band2_lat = -65.0; band2_sigma = 4.0; band2_depth = 0.07; spole_edge_lat = -76.0; spole_halfwidth = 6.0; spole_gain = 0.05; band_amp = 0.03; band_period_deg = (19.0, 11.0, 6.0); band_phase = (0.7, 2.1, 4.3); noise_amp = 0.01; noise_sigma_x = 46.0; noise_sigma_y = 5.0; noise_seed = 2026; streaks_south = 11; streaks_north = 6; streaks_pole = 2; streak_lat_south = (-44.0, -24.0); streak_lat_north = (22.0, 38.0); streak_lat_pole = (-76.0, -68.0); streak_len_deg = (6.0, 22.0); streak_wid_deg = (0.8, 1.8); streak_gain = (0.15, 0.32); streak_seed = 1846. 2K is a Lanczos resample of the 4K.",
   "used": [
    "assets/tex/color-2k.jpg",
    "assets/tex/color-4k.webp",
    "assets/tex/color-4k.jpg",
    "assets/fallback/map-2k.jpg"
   ]
  },
  {
   "id": "usgs-triton-mosaic",
   "name": "USGS Astrogeology Triton Voyager 2 Color Mosaic Global Fill 600 m (Triton_Voyager2_ClrMosaic_GlobalFill_600m.tif, from PIA18668, Lunar and Planetary Institute, Paul Schenk)",
   "url": "https://asc-pds-services.s3.us-west-2.amazonaws.com/mosaic/Triton_Voyager2_ClrMosaic_GlobalFill_600m.tif",
   "credit": "NASA / JPL-Caltech / USGS Astrogeology Science Center / Lunar and Planetary Institute (Voyager 2 images); md5 639d45b53604aa4395eccd17e4a9c0df; label Triton_Voyager2_ClrMosaic_GlobalFill_600m.lbl (equirectangular, planetocentric, PositiveEast, -180..180, 600 m/px, 14138 x 7069 RGB)",
   "licence": "Public domain (NASA / USGS; no copyright asserted; credit as requested)",
   "fetched": "2026-10-16",
   "transform": "Downloaded to tools/_cache/triton/ (300 MB, not shipped). The mosaic is an enhanced-colour product with a strong olive / magenta cast, so only its luminance is used and the engine tints it (moons.json tint #e6d8cf, pale cream-pink). Steps in tools/build-textures.py: Box downsample to 4096 x 2048; the black unimaged north (about 38.6 percent of the map; Voyager 2 saw Triton in southern summer with the north in darkness) is the validity mask; the map is rolled so that longitude 0 is the sub-Neptune point (Horizons IAU_TRITON, east positive, gives a constant sub-Neptune longitude of +2.74 deg, 2.726 to 2.758 over 2000 to 2050, so new_lon = old_lon - 2.74); a power curve sets the imaged mean grey level to 150 (p99 212); interior holes in the mosaic (44 px) are filled by local averaging; the valid-data mask is eroded by about 6 deg (the mosaic edge pixels are bright and smeared), data is faded out over about 22 deg of latitude (eroded by 250 px at 4096 wide, blurred sigma 125 px), and the unimaged area takes the colour of the boundary band extended by a wide normalised convolution (sigma 100 px) that fades to the boundary band mean (111.6 of 255) over about 25 deg; noise matches the boundary band local contrast (std 9.3, blurred 4 px) and is faded by cos(lat)^1.5 (no polar fan); the +-180 wrap seam is closed over 70 px. 2K is an area resample, so the 2K files hold about 1.3 km per pixel. Greyscale in the files (R = G = B). The south polar rows are stretched by the cylindrical projection and partly interpolated in the source.",
   "used": [
    "assets/tex/moon-triton-512.jpg",
    "assets/tex/moon-triton-1k.jpg",
    "assets/tex/moon-triton-2k.webp",
    "assets/tex/moon-triton-2k.jpg"
   ]
  },
  {
   "id": "moon-maps-proteus-nereid",
   "name": "Proteus and Nereid textures (procedural, artistic)",
   "url": "https://ssd.jpl.nasa.gov/sats/phys_par/",
   "credit": "Original work for this page. Only the geometric albedo is physical: NSSDC 0.10 (Proteus), 0.16 (Nereid).",
   "licence": "Own work",
   "fetched": "2026-10-16",
   "transform": "No global maps exist: Voyager 2 saw Proteus only at low resolution and Nereid as a few pixels. The textures are neutral greyscale at mean level 77 + 139 x albedo (90.9 and 99.2 of 255) with low-amplitude blurred noise faded by cos(lat)^1.5. Proteus adds 46 soft craters at random positions (bowl and rim, angular radius 3 to 14 deg, drawn by great-circle distance so they are not stretched), none of them real. Nereid is noise only. Say \"artistic\" wherever they are credited.",
   "used": [
    "assets/tex/moon-proteus-512.jpg",
    "assets/tex/moon-proteus-1k.jpg",
    "assets/tex/moon-proteus-2k.webp",
    "assets/tex/moon-proteus-2k.jpg",
    "assets/tex/moon-nereid-512.jpg",
    "assets/tex/moon-nereid-1k.jpg",
    "assets/tex/moon-nereid-2k.webp",
    "assets/tex/moon-nereid-2k.jpg"
   ]
  },
  {
   "id": "usgs-astrogeology-neptune",
   "name": "USGS Astrogeology (Astropedia) Neptune system mosaics: checked for a Triton global mosaic and for Proteus / Nereid maps",
   "url": "https://astrogeology.usgs.gov/search?pmi-target=triton",
   "credit": "USGS Astrogeology Science Center",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Checked 2026-10-17 with the asc-pds-services S3 listing (mosaic/): Triton has the global fill colour mosaic used above, an orthographic RGB mosaic and a 1,472 m airbrush mosaic; no Proteus or Nereid global map exists.",
   "used": []
  },
  {
   "id": "jpl-horizons-triton-sublon",
   "name": "JPL Horizons observer ephemeris of Triton from Neptune (quantity 14, sub-observer longitude)",
   "url": "https://ssd-api.jpl.nasa.gov/doc/horizons.html",
   "credit": "NASA / JPL Solar System Dynamics Group, Horizons API, target 801, CENTER 500@899, 2000-01-01 to 2050-01-01 in 1000 steps",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Used only to find the longitude of the sub-Neptune point in the IAU_TRITON east-positive frame: constant at +2.74 deg (2.726 to 2.758). The Triton map is rolled by that amount (see usgs-triton-mosaic).",
   "used": [
    "assets/tex/moon-triton-2k.jpg"
   ]
  },
  {
   "id": "pds-rings-table",
   "name": "PDS Ring-Moon Systems Node: Vital Statistics for Neptune's Rings",
   "url": "https://pds-rings.seti.org/neptune/neptune_rings_table.html",
   "credit": "SETI Institute / NASA PDS Ring-Moon Systems Node (after Porco et al. 1995)",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Table as listed: Galle 42,000 km (2,000 wide, tau 1e-4), Le Verrier 53,200 (<100, 0.003, Despina), Lassell 55,200 (4,000, 1e-4), Arago 57,200, unnamed Galatea ring 61,953, Adams 62,933 (15, 0.003 to 0.1, Galatea); arcs: Egalite 2 10.7 deg ahead of Fraternite, Liberte 12 deg ahead of Egalite 1, Courage 7.3 deg ahead of Liberte. rings.json: Galle r = 41,900 (Porco et al. 1995, 40,900 to 42,900; the PDS table says 42,000), Le Verrier 53,200 drawn 100 wide, Lassell 53,200 to 57,200 (r = the middle, 55,200), Arago 57,200 drawn 100 wide, Adams r = 62,932.7 (Renner et al. 2014) drawn 15 km wide (the arc width). The unnamed Galatea ring is mentioned in text only.",
   "used": [
    "data/rings.json"
   ]
  },
  {
   "id": "de-pater-2018",
   "name": "de Pater, Renner, Showalter and Sicardy (2018) The rings of Neptune, Planetary Ring Systems, Cambridge University Press, ch. 5 (arXiv 1906.11728)",
   "url": "https://arxiv.org/abs/1906.11728",
   "credit": "I. de Pater, S. Renner, M. R. Showalter, B. Sicardy",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Used for the ring table (Table 5.1), the history of the arcs (Courage jumped about 8 deg ahead by 2003 and flared in 1998; Liberte at about 30 percent of its Voyager brightness in 2003; both essentially gone by 2009; Egalite longer, Fraternite about 25 percent shorter than in 1989), arc extents 1 to 10 deg within a 40 deg longitude range, Galatea 42:43 resonance, and arc mean-motion history (820.1194 or 820.1118 deg/day, Nicholson et al. 1995; 820.1118 Keck 2005; 820.11213 VLT 2007).",
   "used": [
    "data/rings.json"
   ]
  },
  {
   "id": "arc-frame",
   "name": "Arc longitudes: Souami et al. (2022) A&A 657 (2022), DOI 10.1051/0004-6361/202141598 (VLT/SPHERE 2016) and Renner et al. (2014) A&A 563, A133 (VLT/NACO 2007), after Porco et al. (1995) Voyager 2 and Owen et al. (1991)",
   "url": "https://arxiv.org/abs/2110.12669",
   "credit": "D. Souami, S. Renner, B. Sicardy et al. (2022); S. Renner, B. Sicardy et al. (2014), DOI 10.1051/0004-6361/201321910",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "APPROXIMATE positions. Anchor: centre of Fraternite = 217.43 +/- 0.30 deg at the reference frame 2016-08-23 05:33:51.958 UT (Earth time), longitude measured in the ring plane from the J2000.0 ascending node of Neptune's equator; mean motion of the arcs 820.11178 +/- 0.00003 deg/day (Fraternite and Egalite). The longitude refers to the arc at Neptune, so arcEpoch = Earth time minus the light time (28.959 AU, 14,451 s) = 2016-08-23T01:33:01Z (UTC); validation: Voyager 251.88 deg at JD 2447757.0 (at Neptune) propagated with 820.11213 deg/day and the same light-time rule gives 349.02 deg at the 2007-08-31 NACO frame against their measured 349.01. The other four arcs are offset from Fraternite by their Voyager-era separations (Egalite 1 +10.6, Egalite 2 +13.6, Liberte +26.1, Courage +33.4 deg; PDS Rings Node, Porco et al. 1995 via Wikipedia arc table, Tsui 2018) and moved with the same mean motion: Egalite is the same frame as Fraternite, so good to a few degrees, but Liberte and Courage are only the 1989 positions carried forward (they faded away, and Courage may be about 8 deg further ahead). CONVERSION INTO neq (CONTRACT.md: z = IAU pole at 2025-01-01 TDB, x = its ascending node on the ICRF equator): the source frame is the same construction with the pole at J2000 (IAU WGCCRE 2015: RA 299.36 + 0.70 sin N, Dec 43.46 - 0.51 cos N, N = 357.85 + 52.316 T). A source longitude L becomes the unit vector cos L X0 + sin L Y0 and is re-expressed in the neq axes; the shift is -0.108 deg (tools/build-data.py to_neq). Results at arcEpoch in neq: courage lon0 = 250.72 deg (offset +33.4 from Fraternite, length 2.7); liberte lon0 = 243.42 deg (offset +26.1 from Fraternite, length 4.0); egalite1 lon0 = 227.92 deg (offset +10.6 from Fraternite, length 3.0); egalite2 lon0 = 230.92 deg (offset +13.6 from Fraternite, length 2.0); fraternite lon0 = 217.32 deg (offset +0.0 from Fraternite, length 10.0). The engine advances lon = lon0 + 820.11178 x (t - arcEpoch in days), t in UTC at Neptune (light-time corrected). The rate uncertainty of 0.00003 deg/day gives about 0.1 deg by 2026. Lengths: Fraternite 10 deg (247 to 257), Egalite 1 3 deg, Egalite 2 2 deg, Liberte 4 deg, Courage 2.7 deg (3,000 km, Renner et al. 2014 after Porco et al. 1995).",
   "used": [
    "data/rings.json"
   ]
  },
  {
   "id": "ring-display",
   "name": "Ring display opacity and colour (rings.json a, col)",
   "url": "https://pds-rings.seti.org/neptune/neptune_rings_table.html",
   "credit": "Original work for this page",
   "licence": "Own work",
   "fetched": "2026-10-16",
   "transform": "NON-PHYSICAL display opacity: the particles are very dark (about 2 to 6 percent reflectivity) and the true optical depths are 0.0001 to 0.1, so the artistic opacities only make them visible. Arcs brightest (Fraternite 0.60, Egalite 1 0.52, Egalite 2 0.46, Liberte 0.24, Courage 0.20, ordered by how bright they are today), Adams 0.15, Le Verrier 0.12, Arago 0.07, dusty Galle and Lassell 0.05. Display colours are hand-set dark reddish greys (Neptune's ring dust is very red in Keck and Hubble images).",
   "used": [
    "data/rings.json"
   ]
  },
  {
   "id": "jpl-ssd-sats",
   "name": "JPL SSD Planetary Satellite Physical Parameters, Mean Elements, and Horizons object data",
   "url": "https://ssd.jpl.nasa.gov/sats/phys_par/",
   "credit": "NASA / JPL Solar System Dynamics Group (https://ssd.jpl.nasa.gov/sats/elem/; https://ssd.jpl.nasa.gov/api/horizons.api)",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Fetched 2026-10-16. Mean radius km, GM km3/s2, density g/cm3: Triton 1352.6 +/- 2.4, 1428.49546, 2.0649; Proteus 208 +/- 8, 2.58342 +/- 2.42 (so mass 3.87e19 kg and density 1.03 +/- 0.97 are very uncertain), 1.0269; Nereid 170 +/- 25, no GM. Mass = GM / G with G = 6.6743e-20 km3/kg/s2: Triton 2.140e22 kg, Proteus 3.871e19 kg. Nereid mass 3e19 kg (NSSDC 0.3e20), not measured. Mean elements: Triton a = 354,800 km, e 0.000, i 157.3 deg (Laplace plane), P 5.876994 d (retrograde); Proteus a = 117,600 km, e 0, i 0.55 deg, P 1.122315 d; Nereid (ecliptic, epoch 2020-01-01) a = 5,513,900 km, e 0.751, i 5.1 deg, P 360.133039 d, peri 1,372,961 km (55.4 RN), apo 9,654,839 km (389.9 RN). aRN = a / 24764.",
   "used": [
    "data/moons.json"
   ]
  },
  {
   "id": "nssdc-neptune",
   "name": "NASA NSSDC Neptune Fact Sheet and Neptunian Satellite Fact Sheet",
   "url": "https://nssdc.gsfc.nasa.gov/planetary/factsheet/neptunefact.html",
   "credit": "NASA Goddard NSSDCA (https://nssdc.gsfc.nasa.gov/planetary/factsheet/neptuniansatfact.html)",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Neptune: mass 102.409e24 kg (JPL GM 6,835,099.97 km3/s2 / G = 1.0241e26), equatorial radius 24,764 km and polar radius 24,341 km (1 bar), mean density 1,638 kg/m3, sidereal orbit 60,189.018 d = 164.79 years, obliquity 28.32 deg, temperature 72 K (-201 C) at 1 bar and 55 K (-218 C) at 0.1 bar, 16 moons. Geometric albedo 0.72 Triton, 0.16 Nereid, 0.10 Proteus (Horizons lists 0.7, 0.2, 0.06). Nereid a 5,513.4 thousand km, e 0.7512.",
   "used": [
    "data/neptune.json",
    "data/moons.json"
   ]
  },
  {
   "id": "moon-count",
   "name": "Known moons of Neptune: 16 (S/2002 N5 and S/2021 N1 announced February 2024), checked 2026-10-16",
   "url": "https://science.nasa.gov/neptune/facts/",
   "credit": "NASA Science, NSSDC, Subaru Telescope (S/2021 N1, 2024); Wikipedia Moons of Neptune",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "moonsConfirmed 16: Proteus, Triton, Nereid, 6 small inner moons (Naiad, Thalassa, Despina, Galatea, Larissa, Hippocamp) and 7 irregular moons (Halimede, Sao, Laomedeia, Psamathe, Neso, S/2002 N5, S/2021 N1). Searches on 2026-10-16 found no later discovery; NASA Science and the NSSDC both give 16.",
   "used": [
    "data/neptune.json",
    "data/moons.json"
   ]
  },
  {
   "id": "winds-suomi",
   "name": "Neptune wind speeds: Suomi, Limaye and Baker (1991) Science 251, 929 (DOI 10.1126/science.251.4996.929); Limaye and Sromovsky (1991) JGR 96, 18941 (Voyager 2 cloud tracking); NASA Science Neptune facts",
   "url": "https://science.nasa.gov/neptune/facts/",
   "credit": "V. E. Suomi, S. S. Limaye, D. R. Baker (1991); S. S. Limaye, L. A. Sromovsky (1991); NASA",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "windKmh 2100 (580 m/s) is the fastest wind figure for Neptune (Voyager 2 cloud tracking; the Wikipedia Neptune article gives up to about 2,100 km/h, 580 m/s, citing Suomi et al. 1991). NASA Science rounds it to \"over 1,200 mph (2,000 km/h)\". Not re-derived here.",
   "used": [
    "data/neptune.json"
   ]
  },
  {
   "id": "karkoschka-2011",
   "name": "Karkoschka (2011) Neptune's rotational period suggested by the extraordinary stability of two features, Icarus 215, 439; Voyager 2 radio period",
   "url": "https://doi.org/10.1016/j.icarus.2011.05.013",
   "credit": "E. Karkoschka (2011)",
   "licence": "Open data / citation only (NASA / JPL / PDS / IAU / journal pages; facts cited, text written for this page)",
   "fetched": "2026-10-16",
   "transform": "Rotation period 15 h 57 min 59 s from Hubble cloud features; Voyager 2 radio period 16 h 6.6 min (16.11 h, NSSDC). neptune.json dayLength carries both. The IAU W rate used by the engine (541.1397757 deg/d) is the WGCCRE 2015 value, which corresponds to the Voyager period.",
   "used": [
    "data/neptune.json"
   ]
  }
 ]
}
