Work — technical deep-dive

Technical MVP · research and technical evaluation only

VoxelEdge

A multi-service system for processing and visualizing volumetric medical images: a Cornerstone3D viewer in the browser, a Go API gateway, a Rust compute service, and a Python/MONAI imaging pipeline, talking to each other over versioned gRPC contracts. I designed and built all of it.

This page is the system I built end to end, described at the level of detail you would need to judge whether I can build yours. It is a technical MVP for research and evaluation, not a shipped clinical product.

The problem

A volumetric study is not a picture. It is a stack of hundreds of slices that only means something once it is reconstructed, and it is large enough that moving it is a decision rather than a reflex.

  • The viewer runs on one workstation, so anyone who needs to look at the data has to go to that machine.
  • The processing runs somewhere else, by hand, and the version that produced last quarter's output is hard to reconstruct.
  • Every new experiment means another one-off script and another copy of the volume.

VoxelEdge is my answer to that shape of problem: put the viewer in the browser, put the compute behind a typed service boundary, and keep the volumes in object storage where every service can reach them without anyone emailing a drive.

Architecture overview

Four services and a shared object store. The browser never talks to compute directly; every request goes through the gateway, and the boundaries between services are versioned gRPC contracts rather than an informally agreed JSON shape.

VoxelEdge service architecture A Cornerstone3D viewer running in the browser calls a Go API gateway over HTTPS. The gateway calls a Rust compute service over a versioned gRPC contract, and the compute service calls a Python and MONAI imaging pipeline over gRPC. Both the compute service and the imaging pipeline read and write volumes and derived artifacts through MinIO or S3-compatible object storage. Cornerstone3D web viewer In the browser. No desktop install. HTTPS / REST Go API gateway Single entry point for every request. gRPC — versioned contract Rust compute service Voxel-level processing and transforms. gRPC Python / MONAI imaging pipeline Preprocessing and model inference. S3 API — read and write MinIO / S3 object storage Volumes and derived artifacts.

Both the compute service and the imaging pipeline read and write through the object store rather than passing volumes between themselves, so a service can be restarted, replaced, or moved without the data following it around.

The stack, and why each piece is there

Six choices. Each one is a trade, and each one has a reason you can argue with.

  • Cornerstone3D web viewer

    The viewing surface runs in a browser, so the person who needs to look at a volume does not need a specific workstation, an install, or a license seat. Cornerstone3D is a maintained, widely used foundation for medical image display, which is not a place I wanted to write something bespoke.

  • Go API gateway

    One entry point in front of everything else. Go is deliberately boring here: fast to start, straightforward to deploy as a single binary, and easy to reason about when a request has to fan out to more than one service.

  • Rust compute service

    Voxel-level work is where throughput and memory behaviour actually matter. Rust gives predictable performance without a garbage collector pausing in the middle of a large volume, and the compiler catches an entire class of memory mistakes that are unpleasant to debug in a numerical pipeline.

  • Python / MONAI imaging pipeline

    Preprocessing and inference live in Python because that is where the medical imaging ecosystem lives. MONAI supplies domain-specific transforms and model tooling built for medical images rather than for photographs, so the pipeline is not fighting general-purpose defaults.

  • Versioned gRPC contracts

    The service boundaries are typed and versioned, and the contract is checked into the repository. Services can then be changed or replaced independently, and a mismatch shows up as a build failure rather than as a malformed payload discovered at runtime.

  • MinIO / S3-compatible object storage

    Volumes and derived artifacts go to object storage, not to a local disk that happens to be attached to whichever machine ran the job. The same code path runs against MinIO on a laptop and against a cloud bucket in a deployment.

Status

VoxelEdge is a technical MVP used for research and evaluation. Testing uses synthetic or properly de-identified data. It is not a shipped clinical product, and it is not marketed for diagnosis, prioritization, or treatment. A clinical application would need an intended-use determination and a regulatory pathway assessed by people who do that professionally. If you need a device pathway, that is work I do not take — named on the about page.

Need something built like this?

If you are working with imaging data, instrument output, or a pipeline that only one person knows how to run, tell me what you have. I read every inquiry myself and reply within two business days.