← Back to Radar

How Nexrad 3D Works

Nexrad 3D is a web-native platform that provides a real-time, three-dimensional volume visualization of weather radar data. The platform captures raw NEXRAD Level II archive streams, processes them, and uses hardware-accelerated Volume Ray Marching within the browser to generate detailed storm cell structures.

Architecture Overview

The software stack is designed around distributed microservices using Node.js, Next.js, and WebGL technologies:

1. Data Ingestion & Processing

Weather radars perform rapid sweeps of the atmosphere at various elevations. These sweeps are packaged into a "Volume", and published by agencies (like NOAA) in real-time.

The ingest-worker discovers these new Volume deployments, downloads the raw binaries, and runs them through our portable parser. The parser unpacks radial moments—such as Reflectivity (REF) and Velocity (VEL)—compressing the massive 3D data arrays into optimized artifacts. An event is then emitted over Redis to notify all connected clients that a new volume is ready.

2. Transport & Delivery

Instead of shipping heavy Cartesian point clouds or giant mesh models over the wire, Next.js API routes vend raw radial data in dense byte-arrays. This significantly cuts down bandwidth overhead. The browser pulls down the latest radar payload dynamically, preparing it for the WebGL pipeline.

3. 3D WebGL Rendering (Volume Ray Marching)

The core of Nexrad 3D's visual fidelity is its custom Volume Ray Marching shader architecture, built on top of three.js and integrated into maplibre-gl.

Rather than parsing individual raindrops or reflectivity clusters as millions of vertices natively, the entire atmospheric volume is sent directly to the GPU as 2D data textures. The fragment shader then virtually "steps" (or marches) along the camera's line of sight through physical world coordinates. At every step, it:

  1. Re-projects Cartesian camera space back into spherical radar coordinates (azimuth, range, and elevation).
  2. Samples the uploaded texture array based on radial index matching to find the localized dBZ value (Reflectivity).
  3. Interpolates coloring against standard radar palettes dynamically.
  4. Discards low-value atmospheric noise (via a user-controlled threshold slider) to reveal distinct storm formations.

Globe View vs. Local View

The software ships with two primary modes of observation:

Inspired by OpenStorm and open-source weather analysis packages.