A web-based reimplementation of the classic Vis5D scientific visualization system, built with vanilla HTML, JavaScript, and CSS using WebGL2. No frameworks, no build step — just open in a browser.
Vis5D Web brings the capabilities of Vis5D to the browser, enabling interactive 3D visualization of five-dimensional gridded data sets (3 spatial dimensions + time + multiple variables) directly from .v5d files.
- Isosurfaces — marching cubes extraction via WebWorker with per-variable color and opacity
- Colored slices — horizontal and vertical cross-sections with configurable colormaps
- Contour lines — marching squares contour extraction overlaid on slices
- Volume rendering — slice-based rendering with 3D textures and transfer function controls
- Wind visualization — vectors, meteorological barbs, and streamlines on horizontal slices
- Particle trajectories — 3D RK4 integration through U/V/W wind fields
- Sounding diagrams — vertical profile plots with multi-variable overlay
- Map grid overlay — coordinate grid lines with auto-scaled intervals
- Time animation — timestep slider with play/pause for temporal datasets
- Multi-dataset support — load and overlay multiple V5D files simultaneously
- V5D binary format (all compression modes: 1-byte, 2-byte, 4-byte float)
- All 7 projection types: rectilinear, cylindrical equidistant, Lambert conformal, polar stereographic, rotated equidistant, Mercator, and generic non-uniform
- All vertical coordinate systems: linear generic, linear km, non-uniform height, non-uniform pressure
Try it now at vis5d.bytecoder.com — browse sample datasets and visualize them directly in your browser.
python3 -m http.server 8080Open http://localhost:8080 and drop a .v5d file onto the page. Sample files are included in samples/.
The application is organized as ES modules across six layers:
| Layer | Purpose |
|---|---|
js/core/ |
Constants, event bus (pub/sub), application state |
js/io/ |
V5D binary parser, grid decompression, file loader |
js/data/ |
Dataset wrapper, LRU grid cache, coordinate transforms |
js/compute/ |
Isosurface/contour WebWorkers, slices, volume, wind, trajectories |
js/render/ |
WebGL2 renderer, camera, shaders, mesh/line/slice/volume renderers |
js/ui/ |
DOM-based control panels (no framework dependencies) |
Vis5D is a free OpenGL-based volumetric visualization system for scientific data sets, originally developed at the University of Wisconsin-Madison Space Science and Engineering Center (SSEC).
Original authors:
- Bill Hibbard — Principal investigator and lead developer
- Johan Kellum — Core development
- Brian Paul — OpenGL/Mesa graphics, core algorithms
- Dave Santek — Data formats and McIDAS integration
- Andre Battaiola — Development and testing
Vis5D was first released in 1990 and became one of the most widely used tools for visualizing meteorological and atmospheric model output. It pioneered interactive 3D visualization of gridded data with features like isosurfaces, volume rendering, wind trajectories, and animated time-stepping — capabilities that were groundbreaking for their era.
The original Vis5D is licensed under the GNU General Public License v2+ and is available at https://github.com/drafnel/Vis5d.
This web-based reimplementation was created in 2026 by Bill Heyman (bill@heyman.ai) to bring Vis5D's visualization capabilities to modern web browsers without requiring native software installation. While Vis5D Web is a complete rewrite using WebGL2, WebWorkers, and ES modules, its design, algorithms, and data format support are directly informed by the original Vis5D codebase.
Vis5D Web is licensed under the GNU General Public License v2+, the same license as the original Vis5D. See LICENSE.md for details.
Copyright (C) 2026 Bill Heyman (bill@heyman.ai)