Peter Young
Visualisation Research Group


Select the above image to enter the 3D visualisation
or you can view the full size image shown above.

About Tracks

The Tracks visualisation differs greatly from others created during this project in that it visualises the data usage within programs as opposed to the control flow or code structure. Tracks basically provides a "trace" of the data usage through a section of the program, in this case through a particular function. Each data item is represented as a track which extends from the creation of the data to itís destruction, charting all uses of the data within the program. Each segment along the track represents a single line of the program and shows all the data operations occuring on that line. Tracks does not provide a dynamic analysis or visualisation of data usage, it merely identifies points within the program at which data items are referenced.

A good analogy to the Tracks visualisation is a Logic Analyser, an electronics diagnostic tool which allows various inputs to be traced, thus producing a plot of their states over time. Tracks produces a similar presentation though instead of visualising the data usage as a function of time, it presents it as a function of statements within the program.

The various icons placed at segments along each track represent various attributes of the data and operations being performed on it. Each icon contains a representation of the data type with an indication to the current operation resting on top. For example, a the start of each track is the data type with a yellow exclamation symbol above it. This represents the creation of the data item. Similarly, upright green cones represent a data read and upturned red cones represent a data write.

Also shown in this visualisation, the tracks rise and lower with the varying scope of the function. As the a line enters a new scope, say a loop body, then all affected tracks are raised up one level. Global data items are shown on the near tracks which are lower than the function tracks and do not vary with scope.

One possiblity would be to integrate Tracks with the Planes visualisation. Both use the notion of raising and lowering levels to indicate program scope. This would combine information regarding the control structure of a function or program with corresponding information on the data useage.

About the demo

In order to view this demo visualisation you will require a browser with Superscape's Viscape VR plug-in installed. It would also be an advantage to have a high color display configured.

Warning! It should be noted that this demo is extremely slow due to the construction of the virtual world and the grouping used. This demo was intended purely to try out some new ideas and is not designed as a useable visualisation.

Navigation through the 3D environment can be facilitated simply by using the directional control icons at the bottom of the frame. Alternatively, a more efficient though trickier control method can be activated by selecting the 3D frame then pressing the space bar. This produces a white box called the dead zone. Moving the mouse out of this box will result in movement through the 3D world. Various methods of movement can be facilitated by using the left and right mouse buttons in conjunction with moving the pointer. The left mouse button allows rotation control over pitch and yaw (i.e. turning on the spot) and the right mouse button allows translation horizontally and vertically (moving left/right, up/down while facing the same direction).

This page is maintained by Peter Young, please send any comments, jokes, insults or general abuse to (

Last updated: Tuesday 13 May, 1997.