Pipes is a 3D, stand-alone, on-lattice path geometry creator in the same vein as the popular screensaver. I wrote it so that I could use the random, space-filling geometries in Radiance renderings, and after a few years of back-burner development, it can support a small variety of options. It is written in ANSI C and only requires libpng and the standard C libraries to compile.
The current version of Pipes is 0.6. You can download it here: pipes.c.
Just download the file compile it: (cc -o pipes pipes.c -O2 -lm -lpng).
Pipes supports the following features
- Creation of square or round cross-section pipes
- Tunable turning probability
- Cartesian, cylindrical, or spherical projections of geometry
- Wrap-around boundaries in all, some, or no directions
- Starting points on any combination of the 6 boundaries
- Radiance and OBJ output
- PNG and PGM output for preview image
10k segments created by pipes -png run08.png -s 100 100 100 -obj run08.obj, with default straight probability of 0.7
run08.obj (129764 triangles)
5k segments created by pipes -png run09.png -s 100 100 100 -obj run09.obj -f 0.2, with straight probability of 0.2
run09.obj (104516 triangles)
10k segments created by pipes -png run10.png -s 100 100 100 -obj run10.obj -f 0.9, with straight probability of 0.9
run10.obj (98484 triangles)
16k segments created by using the cylindrical projection method; command was pipes -png run11.png -s 25 300 100 -cyl 25 1 -n 2 -szl
10k segments created by using the spherical projection method; command was pipes -png run12.png -s 25 300 80 -sph 25 1 -45 45 -n 1 -sxl
Radiance rendering of output from the command pipes -n 20 -s 100 100 100 -f 0.94 -szl
Radiance rendering of spherical output from Dec 2001
Future versions of Pipes may address the following needs:
- Full support of square cross-sections for cylindrical and spherical geometries
- More output file formats
Please e-mail me if you'd like to see some particular feature in Pipes, or if you use it to make something creative.