Space Lightning Spectrometer Simulator

An interactive model of the Team Spectro concept for the Tiangong Space Station: one wide-field camera watches the atmosphere continuously, YOLO_storm flags sprite-prone thunderstorms — persistent targets that last seconds or more — and four pan–tilt 2D spectrometers (diffraction grating + camera) slew to those storms in advance, then dwell, track and keep recording into a ring buffer. It never chases the sprite itself, which lasts only about 30 ms. When one fires over an assigned storm, the slew has already happened, so the delay at event time is zero — and YOLO_sprite’s job afterwards is only to flag and save the buffered event. Run the simulation, tune the hardware, and see exactly when a capture succeeds or is lost.

Orbit ~400 km · Tiangong (TSS) Sprite layer 50–90 km Event duration ~30 ms Compute NVIDIA AGX Xavier + Xavier NX Gimbals PCA9685 servo control Detectors YOLO_storm → YOLO_sprite

Same live events · in 3D3D orbital view — feel the 400 km above a curved Earth

Earth is a real sphere and the ground visibly falls away on either side of the point directly below the station. This view defaults to Exaggerated ×5 — labelled, not to scale so the 400 km gap and the thin 50–90 km sprite layer are easy to see; switch to True scale for the real proportions. The storms and sprites here are the same live ones as in the flat Live simulation below — use the controls under that view, fire a sprite, and watch for the red glow in both views. Drag to orbit · scroll or pinch to zoom.

⚠ Exaggerated ×5 — labelled, not to scale
Exaggerated ×5 — labelled, not to scale
TIANGONG · 400 km updrag to orbit — see it float
↕ 400 km gap6.3% of Earth's radius
SPRITE LAYER · 50–90 kma thin skin, not a deep layer
NADIR — point directly below stationsurface curves away on both sides
3D could not start in this browser (WebGL unavailable).
The 2D simulation below still shows the same live storms, sprites and spectrometer pointing.
6,371 km — Earth's radius. Everything else is measured against it — switch to True scale to see those proportions undistorted.
400 km = 6.3% of that radius. Low orbit is close: the station is nearer the surface, proportionally, than the skin is to an apple's centre.
50–90 km = 0.8–1.4% — the sprite layer is a film only 40 km thick. Sprite and storm symbols are enlarged so you can see them; in this default view their altitudes are stretched ×5 (labelled, not to scale).
~7 km drop in 300 km — travel 300 km along the surface from the nadir point and the ground has already curved ~7 km down. At the far edges of this view the drop is hundreds of km. Orbit around and watch the limb bend.

EXAGGERATED VIEW (×5) — default: all altitudes above the surface are stretched five times (station shown at 2,000 km-equivalent, sprite layer at 250–450 km-equivalent) so the thin layers are easier to see. Earth's radius is unchanged. This graph is labelled as not to scale — switch to True scale for the real proportions.

Live simulation — nadir view from the station Sprites are drawn slowed down ×20 so you can see them; the clock and the capture logic use the true 30 ms. Storms charge up, flash, then may trigger a sprite above the cloud top.
YOLO storm boxSprite (50–90 km) Spectrometer lockedSpectrometer slewing Clock T+ 0.0 s
Higher threshold: fewer false targets, but weak storms never get a spectrometer.
Servo pan–tilt speed. Sets how fast a unit re-targets between storms.
How often new thunderstorms enter the wide-field view.
Only a minority of storms produce a sprite — most often after a strong +CG stroke.
Feeds the timing budget below: frame period = 1000 / fps.

The core problem — read this carefullyTiming budget — pre-pointing in advance

It detects a storm — a big, persistent target — and points at that in advance. The sprite is never chased. Split the timeline in two and the 30 ms problem changes completely:

Phase A · Before any sprite · seconds available

Detect the storm, slew, dwell & track

The wide-field camera runs continuously. YOLO_storm flags a sprite-prone thunderstorm, which stays in view and keeps charging for seconds (in this sim, roughly 2.5–6.5 s of charge-up, and real storms persist far longer). That is ample time for a spectrometer to slew, settle, dwell and track it. No 30 ms deadline applies in this phase.

Storm enters viewYOLO_storm boxAssign 1 of 4Slew + settleLocked · tracking · recording
Phase B · The sprite itself · 0–30 ms

Already pointed. Already recording.

The spectrometer is already on the storm and already recording into a ring buffer, so slew delay at event time = 0 ms. The 30 ms sprite simply lands in the buffer as it happens. Only afterwards does YOLO_sprite flag the event and save that buffered window — it never starts a slew.

