Home
Archives
About us...
Advertising
Contacts
Site Map
 

ruby in steel

 

  XENODREAM :: INFINITE VARIETY

 


Garth Thornton, creator of XenoDream

XenoDream is a 3-D graphics program that combines standard shapes with 3-D IFS fractal methods for interactive modeling. We asked its creator, Garth Thornton, about fractals, pretty pictures and programming in Delphi...

For more information or to buy XenoDream ($89), visit the XenoDream Software site at:
http://www.xenodream.com/

bitwise: Your degree is in physics. So what made you decide to devote a good part of your life to developing software that draws pretty pictures?

Garth: I had drifted into computer programming as 'easy money', and got sidetracked into the whole technical support and management rat race. I'd never regarded it as a career and wanted to work on creative projects. In the late '80s I had formed a vision for fractal modelling of objects, mainly to provide exotic elements in SF/fantasy or surrealist art. By the late '90s, desktop PCs were getting powerful enough for 3D implementation, and the time was right to do it, so I started a partnership with Virginia Sterling. At first we had in mind a simple modelling tool with mesh export, but it didn't evolve that way. We didn't expect it become such a long term project, but we're still enjoying it.


DiamondTopaz - one example of a jewel-like 3D graphic created and rendered in XenoDream.
According to Garth, "Ttwo iterators provides enough complexity here. Transparent rendering with some reflection, refraction and iridescence added in the lighting make for some eye candy."
Click HERE to view a larger version (in a popup window)

bitwise: As I understand it, it often takes quite small and apparently simple mathematical formulas to generate fractal graphics of mind-boggling complexity. To a non-mathematician (like me) that seems counter-intuitive. What's the big secret..?

Garth: The general idea is that you take a formula and iterate it a number of times, each time taking the result and applying the formula again. What happens is that the final output is very sensitive to the input, resulting in complex patterns. For most kinds of fractals you take each point in a rectangular area, iterate it through the chosen formula until it meets some condition, calculate a color according to some rule and plot that color. That kind of fractal (which includes the well known Mandelbrot and Julia sets) tends to look 'mathy'.

For another kind of fractal we use a set of transformations (a rule that maps one point to another. It could be a formula or it could be a combination of scale, translation and rotation.) With any two or more transformations, we can take a single starting point and iterate it through different sequences of transformations. Each combination produces a different point, and all the combinations together make a shape that depends only on the transformations. It turns out that any shape can be made from the right set of transformations. This kind of fractal is known as an Iterated Function System (IFS), and can make familiar shapes such as leaves, trees and clouds, with only a few transformations each. You can also think of it as a tree structure, with a branch for each transformation at each level. For higher resolution pictures the tree has more levels so the detail increases, though it tends to be the same kind of detail all over.

bitwise: Many of the images generated by XenoDream seem to resemble trees, plants sea-shells and other natural 'organic' things. Is this a trick of the software or is there some deep connection between fractal mathematics and the real world?

Garth: There are deep connections; for example some natural processes are iterative (e.g. shell growth) and therefore capable of the same kinds of patterns. We could go into theories of dynamic systems, but that's a whole other topic and not necessary to answer this question.

Forget fractal mathematics for a moment. XenoDream uses building blocks that can be spheres, cubes or other shapes, and has a menu of transformations for warping or chopping or tiling them into quite a variety of shapes. It also allows the building blocks to inherit and iterate the shapes of other building blocks. So you can iterate a sphere into a spiral of spheres. When two or more blocks are iterating, the complexity goes up and starts to include structures like the IFS fractals described above. The combination covers a wide range of possibilities in 3D. The catch is figuring out how to make a particular shape with the available tools. In some cases the structures you would use to create an object in XenoDream may have parallels with a real object, while in others the similar appearance may be superficial. The bottom line is that we included the IFS style of replication in XenoDream because it seemed a good choice for making alien trees etc, and uses standard parameters suitable for mouse control, not editing formulas. We're trying to make a modeller, and any fractal exploring is a side benefit for those interested.


Eucalyptus - this uses a twisted cone for the trunk, iterated into branches, with a colour change to green after several iterations to make the leaves. Variations on this arrangement can produce a wide variety of plants.
Click HERE to view a larger version (in a popup window)

bitwise: Is fractal mathematics just 'pretty' or is it useful too? Any examples of what it is used for now or what it might be used for in future?

Garth: It does have some uses, such as high efficiency radio antenna design using fractal structure, and image compression. Dynamic systems theory is a broader field with wide applicability in science for understanding and modelling phenomena.

bitwise: What are the sorts of things that people are using XenoDream for?

