Successful comparative visualizations build upon one or several shared axes as a reference for attributes that should be compared. Tufte called this visual parallels: "Spatial parallelism takes advantage of our notable capacity to compare and reason about multiple images that appear simultaneously within our eyespan [25]. Many 2D and 3D visualizations often provide a common reference where comparison is readily available. However, there are numerous cases when the quantities being visualized do not conform to a single shared axis or the common reference makes their comparison difficult. For example, production wells, into oil reservoirs, are drilled with complex geometries and turns rather than, previously common, straight vertical wells. In current operations, most preparations, i.e. well planning, etc., are done in 3D environments, whereas the end product, the drill plan, and all drilling data, is produced in 1D, along well length. Current data analysis with regards to measurements from the well, is done in regular graphs along well-length, but this technique is lacking the spatial 3D context, something we address in this paper. Furthermore, the comparison between two wells of disparate shape and length is difficult in the shared 3D space. Instead, it becomes apparent that a more meaningful comparison is obtained when each well is straightened and the visualized quantities are visualized along their arc-length. Multiple wells of varying length and shape can now be contrasted in a single shared space. A similar need emerges for the comparison of streamlines in a flow simulation. Since individual streamlines can have an arbitrary shape, quantities such as velocity magnitude and vorticity along the streamline, etc., they cannot be compared directly in 3D space due to inter-occlusion and differences in curvature and length. Instead, we can generate a shared frame of reference that straightens each streamline and lets us visualize a relevant quantity in terms of their arc-length. An example is shown in Figure 1, where we display the vorticity and velocity magnitude of a wind simulation around a car in a 2D plane representing the space around a streamline. The visualization maps the complex 3D shape around a streamline into a 2D view that plots the distribution of vorticity and velocity radially around a given point. With this new type of visualization, one can easily quantify changes of a certain variable along a streamline and correlate them to arc-length or radial angle. Furthermore, one can correlate the behavior of a quantity among several streamlines.

To achieve these visualizations, we present a general notion of a *curve-centric reformation*, which maps the space around a 3D curve onto a frame of reference relating to the properties of the curve. We present two forms of such a reformation. In the more general sense of reformation, curve-centric volume reformation is a mapping from the original 3D space to a 3D curve-aligned space, where one axis represents the length of the curve, and the other two are the (adjusted) normal and binormal vectors. Unlike traditional visualizations, where objects and lines are shown in a given 3D space, curve-centric visualizations depict the given space in the frame of reference defined by the curve.

Another type of curve-centric reformation is *curve-centric radial raycasting*, which defines the mapping to a 2D plane, where one axis (in this paper always the horizontal one) represents the arc-length of the curve and the other axis (here the vertical one) represents the cylindrical angle around the curve. This type of reformation is reminiscent of 3D flattening used for the visualization of virtual colonoscopies [2], [12]. Unlike virtual colon flattening, where shapes and angles are preserved for better diagnostics, our radial raycasting approach preserves distances, essential for a meaningful *quantitative comparison* of variables along the curve. This radial ray-casting therefore produces images of 3D volumes from a novel *inside-looking-out* perspective. As the aim of both these reformations is to accurately portray the neighborhood of the curve along arc-length, their intended use is not directly comparable with existing space deformation techniques, that are designed to create alternative (deformed) views of objects.

In our approach, we use a variation of the well known Frenet frame [7] for creating moving frames and provide an implementation that fits into a general GPU-based visualization system. Furthermore we demonstrate the usefulness of our approach in two scenarios. In one, we use a curve-centric reformation to visualize quantities along the arc-length of log wells for oil exploration. In the second, we visualize the vorticity and velocity magnitude of a wind flow simulation around a car. We show that shape reformation provides hints about the smoothness and curvature of streamlines. These quantities, which can be cumbersome to represent in the 3D view at the same time, can now be provided as a comparative visualization.

We make the following contributions: (1) We present a curve-centric deformation of volume data for the purposes of cross-comparison and easier quantitative analysis. As such, our deformation preserves arc length and orthogonal distances from the center. This is a departure from traditional curve-guided deformations which preserve local shape but not distances. Although useful for generating new views of an object, traditional deformation does not ensure the preservation of quantities essential for meaningful comparison. (2) We present a novel raycasting view that provides unprecedented inside-looking-out views of complex volume data. Current approaches for raycasting of deformed volumes exploit the programmability of contemporary GPUs, but the resulting visualizations remain essentially outside-looking-in views of the data. Our results provide novel views that show quantities of interest along important curves.

