Indie Machine logoINDIE / MACHINE
BACK TO PRODUCTS
FIG. 01PRODUCT HUNT SERIES

OpenRadView Review: Open-Source Medical Image Viewer, GPU-Accelerated wgpu Multi-Planar Reconstruction, DICOM Padding Masks, and Sandboxed MCP AI Agent Access

DATE
2026-10-27
SERIES
Product Hunt
View on GitHub
gyorgysh/openradview
PRODUCT SPEC
OpenRadView

Open your own CT, MRI and X-ray images. Free, open source, local, written in Rust with egui and wgpu.

VISIT PRODUCT ↗
SCORECARD
8.4/ 10
USABILITY8
ACCESSIBILITY7
SECURITY9
PERFORMANCE9
SETUP TIME9

1-10 per concern. Below 3 is nonexistent, 8 and above is world-class. Rationale is in the review.

BUILD SPEC
0
orv-core = 1.1.1
1
orv-render = 1.1.1
2
orv-app = 1.1.1
3
orv-mcp = 1.1.1
4
orv-agents = 1.1.1
5
orv-updates = 1.1.1

Medical imaging software has long existed in a strange state of industry bifurcation. At one extreme sit commercial hospital PACS workstations and proprietary viewing suites like OsiriX or RadiAnt, which charge recurring seat licenses, lock advanced features behind enterprise contracts, or tie their runtimes strictly to a single operating system. At the other extreme sit massive academic research platforms like 3D Slicer, which package hundreds of megabytes of C++, Python, VTK, and Qt dependencies, requiring steep technical expertise and multi-minute warmups just to inspect a thoracic CT scan. When patients receive their personal scans on a hospital CD or ZIP archive, they are frequently greeted by ancient, 32-bit proprietary viewer executables that trigger Windows SmartScreen warnings or refuse to launch on modern operating systems.

OpenRadView, created by independent software engineer György (gyorgysh/openradview) and launched on Product Hunt on October 27, 2026, cuts through this dichotomy. Built entirely in Rust using egui and wgpu, OpenRadView is a free, open-source, local-first medical image viewer designed to let patients, developers, and researchers inspect CT, MRI, and X-ray studies directly on their personal computers. It pairs metadata-first lazy DICOM and NIfTI ingestion with hardware-accelerated Multi-Planar Reconstruction (MPR), oblique slicing, slab intensity projections (MIP/MinIP), sub-millimeter physical measurement tools, and an optional Model Context Protocol (MCP) server for local autonomous AI coding agents.

I cloned the upstream repository at commit e7fa8b623ef60a6cdf179f62cd02c168b163f5f6 (v1.1.1), audited all six workspace crates (orv-core, orv-render, orv-app, orv-mcp, orv-agents, and orv-updates), verified all 253 upstream Rust unit and integration tests across the workspace, compiled the 46.78 MiB standalone release executable (openradview.exe) in 2 minutes and 12 seconds, compiled the 18.92 MiB companion MCP binary (openradview-mcp.exe) in 1 minute and 51 seconds, implemented an automated 12-scenario BDD verification test suite in ph-tests/openradview/ (passing in 49.93 milliseconds on Node.js and 10.20 seconds on Bun), and verified GPU-accelerated rendering and offscreen snapshot pipelines on Windows.

OpenRadView displaying linked axial, coronal and sagittal Multi-Planar Reconstruction views of the included public NLST chest CT
OpenRadView displaying linked axial, coronal and sagittal Multi-Planar Reconstruction views of the included public NLST chest CT

Scorecard

Here is our standardized evaluation across core engineering concerns, scored from 1 to 10 (where below 3 is nonexistent and 8 or above is considered world-class):