t = 0 · sprite starts0–30 ms · lands in bufferAfter · YOLO_sprite flags itSave buffered window

The table below is the corrected budget. Phase A is judged against seconds, Phase B against the 30 ms event. All numbers are this app’s design defaults, not measured flight performance.

—
—

✓ What pre-pointing does solve

  • Removes slew from the 30 ms window. For an assigned storm, slew delay at event time is 0 ms — the move happened seconds earlier, in Phase A.
  • Relaxes the detection deadline from 30 ms to the storm’s lifetime: YOLO_storm, assignment and servo latency just have to fit inside seconds.
  • Lets YOLO_sprite work after the fact. It flags and saves a buffered event instead of racing the event, so its latency no longer decides success.
  • Buys dwell time to settle, focus the grating image and track — not a rushed arrival mid-flash.

So the honest claim for the paper is narrow and strong: pre-pointing eliminates the slew delay at event time for an assigned, tracked storm — it does not eliminate every delay, and it does not guarantee a capture.

What a capture looks like2D spectrometer — synthetic spectrum

When a spectrometer is locked on and a sprite fires, its grating spreads the flash into a spectrum. Choose an event type to preview the diagnostic emission lines a paper would report. After a live capture, this plot switches to the captured event.

Tap any labelled peak above — or any row in the table — to jump to that element’s enlarged zoom panel below.

Emission featureWavelengthOriginWhat it tells you

Zoom — one enlarged view per emission line

Each panel isolates a single element / band from the spectrum above, magnified around its centre wavelength (±30 nm), so the line shape, exact wavelength and relative strength can be read without squinting at the full plot.

Flight logEvent log

Payload4 × 2D spectrometers

Each unit: camera + diffraction grating on a pan–tilt gimbal, station belly-mounted, nadir-looking.

0
spectra captured
0
sprites missed
—
capture efficiency
0
storms tracked

A miss is counted when a sprite fires with no spectrometer locked onto its parent storm — wrong target, still slewing, below the YOLO threshold, an unassigned storm (only 4 units).

For the paperDerived system numbers

Computed live from the geometry — quote them, then state your assumptions.

System architectureAs proposed in the Spectro poster

WIDE-FIELD CAMERA (continuous, nadir) │ frames @ 60 fps ▼ YOLO_storm ──► storm boxes + confidence │ assign ≤ 4 targets (Hungarian / nearest) ▼ PCA9685 ──► 4× PAN–TILT GIMBALS ──► 4× 2D SPECTROMETERS │ (grating + camera, pre-pointed & tracking) ▼ YOLO_sprite ──► AFTER the event: flag it in the rolling │ buffer ──► save that buffered window │ (YOLO_sprite never starts a slew) ▼ POST-PROCESSING (Python): line ID → plasma composition, energy distribution, elemental abundance Compute: NVIDIA AGX Xavier (main) + Xavier NX (cameras)

Prototype ground truth from the poster: spectra of spark-gap “lightning” were recorded with both slitless and 2D-slit spectrometers. Slitless is lighter but hard to calibrate; the 2D slit is accurate and easy to calibrate but demands the precise, rapid alignment this simulator stresses.

Field guideTransient Luminous Events (TLEs)

Red sprites

Cold-plasma discharges in the mesosphere above strong thunderstorms, usually after positive cloud-to-ground (+CG) strokes. Red N₂ emission above, blue tendrils below.

50–90 km · ~10–100 ms · up to ~50 km wide

GHOSTs

Greenish Optical emission from Sprite Tops — the 557.7 nm atomic-oxygen green line glowing at sprite tops after the red flash fades. A prime target for this spectrometer.

~90 km · 557.7 nm O(¹S) · follows sprites

Blue jets

Narrow blue cones propagating up from cloud tops into the stratosphere, dominated by N₂⁺ blue emission.

15–50 km · ~200–300 ms · blue 391/428 nm

ELVES

Expanding rings of light in the lower ionosphere driven by the electromagnetic pulse of an intense lightning stroke.

75–105 km · <1 ms · rings to ~300 km across

Science goals from the poster: mesosphere physics · sprites vs tropical-cyclone intensification · aviation-hazard remote sensing · ionospheric anomalies such as GHOSTs.

SourcesReferences

Simulation honesty note: storm behaviour, YOLO confidences, slew geometry and spectra are illustrative models with realistic orders of magnitude — suitable for exploring the design and drafting a paper's feasibility argument, not flight-qualified predictions. Spectral line positions are real; relative intensities are schematic.