The algorithm described here was design and implemented by Peter Schröder and James Salem [26] from Thinking Machines Corporation. The algorithm works by transforming the volume such that one of its coordinate axes is aligned with the rays (Figure 9), and then composites the data. Compositing the data after the transformation is simple because all the nodes are connected along the axes. So one in time proportional to the depth of the volume one can accumulate the final pixel value for that ray of the image.
In order to transform the dataset during a rotation, the algorithm
uses rotation by shears. The idea is illustrated in Figure
10. By using a set of shears, the algorithm is able to
avoid general communication at every step. This idea is implemented by
assigning to each processor a voxel
. Each processor will have all the data for that
voxel, the color, opatity and location. During each shear the
location of that voxel may change, requiring communication among the
processors, this communication is avoided by only updating the
locations and keeping pointers to the new neighbors. After the shears
have been done, a general communication phase is performed to realign
all the data.
As seen in Figure 10, in order to rotate in 2D, one needs a set of three shears, that would mean nine shears in 3D. By cleverly reducing shears on the same axes and organizing the operations so the last two shears can be performed on the image plane, one is left with the following five shears to be performed on the volume:

x,y,z are point locations,
are
constants that depend on the rotation angle.
As each shear is applied, each processor keeps track of its neighbors and when the all the shear are done global communication takes place. At this moment the rendering of the volume is performed. Several options for rendering were implemented being the fastest to project for each rays the maximum value. On the Connection Machine this operation is extremely efficient since the routers can be programmed to selectively take messages out of the network, and in this case at every step the smallest of every two element in a ray can be taken off, potentially reducing the number of messages in half at every step and being able to finish rendering in a logarithmic number of steps.
Figure 9: Rotate the object instead of the image plane
Figure 10: Rotation by shears.
The performance measures were done on a 64K CM-2. One can rotate, a
dataset at 2 Hz and render with new parameters faster than
11Hz. A similar work done by Vezina et al. [50] on a MasPar
MP-1, their algorithm was a bit slower but it could handle
perspective projection.