A small, dependency-free macOS app for opening supported datasets from your local filesystem in Neuroglancer.
Double-click the app, choose a volume, and it starts a loopback-only HTTP server and opens Neuroglancer in a native visualization window. Volume files never leave the Mac.
- Neuroglancer Precomputed directories (a dataset root containing
info) - Zarr v2/v3 and OME-Zarr directories (
.zarr,.zarray,.zgroup, orzarr.json). Plain Zarr groups open each child array as a layer. - N5 directories (
.n5orattributes.json) - NIfTI
.niiand.nii.gzfiles - TIFF and OME-TIFF (
.tif,.tiff,.ome.tif,.ome.tiff) - HDF5 (
.h5,.hdf5,.hdf), with automatic or explicit dataset-key selection - NumPy (
.npy,.npz) - MRC (
.mrc,.map,.rec) - PNG, JPEG, and BMP images (shown as a one-slice volume)
Precomputed, Zarr/OME-Zarr, N5, and NIfTI are streamed directly through the loopback server. The other formats use a small bundled Python adapter based on Neuroglancer's LocalVolume API. Compressed TIFF, NPZ, and segmentation inputs may be loaded fully into memory; for very large data, a chunked format is preferable.
Requirements:
- macOS 13 or newer
- Apple Command Line Tools (
xcode-select --install) - Node.js 22 or newer (only for the first build of the bundled Neuroglancer web client)
- Python 3.10 or newer (only to build the bundled file-format adapter)
Run:
./scripts/build_app.shThe result is dist/Neuroglancer Local.app. Move it to /Applications if desired. The built app contains its helper runtime and does not require Python, Node.js, or an internet connection when used.
The build pins Neuroglancer 2.41.2, copies its production client into the app bundle, and ad-hoc signs the result for local use.
- Double-click
Neuroglancer Local.appand choose the first volume. - Click +, press Command-O, or drop more files or dataset directories anywhere in the viewer to add them as layers. The picker also supports selecting multiple volumes at once.
- Click New Visualization… or press Command-N to start an independent Neuroglancer session in a new window; existing visualizations stay open.
- For TIFF/HDF5/NumPy/MRC files, confirm whether each volume is an image or segmentation and enter the voxel size in z,y,x order. HDF5 and NPZ array keys are optional; common keys are detected automatically.
- Use Open in Browser if you prefer Chrome, Firefox, or Safari.
The most recently added path at the top of the window is editable. Paste or type another path and press Return to add it to the current visualization.
Some Zarr writers use um in dimension_units, while Neuroglancer requires the SI symbol µm. The local server fixes that metadata only in its HTTP response; it never changes the original dataset.
The file server binds to 127.0.0.1 on a random available port. It supports HTTP byte-range requests, which are required for efficient access to formats such as NIfTI and sharded Precomputed data.
swiftc Sources/Dataset.swift Tests/DatasetDescriptorTests.swift -o .build/dataset-tests
./.build/dataset-tests
./scripts/smoke_test.sh
./scripts/bridge_smoke_test.shThe smoke tests verify that the built app serves the bundled client, local dataset metadata, byte ranges, and representative NPY, TIFF, HDF5, and MRC volumes.