A-Mazing Things

The program responsible for it all:
mazegenerator.c (current) 2008-06-04 (compiles with cygwin)
Needs logo.h for compiling. maze.pov as stub for rendering the object created
(2) Backup of older code 2007-06-04
(1) Backup of older code 2007-05-31

command line options:

Set the X/Y/Z size of the object (and plasma)
(all default object sizes are 10)

Stop generation at step <number>
(if not used, the whole object will be generated)

Seed the PRNG with <number>

First generate a plasma field and use that to calculate probability of growth.
The Plasma generated is saved to "plasma.inc"

After generating the plasma, all values below 0 or above 255 will be folded back into the 0..255 range. Used with the -m option this can be used to generate more chaotic plasmas.

One of the first renders from when I picked up the maze program again.
Texture: blue
Size: 100x100x1
This is an intermediate frame of the same object as above, resulting in only a partially built maze.
Texture: blue
Size: 100x100x1
This maze is "hollow", only saving 3 cells around the edges to make room for the growing of the maze.
Texture: gold
This is a basic 40x40x40 maze. A type of maze that I use for benchmarking how fast they can be generated. Currently it takes about 80 seconds to generate the above maze, but I hope to get the times down as I wish to generate larger objects without having to wait HOURS.
Texture: gold
Size: 40x40x40
Another step in development. Before starting to grow the maze, all cells are checked to see if the are outside or inside a defined sphere. Only cells inside are permitted to be used for growing, resulting in the above object. In this case the sphere is actually a bit bigger than the distance from center to side, so some flat surface area is generated.
Texture: gold
Size: 40x40x40
This is a "fat" maze intersected with a sphere smaller than the distance from center to side.
Texture: gold
Size: 40x40x40
This maze is "skinny" but otherwise identical with the above.
Texture: gold
Size: 40x40x40
This is an attempt to render a 1000x1000x1 maze but as you can see it now more resembles textile or something. The maze is too finely grained to be recognized. I dont know if the interference pattern is an artifact of the PRNG, my code, or just plain artifact of the rendering process and the object being tilted.
Texture: gold
Size: 1000x1000x1
A small maze made and copied and displaying various simple materials im working with.
My first goal was to make a two-dimensional plasma to have something to start with. It all went pretty smoothly and didnt take much time. No artifacts in this render of the result as a flat surface.
The Ultimate goal achieved, a full 3-dimensional plasma to be used later for other refinements of the maze. At first I got big bad artifacts, but that turned out to be a pretty easy bug to solve. I was very cheerful once I got it made out to a "perfect" plasma. This is a render of a few slices of the field so you can see the "inside". One slice at Z 0, one at 1/3, one at 2/3 and one at max-Z.
This is a solid render of the above plasma-field, the exact same one. Only I changed the light-sources to be white(r). Since only the surface can be seen, the inside isnt actually saved to the object file. Making this 40x40x40 plasma only takes a couple of seconds using a recursive function call method. (Rotation of the object might be slightly different than above).
2008-06-04. This is a maze generated using a probability of growth adjusted to a plasma density field. As shown above, brighter would mean more probable for a branch to extend, dark/black would mean less of a chance. The result is that the maze grows and extends in a less predictable way.
Texture: yellow
Size: 40x40x40
2008-06-04. Similar to the above (R89), this picture is rendered using a semi-transparent texture (glass like). Having so many transparent objects in a scene makes Povray work hard, this image took over 2 hours to render.
Texture: glass/gold
Size: 40x40x40
2008-06-04. Here you can see some of the inner structure of the full plasma field (R89) using a translation table (halfsinus) for colors highlighting the brightest ones.
Texture: flat white/transparent
Size: 40x40x40