Designed especially for neurobiologists, FluoRender is an interactive tool for multi-channel fluorescence microscopy data visualization and analysis.
Large scale visualization on the Powerwall.
BrainStimulator is a set of networks that are used in SCIRun to perform simulations of brain stimulation such as transcranial direct current stimulation (tDCS) and magnetic transcranial stimulation (TMS).
Developing software tools for science has always been a central vision of the SCI Institute.
Realistic Anatomical Trajectories

ExoshapeAccel is a C/C++ application for estimating continuous evolution from a discrete collection of shapes, designed to produce realistic anatomical trajectories.



Acceleration controlled shape regression

ExoshapeAccel is a C/C++ application for estimating continuous evolution from a discrete collection of shapes, designed to produce realistic anatomical trajectories.

Developed at the Scientific Computing and Imaging Institute at the University of Utah.

Building the Software

Install dependencies

ExoshapeAccel requires FFTW (, a library for computing fast Fourier transforms. Instructions for building on Unix can be found here.

Build ExoshapeAccel

At the command line, type:

> make -f

which will create the executable Release/ExoshapeAccel.

Preparing Your Data

ExoshapeAccel works with rigidly aligned triangular meshes in the ascii VTK format. It is likely you will start with binary images. Next, we will give instructions for one possible pipeline for preparing your data. If you already have VTK surfaces of good quality and reasonable complexity, you can skip this step.

Obtain surfaces from binary segmentation

Decimate and smooth surfaces

Rigidly align surfaces

Using the Software

The software is a command line application and takes an xml file as input, which contains all the information and parameter settings. All xml drivers have the following general format:

<experiment name="EXPERIMENT NAME">
<algorithm name="ALGORITHM NAME">
parameters go here
</experiment name="EXPERIMENT NAME">

There are two types of shape regression algorithms, RegressionVelocity (piecewise geodesic) and RegressionAccel [2]. A typical work flow is to use RegressionAccel, as it estimates smooth trajectories.

First, parameter settings for the source, which is the baseline shape (or shapes). This is usually assumed to be the shape at the earliest time point:

<shape> path to shape data 1 </shape>
<shape> path to shape data N </shape>
This is the spatial scale at which shape points move in a correlated way. Large
values tend towards rigid deformation, values approaching zero mean each point
moves independently.
The tradeoff between data matching and regularity. For very accurate data matching,
set this value very small ~0.0001. Higher values produce faster, rigid matching.
<t0> The earliest time in the interval of interest </t0>
<tn> The latest time in the interval of interest </tn>
<T> The number of time steps in the discretization, the number of output shapes </T>
This is a RegressionAccel only parameter.
0: don't use initial velocity.
1: use initial velocity, given a RegressionVelocity algorithm has been computed
with the same source shape.
This is the importance of initial velocity in the optimization. Values between 0.25
and 1.00 are most common.
Include this tag if you want to save the output of the experiment. All output file names
here are prefixes, as %0.3d.vtk will be added to the end.
<saveProgress> N: save progress every N iterations </saveProgress>
Path to save all output data. This path must already exist, the software will not
create the directory.
<prefix> output shape 1 prefix </prefix>
<prefix> output shape N prefix </prefix>

Second, the parameters for the target shapes:

<shape> path to target shape </shape>
POINTS: landmark points (explicit correspondence between source and target)
SURFACE: general 3D surfaces (uses the metric on currents, which doesn't
require point correspondence)
The index of the source shape that should be matched with this target (order
defined by <source> <input>). This allows multiple shapes to be used and only
matched with the corresponding source shape.
This is the spatial scale at which shape differences are considered noise. Low
values try to match detailed local shape differences.
<timept> The time corresponding to this target </timept>
An importance weight for this target. Can be set to 1.0 if all shapes
are of equal importance.


  1. Fishbaugh, J., Durrleman, S., Piven, J., Gerig, G. A framework for longitudinal data analysis via shape regression. SPIE Medical Imaging 2012: Image Processing. Vol. 8314.
  2. Fishbaugh, J., Durrleman, S., Gerig, G. Estimation of Smooth Growth Trajectories with Controlled Acceleration from Time Series Shape Data. Proc. of Medical Image Computing and Computer Assisted Intervention (MICCAI '11). September 2011.