Scientific visualizations can make physical phenomena easier to
understand--in particular, in quantum mechanics, where almost nothing
can be easily seen. These data are complicated three-dimensional
energy surfaces, and are difficult to interpret. Using
visualization, certain features of the data jump out--for example,
that the "moth" has a "backbone" where the energy surfaces all
collapse, indicating that for certain laser configurations, the
artificial magnetic field is not non-Abelian.

The data contains three independent variables, α_{1}, α_{2}, and k_{y}. For each
triple, there are six dependent variables, representing energy:

α_{1}, α_{2}, k_{y}, Z1, Z2, Z3, Z5, Z5, Z6

There are 50 values each for α_{1}, α_{2}, and k_{y} and they form a regular
3D grid. However there is symmetry about zero for k_{y}, so we only
needed to use the first 25 values.

For the visualization, α_{1} and α_{2} are represented as X and Y. k_{y} is
represented by color using a linear color ramp where the lowest
value, zero, is blue, the middle value, 2.0 is green and the highest
value, 4.0 is red. The six dependent variables are plotted in the Z
direction.

Each line of the file was broken into six lines of triples and a
column number was added to the end of each line as a comment,
to indicate which of the 6 Z values that point came from :

X, Y, Z1, #Z1

X, Y, Z2, #Z2

X, Y, Z3, #Z3

X, Y, Z4, #Z4

X, Y, Z5, #Z5

X, Y, Z6, #Z6

These triples were plotted XYZ locations and assigned an RGB color
based on the value of k_{y}. It was immediately clear all the points
X Y Z1, for each value of X and Y lay in a surface. Likewise, for
each of Z2..Z6, so for each value of k_{y}, there are a total of six
surfaces convoluted in the Z direction. There is a button on the
user interface to individually turn on or off the points for each
value of k_{y}.

The next step was to add some structure to show this relationship.
The easiest way to visualize this was to build a grid on each
surface. A script generated lines for each point on
the same surface (using the column number added) for a given X
or Y value. If the specified value did not exist in the file, no
line was generated. This enforces a rule that all grid lines are
composed of actual data points, therefore there are no
interpolation artifacts.

Grid files consisting of evenly spaced lines such that
the surfaces were divided into ten row and columns were generated.
Also generated were
separate files with X and Y lines at the min and max vales, thereby
framing each surface.Again, there are buttons to turn on or off the
grid lines or sides for each value of k_{y}.

Finally, a fatpoints shader was used to generate pseudo-
spheres at each point that are a constant (but user adjustable)
size with respect to the virtual coordinates. Normally points
occupy a constant number of pixels on the display so the visual
density of a point set gets lower as the view point gets closer.
The fatpoints generate billboards that are shaded to convincingly
appear as spheres. Since this is done on the GPU, there is no use
of CPU resources. If the size is set to zero, the fatpoints shader
is turned off, and the non-fatpoints are generated.

Using these features, the scientists can easily visualize and
highlight different relationships between the data points.