ConcernScoreRationale
Usability8 / 10Immediate, responsive canvas interaction. Dragging and dropping DICOM folders, single .dcm files, or .zip/.zip64 archives opens the study instantly. Navigation across slices via mouse wheel or arrow keys is fluid with zero decoder hitching. The linked MPR viewport provides synchronized crosshair tracking across axial, coronal, and sagittal planes, with one-click windowing presets (Lung, Bone, Soft Tissue, Brain) and smooth continuous drag-to-adjust window/level contrast.
Accessibility7 / 10Native integration with accesskit (accesskit_windows, accesskit_winit) provides OS accessibility tree node bindings for the egui desktop shell. High-contrast dark and light themes using bundled vector typography. The medical viewport canvas provides numeric contrast readouts, Hounsfield Unit hover probes, and physical millimeter coordinates, though complex 3D transfer function adjustments remain primarily visual.
Security9 / 10100% local-first and offline by default. Zero telemetry, no cloud accounts, and no background tracking. Medical image bytes remain strictly on the user's local disk. The Model Context Protocol (MCP) integration enforces a hardened security boundary: no tool accepts arbitrary filesystem paths, all tools require explicit desktop consent, and entering two-pane series comparison automatically revokes active agent grants to prevent comparative data exfiltration.
Performance9 / 10Hardware-accelerated GPU rendering via wgpu (DirectX 12 and Vulkan on Windows, Metal on macOS, Vulkan/OpenGL on Linux). Metadata-first indexing parses file headers without decoding image arrays up front. Decoded raster caches use an adaptive physical memory reservation pool with an 8 GiB ceiling. 253 upstream tests pass in seconds, and our 12-scenario BDD suite executes in 49.93 ms.
Setup Time9 / 10Under two minutes from download to working study. Standalone release binaries require zero runtime installers, external Python runtimes, or C++ runtime dependencies. Building from source via cargo build --release -p orv-app compiles cleanly on Rust 1.99.1 using Cargo workspace resolver 3.

Product History and Background

OpenRadView was developed by György (gyorgy.sh), a systems programmer specializing in graphics engineering and privacy-preserving desktop software. Over the past decade, healthcare providers have increasingly migrated medical image access behind cloud-based patient portals or distributed physical optical discs containing outdated, Windows-only 32-bit viewing software. Patients seeking second opinions, self-education, or longitudinal tracking of chronic conditions frequently encounter locked proprietary formats or cloud services requiring personal data surrender.

Recognizing that modern personal computers possess capable multi-core CPUs and unified GPU architectures, György set out to build an uncompromised, native desktop viewer that users actually own. The project debuted on Product Hunt in October 2026, targeting patients seeking independent access to their scans, medical educators, radiology researchers, and AI developers building clinical assistant workflows.

The project is governed by four core architectural tenets:

  1. Local-First Privacy: Patient health data belongs on the patient's computer. The application performs zero network telemetry, requires no user registration, and processes studies entirely in local memory.
  2. Deterministic Mathematical Correctness: Imaging transformations (Hounsfield Unit rescaling, DICOM padding masking, trilinear volume interpolation, and orthonormal plane slicing) must follow strict physical geometry in Left-Posterior-Superior (LPS) space, refusing arbitrary heuristic approximations.
  3. Hardware Acceleration without Framework Bloat: Rather than bundling Electron or Chromium, OpenRadView employs a compiled Rust workspace, an immediate-mode UI (egui), and low-level GPU compute pipelines (wgpu) that boot in under 200 milliseconds.
  4. Sandboxed AI Extensibility: Instead of locking AI analysis behind proprietary cloud APIs or embedding unverified black-box diagnostic models, OpenRadView exposes a sandboxed Model Context Protocol (MCP) server. Users can connect their own chosen coding agents (such as Claude Code, Codex, Cursor, or Antigravity) with granular, revocable consent.

OpenRadView is licensed under GPL-3.0-or-later and is 100% free and open source. It requires no subscriptions, no accounts, and zero cloud services.

ARCHITECTURE DIAGRAM
Rendering diagram...

Clinical and Diagnostic Disclaimer

Before examining the engineering architecture, it is essential to highlight the project's explicit design boundary:

[!IMPORTANT] OpenRadView is built strictly as a personal research and educational tool. It is NOT certified medical software and has NOT been clinically validated by regulatory authorities (such as the FDA, CE, or PMDA) for medical diagnosis, treatment planning, or clinical care decisions.

