The Sync Test moves to iss-spoofing.aethercosmology.com

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Toby
2026-10-31 11:42:04 -04:00
parent b9f8d913ad
commit 2743af1e81
5 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -2,7 +2,7 @@
Corrections, new measurements and independent re-analyses are welcome, Corrections, new measurements and independent re-analyses are welcome,
including ones that disagree with the results. Every figure on pingstats, including ones that disagree with the results. Every figure on pingstats,
fe-map and iss is rebuilt from this repository, so a change accepted here fe-map and iss-spoofing is rebuilt from this repository, so a change accepted here
changes the published numbers. The Shape of Distance is included as published. changes the published numbers. The Shape of Distance is included as published.
Issues and pull requests: https://git.aethercosmology.com/toby/cable-latency-survey. Register at Issues and pull requests: https://git.aethercosmology.com/toby/cable-latency-survey. Register at
@@ -44,7 +44,7 @@ numbers change.
|---|---|---| |---|---|---|
| pingstats.aethercosmology.com | `src/` | `cd src && python3 build.py` | | pingstats.aethercosmology.com | `src/` | `cd src && python3 build.py` |
| fe-map.aethercosmology.com | `femap/` | `cd femap && python3 build.py` (about 10 minutes) | | fe-map.aethercosmology.com | `femap/` | `cd femap && python3 build.py` (about 10 minutes) |
| iss.aethercosmology.com | `satellites/` | `cd satellites && python3 build.py` | | iss-spoofing.aethercosmology.com | `satellites/` | `cd satellites && python3 build.py` |
| distance.aethercosmology.com | `src/handoff/The_Shape_of_Distance_PRESENTATION.html` | single published file | | distance.aethercosmology.com | `src/handoff/The_Shape_of_Distance_PRESENTATION.html` | single published file |
Browser checks: `cd tests && npm install && CH=/path/to/chromium ./run.sh`. Browser checks: `cd tests && npm install && CH=/path/to/chromium ./run.sh`.
+2 -2
View File
@@ -6,7 +6,7 @@ Measurements, code and data behind four sites:
|---|---|---| |---|---|---|
| https://pingstats.aethercosmology.com | Measured round-trip times between cities, compared with the minimum propagation time along submarine-cable routes on a sphere, a North-pole azimuthal equidistant (AE) map, an AE map centred on 0°N 0°E ("dual-pole") and a flat Mercator map | `src/` | | https://pingstats.aethercosmology.com | Measured round-trip times between cities, compared with the minimum propagation time along submarine-cable routes on a sphere, a North-pole azimuthal equidistant (AE) map, an AE map centred on 0°N 0°E ("dual-pole") and a flat Mercator map | `src/` |
| https://fe-map.aethercosmology.com | The best layout of 219 cities on a plane that a solver can find from timed flights, pings, rail and road lengths and satellite passes, and the same solve released into 3D | `femap/` | | https://fe-map.aethercosmology.com | The best layout of 219 cities on a plane that a solver can find from timed flights, pings, rail and road lengths and satellite passes, and the same solve released into 3D | `femap/` |
| https://iss.aethercosmology.com | The Sync Test: the ISS at its published-orbit position on the globe and three flat maps, with a spoofed radio signal moving at the speed measured by SatNOGS stations | `satellites/` | | https://iss-spoofing.aethercosmology.com | The Sync Test: the ISS at its published-orbit position on the globe and three flat maps, with a spoofed radio signal moving at the speed measured by SatNOGS stations | `satellites/` |
| https://distance.aethercosmology.com | The Shape of Distance: flights, triangles and satellite recordings | `src/handoff/The_Shape_of_Distance_PRESENTATION.html` | | https://distance.aethercosmology.com | The Shape of Distance: flights, triangles and satellite recordings | `src/handoff/The_Shape_of_Distance_PRESENTATION.html` |
- Code: MIT (`LICENSE`). Measurements and derived data: CC BY 4.0, with third-party terms (`LICENSE-DATA.md`). - Code: MIT (`LICENSE`). Measurements and derived data: CC BY 4.0, with third-party terms (`LICENSE-DATA.md`).
@@ -21,7 +21,7 @@ Measurements, code and data behind four sites:
| `cable_latency_survey_report.html` | The report, identical to the website. | | `cable_latency_survey_report.html` | The report, identical to the website. |
| `src/` | Pipeline code, raw logs and derived data (below). | | `src/` | Pipeline code, raw logs and derived data (below). |
| `femap/` | fe-map: solver (`fit.py`), build (`build.py`, `template.html`), result (`data/femap.json`), page (`site/`). | | `femap/` | fe-map: solver (`fit.py`), build (`build.py`, `template.html`), result (`data/femap.json`), page (`site/`). |
| `satellites/` | iss: build (`build.py`, `template.html`), orbital elements and SatNOGS timings (`data/`), page (`site/`). | | `satellites/` | iss-spoofing: build (`build.py`, `template.html`), orbital elements and SatNOGS timings (`data/`), page (`site/`). |
| `src/handoff/The_Shape_of_Distance_PRESENTATION.html` | The Shape of Distance as published; the flights, limits and triangles used by `femap/` and the SatNOGS timings used by `satellites/` are read from it. | | `src/handoff/The_Shape_of_Distance_PRESENTATION.html` | The Shape of Distance as published; the flights, limits and triangles used by `femap/` and the SatNOGS timings used by `satellites/` are read from it. |
| `tests/` | Headless-browser checks of the sites (`tests/run.sh`). | | `tests/` | Headless-browser checks of the sites (`tests/run.sh`). |
+2 -2
View File
@@ -8,8 +8,8 @@
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="The Sync Test"> <meta property="og:title" content="The Sync Test">
<meta property="og:description" content="ISS position and a spoofed radio signal on four maps. On the globe they stay level; one orbit after the signal is lined up, it is 19–55 min behind on the North-pole AE map."> <meta property="og:description" content="ISS position and a spoofed radio signal on four maps. On the globe they stay level; one orbit after the signal is lined up, it is 19–55 min behind on the North-pole AE map.">
<meta property="og:url" content="https://iss.aethercosmology.com/"> <meta property="og:url" content="https://iss-spoofing.aethercosmology.com/">
<meta property="og:image" content="https://iss.aethercosmology.com/og.png"> <meta property="og:image" content="https://iss-spoofing.aethercosmology.com/og.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='9' fill='%23081120' stroke='%233ee6ff' stroke-width='2'/%3E%3Ccircle cx='25' cy='9' r='3.5' fill='%23fff'/%3E%3Ccircle cx='22' cy='25' r='3.5' fill='none' stroke='%23ff4fd8' stroke-width='2'/%3E%3C/svg%3E"> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='9' fill='%23081120' stroke='%233ee6ff' stroke-width='2'/%3E%3Ccircle cx='25' cy='9' r='3.5' fill='%23fff'/%3E%3Ccircle cx='22' cy='25' r='3.5' fill='none' stroke='%23ff4fd8' stroke-width='2'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
+2 -2
View File
@@ -8,8 +8,8 @@
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="The Sync Test"> <meta property="og:title" content="The Sync Test">
<meta property="og:description" content="ISS position and a spoofed radio signal on four maps. On the globe they stay level; one orbit after the signal is lined up, it is {{AE_LAG1}} behind on the North-pole AE map."> <meta property="og:description" content="ISS position and a spoofed radio signal on four maps. On the globe they stay level; one orbit after the signal is lined up, it is {{AE_LAG1}} behind on the North-pole AE map.">
<meta property="og:url" content="https://iss.aethercosmology.com/"> <meta property="og:url" content="https://iss-spoofing.aethercosmology.com/">
<meta property="og:image" content="https://iss.aethercosmology.com/og.png"> <meta property="og:image" content="https://iss-spoofing.aethercosmology.com/og.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='9' fill='%23081120' stroke='%233ee6ff' stroke-width='2'/%3E%3Ccircle cx='25' cy='9' r='3.5' fill='%23fff'/%3E%3Ccircle cx='22' cy='25' r='3.5' fill='none' stroke='%23ff4fd8' stroke-width='2'/%3E%3C/svg%3E"> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='9' fill='%23081120' stroke='%233ee6ff' stroke-width='2'/%3E%3Ccircle cx='25' cy='9' r='3.5' fill='%23fff'/%3E%3Ccircle cx='22' cy='25' r='3.5' fill='none' stroke='%23ff4fd8' stroke-width='2'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
+2 -2
View File
@@ -1,10 +1,10 @@
// The Sync Test (satellites/site/index.html): errors, overflow, controls clickable, readouts filled, at 8 viewports. // The Sync Test (satellites/site/index.html): errors, overflow, controls clickable, readouts filled, at 8 viewports.
// CH=<chromium> node sync.mjs [url] (default: the built file; LIVE=1 for https://iss.aethercosmology.com) // CH=<chromium> node sync.mjs [url] (default: the built file; LIVE=1 for https://iss-spoofing.aethercosmology.com)
import { chromium } from 'playwright-core'; import { chromium } from 'playwright-core';
import { fileURLToPath } from 'url'; import { fileURLToPath } from 'url';
import path from 'path'; import path from 'path';
const here = path.dirname(fileURLToPath(import.meta.url)); const here = path.dirname(fileURLToPath(import.meta.url));
const url = process.argv[2] || (process.env.LIVE ? 'https://iss.aethercosmology.com/' : 'file://' + path.join(here, '../satellites/site/index.html')); const url = process.argv[2] || (process.env.LIVE ? 'https://iss-spoofing.aethercosmology.com/' : 'file://' + path.join(here, '../satellites/site/index.html'));
const VP = [[1920, 1080], [1680, 1050], [1440, 900], [1280, 720], [1024, 768], [820, 1180], [390, 844], [360, 740]]; const VP = [[1920, 1080], [1680, 1050], [1440, 900], [1280, 720], [1024, 768], [820, 1180], [390, 844], [360, 740]];
const b = await chromium.launch({ executablePath: process.env.CH }); const b = await chromium.launch({ executablePath: process.env.CH });
let fails = 0; let fails = 0;