1. How to Start

After starting the application with the command

java -cp . KamiWaAi

from the directory where the object KamiWaAi.class and the package GeometricAlgebra reside, e.g. from c:\KWA, a new window will open on the computer screen. The window is composed of three main panels. The left panel shows the front view, the center panel shows he right side view and to the right the available functions are grouped as interactive radio buttons with their labels. In the default configuration the function "point" is activated. I will now quickly step you through the presently available eight functions: point, line, circle, sphere C,r, sphere, move, S int l and S int S.

2. Interactively Defining 3D Points with 'point'

If the radio button "point" is activated, the user can define three dimensional points by first clicking on the left panel and next on the center panel. Clicking on the left panel immediately creates a small blue disk at the position of the click. The left panel stays then deactivated (i.e. unreceptive for mouse clicks) until a corresponding right side view point is defined by clicking on the center panel. On the center panel a green disk will appear at the position of the click, exactly in the same height as the blue point just defined on the left panel. Then the center panel becomes deactivated, the left panel becomes activated and a new point can be defined.

Later the underlying representation of these points (vectors) in conformal geometric algebra and by its software implementation in the GeometricAlgebra Java package will be explained later.

3. Drawing Straight Lines with 'lines'

After defining at least two points with the function "points" the user can activate the radio button labeled "line" for drawing straight lines through the points. The choice of points is performed by simply clicking on the small colored disks representing the points in the front and side view panels (left and center panel respectively). On the command line of the shell or MSDOS prompt window the messages "point 1 chosen!" and "point 2 chosen!" will appear successively. As soon as the second message appears a sky blue straight line will be drawn through both points, visible both in the front and in the side view panels. Now new points can be chosen to draw more lines.

It does not matter from which panel the points are chosen, i.e. whether they are chosen both from the same panel view or e.g. first from the left panel and then from the center panel and vice versa.

4. Drawing Circles with 'circle'

Drawing circles after activating the radio button "circle" is very much similar to drawing lines. The only difference is that the user needs to choose a total of three points instead of two. Therefore before being able to create a circle, the user must at least define three points with the function point. The messages "point 1 chosen!", "point 2 chosen!" and "point 3 chosen!" will appear successively on the shell or MSDOS prompt window. After the third message appears, a red circle will be drawn in both views intersecting all three chosen points. Now new points can be chosen to draw more circles. It again does not matter how many of the three points are chosen from the front and/or the side view panels.

5. Defining a Four Base Point Sphere with 'sphere'

First the radio button labeled "sphere" needs to be activated. Then four points need to be chosen similar to clicking the points when drawing lines or circles. Therefore before being able to create a sphere by four base points , the user must at least define four points with the function point. The four messages "point 1 chosen!" until "point 4 chosen!" will appear successively on the shell or MSDOS prompt window. After the fourth one appears, a yellow circle will be drawn, visible both in the front and in the side view panels. Again it does not matter how many points are chosen from the front and/or the side view panel, respectively. Spheres are drawn by their longitudes and latitudes. The longitudinal meridians intersect in two poles. The angular position of the poles on a sphere is only for the convenience of displaying them and for later easing the interactive selection of spheres (compare the section on the intersection of spheres and lines.)

6. Defining a Centered Radius r Sphere with 'sphere C,r'

Selecting the radio button "sphere C,r" provides a more convenient way to draw spheres. The user just needs to interactively choose the center point. Immediately after that a small new automatic interactive dialogue window will appear. Entering the desired radius by pressing the numbers on the computer keyboard followed by pressing the ENTER key will cause KamiWaAi to immediately draw a yellow sphere of the desired radius and around the selected center point. The appearance of the sphere is otherwise similar (composed of longitudes and latitudes and with visible poles).

As with all other functions, the user can proceed to define more centered radius r spheres with centers and radii at will. Or he can proceed to any of the other implemented functions.

7. Moving Points and Objects that Depend on them with 'move'

