I was recently commissioned by Los Angeles based expert C++ programmer Robert MacGregor, to create a piece of 3D fractal artwork to illustrate the book jacket for his latest publication; ‘C++ Data Structures from Scratch’.
The book is a step-by-step guide to building complex data structures – software components that collect and organize data – ‘from scratch’, from the most basic, primitive programming constructs.
The idea of using a piece of fractal art on the cover seemed the natural choice for this subject – after all, fractals operate on essentially the same principles. It was felt that an impression of many miniscule, incredibly complex components generating similar, but larger, equally complex parts would give a sense of the way data structures operate. I think the final image works well on that level, and hope that anyone viewing the book will agree.
Robert has produced a website specifically for those who wish to order a copy of ‘C++ Data Structures from Scratch’. The book is aimed at anyone interested in learning the basics of C++, as well as those with some pre-existing experience of the language.
For more details on the book, and to order your copy in paperback or eBook format, please go to: cppdatastructures.com.
For those of you who may have a technical interest in the creation of this piece, here’s a brief rundown of the process used.
The image was produced using the 3D fractal program Mandelbulb3D, which is completely free to use, thanks to the generousity of its creator Jens Dierks, or ‘Jesse’ as he’s known in fractal circles. The software package ‘Mandelbulb3Dv191.zip’ can be downloaded free from Fractalforums.com by clicking here.
The formula combination used consisted of: transform2IFS, cylinderIFS, trans-qIFS and Menger3. These formulae were hybridised in DEcombinate mode using the ‘inv max’ option. A rectilinear field of view of 80 degrees was used to give an extremely wide angle effect to the image, emphasising the sense of large scale.
The final image actually consisted of two separate 8000×7000 pixel renders. The first using ‘volumetric’ lighting, which gave the light-beams in the background, and a second render of the same size which used ‘iteration fog'; this has the effect of putting a coloured glow around certain parts of the structure. The finished renders were then saved as jpeg’s at 50% of full size, in order to give a smoother, ‘anti-aliased’ image. The final renders were then combined in Photoshop, and the contrast and colour saturation levels were tweaked.
The render time for the final, high resolution versions was in the region of sixteen to eighteen hours, owing to the use of a very low DEstop of 0.1 and a low RayStep Multiplier setting of 0.2.
I hope this suitably clarifies things for everyone?!