One viewer, many kinds of data
Volumes
NIfTI, MGH, NRRD, OME-Zarr and more, as slices or ray-marched in 3D. DICOM through an extension.
Overlays and colormaps
Stack statistical maps on anatomy with thresholds, blend modes and dozens of colormaps.
Meshes
Cortical surfaces with per-vertex layers, curvature and matcap shaders.
Tracts and connectomes
Streamline tractography and node-and-edge connectomes in the same scene.
Drawing
Paint, erase and fill segmentations right on the slices, with undo.
Linked viewers
Share the crosshair, zoom and 3D camera across any number of canvases.
React
Components and hooks from @niivue/nvreact.
Extensions
DICOM, image processing and custom tools from separate packages.
From canvas to viewer
Attach a viewer to a canvas and hand it the images. NiiVue uses WebGPU when the browser has it and falls back to WebGL2.
- Mouse, touch and drag and drop built in
- Settings are plain properties
- Save and restore the whole scene as JSON
import NiiVue from '@niivue/niivue'
const nv = new NiiVue()
await nv.attachToCanvas(document.getElementById('gl1'))
await nv.loadVolumes([{ url: './mni152.nii.gz' }])