Garth: Some people create pictures entirely within XenoDream, usually of a science fiction or surrealist theme, or abstract. Some take layers or textures from XenoDream into image editors to use in larger scenes. Some people export objects as meshes or terrains to use in other 3D programs. Many find it quite addictive just for playing and making pretty pictures. Some also use the depth filter to apply 3D lighting to photos or other images. They range from hobbyists to professional artists.

bitwise: What were the major influences on the development of XenoDream?

Garth: The initial inspiration to explore computer generated reality was seeing magazines in the '80s showing the work of pioneers like Ken Musgrave (who later worked on Bryce and then started Pandromeda to produce Mojoworld) and Aristid Lindenmayer (who invented L-systems for drawing plants.) In January 1988 Byte magazine had an article by Michael Barnsley about using IFS fractals to compress images, and I thought, why not go the other way and use them to create natural and fantastic objects? So I started experimenting with 2D structures on an Amiga computer.

bitwise: Are there any other fractal graphics software packages (not counting XenoDream!) that you particularly like?

Garth: If I were interested in editing formulae using complex numbers I would use UltraFractal; it's very well done. L-systems are an interesting area but editing strings of characters (such as y=+FX--FY+, but imagine half a page of it!) is not at all appealing.


Organic or surreal? Only XenoDream knows...

bitwise: How would somebody go about learning the fundamental techniques of fractal graphic programming? Are there any books or web sites that you could recommend? Or do you need to spend a lifetime studying the subject?

Garth: The basics to explore most kinds of fractal in 2D are quite easy. It's usually just an equation, or several matrices, iterated in a loop, and plotted. It gets more complicated going to 3D, and for every feature or interactive control method that you add. The Fractal Art FAQ is a good place to start.

bitwise: I note that you developed XenoDream using Delphi. What are the strengths (and weaknesses) of Delphi for this kind of application when compared with other languages such as C++, for example?

Garth: Many languages are suitably expressive for the math part, but relatively few implementations are suitable for high performance and working with huge bitmaps or meshes. Delphi and C++ would be the best choices as far as I know. I had always preferred the style of Pascal and Modula-2 to C/C++, so Delphi was a natural choice.

Some of the things I like about Delphi are the fast development environment, drag and drop GUI design and the Delphi implementation of objects and events. Some things I have missed are inline functions, better floating point compiler optimization, and refactoring support, but they are starting to appear in Delphi 2005/2006.

bitwise: On your web site you say that you have no plans for porting to other platforms. What about .NET? Have you tried to port it to Delphi .NET? What are the kinds of problems you would face in doing so?

Garth: No, I don't yet have a Delphi version that includes .NET, but I just don't see a case for it. .NET is basically a distributed environment to compete with Java. It makes sense for plenty of web-centric or business applications, but not for desktop applications that want all the RAM and speed you have. Maybe that will change in a few years.

There are several reasons for deferring any plans for porting. The architecture and specifications need to evolve to have a stable basis for future development, and to make porting potentially easier. It also takes up resources that I would much prefer to focus on advancing the features and GUI.


This is an example of a picture made with the latest beta version (1.6) of XenoDream.
Click HERE to view a larger version (in a popup window)

bitwise: Finally, what can we expect to see in future releases of XenoDream?

Garth: XenoDream 1.6 is nearly finished and will be a free update from earlier versions. It has lots of new metamorphs, including procedural noises for rock and terrain shapes, and rock and wood textures. There is a texture editor for background pictures that makes some impressive skies, as well as sea and rocks. There are UI improvements including a customizable preview grid and a solo button to show only the active object. Mesh export has improved filtering and new smoothing options.

I don't want to say much about v2 except that it will involve a lot of redesign to a new specification. 


What is XenoDream...?

XenoDream (www.xenodream.com) is a tool for creating 3D fractal objects which can be rendered and saved as 2D graphics or exported as 3D meshes for use within other graphics applications. It lets you import predefined shapes and apply a broad range of lighting effects to make them appear sculpted or organic and made of all kinds of different materials - ranging from stone-like to metallic. You can create an modify shapes by using special building blocks called ‘holons’ which can simply be dragged about on screen using a mouse. Optionally, there are also tabbed pages of parameters which can be used to exert finer control over the shape, colour and rendering of an object.


This is the XenoDream environment.
The easiest way to create an object is to load a predefined shape from the library.


Here we have applied two (of the numerous) lighting presets to render the shape in varying colours. Each preset dramatically changes the final appearance.

Garth Thornton has a B.Sc (Hons) in physics from Victoria University of Wellington, New Zealand. He worked in computer and network support, admin and management for 13 years. He has been sole developer for a variety of database contracts. For seven years he has been developing XenoDream. Virginia Sterling, president of XenoDream Software, is a journalist and graphic/fine artist from New Jersey.

 

November 2005

 


Home | Archives | Contacts

Copyright © 2006 Dark Neon Ltd. :: not to be reproduced without permission