Technical Details
Spinning Borg Cube

      The Borg 95 cube was rendered with the DOS version of the Persistence Of Vision(tm) Raytracer (POV-Ray), version 3.00. (I normally would have used the OS/2 version, but at the time that I did the image, it had a bug in the routines dealing with height fields, which were crucial for this image. [The bug has now been fixed.])

      The Borg cube was constructed by two means: an inner cube consisting of height fields, and an outer cube made up of thousands of cylinders. Because I was lazy, each side of the cube is identical.

      The height field for the inner cube was drawn by hand with a basic paint program. It's far more detailed than is evident from the image, because I had originally intended to create a computer animation of the cube flying by, with one side passing directly next to the "camera". Unfortunately, after it was completely rendered, I discovered that the fine detail of the outer cube introduced ugly moiré patterns as the cube moved, even with anti-aliasing enabled.

      Rather than calculate the positions and thicknesses of each cylinder of the outer layer by hand, I wrote a small program in C to do it for me. While the program was quite flexible, allowing me to create an unlimited number of cylinder layers (all different), I eventually ended up using only two layers -- which resulted in a total of 4,224 cylinders in the outer cube.

      A pigment map was then applied to each layer of the inner and outer cubes to provide tonal variations and add the Microsoft name and Windows logo.

      There are three light sources in the image: the "sun", a fill light left over from the animation code (the rear view was completely unlit, so I added a half-strength point light to reveal some detail), and the greenish reactor glow inside the cube.

      The image took just over thirteen minutes to render on a Cyrix 6x86-166+. Text was added by hand, using the same paint program that created the height field.

      Although I normally prefer JPEG format for my images, in this case the GIF format was actually the best choice. In order to retain some of the fine detail, I had to raise lower the compression ratio to the point where the JPEG image was larger than a GIF encoding. Because the original 24-bit image utilised a limited chromatic range, I did not lose any perceptible amout of tonal quality by reducing the image palette to eight bits.

[Back to the image]