**Curved planar reformation.** An important issue in visualization is the rendering of complex objects in simpler spaces. Some of these issues stem from the need to compare and measure areas and distances in a 2D plane rather than an arbitrary 3D shape. One such example is curved planar reformation, which maps a volumetric space around a curve to a plane. This idea has been used for virtual colonoscopy and the visualization of other curved structures. Vilanova et al. use nonlinear raycasting to flatten the internal view of a virtual colon [2]. Similar techniques have been proposed by Wang et al [27], who unravel the colon using a physics-based deformation of the centerline, and Hong et al [12] and Haker et al [10], who use a conformal mapping [12]. These approaches use nonlinear raycasting to compute a 2D inside-looking-out image of the colon. A recent approach by Williams et al [29] also unfolds the colon using multiplanar reformation. However, their visualization is not a planar mapping, but instead an orthogonal projection of the reformed volume. As such, although less effective as a compact map, the result appears more familiar than the planar warping.

In a similar way to colon flattening, Kanitsar et al. presented (and later improved) curved planar reformation for vascular structures [14], [15]. Unlike the colon, vascular structures exhibit frequent bifurcations, which leads to 2D mappings that branch out along with the vascular structures. The reformation of vascular structures was also explored by He et al [11], who automate the definition of curves by extracting the medial axis of vessels of interest. Lee and Rasch improved this method by considering topological invariant transformations that lead to better visualizations with little artifacts due to reformation [18]. Curve planar reformation also benefits the visualization of misaligned features. For example, Vrtovec et al [26] uses curve planar reformation to align the central curve of the spine with the sagittal and coronal planes of the 3D images of the spine. This alignment lets radiologists compare different vertebrae in a single image.

In this paper, we are not bound to a particular mapping of a 3D volume, but rather present a more general notion of reformation, called *curve-centric reformation*, which maps the space around a curve to either a 3D volume or to a 2D plane. This enables us to create novel inside-out visualizations of complex datasets, somewhat similar to planar mappings, from oil well exploration to vehicle design.

**Space warping.** Curve-centric reformation can be also understood as a type of space warping. Space warping is a general methodology for deforming complex objects by warping the space surrounding them. Because volumetric models often have no explicit geometry, this method is often associated to volume deformation. Some of the first attempts to use space warping to deform objects include Barr's global and local deformations, defined procedurally as geometric transformations [1], and Sederberg's free-form deformation [21], which deforms solid geometric models by warping a tri-cubic lattice enclosing that object. To overcome the need for possible dense control lattices, Sumner et al [23] uses a graph structure to deform the local space surrounding a number of nodes in an object. Singh explores the use of domain curves or wires to deform the space near them [22]. For a complete survey in space deformation, refer to Gain et al.'s paper [8]. Unlike curve-oriented space deformation, often oriented towards obtaining new poses of a geometric model from a set of user defined curves, our curves are not a means for defining deformation but a centerline along which the user can visualize a certain quantity and the surrounding space.

The idea of space deformation was later continued by True and Hughe [24] for volume warping. More recent volume deformations exploit hardware acceleration to obtain volume deformations in real-time, combining control lattices and volume rendering [28], [20]. As an alternative to proxy-based deformation, one can attain the same results by warping the rays used for volume rendering. Nonlinear ray tracing, for example, as proposed by Gröller [9] enables the rendering of nonlinear spaces such as the visualization of relativistic effects, geometric behavior of dynamical nonlinear systems and visualizing particles in a force field. Continuing this work, Löffelmann et al. generalized this technique on how to define a more abstract camera [19], for use in raycasters. Kurzion and Yagel proposed ray deflectors to accomplish volume deformation, which uses point sources to bend rays as they are traced into the volume [17]. Chen et al. generalize this notion to discontinuous deformations in the form of spatial transfer functions [4]. With the advent of fully programmable GPUs, volume deformation has been embedded directly into the raycasting process, enabling the creation of visualizations that resemble surgical illustrations [5]. Deformed volume raycasting, however, retains the outside-looking-in view common in volume rendering. In our paper, we propose novel inside-looking-out curve-centric raycasting views. For a more extensive description of these and other volume deformation techniques, see Chen et al.'s survey [3].

