CLUViz Geometric Algebra Animation Software
Introduction
As a part of our project, we've developed a series of images and animations using CLUViz to visually demonstrate how an encryption system based on rotations in 3-dimensions works. CLUViz is a freely available software tool for 3D visualizations and scientific calculations that was conceived and written by Dr. Christian Perwass. CLUCalc interprets a script language called ‘CLUScript’, which has been designed to make mathematical calculations and visualisations very intuitive.
Follow the link http://www.clucalc.info/ for more information regarding CLUCalc and http://www.raytrix.de/tl_files/downloads/CLUVizSetup.exe to download the software.
3D Rotations Process
The animation shows a 3-dimensional sphere in 3D Euclidean Space, with the associated based vectors e1, e2 and e3 outlined in white. As demonstrated by the analytical proof of commuting rotations in 3-dimensions in the Semester A Progress Report (Provide Link...), the initial and final message vectors m and m' will only be the same if Alice's Rotation Axis and Bob's Rotation Axis are parallel or either of their Rotation Angle's are equal to 0 degrees. As such, the animation displays the initial and final message vectors and all intermediate message vectors as a result of the rotations by both Alice and Bob.
Sliders at the bottom of the visualisation allow the user to interact with the module and change various elements to gain a better understanding of how it works.
- Two sliders are used to alter the e1 and e2 elements of the initial message vector m, with the e3 element being automatically set to the highest value that ensures that m isn't greater than a unit vector in length.
- Two sliders are used to alter the rotation angle of Alice and Bob between 0 and 360 degrees. Naturally the initial rotation of each is considered to be a clockwise rotation, while the second is counter-clockwise.
- The final slider is used to alter the rotation speed of Alice's Rotation Axis to 1 of 8 different speeds. An option is also provided to halt the animation at any stage, allowing the user to take a closer look.
As mentioned, the animation is conducted through the movement of a single element- that being Alice's Rotation Axis. This movement, allows the user to accurately determine how the difference between the initial and final message vectors alters with the difference between Alice's and Bob's Rotation Axis. As you can see, at the exact point where Alice's Rotation Axis crosses over with Bob's Rotation Axis, the initial message vector crosses over with the final message vector, hence indicating that the four rotations commute. This is further demonstrated via the support diagrams shown to the sides of the main animation.
Four support diagrams are used in order to assist those less familiar with the underlying concepts with understanding the process.
- Two support diagrams are used to depict the user chosen rotation angle for both Alice and Bob as a disk.
- Another support diagram is used to display the angle difference between Alice's and Bob's Rotation Axes on the plane in which they both reside.
- Another support diagram is used to display the angle difference between the initial and final message vectors on the plane in which they both reside.
As mentioned previously there are three situations in which the initial message vector will equal the final message vector and each of these are successfully represented by these support diagrams. As such, each of these support diagrams complement each other in providing a clear visual depiction of the commuting rotations. In the case of one of the rotation angles being equal to 0 degrees, you will see the initial message vector m equal the final message vector m'. Also, when Alice's Rotation Axis crosses over with Bob's Rotation Axis and hence the angle between them equals 0 degrees, we will see from the other support diagram that the two message vectors m and m' are also equal.
These second two support diagrams complement each other in providing a clear visual depiction of the commuting rotations.