Sphere packing in 3D has some very interesting symmetry. The Bravais lattice known as face centered cubic (fcc) is the one that I find to be the most fascinating of all the 3D lattices. This one was studied in great detail by R. Buckminster Fuller, who called it the isotropic vector matrix (IVM).
Most people think of 3D space as a lattice of cubes with XYZ coordinates, with each direction orthogonal to the other two. The IVM lattice is built differently. Instead, its core vectors are the three directions that you would move from a given point in order to form a tetrahedron (using the origin as one of its vertices). I usually think of these vectors as A, B, and C to distinguish them from XYZ (cartesian) coordinates.
In the image below, the black sphere is the origin, and the other vertices of the tetrahedron are colored red, green and blue (along the A, B, and C basis vectors, respectively).
In the lattice, there are 12 directions you can go in order to reach a neighbor cell. You can build these 12 from the three basis vectors as follows: A, B, C, A-B, A-C, B-A, B-C, C-A, C-B, -A, -B, -C. Together with the center sphere, this collection of spheres is often called the Vector Equilibrium (VE). The outer spheres have the same relationship to each other as the vertices of a cuboctahedron. The image below shows this, but a static image doesn’t give a very good idea how they fit together.
Explore further: Open an X3D view of the VE (opens in new window).
The ordinary 3D cartesian coordinates that we use in everyday life do not work as well for navigation between the cells of this space. That’s because each IVM basis vector is a combination of cartesian coordinates. In my explorations, I’ve been using my own navigation system based on vectors A, B, and C.
I’ve been experimenting with cellular automata (CA) on the IVM, and created a mini-language for placing the spheres (somewhat like turtle graphics). In this language, I use upper case letters A, B, and C to move in a positive direction; and the lower case letters a, b, and c to move in a negative direction relative to the current position (or from the origin). Examples:
aBBBBCC: -1, 4, 2
AAAbc: 3, -1, -1
This system helps me to visualize the relative locations better. The images here were created this way (but more on that and the IVM CA some other time).