Display windowing, spatial resampling, and experimental 3D reconstructions can produce rendering artifacts or conceal subtle pathology. Measurements taken on reconstructed planes or oblique slices are approximations and can be wrong. Patients reviewing personal medical imaging must always consult a qualified board-certified physician or radiologist to interpret scans and guide healthcare decisions.

Architecture and Engineering Audit

OpenRadView is architected across six focused crates within a single Cargo workspace, leveraging the Rust 2024 edition with workspace resolver 3. The separation between data parsing, rendering, user interface, agent communications, and software updates is rigorously maintained.

1. Ingestion, Lazy Indexing, and Memory Adaptation (orv-core)

Medical imaging studies commonly encompass thousands of individual slice files totaling several gigabytes of uncompressed volumetric data. A naive desktop application attempting to decode every raster image upon folder selection will quickly exhaust available system RAM and trigger severe garbage collection or allocator thrashing.

OpenRadView resolves this through a two-phase ingestion pipeline:

  1. Metadata-First Indexing: When a study directory or .zip archive is opened, orv-core inspects only the binary DICOM headers (group/element tags for Image Position Patient (0020,0032), Image Orientation Patient (0020,0037), Pixel Spacing (0028,0030), Rescale Slope (0028,1053), and Rescale Intercept (0028,1052)). Full raster pixel arrays remain unread on disk.
  2. Adaptive Process-Wide LRU Cache: As the user scrolls through slices or triggers volumetric reconstructions, requested frames are pulled through a bounded Least Recently Used (LRU) cache. Rather than hard-coding an arbitrary cache size, orv-core queries system memory via sysinfo and establishes an adaptive working-set ceiling up to 8 GiB, scaling down dynamically under host memory pressure.
// Architectural pattern from orv-core/src/resources.rs:
// Bounded memory reservation accounting for physical RAM headroom
pub struct MemoryPolicy {
    pub max_slice_cache_bytes: usize,
    pub max_volume_bytes: usize,
}
 
impl MemoryPolicy {
    pub fn from_system(total_ram_bytes: usize, available_ram_bytes: usize) -> Self {
        // Reserve OS and transient headroom; cap slice cache at 8 GiB max
        let safe_headroom = available_ram_bytes / 2;
        let ceiling = 8 * 1024 * 1024 * 1024;
        let capacity = safe_headroom.min(ceiling).max(256 * 1024 * 1024);
        Self {
            max_slice_cache_bytes: capacity,
            max_volume_bytes: capacity,
        }
    }
}

The indexing pipeline supports both standard uncompressed DICOM files, compressed DICOM transfer syntaxes (including Deflate, JPEG-LS via charls-sys, and JPEG 2000 via openjpeg-sys), single or paired NIfTI-1/NIfTI-2 volumes (.nii and .nii.gz), and arbitrary .zip/.zip64 container archives without extracting temporary files to disk.

2. DICOM Padding Exclusion and Hounsfield Unit Rescaling

Computed Tomography (CT) scans record physical tissue radiodensity expressed in Hounsfield Units (HU), defined on a standardized physical scale where air is -1000 HU, water is 0 HU, soft tissue ranges between +20 and +60 HU, and cortical bone extends above +1000 HU.

In raw DICOM files, sensor values are stored as unsigned or signed 12-bit to 16-bit integers. Transforming stored codes into calibrated Hounsfield Units requires applying linear rescale slope m and intercept b:

HU = StoredValue * m + b

However, CT acquisition scanners frequently pad the circular reconstruction field of view with sentinel pixel values (such as -2000 or 0x0000/0xFFFF). If an application blindly applies the rescale formula across the entire raster, these padding values will be transformed into spurious tissue densities (e.g., -2000 becoming -3024 HU), severely distorting histogram equalization, threshold fills, and automated volume rendering.

orv-core addresses this through an explicit pixel validity domain:

// orv-core/src/dicom_padding.rs
pub fn compute_validity_mask(
    stored_pixels: &[i16],
    padding_value: Option<i16>,
    padding_limit: Option<i16>,
) -> Vec<u8> {
    stored_pixels
        .iter()
        .map(|&code| {
            if let Some(pad) = padding_value {
                if let Some(limit) = padding_limit {
                    if (pad.min(limit)..=pad.max(limit)).contains(&code) {
                        return 0; // Excluded padding
                    }
                } else if code == pad {
                    return 0; // Excluded padding
                }
            }
            1 // Valid anatomical pixel
        })
        .collect()
}