In this section we first present the basis for our approach, in Section 3.1, which is to create a moving coordinate frame, or a tensor consisting of orthonormal vectors. When this foundation is laid, we continue to present our two different curve-centric reformation techniques, in Section 3.2 and 3.3 before we investigate how we can utilize these in comparative visualizations, in 3.4.

### 3.1 Moving Coordinate Frames

Creating curve-centric volume reformations relates very closely to the problem of creating a local coordinate frame for every point along a curve. This coordinate frame is a tensor, or in other words, a set of orthonormal vectors for every point on a curve **r**(*t*). There are several techniques generating this frame basis for curves, and what separates them is the different problems they solve. The Frenet frame [7] uses the first and second derivate to create a frame that is intuitive and gives good geometric insight into the curve itself. This tensor is defined by the curve alone, and leaves no control to the user in modifying the tensor without changing the path of the curve. The Frenet frame is however, not defined for curves where the second derivative is zero, e.g. straight sections, or change of curvature. On positions where the sign of the second derivative changes, the tensor "flips". Klok [16] introduced a solution to these sign changes, by introducing a fixed up-vector, and by restricting the curve to those residing in a plane. If we employ Klok's technique on curves in 3D (even though they were not intended for this), the tensor would collapse when the curves derivative is parallel with the selected up vector, and potentially have a sign change ("flip") afterwards. Another method, that can be used to generate frame tensors, is thin plate splines, as introduced by Duchon [6]. With the analogy of bending sheets of metal, this technique produces tensors along the curve where the radial rotation is minimized. This method produces smooth tensors with no sign changes, but this method leaves, similar to the Frenet frame, no control over the direction of the tensor. In our applications we see that preserving a logical up-vector is producing a better spatial reference. Additionally, since the thin plate splines optimizes the global minimum, minor changes to the curve might radically change the result. Because of this, we introduce a technique that allows the user to specify an up vector, while not exhibiting any sign changes. Our technique is similar to that of Klok [16], but allows curves in 3D and the complete tensor is smoothed to avoid sign changes and high frequency changes in the tangent.

