BorgVR Guide

macOS server utility

BorgVR Dataset Server

Convert, catalog, and serve datasets to native clients or the WebGPU browser without using the command line.

BorgVR dataset visualization

What the server app provides

The server app has two primary jobs: converting source data into the BorgVR format and publishing a directory of datasets, transfer functions, and marker files over the network. It can also synchronize that directory with other BorgVR servers.

ServicePurposeTypical clients
Native dataset serverCatalog, metadata, and brick batches over the BorgVR protocolvisionOS, iOS, and macOS apps
WebGPU web serverBrowser UI, dataset resources, transfer functions, and markers over HTTP(S)WebGPU-capable browsers
Server synchronizationCopy missing or incomplete content from remote catalogsOther BorgVR servers

Starting a server

  1. Choose Server in the main menu and select the data directory. BorgVR scans .data, .tf1d, and .marker files.
  2. Check the displayed IP addresses and native port. The copy button places an address on the clipboard.
  3. Enable the WebGPU server in Settings when browser access is needed. Its protocol and port appear in the server window.
  4. Click Start Server. The data directory cannot be changed while the server is running.

The log records catalog scans, connections, errors, and synchronization progress. Clear Log clears only the visible output and does not remove data.

WebGPU and TLS

For network access, the WebGPU server uses HTTPS by default. Without a custom certificate, BorgVR creates a temporary self-signed certificate at startup. Browsers display a warning; after explicit confirmation, the site can be used.

Alternatively, import a PKCS#12 identity as a .p12 or .pfx file. Its password is stored in the macOS Keychain. For safety, unencrypted HTTP binds to localhost only.

Public deploymentFor deliberate public deployment, use a valid certificate and a reverse proxy. A self-signed certificate is intended for controlled testing on a local network.

Importing datasets

The converter guides you through input, output, dataset description, and brick settings. Supported workflows include QVIS, NRRD/NHDR, and DICOM. The result is a standalone .data file that can be written directly to the server directory.

Brick size
Size of the spatial blocks. It affects management overhead, streaming, and the GPU atlas.
Overlap
Additional border voxels for continuous filtering between neighboring bricks.
Compression
Stores suitable bricks using LZ4 and leaves bricks that do not compress efficiently uncompressed.
Border handling
Determines how incomplete boundary bricks are filled when dataset dimensions are not divisible by the brick size.

Server-to-server synchronization

Settings can contain multiple remote BorgVR servers with hostname, port, interval, and optional password. The server app periodically compares their catalogs with the local directory.

  • New datasets, transfer functions, and marker files are copied.
  • Incomplete datasets resume instead of downloading from the beginning.
  • If multiple origins provide the same dataset, synchronization can switch to another source after a stall.
  • The server window shows active transfers and an idle, up-to-date state.

Access control and operation

A server password protects both the native protocol and web access. Clients store the password with the hostname and port in their server configuration. Before production use, also verify the firewall, reachable address, and selected port.

Automatic startup is useful on a dedicated machine. For headless or cross-platform operation, use the Swift or C++ command-line server.