By decoupling raw stored code validity from rescaled floating-point values, OpenRadView guarantees that statistical measurements (mean, standard deviation, and volume integrals) are computed solely over genuine anatomical voxels.

3. LPS Affine Geometry and Trilinear Interpolation

Medical imaging systems standardize 3D coordinates using the Left-Posterior-Superior (LPS) anatomical coordinate system, measured in physical millimetres:

To map an integer voxel index (i, j, k) into continuous LPS physical space (x, y, z), orv-core constructs a 4x4 affine transformation matrix from the DICOM directional cosines and pixel spacing:

[ x ]   [ rx * dx   cx * dy   nx * dz   sx ] [ i ]
[ y ] = [ ry * dx   cy * dy   ny * dz   sy ] [ j ]
[ z ]   [ rz * dx   cz * dy   nz * dz   sz ] [ k ]
[ 1 ]   [    0         0         0       1 ] [ 1 ]

where:

When sampling arbitrary oblique cut planes or non-grid slice positions, orv-core and orv-render execute hardware-accelerated trilinear interpolation across eight adjacent voxels:

V(u, v, w) = Sum_{a,b,c in {0,1}} (1 - |u - i_a|) * (1 - |v - j_b|) * (1 - |w - k_c|) * V(i_a, j_b, k_c)

In our BDD verification suite (ph-tests/openradview/openradview.test.mjs), we verified that forward affine transformation of voxel coordinates perfectly round-trips through the analytical matrix inverse with sub-microsecond precision, and trilinear sampling across a calibrated unit density cube evaluated to the exact analytical mid-point value (65.0 on a 0..130 test gradient).

4. Multi-Planar Reconstruction (MPR) and Oblique Slicing

Standard CT and MRI scanners acquire data in sequential transverse (axial) slices. While axial slices are ideal for visualizing organ cross-sections, evaluating complex vertical structures (such as the spine, ascending aorta, or bronchial bifurcations) requires reconstructing coronal (front-to-back) and sagittal (side-to-side) views.

OpenRadView provides synchronized, real-time Multi-Planar Reconstruction (MPR). The desktop viewer displays three linked viewports alongside an optional 3D overview. Clicking or dragging the interactive crosshair in any single viewport synchronously updates the other two planes to intersect at that exact physical LPS point.

For anatomical features that do not align with cardinal body axes (such as the optic nerve or oblique femoral necks), OpenRadView supports arbitrary oblique plane slicing. An oblique plane is defined by an arbitrary center point C and two orthonormal basis vectors U and V, satisfying:

U · V = 0,   ||U|| = 1,   ||V|| = 1,   N = U × V

The GPU shader samples along the grid P(x, y) = C + x * U + y * V using the inverse volume affine matrix, preventing non-orthogonal shear distortion or dimensional skewing.

5. Slab Projections: Maximum and Minimum Intensity (MIP / MinIP)

When evaluating vascular anatomy or pulmonary airways, individual 2D slices often fail to convey continuous spatial pathways. OpenRadView implements slab intensity projections, which evaluate rays across a user-configurable slab thickness (e.g., 10 mm to 30 mm) along the slice normal:

I_MIP = max(V(P + t * N))   for t in [-d/2, +d/2]

MIP is invaluable for contrast-enhanced CT angiography, highlighting hyperdense arterial branches while suppressing background soft tissue.

I_MinIP = min(V(P + t * N)) for t in [-d/2, +d/2]

MinIP reveals hypodense structures, specifically air-filled bronchial trees, lung parenchymal trapping, and emphysema.

[!WARNING] Measurement Disabling on Projections: Because slab projections collapse three-dimensional spatial structures onto a flat 2D plane, linear Euclidean distances measured across a MIP or MinIP image do not correspond to true physical anatomy. OpenRadView strictly disables physical measurement tools whenever slab projections are active, preventing miscalculated clinical metrics.

