Skip to main content
WorkProjects

GLIMPSE

JWST spectroscopy visualizer

stable
View raw

Interactive JWST exoplanet transit spectroscopy visualizer. Browses the JWST observation catalog, renders transmission spectra with 1-sigma error bars, overlays molecular absorption bands, and exports publication-ready data. WCAG 2.1 AA compliant.

What it is

GLIMPSE is a full-stack visualization tool for exoplanet atmospheres. When a planet transits its host star, a fraction of starlight filters through its atmosphere; molecules absorb at characteristic wavelengths, producing a spectral fingerprint. GLIMPSE renders those fingerprints interactively from real JWST archive data and physically-motivated demo models. The transmission spectrum plots transit depth d = (Rp/R*)^2 in ppm against wavelength — feature amplitudes are 10–1000 ppm for gas giants and 1–100 ppm for terrestrials.

By the numbers

MetricValue
Wavelength coverage0.6–5.3 um (NIRSpec + NIRISS)
Molecules with band overlays7 (H2O, CO2, CO, CH4, SO2, NH3, Na/K)
Uncertainty bands1-sigma and 2-sigma
Spectral binning range5–100 points
Export formatsCSV, JSON, PNG
Canvas render target60 fps on mobile
Accessibility standardWCAG 2.1 AA
Text / UI contrast4.5:1 / 3:1
Zoom without loss of function200%
Frontend hostingVercel
Backend hostingRender (free tier)

Architecture

+-------------------------------------------------------------+
|                   Next.js 16 / React 19                      |
|                        (Vercel)                              |
|  Target Selector  |  Spectrum Canvas  |  Spectrogram / LC    |
+------------------------------+------------------------------+
                               | HTTPS (JSON)
                               v
+-------------------------------------------------------------+
|                  FastAPI (Python 3.11)                       |
|                      (Render free tier)                      |
|  /api/mast/targets  |  /api/mast/demo-data  |  /api/mast/... |
+------------------------------+------------------------------+
                               |
                               v
+-------------------------------------------------------------+
|  MAST Archive (STScI)  +  NASA Exoplanet Archive             |
|  JWST NIRSpec / NIRISS transit FITS via astropy              |
+-------------------------------------------------------------+

The frontend also ships Next.js API routes (apps/web/src/app/api/*) as a resilience layer so the app stays interactive when the free-tier Render backend cold-starts.

Key features

  • Transmission spectra with uncertainty bands — Transit depth in ppm vs. wavelength, rendered to HTML5 Canvas with 1-sigma and 2-sigma shaded regions. No chart library; custom renderer targets 60 fps on mobile.
  • Molecular band overlays — H2O (1.4, 1.9, 2.7 um), CO2 (4.3, 15.0), CO (2.3, 4.6), CH4 (2.3, 3.3, 7.7), SO2 (4.0, 7.3, 8.7), NH3 (1.5, 2.0, 10.5), Na/K (0.59, 0.77). Per-molecule toggles let users reason about composition visually.
  • Spectrogram heatmap + light curves — 2D heatmap across wavelength and orbital phase; transit light curves at user-selected wavelengths.
  • Live MAST queries — Pulls JWST NIRSpec / NIRISS transit FITS through astroquery against the Mikulski Archive for Space Telescopes. Demo mode falls back to physically-motivated simulated spectra grounded in published JWST observations.
  • Exoplanet parameter lookups — NASA Exoplanet Archive integration returns planet / host-star parameters for each target.
  • Spectral binning controls — 5 to 100 points, user-adjustable.
  • CSV / JSON / PNG export — Publication-ready output of the active spectrum and view.
  • Colorblind-safe palette — Okabe-Ito by default across all charts.
  • Resilience layer — Next.js API routes shadow the Python backend so the frontend remains interactive during Render free-tier cold starts.

Accessibility

  • WCAG 2.1 AA — 4.5:1 text contrast, 3:1 UI contrast, 200% zoom without loss of function.
  • Screen-reader data tables — Every canvas chart has an aria-label description plus a hidden table of the underlying data points.
  • Keyboard navigation — Focus indicators on every control, skip links, data points reachable via keyboard.

API reference

Base URL: https://astrospecvis.onrender.com.

MethodPathPurpose
GET/Health + metadata
GET/healthRender health check
GET/api/mast/targetsCurated JWST exoplanet target list
GET/api/mast/demo-data/{target}?bin_size=20Simulated transit spectrum
GET/api/mast/real-data/{target}Live JWST data from MAST
GET/api/mast/exoplanet/{target}NASA Exoplanet Archive parameters
GET/api/mast/molecular-bandsMolecular absorption band catalog

Stack

LayerTechnology
Frontend frameworkNext.js 16 (App Router), React 19
Language (web)TypeScript 5
StylingTailwind CSS 4
AnimationFramer Motion 12
ChartsHTML5 Canvas (custom renderer)
3Dthree.js, @react-three/fiber, drei
Iconslucide-react
Backend frameworkFastAPI
Language (api)Python 3.11
Astronomyastropy >=6.0, astroquery >=0.4.7
Numericsnumpy, scipy
ASGI serveruvicorn + uvloop + httptools
Data sourcesMAST Archive (STScI), NASA Exoplanet Archive
HostingVercel (web), Render free tier (api)