The Frenet frame defines the tensor using local derivatives [7]. Let *L* ∈ ℝ be a positive value and **r**(*t*) a parametric curve that is defined for the interval *t* ∈ [0 *L*]. The Frenet frame then defines its axes as
TeX Source
$${\bf{T}}(t) = {{r'(t)} \over {\left\| {{\bf{r}}(t)} \right\|}},\,\,\,N(t){{T'(t)} \over {\left\| {T'(t)} \right\|}},\,\,B{\rm{(}}t{\rm{) = }}T(t) \times N(t)$$
with **T**(*t*) being the unit tangent **N**(*t*) the unit normal, and **B**(*t*) the unit binormal. The Frenet frame is quite elegant as it can be explicitly computed for every point on the trajectory, but restricts the selection of curves to only those that are twice continuously differentiable, e.g., no curves with points of inflection. Klok's modified Frenet frame [16] is defined for curves in a plane where the normal **m** of the plane defines the binormal **B**
_{K}(*t*) =
**m**, and the tangent of the curve **T**(*t*) and completes the frame by **N**
_{K}(*t*) =
**B**
_{K}(*t*) ×
**T**(*t*). The Frenet frame, Klok's modified Frenet frame, and thin plate splines, place the tangent component of the vector **T**(*t*), equal to that of the curve's tangent Figure 2 shows a 2D version of a straightened curve in two versions, the upper using the tangent as a basis for creating the normal, and the lower using a constant normal. In this example this makes a drastic difference on both the readability and the mathematical complexity of the result. Following this we introduce a smoothing kernel *K*_{h}, with width h. This smoothing kernel is then applied to the original tangent by the following convolution:
TeX Source
$$\hat T(t) = ({\bf{T}} * K_h)(t) = \int_0^L {{\bf{T}}(\tau)} K_h (t - \tau)d\tau $$

When applying this convolution to create the smoothed vector we can experience, with some selections of *K*_{h}, a degeneration, where this vector, in a worst case scenario, can evaluate to a zero vector. To avoid this we apply the above convolution/weighted sum after converting the vectors to quaternions.

Another property we would like to translate to the deformed volume is a sense of the up direction. Many datasets have logically defined up/down directions, and in these cases we consider a "desired up vector **u**. In all other cases, a consistent vector is chosen instead, as we would like comparable results over several curves. With this vector **u**, we can now define our *new* normal **N**_{m}(*t*) and a binormal **B**_{m}(*t*) according to the rule,
TeX Source
$${\bf{B}}_m (t) = {{{\bf{u}} \times {\bf{\hat T}}(t)} \over {\left\| {{\bf{u}} \times {\bf{\hat T}}(t)} \right\|}}\,\,\,\,\,\,\,\,\,{\rm{and}}\,\,\,{\bf{N}}_m (t) = {\bf{\hat T}}(t) \times {\bf{B}}_m (t)$$
This rule is very simple, and it is very similar to the one proposed by Klok [16], but unlike his technique this one is not constrained to curves residing in a plane. However, it has two major issues that need to be addressed. The first issue is the obvious case when and the cross product is 0, accordingly. The second issue is to avoid a sudden sign change of the normal and binormal that can follow such a parallel segment. We solve both these issues by applying a similar smoothing kernel as with . Even more important here than with the tangent, because of previously mentioned sign changes, spherical interpolation must be applied for smoothing, achieved by kernel averaging on the tensors quaternions. From this definition of we define our normal vector as . Figure 3 shows how this smoothing applies to a curve that experiences two sign changes with the modified Frenet frame.

We have now defined a function creating a tensor of orthonormal vectors at each point **r(**
*t*) along the curve. In the next section we present two techniques that rely on such a moving frame. To ease the notation and to present that the next techniques are independent of a specific form of frame construction, we will hereby refer to the tangent as **t**(*t*), the normal as **n**(*t*) and the binormal **b**(*t*). However, it is fair to assume that for all practical applications, these vectors are the same as the smoothed versions introduced in this section.

### 3.2 Curve-Centric Reformation

In curve-centric reformation we aim to create a new volume, parameterized by a curve's arc-length and two terms indicating neighborhood in a distance preserving manner. Unlike several other deformations, the goal of curve-centric reformation is neither to preserve shape, nor angles of external objects, but to correctly portray distances to features and to use these features to provide a spatial frame of reference for the curves trajectory. As shown in the previous section, we make sure that no smoothing is applied to the curve's position, as we would like to strictly enforce these positions as the center of the resulting volume.

We define this reformed volume *Y* by means of a mapping to the original volume *X*, or a function **f** : *Y* → *X*. Given a curve **r**(*t*) and a defined frame set for this curve, we utilize only the normal **n**(*t*) and the binormal **b**(*t*) in the construction of f. We thus define the inverse transformation, from our reformed volume and back to the original as:
TeX Source
$${\bf{f}}(x,y,z) = {\bf{r}}(z) + x{\bf{n}}(z),\,\,\,\,\,\,\,\,{\rm{for}}\,z \in \left[{0,\,L} \right]$$
which satisfies our initial definition of **f**(0,0 *t*) =
**r**(*t*). It can easily be proven that for any curve other than a perfect line, this mapping is not one-to-one, and will usually contain singularities. An important property of this transformation, besides that it preserves the distance of arc-length, is that it preserves distances orthogonally out from the center, i.e., given two points **p**
_{1} **p**
_{2} in a given plane orthogonal to Y 's *z* plane:
TeX Source
$$\left\| {{\bf{p}}_2 - {\bf{p}}_1 } \right\| = \left\| {{\bf{f}}({\bf{p}}_2) - {\bf{f}}({\bf{p}}_1)} \right\|$$
the right hand term is, by decomposing **p**
_{1} to [x_{1},y_{1},z_{1}], and similarly with **p**
_{2}, equal to:
TeX Source
$$\left\| {({\bf{r}}(z_2) + x_2 {\bf{n}}(z_2) + y_2 {\bf{b}}(z_2)) - ({\bf{r}}(z_1) + x_1 {\bf{n}}(z_1) + y_1 {\bf{b}}(z_1))} \right\|$$
which we reduce to, since *z*
_{1} = *z*
_{2}:
TeX Source
$$\left\| {{\bf{f}}({\bf{p}}_2) - {\bf{f}}({\bf{p}}_1)} \right\| = \left\| {(x_2 + y_2) - (x_1 + y_1)} \right\|$$
since, our initial condition stated, the two points (*p*
**p**
_{1} and **p**
_{2}) share their *z* component, the left hand side of Eq. 2 can also trivially be reduced to the same term.

From Eq. 1 it follows that the *Z* plane denoted by *z* in Y equals a plane in X defined by the point **r**(*z*) and the tangent vector **t**(*z*). We utilize this planar coherence to create a fast implementation of curve-centric reformation by using *render to 3D texture*, rendering slice by slice fetching samples from *X*. Rendering these slices z plane after plane **n**(*z*) and **b**(*z*) is constant per plane, and the evaluation of f is done after selecting a width w around the curve to straighten, by linear interpolation between four points **f**(*w* *w* *z* **f**(− *w* *w* *z* **f**(− *w*, − *w* *z*), and **f**(*w*, − *w* *z*) with sufficiently large w. The result after such a reformation, is a regular 3D texture which can be visualized using, e.g., a regular volume ray-caster as shown in Figure 4.

### 3.3 Radial Ray-Casting

As presented in the previous section, curve-centric reformation creates a new regular volume, which has to be visualized using a particular method; we now introduce a direct projection of the original volume called radial curve-centric ray casting. Given a function that creates a unit normal **n**(*t*) and a unit binormal **b**(*t*) from a curve defined by **r**(*t*), traversing the arc-length *t* we cast rays starting at **r**(*t*) in the direction
TeX Source
$$\sin (\phi){\bf{n}}(t) + \cos (\phi){\bf{b}}(t),\phi \in [0,2\pi]$$
In its simplest form, by using a straight line, this radial ray-casting technique is reduced to a cylindrical projection, which form a projection that lies in between perspective, having a viewpoint, and an orthogonal projection, having a plane of view, with a line as its starting point. Using this technique one creates 2D projections that have no perspective distortion in the horizontal direction, i.e., the direction along the line, but with perspective distortion in the vertical direction, i.e. the angular rotation around the curve. However in addition to the perspective distortion, for curves, other than those of a perfect line, the curvature of this curve, or rather the torsion of its moving frame tensor, will further distort objects and features as seen from the curve.

A common strategy for ray-casting is to first render the texture coordinates of the exit points for rays, and then to store them. Next the ray casting is initiated by rendering the starting location of these rays, and iterating the ray-casted volume using the line between start and exit. This technique is depcited in Fig. 5, where the left part shows a box used as proxy-geometry for rendering the entry and exit buffer. The strength of this technique is its simplicity and that it is independent of perspective and proxy geometry, and as we will show, also compatible with our radial ray-casting. Generating the exit points is usually done by rendering the proxy geometry, culling front faces, but we will use a more direct method. The exit points in radial ray-casting are defined as, over normalized screen-space u,v, using a far "plane", or tube, with radius far:
TeX Source
$${\bf{r}}(uL) + far \cdot (\sin (2v\pi){\bf{n}}(uL) + \cos (2v\pi){\bf{b}}(uL))$$

For efficiency concerns, this exit point should also be clipped, at the intersection point to the texture cube, to stay within existing volume coordinates. After this exit buffer is established, we can start our radial ray-casting, using the start position **r**(*uL*). This start/entry and exit buffer is shown, on the right of Fig. 5. Given the exit position buffer and the starting position, this radial ray-casting technique is theoretically compatible with shader code written for any other ray-caster employing the same strategy, and will thus render at real-time speeds, and be able to perform advanced dynamic transfer functions. When applying proven shader techniques to this type of rays, one of course needs to keep in mind the aliasing issue, produced by the fact that the projection will sample the surrounding space with an uneven number of rays, due to the curvature, and the combination of almost parallel rays in the direction of the curve and an extreme perspective, 360 degrees (like in fisheye projections), in the rays orthogonal to the curve Figure 1 (the teaser image) shows two examples of radial ray-casting, where a regular color map transfer function has been used, in addition to edge enhancement. Another example is shown in Figure 6, where the top image shows a radial ray-casting, and because of properties in our generation of the moving frame, we can read out the direction around the curve, as 0 degrees corresponds to the left of the curve, looking in the direction of the trajectory (left to right), 90 degrees up, 180 right and 270 is below the curve.

Unless the curve is dynamic, this rendering produces images with a fixed "view", but one can still implement an interactive exploration of the volume around the curve, by constraining to either a subsegment of *L* or a subset of the angular radii. An interaction scheme would then allow for zooming, a reduction of segments in both dimensions, and panning, which would translate this segment.

### 3.4 A Common Axis for Comparative Visualization

Two objects sharing one or more axes have a basis for comparison. A shared axis is simply one that has the same unit, e.g., two physical objects share size, and can thus be compared in terms of size. Moreover, the display of those shared axes should be shown in scale to each other, optimally sharing the exact same scale, to avoid producing deceptive visualizations. In this paper, we present two techniques that create visualizations, by deforming or projecting space, that are aligned with the arc-length of a curve in space. The strong rationale for pursuing this alignment is to be able to create visualizations that combine well with existing techniques, like graphs, 2D plots, or even images. These are techniques that are not always well imported into a 3D environment, e.g Figure 7(a) shows 1D graphs for multiple wells drawn in 3D space, enabling coherence between values and their spatial position, but is not suited for accurate readouts. By reversing this strategy we instead investigate how well we can display information from volumetric models with a correct alignment to the 1D space of these 1D and 2D techniques. One way to look at this reformation is that one renders the physical space in the logging space, instead of rendering the logs in the physical space. A strong argument for this reformation, in Figure 7(a)'s case, is that the function shown on a single well here is actually only one of several production related parameters that the production team is interested in analyzing. By straightening a single well, all of the different production values can be shown in its own graph, without the inherent occlusion problems that would exist in a 3D visualization. Another argument for exactly this reformation of space, is to provide accuracy in display, e.g., in a plotting environment one has a direct readout of values Figure 6 shows such a plotting environment, where the two separate displays share the horizontal axis, and one could theoretically use a ruler to match peaks in the bottom curve to features in the two above. The curve-centric radial projection makes sure to preserve a required orthogonality in the direction of the 1D axis of the plot. This orthogonality is also enforced in the visualization of the deformed volume by simply rendering it with an orthogonal projection.

The curve-centric visualization techniques are only fully utilized when actually shown in the same space as important arc-length parameterized metrics. It is not within the scope of this paper to create other novel visualization of these metrics, but to show how one can create comparative visualizations by combining deformed and curve-centric projected, with existing and well established techniques. In the next section we show several examples of arc-length parameterized data, but these are just some of the many that actually exists. As good examples for these data sources, we can imagine most of the sensing devices that are attached to moving objects. These sensing tools are logging data by time, but indirectly they are also portraying information about their surroundings as a function of where they are. Other data sources are, e.g., 1D simulations or trajectory simulations.

SECTION 4

## Application Cases

In this section we show how we successfully applied our techniques to cases of two different industries. In Section 4.1 we investigate two cases with application to the petroleum industry; the first case where we show how curve-centric reformations can help show the multiple data sources gathered when drilling exploration wells; and in the second, we show its application in a real-time drilling scenario, looking closer into well-bore uncertainty at a certain strategic depth, motivated by an actual incident. In Section 4.2 we similarly investigate two cases with application to the car industry. In both of these two we investigate parameters around streamlines, but in the first one we investigate multiple parameters of a single streamline, whereas in the second we compare several different streamlines on a single parameter.

### 4.1 Well-Centric Visualizations for the Petroleum Industry

The petroleum industry uses drilling in part for exploration and in part for creating or expanding production in oil and gas reservoirs. Where vertical wells are almost the norm for exploration wells, an increasing number of horizontal wells and even those with more complex geometry, are used to extend the lifetime of aging reservoirs. While drilling these wells, operators apply several sensing tools to learn about the surrounding formation, to get situational awareness, to predict potential problems, and to maximize the drilling parameters, e.g., rotation speed, how much pressure should be applied to the drilling bit, and more. These sensing tools can measure down-hole pressure, electric conductivity of the formation wall and a number of other physical parameters. These provide output with a timestamp, or streaming data in time, but for many of these physical parameters, different representations make more sense. E.g., a sensing device measuring the physical properties of the rock outside the drill-string will provide a measurement as a function of measured depth (arc-length, not true depth) and to a lesser extent rotational position, rather than time. Similarly there are many other parameters that are best shown as a function of depth rather than time graphs, e.g., rate of penetration, hook-load, electric logs, and more. When these logs, all having the common axis of arc-length, are shown to explore their relation to seismic volume data, existing techniques usually put these logs into the 3D seismic space, as shown in Figure 7(a). We argue that this technique highlights the seismic volume as the important feature, showing the logs in a contextual manner. We propose to invert this display, and to show the seismic in the space of the logs instead. This is done by a reformation of the volume around the wells, and thus the seismic volume share arc-length as the axis with logs. An example of this is shown in Figure 8 where different measures along the drill-string are compared for coherence, as is a common operation in exploration drilling. This figure shows a volume visualization of the deformed volume on top, containing the well, an orange line, in the middle. The next is a graph of seismic reflectance sampled along the wellpath. As expected we see a strong correlation between this and the one above and below, which is the radial ray-casted volume as seen from the well. The final image, at the bottom, is a physical measured value, called an UBI image, or Ultrasonic Borehole Image. This imaging device produces 360 degree images of the formation around the well, very much like our radial raycaster, and we would thus expect to see a very tight correlation between these. Initial seismic volumes are often quite uncertain, and to minimize these uncertainties they are compared to results from exploration wells. We see the techniques of curve-centric reformation as a natural addition to the already existing techniques for studying these results.

**Real-Time Drilling Data** is the second case in which we introduce a novel view on drilling. The contractors that drill wells have to follow a strict plan of where the drill string should be on the way to the target. In the preparation, to create a drill plan, the close proximity to the well is mapped out and simplified into a 1D plan of different properties that the wellbore passes through. These properties are, e.g., pressure gradients, lithology (rock type), and where stops, logs, and casings should be positioned, all of which share the axis of arc-length. A case using some of these drilling properties is shown in figure 9, in which we inspect the properties of the well as shown in Figure 7(b) before and after reformation. In this case we show an important part of a drilling operation, in which we are drilling the final stretch before we enter the reservoir, denoted by the blue limestone. Because of very different properties of the shale (green) and the limestone it is very important to stop drilling as close as possible to this horizon, and insert a casing to protect the wellbore and formation from changing pressures. In addition to providing spatial awareness, this figure highlights an important detail our petroleum industry partners has expressed interest in, namely the wellbore uncertainty. The red ellipse, shown in the same figure (9), represents the area, or rather the volumetric ellipsoid, in which the drill-bit is positioned with 95.4% accuracy. Notice that the 1D lithology column shows the limestone to start at the wellbore's intersection with a major horizon at 5.45 which is diagonal. It is fair to assume that everything below this diagonal horizon is included in the reservoir. This shows that the 1D lithology is only accurate if the wellbore traverses where it was planned to. The 1D lithology column fails to incorporate the uncertainty of wellbore positioning, eg., the wellbore could be positioned deeper, and the reservoir would encountered earlier. In fact, the ellipse shows that given a 95.4% probability safety margin, one *cannot* guarantee that we have not already entered the reservoir. Projecting this ellipsoid into the 1D lithology column would not reveal this. As mentioned earlier, this example is motivated by an actual incident, where wellbore uncertainty led to the wrong assumption that one had a good clearing before entering the horizon. Secondary measures (gas show) did in fact even show signs that the reservoir was entered, but was ignored due to the believed clearing, and drilling was resumed. We contest that if our display would have been used in this case, then the secondary sign would not have been ignored, since the probability is already shown to be below the threshold for entering the horizon.

### 4.2 Streamline-Centric Visualization

In this section we investigate a dataset containing velocity and pressure from a single time step in a wind simulation for vehicle design. Additionally we created a distance field from a geometry file. From the velocity field, we extracted two scalar fields, velocity magnitude and vorticity magnitude. An overview of these datasets are shown in Figure 10. From the original velocity field we further extracted several streamlines, from which we selected a few streamlines that shared an interesting property in that they traverse in close proximity to a side mirror, an overview of these streamlines are shown in Figure 11. Inspecting one of these streamlines is enabled in our shared axis view, where multiple views on the streamline are provided for comparison. This comparative visualization display, as shown in Figure 12, is well suited for understanding how the streamline is affected by the different fields, in addition to looking at the correlations between the different fields. The deformed car on the top of Figure 12 acts as a spatial reference, additionally to reveal information on the curvature, the higher the curvature the bigger the deformation on the car. In this view (still Figure 12) we can see that there is a very good correlation between velocity magnitude and pressure in front of the car. At 1.5 meters into the streamlines arc-length, the streamline passes through a positive pressure, which is aligned with a slight drop in velocity. More interesting is the low pressure the streamline passes through at 2 meters, which interestingly enough does not seem to affect the velocity. Right behind the car, at 5.5 meters, we can see a drop in velocity (the blue vertical feature), that does not seem to correspond with any of the other views. One possible explanation might be the vorticity and low pressure feature right in front of it. Studying correlations in this manner does provide a new perspective into the study of flow fields that our industry partners found intriguing.

Our application partner, a team of engineers who use computational fluid dynamics simulations for all aspects of automobile design, was intrigued by the alternative views that we are able to create with deformation and the curve-centric radial projection. The concept of applying deformation on the car body to reveal a secondary effect outside of the car is very enticing to them. This deformation would then be a tangible communication between the bodywork designers and them for shape optimization. In particular, they pointed out that by choosing the appropriate flow quantities other than velocity, such as vorticity vector or helicity density, the deformed surface could actually suggest the location and extent of the shape change needed to achieve optimal performance. Additionally, the curve-centric radial projection of the flow structure with respect to a straighten field line may display information hard to reveal with conventional flow visualization techniques, such as drag force acting on the car.

SECTION 5

## Summary and Conclusion

In this paper we have presented a general solution on how to create new curve-centric parameterizations of volumetric space. Additionally we have presented how to use this new parameterization in creating two visualizations that are aligned with the arc-length of the curve. We have shown that we can use this alignment to create comparative visualizations, where 3D spatial positions are shown directly overlapping with 1D, or 2D arc-length parameterized functions.

We have successfully created a prototype using a combination of C++ and Python, which implements the creation of a moving frame given a curve, an optional up vector and a smoothing factor. Using this moving frame and supplying a volume, 3D texture or array, and a width, the prototype creates a deformed volume either as a 3D texture or as an array. This prototype supplies methods for creating images rendered either offline or real-time of both the deformed cube, as an outside in view, and the radial 2D projection, giving inside out views. Using this prototype we have created two case specific applications, one to investigate streamlines, and one to investigate well data from the petroleum industry. To avoid reinventing existing visualization techniques we have integrated our techniques with matplotlib: A 2D Graphics Environment as presented by Hunter [13], which enables the use of existing 1D and 2D visualization techniques, along the aligned axis of our result. Our test system has an Intel Core2 Quad CPU and a GeForce 8800 GTX. Creation of a deformed volume with dimensions [128,128,512], from an original volume [600,300,750], takes 19 milliseconds. Rendering a radial ray-casted image with dimensions [2048,512] of the original volume takes 51 milliseconds.

**Limitations and Future Work:** The presented algorithm requires a user specified up vector and smoothing factor, and for the volume deformation, also a user specified width. While this user input provides flexibility, it does represent a limitation for complete automation.

There is a correlation between the frequency of changes of the curve, the width of the box surrounding the curve, and the smoothing factor. This correlation is not explored in this paper, but could potentially give some interesting automation of these parameters. The radial ray-casting technique does not duplicate any of the original data, but the volume deformation does. When straightening curves with high frequency changes, which will then have a large arc-length within a small section of the original volume, this duplication of voxels becomes very apparent. Another limitation, is when sections of the curve, larger than the smoothing kernel, are parallel with the up-vector. We proposed to solve this by modifying the up vector, or by increasing the smoothing factor, but the smoothing kernel could be expanded to take these longer sections into account, and smooth over them by using a varying smoothing factor.

In cooperation with our application partners we have used our prototype applications to show how curve-centric visualizations, combined with application specific data, can create effective and compelling comparative visualizations. Moreover, we have produced a more general approach, without the same application specific requirements as shown in previous techniques such as virtual colonoscopy or curve planar reformation, one that ideally could be used for numerous other applications as well.