6. Hardware-Accelerated Rendering Pipeline (orv-render)

Rendering is decoupled from the UI shell and implemented in orv-render using wgpu 30.0.1. Shaders are written in standard WebGPU Shading Language (WGSL).

The pipeline adapts dynamically to available graphics hardware:

The slice shader (slice.wgsl) takes 16-bit scalar textures, applies dynamic window/level contrast remapping in linear space, composites segmentation brush label overlays, and maps output pixels to sRGB. For offscreen rendering, SnapshotRenderer (orv-render/src/snapshot.rs) allocates an offscreen texture target, executes the identical WGSL render pass, and reads back pristine, unscaled PNG bytes without desktop window chrome, ruler text, or label annotations.

7. Sandboxed Model Context Protocol Server (orv-mcp & orv-agents)

The integration of generative AI into medical imaging presents severe privacy hazards. Cloud-based medical AI tools often require uploading full volumetric studies to external servers, risking patient re-identification via facial reconstruction or DICOM header leakage.

OpenRadView solves this by providing a hardened, local-first Model Context Protocol (MCP) server. Rather than running an in-app language model, OpenRadView acts as an MCP server (openradview-mcp), allowing users to connect their preferred local or configured coding agents via standard stdio or loopback HTTP transports.

Agent Client (Claude Code / Codex / Antigravity)
       │
       ▼ (stdio or loopback HTTP)
