The basic idea
Volume data is a three-dimensional grid of measurements. BorgVR divides this grid into small blocks called bricks and loads only the bricks and detail levels required for the current image. This makes it possible to explore datasets larger than the available GPU memory.
All native applications and the WebGPU renderer understand the same dataset format. A dataset can be opened locally, streamed from a BorgVR server, or discovered through known sources in a SharePlay session.
Rendering modes
- Transfer function + light
- Maps values to color and opacity and lights visible structures. This provides stronger shape cues but requires additional gradient and lighting work.
- Transfer function
- Composites color and opacity along each ray without lighting. This mode works well for color-coded or translucent structures.
- Isosurface
- Shows a surface where the dataset reaches a selected value. The corresponding editor controls that isovalue.
Transfer functions
A transfer function contains separate curves for red, green, blue, and alpha. Alpha determines which values become visible. Transfer functions can be stored with the dataset, loaded from a .tf1d file, or selected from the server catalog.
Sampling, LOD, and bricks
The sampling rate controls the spacing between samples along a ray. Higher values usually improve quality at a performance cost. The level-of-detail system selects coarser or finer bricks. The optional brick visualization is a diagnostic tool and is hidden by default.
Opening and importing data
- Local: An existing
.datafile is read directly from the device. - Remote: The app first reads the catalog of a configured BorgVR server and then fetches required bricks on demand.
- Import: DICOM, NRRD/NHDR, or QVIS data is converted into the bricked BorgVR format. Import settings only affect newly converted datasets.
The dataset's unique ID connects local copies, server origins, transfer functions, and markers. Origins are stored per ID. If one source cannot be reached, BorgVR tries other known sources in the order in which they were most recently announced.
Markers
Markers communicate spatial positions and drawings independently of the current viewpoint. They live in dataset coordinates and are depth-composited correctly with the volume.
- Sphere
- A named, colored point with an adjustable radius. An optional ray points from the sphere center toward the original camera position.
- Stroke
- A sequence of spatial points rendered as a smooth tube mesh. On Apple Vision Pro, strokes can be drawn with Logitech Muse.
Marker files use the .marker extension and contain the associated dataset ID. BorgVR asks for confirmation when a file belongs to another dataset. Existing markers can be replaced or extended.
BorgVR files
| Extension | Contents | Use |
|---|---|---|
.data | Metadata and bricked, optionally LZ4-compressed volume data | Renderers and servers |
.tf1d | One-dimensional transfer function and display metadata | Transfer-function catalog |
.marker | Spheres, directions, and spatial strokes with dataset ID | Load, save, and share markers |
