Voxel Volumes (CT / MRI)
VRGS can load and interpret 3D voxel volumes — CT scans, MRI
volumes, micro-CT of rock plugs, and any other regularly-gridded
scalar field. A voxel volume is stored as one or more attributes
(scalar layers) over a shared i × j × k grid with a physical voxel
spacing, and is rendered through the same brick-paged ray-marching
engine as seismic volumes — so it streams,
levels-of-detail, and composites exactly like a SEG-Y cube.
On top of the volume view, voxel volumes carry an interactive segmentation workflow: filter to a value band, preview it as a solid surface, pick a connected region, write it out as a labelled layer, and turn labels into statistics and meshes.
Importing a volume
Voxel volumes live under the Voxel Models group in the Data Tree.
- Right-click the Voxel Models group node ➝ New to create an empty volume (or Import ➝ From File to create and import in one step).
- Right-click the volume ➝ Import and choose the source.
Two source shapes are recognised:
- Image stack — a folder of slice images (e.g. a TIFF stack). Each
image is one
kslice; the stack's width and height becomeiandj. All slices must share dimensions. - Raw volume with a header — if the chosen folder contains a
VGStudioMax
.vgior AmiraMesh.amheader, VRGS reads the header for dimensions, voxel spacing and data type, then streams the referenced raw block. Large raw volumes are decimated on the fly to fit a RAM budget, so a volume that wouldn't fit in memory still imports at a usable resolution.
After import, select the volume and tick its checkbox to display it. Make Active (right-click, or the Data Tree) shows the context-sensitive Voxel Model ribbon tab whose tools are described below.
Attributes and colour
A volume can hold several attribute layers (for example raw density, a filtered copy, an edge-detected copy, or a segmentation label field). Exactly one layer is the visible attribute at a time — that's what the 3D render and slices display. Set it from the tree (right-click an attribute ➝ Make Active) or the model's RGB channel selectors.
Each attribute has:
- A colour ramp mapped across its value range.
- An attribute filter — a low/high value window. The filter is the backbone of the segmentation workflow: it defines which voxels count (see Solid view and Segmentation below). Set it from the attribute's colour-map / histogram controls.
Display modes
3D volume render
The default view ray-marches the whole volume front-to-back, compositing voxels through the active attribute's colour ramp with a density-driven opacity (air transparent, dense material opaque). It is brick-paged with levels of detail — the whole volume appears at overview resolution within a moment and sharpens near the camera — exactly as described for seismic volumes.
The 3D volume render checkbox (Properties panel, top group) toggles this composite.
When the 3D volume render is on it fills the cube and hides the orthogonal slices inside it. Uncheck 3D volume render to suppress the composite and show only the active slices — the fastest way to read a slice plane without the volume in front of it. (This mirrors the seismic 3D volume render toggle.)
Solid voxel view
Tick Solid voxels to switch the render from the translucent cloud to an opaque, shaded surface of the voxels that pass the attribute filter. The first in-filter voxel along each ray becomes the surface, lit with headlight shading so shape reads clearly. Narrow the attribute filter to a value band (bone, a mineral phase, a density threshold) and the solid view becomes a live preview of exactly the voxel set you're about to segment — voxels outside the filter are transparent and are not part of the surface.
Orthogonal slices
A voxel volume can show up to three axis-aligned slice planes — one
each along i, j, and k. In the Properties panel, the Slices
group has an I Slice, J Slice, and K Slice slider:
-1(the default) means the slice is off.0 … n-1positions the slice at that voxel index.
Slices render through the section pipeline and always show every voxel (they are not masked by the attribute filter), so they give full context around a filtered/solid volume.
As with seismic sections, hover a slice in the 3D view and hold Shift
while scrolling the mouse wheel to step it through the volume one voxel
per notch. The slice nearest the cursor scrubs, and the wheel is consumed
while you're over a slice so you never zoom by accident at the volume
edge.
Slice positions and the 3D volume render / Solid voxels toggles are session settings — they reset to their defaults (slices off, volume on) when you reopen the project. The segmentation labels you commit, however, do persist (see below).
Digitising on slices
The active slice planes are interpretation surfaces, just like
seismic sections and meshes: the standard Polyline digitise tool (and
the measurement, label, and other point-placement tools) land their
points directly on a slice plane. Arm the tool, click on a slice to drop
points, and double-click or Enter to commit a polyline that persists
with the project. This is the recommended way to annotate a feature
seen on a CT/MRI slice.
Segmentation workflow
Segmenting a volume is a four-step pipeline, each step exposed on the Voxel Model ribbon tab (and driven by the attribute filter). It is designed to go from "I can see the structure" to "I have a labelled, measurable, meshable object" in a few clicks.
1. Filter to the structure
Narrow the active attribute's filter to the value band of the material you want, and tick Solid voxels so the filtered set renders as a solid surface. What you see is what you'll segment — tighten or loosen the filter until the surface isolates the feature.
2. Pick a region — Select
Arm Select on the ribbon and click the solid surface. VRGS finds the first in-filter voxel under the cursor (the surface you clicked) and grows the connected region of in-filter voxels from it, highlighting the result. Each click re-picks; the highlight updates in place.
This is a connected-component pick: it follows the filtered material through the volume from the seed, so one click on a bone selects that whole bone, not every bone in the scan.
3. Commit the region — Label Region
With a region picked, click Label Region. The region is written into
a persistent unsigned-integer attribute layer named Segmentation,
stamped with the next free label (1, 2, 3, …). Successive picks
accumulate as distinct labels in the same layer — the standard
multi-label segmentation mask. The Segmentation layer appears under the
volume's Attributes node and saves with the project.
The current density view is left visible so you can keep picking; tick the Segmentation layer in the tree to colour the labels instead.
4. Measure and mesh
Once you have one or more labels:
- Region Stats reports, per label: voxel count, physical volume (voxel count × voxel volume, in project units³), and — read from the density attribute — the min / mean / max intensity inside each label, with totals. The report is shown in a dialog and written to the debug log.
- Mesh Segments surfaces each label as its own triangulated mesh
(marching cubes), named
<volume> Segment <n>, registered in the project and made visible. The result is a normal VRGS mesh — rotate, shade, measure, export, or compare it like any other surface.
Region growing follows the filter, so a filter left wide open can select almost the whole volume in one click. Tighten the filter to the material of interest before picking; a well-chosen filter gives a clean, bounded region (and a fast, compact mesh).
Other tools
The Voxel Model tab and the Data Tree context menu also offer:
- Create TriMesh — marching-cubes surface of the currently visible voxels (visibility/clip field) rather than a segmentation label.
- Connected Volume — label every disconnected visible body with its own index in one pass.
- Fill — flood-fill selection tool.
- Radial / Box clip and the I / J / K grid-clip sliders — crop the displayed volume to a sub-box.
- Insert Intersection (I / J / K) — persistent intersection planes.
Reference
- See Voxel Models Properties for the full per-property reference.
- See Voxel Models Context Menu for the Data Tree right-click commands.
- See Voxel Model Ribbon Tab for the ribbon commands.
- The rendering engine, brick paging, and level-of-detail behaviour are shared with Seismic Volumes — that guide's 3D volume render and Memory budgets sections apply here too.