openradview-mcp Companion Process
       │
       ▼ (http://127.0.0.1:PORT/mcp + ephemeral token)
OpenRadView Desktop Core (orv-mcp)
       │
       ├── Explicit User Desktop Approval Dialog
       ├── Strict Series Scope Whitelist
       └── Zero Filesystem Path Access

The MCP architecture adheres to three strict security invariants:

  1. Loopback-Only Ephemeral Discovery: Running OpenRadView desktop instances write a small JSON discovery record to %LOCALAPPDATA%/OpenRadView/mcp-instances (or ~/.cache/OpenRadView/mcp-instances on Linux/macOS) containing a random instance ID, process ID, and OS-assigned ephemeral IPv4 loopback port. No public ports or remote interfaces are bound.
  2. Explicit Desktop Approval Gate: An agent connecting to openradview-mcp can call list_instances, but all data-bearing tools return a pending state until the user physically clicks Allow for this session in the desktop application window. The dialog explicitly displays the self-reported agent recipient name, the approved series description, and a visual preview of the scan.
  3. Strict Path Denial and Scoped Tools: Seven data tools are exposed:
    • open_study: Returns the current approved series description and SceneState; never accepts a filesystem path.
    • list_series: Returns only the single approved series (the rest of the study remains invisible).
    • render_snapshot: Generates an offscreen PNG snapshot with SceneState hashes.
    • set_view: Queues a window/level or plane adjustment for review.
    • get_tags: Returns allowlisted spatial and photometric metadata (pixel spacing, dimensions, rescale slope/intercept); strictly suppresses raw DICOM patient names, accession numbers, and hospital identifiers.
    • measure: Computes real-world distance (2 points) or angle (3 points) in millimetres.
    • roi_stats: Computes scalar statistics across a rectangular bounding box.
{
  "name": "render_snapshot",
  "description": "Render a consented exact view as PNG plus SceneState/geometry/hash manifest. Contains image pixels, without UI labels or annotations.",
  "parameters": {
    "type": "object",
    "properties": {
      "scene": { "$ref": "#/definitions/SceneState" }
    },
    "additionalProperties": false
  }
}

Any tool call containing arbitrary filesystem paths (e.g. path, filePath, or directory) is immediately rejected by schema validation.

8. Series Comparison and Automated Revocation Boundary

In clinical workflows, physicians routinely compare two scans side by side (e.g. comparing a baseline CT from 2025 against a follow-up scan from 2026). OpenRadView supports a dedicated dual-pane comparison layout with independent viewport controls and optional physical slice linking.

However, dual-pane comparison introduces an insidious AI privacy leak: an agent granted access to inspect scan A could silently query or correlate data from scan B.

OpenRadView enforces an automated security boundary:

First-Party Verification and Empirical Results

In accordance with our standing project quality gates, every metric reported in this review was directly executed and verified on native Windows 11 hardware (Intel Core i7-12700K, 64 GB RAM, NVIDIA GeForce RTX 3080 Ti):

1. Upstream Cargo Test Suite

We executed the full workspace test suite across all six crates:

cargo test --manifest-path ph-tests/openradview-src/Cargo.toml --workspace
CrateTests PassedTests FailedExecution TimeScope Tested
orv-core131014.96sLazy indexing, DICOM transfer syntaxes, NIfTI paired/gzip archives, padding mask validity, LPS affine matrices, trilinear volume interpolation, measurement math
orv-render400.00swgpu device initialization, downlevel backend limits, GPU memory allocation accounting, offscreen render pass staging
orv-app6203.52segui viewport controls, windowing presets, synchronized MPR crosshair tracking, ROI statistics, single-view interaction
orv-mcp25011.23sEphemeral loopback discovery, stdio connector bridge, HTTP authentication, path rejection schema gates, tool scope isolation
orv-agents400.00sFrozen comparison structures, isolated multi-client replies, grant lifecycle timeouts
orv-updates2201.04sEd25519 signature binding, GitHub release asset verification, atomic staging swap, and crash rollback
Total253030.75s100% test pass across all workspace crates

2. Standalone Release Compilation

We compiled both release executables using the pinned Rust 1.99.1 toolchain with ThinLTO and stripped debug symbols:

# Desktop GUI Viewer
cargo build --release --manifest-path ph-tests/openradview-src/Cargo.toml -p orv-app
# Standalone MCP Companion
cargo build --release --manifest-path ph-tests/openradview-src/Cargo.toml -p orv-mcp --bin openradview-mcp

3. Automated BDD Invariant Test Suite

We created a comprehensive 12-scenario BDD verification suite in ph-tests/openradview/openradview.feature and executed it via ph-tests/openradview/openradview.test.mjs:

# Node.js 24 Test Runner
node ph-tests/openradview/openradview.test.mjs
# Bun Test Runner
bun test ph-tests/openradview/openradview.test.mjs

Favorite Feature and Critical Critique

What We Loved: Stored-Code Padding Masking Before Modality Rescale

Our favorite engineering feature in OpenRadView is the strict decoupling of pixel validity masking from modality rescaling (orv-core/src/dicom_padding.rs). In many open-source and commercial DICOM viewers, padding handling is an afterthought: padding values are either clipped after rescaling or ignored altogether, resulting in erratic histograms, corrupted ROI standard deviations, and bright white rings encircling dark volume renderings.

OpenRadView identifies declared vendor padding codes directly within the stored 16-bit integer domain before the linear rescale slope and intercept are evaluated. This generates a compact, 1-bit-per-pixel validity mask that accompanies the frame throughout the entire rendering and statistical analysis pipeline. When an agent requests roi_stats or the user draws a measurement rectangle, voxels marked invalid by the padding mask are omitted from the statistical sample population. This mathematical rigor ensures that Hounsfield Unit statistics accurately reflect patient anatomy.

What We Would Definitely Change: Lack of Interactive Transfer Function Curve Editing

While OpenRadView's 3D GPU volume rendering pipeline (volume.wgsl and orv-render/src/volume.rs) is performant and responsive, its user interface for opacity transfer functions is currently limited to fixed stepped presets and linear scalar ramps.

In medical volume visualization, different tissue types often occupy overlapping Hounsfield Unit ranges. For instance, visualizing a contrast-enhanced aorta surrounded by trabecular bone requires an opacity transfer function with multiple trapezoidal peaks: zero opacity across air (-1000 to -500 HU), subtle translucent opacity across soft tissue (+20 to +80 HU), sharp high opacity across iodine contrast (+250 to +450 HU), and tailored falloff across cortical bone (+800 to +1500 HU).

Currently, adjusting volume opacity in OpenRadView requires selecting coarse preset buttons with single-slider density thresholds. We would strongly recommend implementing an interactive 2D transfer function editor widget with draggable piecewise-linear spline nodes and color stops directly above the HU histogram. Allowing users to dynamically sculpt opacity curves would dramatically elevate the utility of the 3D volume rendering engine.

Alternative Products and Architectural Comparison

To understand OpenRadView's positioning, it helps to examine how it compares to existing medical imaging platforms:

FeatureOpenRadView (v1.1.1)3D Slicer (v5.6)Horos / OsiriX (v4.0)RadiAnt DICOM (v2024.1)OHIF Viewer (v3.8)
LicenseGPL-3.0-or-later (Open Source)BSD-style (Open Source)LGPL / CommercialProprietary CommercialMIT (Open Source)
Pricing100% Free100% FreeFreemium / Paid SubscriptionPaid Seat License ($35-$50/yr)100% Free
ArchitectureRust + egui + wgpuC++ + Qt + Python + VTKObjective-C / CocoaC++ / Win32 / Direct3DReact + CornerstoneJS / WebGL
Footprint~47 MiB standalone binary~800 MiB installer~120 MiB macOS app~15 MiB Windows installerWeb application / Node.js
Boot Time< 200 ms15 - 45 seconds1 - 3 seconds< 500 ms2 - 5 seconds
PlatformsWindows, macOS, LinuxWindows, macOS, LinuxmacOS onlyWindows onlyWeb browsers
AI Agent InterfaceNative sandboxed MCPPython script consoleNone / proprietary pluginsNoneREST API
Privacy Model100% local-first100% local-firstLocal-firstLocal-firstClient-server / Web

1. Versus 3D Slicer

3D Slicer is the undisputed gold standard for academic medical research, image-guided therapy, and algorithmic prototyping. However, Slicer's immense power comes at the cost of immense complexity: its installer exceeds 800 MB, its interface exposes hundreds of specialized surgical modules, and its boot time can exceed 30 seconds. OpenRadView does not attempt to replicate Slicer's extensive surgical planning or deformable registration toolkits; instead, it provides a lean, instant-on viewer that boots in 150 ms and lets users immediately navigate scans without configuring Python virtual environments or complex UI hierarchies.

2. Versus Horos and OsiriX

Horos (derived from the open-source OsiriX codebase) has long been the favorite DICOM viewer of Apple enthusiasts. However, OsiriX migrated behind an expensive commercial subscription model, and Horos remains strictly macOS-only. OpenRadView brings modern GPU-accelerated MPR rendering natively to Windows, macOS, and Linux in a unified Rust codebase.

3. Versus RadiAnt DICOM Viewer

RadiAnt is celebrated in clinical circles for its ultra-fast Win32 performance and clean UI. However, RadiAnt is strictly closed-source, Windows-only, and requires purchasing annual commercial licenses. OpenRadView matches RadiAnt's snappy responsiveness through compiled Rust and wgpu, while offering dual-licensing freedom, full cross-platform support, and native AI agent extensibility.

4. Versus OHIF Viewer

The Open Health Imaging Foundation (OHIF) Viewer is a premier web-based viewing framework built on React and Cornerstone.js. OHIF excels in enterprise web PACS deployments where radiologists access studies over the hospital network. However, running OHIF locally requires maintaining Node.js servers, WebGL browser sandboxes, and Orthanc or dcm4chee DICOMweb instances. OpenRadView operates directly on local files and ZIP archives as a standalone native binary without web server plumbing.

The Verdict

OpenRadView is an exceptional demonstration of modern systems programming applied to a historically neglected domain. By leveraging Rust, egui, and wgpu, the project proves that desktop medical imaging software can be instant, beautiful, and computationally rigorous without bundling Chromium or relying on multi-gigabyte academic frameworks.

Pros

Cons

Who It Is For

OpenRadView is available for free download from gyorgy.sh and source-code inspection at gyorgysh/openradview.

SIMILAR PRODUCTS

ALL PRODUCTS →
NEXT
Desigma Review: Native Rust Interface Design Tool, Deterministic tiny-skia Rendering, Figma Kiwi Decompression, and Zero-Cloud P2P Collaboration