Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ Static files, no build step, no server, zero running cost. Published with GitHub
| --- | --- |
| `index.html`, `en/index.html` | The entrance: the era at a glance, Chinese and English |
| `archive/2219-signal/` | The full record of the 2219 signal from Ross 128 b: the log, arrival times, the beacon decoder, letters |
| `script/` | The grid script: how the translating machine writes down what Ross 128 b sends (`script/`), the online dictionary (`script/dictionary/`) and a converter between page source and drawings (`script/convert/`), Chinese with English under `en/`. `lib/glyph.js` is a JavaScript port of [glyph-cli](https://github.com/InterImm/glyph-cli) 0.2.0 and `lib/glyph-vocab.json` is its bundled vocabulary; `lib/glyph-zh.json` holds the Chinese glosses |
| `script/` | The grid script: how the translating machine writes down what Ross 128 b sends (`script/`), the online dictionary (`script/dictionary/`) and a converter between page source and drawings (`script/convert/`), Chinese with English under `en/`. `lib/glyph.js` is a JavaScript port of [glyph-cli](https://github.com/InterImm/glyph-cli) 0.3.0 (grammar v8) and `lib/glyph-vocab.json` is its bundled vocabulary; `lib/glyph-zh.json` holds the Chinese glosses |
| `signals/` | The five transmissions (picture, shadow, pulsars, chords, 137), each playable, and the resonance theory of their speech; the sound is computed by `lib/signals.js` |
| `drift/` | Drift: how the Sun and Ross 128 move relative to each other, from the Bronze Age to the closest approach (`lib/drift.js`) |
| `pulsars/` | The pulsar ledger, live: the pulsars that keep the MC clock, the ledger nodes and the timing residuals where the beacon repeats. Self-contained (its own page, `app/pulsars.js` and `app/pulsars.css`) so it can move to its own repo later |
| `kit/` | The phase 2 design kit, 137, published at https://interstellar.interimm.org/kit/ ([kit/README.md](kit/README.md)) |
| `app/` | Page scripts and styles |
Expand All @@ -20,7 +22,7 @@ Run it locally with any static server, for example `python3 -m http.server`, and

`npm test` checks `lib/glyph.js` against what glyph-cli itself outputs (`tests/glyph-cli-fixtures.json`). After a new glyph-cli
release or a vocabulary change, copy its `vocab.json` to `lib/glyph-vocab.json`, add the Chinese glosses to `lib/glyph-zh.json`,
and regenerate the fixtures with `pip install glyph-cli` and `python3 scripts/glyph_fixtures.py`.
and regenerate the fixtures with that release installed (`pip install glyph-cli==0.3.0`; until it is on PyPI, `pip install git+https://github.com/InterImm/glyph-cli`) and `python3 scripts/glyph_fixtures.py`.

The previous Hugo site (2022, "飞向恒星 / we must leave the solar system") is in the git history. The draft about
the first Earth–Mars conflict lives on the branch `cms/interstellar/草稿`.
Expand All @@ -30,7 +32,7 @@ the first Earth–Mars conflict lives on the branch `cms/interstellar/草稿`.
- Story time = real time + 70,491 days. The present is 2219.
- No interstellar ships on either side; contact is communication only.
- The source is Ross 128 b, a real temperate planet (at least 1.4 Earth masses, 9.87-day orbit, tidally locked) around
the old, quiet red dwarf Ross 128 in Virgo, 11.01 light years away. The transmitter rides on the planet, so the tone
the old, quiet red dwarf Ross 128 in Virgo, 10.98 light years away. The transmitter rides on the planet, so the tone
drifts with its orbit.
- The signal: first detected 2219-09-18 03:12:07 UTC by the MC ledger's pulsar-timing node on the lunar far side, then
Earth, Isidis (Mars) and Ceres; made public 2219-10-05. 1420.405 MHz, prime-spaced preamble, a 667-bit picture
Expand Down
4 changes: 2 additions & 2 deletions app/signal.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const T = zh ? {
copied: '链接已复制',
sharedTitle: '有人给罗斯128 b写了一封信',
tooShort: '先写点什么。',
saved: '已发出。它会以光速走 11.01 年。',
saved: '已发出。它会以光速走 10.98 年。',
unsaved: '已发出,但这个浏览器不能保存它;刷新后就看不到了。',
fold: (w) => `每行 ${w} 位`,
found: `23 × 29 = 667。两个都是质数,只有这一种折法能成图。`,
Expand All @@ -36,7 +36,7 @@ const T = zh ? {
copied: 'Link copied',
sharedTitle: 'Someone wrote a letter to Ross 128 b',
tooShort: 'Write something first.',
saved: 'Sent. It will travel at light speed for 11.01 years.',
saved: 'Sent. It will travel at light speed for 10.98 years.',
unsaved: 'Sent, but this browser could not keep it; it will be gone after a reload.',
fold: (w) => `${w} bits per row`,
found: '23 × 29 = 667. Both are prime, so this is the only fold that makes a picture.',
Expand Down
40 changes: 20 additions & 20 deletions archive/2219-signal/en/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="dark">
<title>The 2219 signal | The Contact Era</title>
<meta name="description" content="On 2219-09-18 every pulsar ledger in the solar system heard the same faint pattern from Ross 128 b, 11.01 light years away. How it started, the beacon to decode, and a letter to write back.">
<meta name="description" content="On 2219-09-18 every pulsar ledger in the solar system heard the same faint pattern from Ross 128 b, 10.98 light years away. How it started, the beacon to decode, and a letter to write back.">
<link rel="alternate" hreflang="zh-CN" href="https://interstellar.interimm.org/archive/2219-signal/">
<link rel="alternate" hreflang="en" href="https://interstellar.interimm.org/archive/2219-signal/en/">
<link rel="icon" href="../../../favicon.svg" type="image/svg+xml">
Expand All @@ -29,7 +29,7 @@
<div class="hero-grid">
<div>
<p class="kicker"><span class="pulse"></span>Archive · made public 2219-10-05 · 1420.405 MHz</p>
<h1>Someone is calling from <span class="num">11.01</span> light years away.</h1>
<h1>Someone is calling from <span class="num">10.98</span> light years away.</h1>
<p class="lede">On 2219-09-18 every pulsar ledger in the solar system logged the same faint pattern. It comes from Ross 128 b, it was sent on purpose, and it is still arriving.</p>
<div class="hero-actions">
<a class="btn btn-primary btn-lg" href="#signal">How it started</a>
Expand All @@ -38,14 +38,14 @@ <h1>Someone is calling from <span class="num">11.01</span> light years away.</h1
</div>
<figure class="scope">
<canvas data-waterfall data-line="0.62" width="280" height="140" role="img" aria-label="A live waterfall spectrogram: noise, with one narrow line that switches on and off"></canvas>
<figcaption><span>waterfall · 1420.405 MHz ± 40 kHz</span><time class="readout" data-story-clock>--:--:-- UTC</time></figcaption>
<figcaption><span>waterfall · 1420.405 MHz ± 600 kHz</span><time class="readout" data-story-clock>--:--:-- UTC</time></figcaption>
</figure>
</div>
<dl class="readouts">
<div><dt>Source</dt><dd>Ross 128 b · M4V</dd></div>
<div><dt>Distance</dt><dd>11.01 ly</dd></div>
<div><dt>Distance</dt><dd>10.98 ly</dd></div>
<div><dt>Position</dt><dd>11h47m44s +00°48′</dd></div>
<div><dt>Light left them</dt><dd id="ro-left">2209</dd></div>
<div><dt>Light left them</dt><dd id="ro-left">2208</dd></div>
<div><dt>Days since</dt><dd data-days-since="2219-09-18T03:12:07Z">–</dd></div>
</dl>
</div>
Expand All @@ -63,33 +63,33 @@ <h2 class="section-title" id="signal-title">How it started</h2>
<li>
<time datetime="2219-09-18T03:12:07Z">2219-09-18 03:12:07 UTC · Farside</time>
<h3>A residual nobody expected</h3>
<p>The ledger node on the far side of the Moon times twelve pulsars to keep the MC clock. At 03:12 it logged a narrow tone at 1420.405 MHz, the frequency of cold hydrogen, switching on and off. It was filed as local interference.</p>
<p>The ledger node on the far side of the Moon times twelve pulsars to keep the MC clock. At 03:12 it logged a narrow tone at 1420.55 MHz, just above 1420.405 MHz, the frequency of cold hydrogen, switching on and off. It was filed as local interference.</p>
</li>
<li>
<time datetime="2219-09-18">2219-09-18 · within 25 minutes</time>
<time datetime="2219-09-18">2219-09-18 · within half an hour</time>
<h3>Every other ledger heard it too</h3>
<p>Earth, Isidis on Mars and the Ceres node logged the identical pattern, each at a different moment. Ledgers compare notes at light speed, so the comparison alone took most of the day.</p>
</li>
<li class="is-key">
<time datetime="2219-09-18">2219-09-18</time>
<h3>The delays point at one star</h3>
<p>The arrival times fit a single wave from one direction outside the solar system: RA 11h 47m 44.4s, Dec +00° 48′ 16″. That is Ross 128, a quiet red dwarf in Virgo, much dimmer than the Sun and about twice as old, 11.01 light years away. In 2017 the Arecibo telescope recorded odd signals from this direction; they turned out to be Earth satellites. This time they are not.</p>
<p>The arrival times fit a single wave from one direction outside the solar system: RA 11h 47m 44.4s, Dec +00° 48′ 16″. That is Ross 128, a quiet red dwarf in Virgo, much dimmer than the Sun and about twice as old, 10.98 light years away. In 2017 the Arecibo telescope recorded odd signals from this direction; they turned out to be Earth satellites. This time they are not.</p>
</li>
<li>
<time datetime="2219-09-21">2219-09-21</time>
<h3>It is not natural</h3>
<p>The pulses are separated by 2, 3, 5, 7, 11 … 47 units: the prime numbers, in order. No pulsar, maser or reflection does that. Then 667 bits follow, and the whole sequence repeats.</p>
</li>
<li>
<time datetime="2219-09-28">2219-09-28</time>
<h3>The transmitter is on the planet</h3>
<p>The tone slides up and down by about 260 kHz every 9.87 days, exactly the time Ross 128 b takes to circle its star. The transmitter rides on that planet, and whoever built it did not correct for the Doppler shift. The planet is tidally locked: one side always day, the other always night.</p>
<p>The pulses are separated by 2, 3, 5, 7, 11 … 47 units: the prime numbers, in order. No pulsar, maser or reflection does that. Then 667 bits follow. The beacon comes back every 9 h 41 m, and each pass carries a different transmission in turn, so the 667 bits only return every fifth pass. <a href="../../../signals/en/">The five transmissions</a>.</p>
</li>
<li>
<time datetime="2219-09-27">2219-09-27</time>
<h3>The 667 bits are a picture</h3>
<p>667 is 23 × 29. Folded into rows of 23, the bits make a drawing. <a href="#decode">Fold it yourself.</a></p>
</li>
<li>
<time datetime="2219-09-28">2219-09-28</time>
<h3>The transmitter is on the planet</h3>
<p>The tone sits 0.01% above hydrogen's line because Ross 128 is coming toward us at 31 km/s, and it slides up and down by about 260 kHz every 9.87 days, exactly the time Ross 128 b takes to circle its star. The transmitter rides on that planet, and whoever built it did not correct for the Doppler shift. The planet is tidally locked: one side always day, the other always night.</p>
</li>
<li class="is-key">
<time datetime="2219-10-05">2219-10-05</time>
<h3>Made public</h3>
Expand Down Expand Up @@ -162,16 +162,16 @@ <h3>3 · Fold it</h3>
<p class="kicker">Distance</p>
<h2 class="section-title" id="distance-title">Nobody is coming.</h2>
</header>
<p class="distance-big">11.01 <small>light years</small></p>
<p class="distance-big">10.98 <small>light years</small></p>
<div class="gap-line" aria-hidden="true"><span class="us">Sun · us</span><span class="packet"></span><span class="them">Ross 128 b · them</span></div>
<div class="prose">
<p>Not us, and not them. Neither side can build a ship that crosses 11.01 light years, and nothing in the signal suggests they are trying. What crosses is light.</p>
<p>So this is contact by correspondence. A question sent today reaches them on <span class="readout" id="dist-arrives">2230</span>. If they answer at once, the reply lands on <span class="readout" id="dist-answer">2240</span>. Every exchange takes a generation, and the people who start a conversation may not be the ones who finish it.</p>
<p>Not us, and not them. Neither side can build a ship that crosses 10.98 light years, and nothing in the signal suggests they are trying. What crosses is light.</p>
<p>So this is contact by correspondence. A question sent today reaches them on <span class="readout" id="dist-arrives">2230</span>. If they answer at once, the reply lands on <span class="readout" id="dist-answer">2241</span>. Every exchange takes a generation, and the people who start a conversation may not be the ones who finish it.</p>
</div>
<dl class="readouts">
<div><dt>One way</dt><dd>11.01 yr</dd></div>
<div><dt>Round trip</dt><dd>22.02 yr</dd></div>
<div><dt>Distance</dt><dd><span id="dist-km">104.2</span> trillion km</dd></div>
<div><dt>One way</dt><dd>10.98 yr</dd></div>
<div><dt>Round trip</dt><dd>21.96 yr</dd></div>
<div><dt>Distance</dt><dd><span id="dist-km">103.9</span> trillion km</dd></div>
</dl>
<p class="after-word">For now, theirs is the only voice we can hear.</p>
</div>
Expand Down
Loading
Loading