Up till now there is no great difference to drawing things on a peace of paper, even if one has to admit that the computer can draw much faster and more precise than sketching by hand usually allows. But the interactive "move" function is so to say the first function that really capitalizes on the ability of a computer to memorize graphical objects and adapt them to changes of the objects which served to define them in the first place. At the moment the defining objects are basically the points created with the "point" function.

The first step is to activate the radio button labeled "move". Then the user can click on any point in any of the two panels (front or right side view), keep the mouse button firmly pressed and slowly move it across the screen. The point will follow this motion. After releasing the point again, KamiWaAi will reconstruct all previously present objects, adapting positions, orientations and sizes where it is required. This is certainly something, which needs much more work, fresh sheets of paper and a good understanding of the changing projected appearances if sketched by hand.

The user can use this "move" function visually to interactively explore the dependence of his constructions on the positions of the defining objects (here points) in three dimensions. All objects will follow this motion.

8. Intersecting Spheres with Lines Using 'S int l'

This function needs some explanation. After activating the radio button "S int l" the user is expected to click within three pixels of the line, which he wants to use for the intersection operation. It does not matter from which panel the line is chosen. If the user clicks very close to two lines, KamiWaAi will automatically choose the line whose projection in the panel view is the closest to the clicked position of the panel. The click position has in no way to be a "point" as defined in section 2.1. Any position close enough to the projected view of the straight line will do! If the clicked position is not close enough to any line projection, the computer will wait for another click in order to properly select a line and will give out the information message "Line No. -1 selected." in the shell or MSDOS prompt window. After successfully selecting a line the computer will print the number of the straight line immediately followed by the message "And now select a sphere!"

To select a sphere the user simply has to click on one of the two previously mentioned poles of the desired sphere. Remember that a pole is marked by the intersection of the longitudinal meridians, which are used to display the sphere. There is a small sensitive area around each pole of each sphere in both of the display panels (front and right side). If the clicked position is not close enough to any pole the message "Sphere No. -1 selected." will appear. In this case the user can just continue to click in the vicinity of any pole until the message with the selected sphere number (a positive integer number including zero) will appear in the shell or MSDOS prompt window. Immediately after successfully selecting a sphere the computer will do three actions:

First it will inform the user how many points of intersection of the chosen line and sphere exist: "Two points of intersection!" or "One point of intersection!" or "No intersection!" In the case of "No intersection!", the computer will immediately restart all over again with the message: "Select a new line!"

Second in the cases of "Two points of intersection!" or "One point of intersection!", KamiWaAi will draw the point(s) of intersection with dark blue disk(s) in the (left) front view panel and with dark green disk(s) in the (central) right side view panel.

Thirdly the computer will generate the shell or MSDOS prompt message: "Select a new line!" KamiWaAi thereby indicates that it is ready for the interactive selection of the next line for the next round of intersection of a sphere and a line.

9. Intersecting Two Spheres Using 'S int S'

The user needs to click near to the pole of the first sphere, which he wants to use for intersection. If this is successful, the selection will be printed in the command line window. If not, the user will be asked to try again. After successfully selecting a second (different) sphere, the user gets the information about the intersection: One point of intersection, or a circle of intersection, or no intersection. The results will immediately be displayed (point or circle) in the front and side view panels of KamiWaAi. After the intersection of this first pair of spheres is finished, the user can continue to select and intersect new spheres.

10. More Information

This explains all the presently implemented eight functions in detail and the interested reader is hereby invited to start exploring three dimensional geometry on his own using KamiWaAi.

More information on the background in the theory of conformal geometrical algebra and the Java package GeometricAlgebra, which implements this algebra in the form of new object oriented Java classes and their methods can be found in


This description informs about the major classes, lists their most important methods, specifying their input and output. But please note that this paper only covers version 0.0.1 beta. The changes in newer releases are not explained in it.

Limitted information about the changes between versions 0.0.1 beta and 0.0.4 beta can also be found in the Readme.txt file.