PSR B1919+21 · 80 successive pulses · 318 MHz · hover to explore

The figure above is probably the most reproduced piece of scientific data in popular culture, and almost nobody who wears it on a T-shirt knows what it is. It is not a mountain range and it is not a soundwave. It is a neutron star — eighty consecutive rotations of one, caught by a radio telescope, stacked one above the other. This page rebuilds the figure from the raw numbers, explains the physics, and gives you the data and the code to plot it yourself. The plot was rendered live in your browser from the dataset embedded in this page — hover over it to pick out individual pulses. (Reading in light mode? Then you're seeing it black-on-white, exactly as it appeared in the 1970 thesis it comes from; dark mode gives you the record sleeve's inversion.)

01 · The discovery

A scruffy signal at 19h 19m

In November 1967 Jocelyn Bell Burnell, then a PhD student at Cambridge, was working through chart-recorder output from the Interplanetary Scintillation Array — four acres of dipole antennas she had helped to build. Buried in the miles of paper was a persistent “scruff”: a signal pulsing with a period of about 1.337 seconds, far too regular to be anything then known to astronomy. It was, half-jokingly, labelled LGM-1 — “little green men” — until a second source turned up in a different part of the sky and ruled out the fun answer.

The source was catalogued as CP 1919 — Cambridge Pulsar at right ascension 19h 19m — and is known today as PSR B1919+21. It was the first pulsar ever found. The 1974 Nobel Prize in Physics went to Antony Hewish, Bell Burnell’s supervisor — her exclusion remains one of the most argued-over decisions in the prize’s history.

02 · The physics

A lighthouse made of nuclear matter

A pulsar is a rotating neutron star: the collapsed core left behind by a supernova, packing roughly 1.4 solar masses into a sphere about 20 km across. That is the density of an atomic nucleus scaled up to the size of a city — a teaspoon of the stuff would outweigh a mountain. Conservation of angular momentum during the collapse spins it up, and conservation of magnetic flux gives it a field of order 108 tesla.

The magnetic axis is not aligned with the rotation axis. Charged particles accelerated along the field lines emit a tight beam of radio waves from each magnetic pole, and as the star turns, the beam sweeps the sky like a lighthouse. If Earth happens to sit in the beam’s path, we see a flash once per rotation. For CP 1919, that is every 1.3373 seconds — a clock so stable that pulsar timing rivals atomic clocks over long baselines.

1.3373 srotation period
~0.04 spulse width
~20 kmdiameter
≈1000 lydistance

The teaching gold in this dataset is the pulse-to-pulse variability. Look at the stack again: no two pulses are alike. Individual pulses flicker, wander and sometimes nearly vanish, because the emission from the magnetosphere is a messy, turbulent process. Yet average a few hundred of them and you get a smooth, stable profile that is a fingerprint of the star. You can even see sub-pulse drift in the data — components that march steadily across the pulse window from one rotation to the next, forming faint diagonal bands down the stack. Chaotic individually, lawful in aggregate: it is a lovely one-image summary of what statistics is for.

03 · The figure

From a Cornell thesis to a Factory Records sleeve

The stacked-pulse image comes from Harold D. Craft Jr.’s 1970 PhD thesis at Cornell — Radio Observations of the Pulse Profiles and Dispersion Measures of Twelve Pulsars — based on observations made with the Arecibo radio telescope at 318 MHz. Craft was hunting drifting sub-pulses, and wrote a program on a CDC 3200 mainframe to stack 80 consecutive pulses one above the other, each trace hiding the lines behind it — a style now called a ridgeline plot. Delightfully, the printed figure is not even the computer’s direct output: to make it dark enough to reproduce, a draftsperson at Cornell’s space sciences building traced the plot by hand in India ink. The most famous “data visualisation” in popular culture is, strictly, an ink drawing of a plot of the data.

The figure was striking enough to be reprinted — as a full-page graphic in the January 1971 Scientific American, on the cover of the IAU’s Highlights of Astronomy, and in the 1977 Cambridge Encyclopaedia of Astronomy. The encyclopaedia is where Bernard Sumner of Joy Division found it. The band passed it to designer Peter Saville, who inverted it to white-on-black, centred it on a bare sleeve with no band name and no title, and in 1979 Unknown Pleasures was released on Factory Records. The image’s scientific origin then went quietly missing for decades, until designer Jen Christiansen traced it back through uncredited reprints to Craft’s thesis in Cornell’s rare book room and interviewed Craft himself in 2015 — the definitive account of the figure’s journey.

