Using Deformations for Browsing Volumetric Data

Using Deformations for Browsing Volumetric Data

We have developed an experimental system for browsing volumetric data. The novel aspects of this research include (i) using rigid and non-rigid deformations for browsing volumetric data, allowing the user to "peer inside" without losing the surrounding contextual data, and (ii) sensitivity to the semantic layers (or subsets) within the data, and designing interaction techniques around these.

This work was published at IEEE Visualization 2003. For a copy of our paper, see http://www.dgp.utoronto.ca/~mjmcguff/research/


Movies

Movies: 512x512 pixels, 10 frames per second, cinepak encoded .avi files:

Animations in the prototype are smoother than they appear in the movies, due to the low frame rate of the movies.


Screenshots

The screen shots below are organized by "Tool", showing what each Tool is capable of with the same data set of a human head.

The following links jump to each of the tools:

Plane Cutter
Hinge Cutter
Hinge Spreader
Sphere Cutter
Sphere Expander
Box Cutter
Box Spreader
Leafer
Peeler
Radial Peeler

Plane Cutter


This is a standard cutting plane. The 3D widgets (in yellow) allow the cutting plane to be positioned and oriented as the user desires.


The data set has been segmented into various "layers" (bone, skin, etc.). Each tool can be set to act only on a subset of the layers, leaving the others unchanged. Here, we see the cutting plane acting on all layers except bone.

Hinge Cutter


The hinge cutter removes all voxels between the hinge plates. Here, the tool is acting on all layers except bone.


Here, the hinge has been opened up to a 270 degree angle.



Hinge Spreader


Unlike the hinge cutter, which removes voxels, this tool pushes voxels to the side. This follows the analogy of a knife that cuts in, allowing us to spread open the data. As can be seen above, none of the nose on the head has been removed; it has been split down the centre and each half has been pushed to one side.


The same situation as before, seen from a different point of view.


Here, the hinge spreader is acting on all layers but bone. Thus, it behaves like an intelligent scalpal that cuts in but automatically stops at bone.


Pushing the spreader deeper, we see the skin lift off the bone.


Here, the hinge spreader acts only on layers outside the skull. The tool has been pushed so deep that we have essentially an "exploded" view of the head.


This shows yet another way that the hinge spreader can be used to "hinge open" data.


Here, the hinge spreader opens up part of the head around the mouth.


Now, the tool is acting on all layers except bone, allowing us to see what the teeth look like.

Sphere Cutter


This tool removes all voxels within a given radius from the centre of the tool.


Here, the tool is acting on all layers except bone.

Sphere Expander


The sphere expander does not remove any voxels; it only pushes them away from the centre of the tool. Here, the tool is pushing into the face, causing the nose to rise up.


Here, the sphere has been placed inside the head, causing the face to inflate outward.


Here, the sphere is still inside the head, but it is only acting on layers outside the skull. The outer layers have been inflated so much that their voxels are now sparse, and we can see the skull through the skin. This skull is easier to see when the volume is interactively rotated.


Here, the centre of the sphere has been placed at the left eye, and the tool acts only on layers outside the skull. This gives the user a "window" into the data, with the skull and associated tissues left unchanged, and surrounding tissues pushed off.

Box Cutter


The box cutter removes all voxels above a quadrilateral that can be positioned and oriented using 3D widgets.


Here, the box cutter is acting on all layers but bone.


Here, we have cut away part of the face. Notice that most of the nose and eyes are gone.

Box Spreader


The box spreader does not remove any voxels; rather, it pushes all voxels above the quadrilateral to the side. In the above, note that the nose and eyes are still present, but have been pushed sideways.


Here, the box spreader is only acting on layers outside the skull. Note that we see the skin lifting off the skull.

Leafer


The leafer is a kind of box where each half of the box can be hinged open. In the above, one half of the box has been hinged open, showing how part of the data connects with the rest of the head.


Now, both halves have been hinged open.


Here, the leafer acts only on layers outside the skull.


Here, the leafer acts on all layers but the innermost.


Here, we see the leafer during and after an animation showing the transition from having no layers selected to all layers selected. As more layers are successively selected, the tool hinges them open. By selecting and unselecting layers, the user can flip or "leaf" through them, much like one would leaf through pages in a book, hence the name leafer for this tool.


Here, part of the top of the head has been hinged open. Imagine this part of the head as consisting of many layers (skin, bone, etc.). This can be compared to a deck of cards, or a hand of cards being held by the user.


Here, the user has "fanned open" the layers, much like one might fan open a deck or hand of cards, or a Chinese fan. Additional 3D widgets appear, connected to each layer. These allow individual layers to be flipped or pulled out for inspection.


Here, an individual layer has been pulled out.


Here, the 3D widgets have been used to flip over individual layers (rather like how one might flip over cards in a deck). During flipping, the layers push against one another, much like how a domino pushes against neighbouring dominos.


Although the leafer is "two-sided", in the sense that it allows two halves of a box to be hinged open, it can also be used as a one-sided tool to crack open the volume.


Here, the leafer has been rotated so its base is vertical. Part of the head has been hinged open, somewhat like how a doll's house might be hinged open.

Peeler


The peeler allows a "slab" of the data to be selected and peeled back. Here, only the layers outside the skull have been peeled. Voxels above the slab (the top of the scalp) are translated upward out of the way.


This shows all layers peeled.


3D widgets allow each layer to be peeled to a different degree. The user can see the interfaces between layers, and see how they connect.


Like the leafer, the peeler is a "two-sided" tool, allowing each half of the slab or box to be peeled in opposite directions.

Radial Peeler


The radial peeler pokes a hole in the volume and peels it open, somewhat like how the petals of a flower open up. Two blue circles delimit the cylinder of the volume to deform. Voxels are pulled up, through, and out of the upper circle.







Other screen shots


A 3D slice of a 4D quaternion Julia set, shown with transparency (alpha-blended splats) and with the peeler opening up the data set.

Click for a larger version.



Copyright ( C ) March 3, 2003, Michael McGuffin
Updated April 4, 2003, and May 1, 2003, and July 29, 2003, and October 24, 2003, and January 29, 2004.