Provenance: Craft’s original telescope records — tapes digitised at Arecibo around 1969 — have never surfaced, so the printed figure is the primary source that survives. The CSV below is a digitisation of that figure: creative coder Michael Zoellner traced the plot into a vector image, from which the 80 × 300 grid of values was extracted (the version popularised by Borgar Þorsteinsson’s gist). Its full lineage is therefore: Arecibo signal → CDC 3200 digitisation → computer plot → India-ink tracing → thesis p. 214 → reprints → scan → vector trace → this CSV. It is faithful to the figure, but it is a trace of a drawing of a plot of the data — which makes the genuinely measured profiles in section 06 all the more worth having.

04 · The data

80 rows, 300 samples, one neutron star

Each row is one full rotation of the star; each of its 300 values is the received radio intensity (arbitrary units) at successive moments across the window containing the pulse. Row 1 is drawn at the top of the stack.

First 5 pulses × first 8 samples, of 80 × 300. Values are normalised intensity.

05 · The code

Re-plotting it in Python

The whole trick of the figure is occlusion: draw the traces from the back of the stack to the front, filling under each one with the background colour so that nearer pulses hide the ones behind. In matplotlib that is a loop over fill_between and plot:

"""Re-plot the CP 1919 (PSR B1919+21) pulse stack.

Data: 80 successive pulses, 300 intensity samples each,
digitised from Harold D. Craft Jr.'s 1970 Cornell PhD thesis.
"""
import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("pulsar.csv", delimiter=",")   # shape (80, 300)
n_pulses, n_samples = data.shape

fig, ax = plt.subplots(figsize=(7, 9))
fig.patch.set_facecolor("black")
ax.set_facecolor("black")

x = np.arange(n_samples)
overlap = 1.4          # vertical spacing between traces
scale = 0.14           # intensity scaling

# Draw from the back (first pulse, top) to the front (last pulse,
# bottom), filling each trace with black so nearer lines occlude
# farther ones.
for i, pulse in enumerate(data):
    y = -i * overlap + pulse * scale
    ax.fill_between(x, y, -n_pulses * overlap, color="black", zorder=i)
    ax.plot(x, y, color="white", linewidth=0.9, zorder=i)

ax.set_xlim(-40, n_samples + 40)
ax.set_ylim(-n_pulses * overlap - 2, data[0].max() * scale + 4)
ax.axis("off")
plt.tight_layout()
plt.savefig("cp1919_replot.png", dpi=200,
            facecolor="black", bbox_inches="tight")

The plot at the top of this page uses exactly the same algorithm, written in about thirty lines of JavaScript against an SVG — view the source of this page to see it, along with the full dataset it draws from.

06 · The star as measured today

Chaos, averaged: the real pulse profile

The claim in section 02 — wild individual pulses, stable average — is testable with what’s on this page. Below left is the mean of the 80 Craft pulses, computed in your browser from the embedded CSV. The chaos collapses into the pulsar’s calling card: a clean double-peaked profile about 0.04 s wide.

And we can check it against modern telescopes. Embedded alongside the Craft data, this page now carries five genuinely measured profiles of the same star from the EPN Database of Pulsar Profiles — Gould & Lyne’s (1998) observations with the 76-m Lovell telescope at Jodrell Bank, from 410 MHz up to 1642 MHz (data CC BY 4.0). The 410 MHz profile, closest in frequency to Craft’s 318 MHz, is shown by default; the buttons switch frequency. Both panels are zoomed to the pulse window — roughly the same slice of the rotation Craft plotted. Notice how well thirty years and an ocean of instrumentation agree with a hand-inked thesis figure — and notice, too, how the two components edge closer together as frequency drops, one of this pulsar’s famous refusals to behave like the textbook says it should. The database holds twelve further profiles, from 38 MHz LOFAR up to 4.85 GHz Effelsberg, linked below — download any and drop it onto the right-hand panel to plot it.

Mean of the 80 pulses above · Arecibo, 318 MHz (1969, digitised)
Lovell · 410 MHz · Gould & Lyne 1998 · EPN (CC BY 4.0)
All 17 EPN profiles of PSR B1919+21 (direct ASCII links)
freqtelescopereffile

DATA · pulse stack digitised from H. D. Craft Jr., PhD thesis, Cornell University (1970); Arecibo, 318 MHz; vector trace M. Zoellner, CSV via B. Þorsteinsson · measured profiles from the EPN Database of Pulsar Profiles, Jodrell Bank Centre for Astrophysics (CC BY 4.0) · plotted live in-browser from the embedded CSV.