home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- ppmforge - fractal forgeries of clouds, planets, and starry
- skies
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ppppppppmmmmffffoooorrrrggggeeee [----cccclllloooouuuuddddssss] [----nnnniiiigggghhhhtttt] [----ddddiiiimmmmeeeennnnssssiiiioooonnnn _d_i_m_e_n] [----hhhhoooouuuurrrr _h_o_u_r]
- [----iiiinnnncccclllliiiinnnnaaaattttiiiioooonnnn||||----ttttiiiilllltttt _a_n_g_l_e] [----mmmmeeeesssshhhh _s_i_z_e] [----ppppoooowwwweeeerrrr
- _f_a_c_t_o_r] [----ggggllllaaaacccciiiieeeerrrrssss _l_e_v_e_l] [----iiiicccceeee _l_e_v_e_l] [----ssssaaaattttuuuurrrraaaattttiiiioooonnnn
- _s_a_t] [----sssseeeeeeeedddd _s_e_e_d] [----ssssttttaaaarrrrssss _f_r_a_c_t_i_o_n] [----xxxxssssiiiizzzzeeee||||----wwwwiiiiddddtttthhhh
- _w_i_d_t_h] [----yyyyssssiiiizzzzeeee||||----hhhheeeeiiiigggghhhhtttt _h_e_i_g_h_t]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- ppppppppmmmmffffoooorrrrggggeeee generates three kinds of ``random fractal for-
- geries,'' the term coined by Richard F. Voss of the IBM Tho-
- mas J. Watson Research Center for seemingly realistic pic-
- tures of natural objects generated by simple algorithms em-
- bodying randomness and fractal self-similarity. The tech-
- niques used by ppppppppmmmmffffoooorrrrggggeeee are essentially those given by
- Voss[1], particularly the technique of spectral synthesis
- explained in more detail by Dietmar Saupe[2].
-
- The program generates two varieties of pictures: planets and
- clouds, which are just different renderings of data generat-
- ed in an identical manner, illustrating the unity of the
- fractal structure of these very different objects. A third
- type of picture, a starry sky, is synthesised directly from
- pseudorandom numbers.
-
- The generation of planets or clouds begins with the prepara-
- tion of an array of random data in the frequency domain.
- The size of this array, the ``mesh size,'' can be set with
- the ----mmmmeeeesssshhhh option; the larger the mesh the more realistic the
- pictures but the calculation time and memory requirement in-
- creases as the square of the mesh size. The fractal dimen-
- sion, which you can specify with the ----ddddiiiimmmmeeeennnnssssiiiioooonnnn option,
- determines the roughness of the terrain on the planet or the
- scale of detail in the clouds. As the fractal dimension is
- increased, more high frequency components are added into the
- random mesh.
-
- Once the mesh is generated, an inverse two dimensional
- Fourier transform is performed upon it. This converts the
- original random frequency domain data into spatial ampli-
- tudes. We scale the real components that result from the
- Fourier transform into numbers from 0 to 1 associated with
- each point on the mesh. You can further modify this number
- by applying a ``power law scale'' to it with the ----ppppoooowwwweeeerrrr op-
- tion. Unity scale leaves the numbers unmodified; a power
- scale of 0.5 takes the square root of the numbers in the
- mesh, while a power scale of 3 replaces the numbers in the
- mesh with their cubes. Power law scaling is best envisioned
- by thinking of the data as representing the elevation of
-
-
-
- Page 1 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- terrain; powers less than 1 yield landscapes with vertical
- scarps that look like glacially-carved valleys; powers
- greater than one make fairy-castle spires (which require
- large mesh sizes and high resolution for best results).
-
- After these calculations, we have a array of the specified
- size containing numbers that range from 0 to 1. The pixmaps
- are generated as follows:
-
- CCCClllloooouuuuddddssss A colour map is created that ranges from pure blue
- to white by increasing admixture (desaturation) of
- blue with white. Numbers less than 0.5 are
- coloured blue, numbers between 0.5 and 1.0 are
- coloured with corresponding levels of white, with
- 1.0 being pure white.
-
- PPPPllllaaaannnneeeetttt The mesh is projected onto a sphere. Values less
- than 0.5 are treated as water and values between
- 0.5 and 1.0 as land. The water areas are coloured
- based upon the water depth, and land based on its
- elevation. The random depth data are used to
- create clouds over the oceans. An atmosphere ap-
- proximately like the Earth's is simulated; its
- light absorption is calculated to create a blue
- cast around the limb of the planet. A function
- that rises from 0 to 1 based on latitude is modu-
- lated by the local elevation to generate polar ice
- caps--high altitude terrain carries glaciers
- farther from the pole. Based on the position of
- the star with respect to the observer, the ap-
- parent colour of each pixel of the planet is cal-
- culated by ray-tracing from the star to the planet
- to the observer and applying a lighting model that
- sums ambient light and diffuse reflection (for
- most planets ambient light is zero, as their pri-
- mary star is the only source of illumination).
- Additional random data are used to generate stars
- around the planet.
-
- NNNNiiiigggghhhhtttt A sequence of pseudorandom numbers is used to gen-
- erate stars with a user specified density.
-
- Cloud pictures always contain 256 or fewer colours and may
- be displayed on most colour mapped devices without further
- processing. Planet pictures often contain tens of thousands
- of colours which must be compressed with ppppppppmmmmqqqquuuuaaaannnntttt or
- ppppppppmmmmddddiiiitttthhhheeeerrrr before encoding in a colour mapped format. If the
- display resolution is high enough, ppppppppmmmmddddiiiitttthhhheeeerrrr generally pro-
- duces better looking planets. ppppppppmmmmqqqquuuuaaaannnntttt tends to create
- discrete colour bands, particularly in the oceans, which are
- unrealistic and distracting. The number of colours in star-
- ry sky pictures generated with the ----nnnniiiigggghhhhtttt option depends on
-
-
-
- Page 2 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- the value specified for ----ssssaaaattttuuuurrrraaaattttiiiioooonnnn. Small values limit the
- colour temperature distribution of the stars and reduce the
- number of colours in the image. If the ----ssssaaaattttuuuurrrraaaattttiiiioooonnnn is set
- to 0, none of the stars will be coloured and the resulting
- image will never contain more than 256 colours. Night sky
- pictures with many different star colours often look best
- when colour compressed by ppppnnnnmmmmddddeeeepppptttthhhh rather than ppppppppmmmmqqqquuuuaaaannnntttt or
- ppppppppmmmmddddiiiitttthhhheeeerrrr. Try _n_e_w_m_a_x_v_a_l settings of 63, 31, or 15 with
- ppppnnnnmmmmddddeeeepppptttthhhh to reduce the number of colours in the picture to
- 256 or fewer.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- ----cccclllloooouuuuddddssss Generate clouds. A pixmap of fractal clouds is
- generated. Selecting clouds sets the default for
- fractal dimension to 2.15 and power scale factor
- to 0.75.
-
- ----ddddiiiimmmmeeeennnnssssiiiioooonnnn _d_i_m_e_n
- Sets the fractal dimension to the specified _d_i_m_e_n,
- which may be any floating point value between 0
- and 3. Higher fractal dimensions create more
- ``chaotic'' images, which require higher resolu-
- tion output and a larger FFT mesh size to look
- good. If no dimension is specified, 2.4 is used
- when generating planets and 2.15 for clouds.
-
- ----ggggllllaaaacccciiiieeeerrrrssss _l_e_v_e_l
- The floating point _l_e_v_e_l setting controls the ex-
- tent to which terrain elevation causes ice to ap-
- pear at lower latitudes. The default value of
- 0.75 makes the polar caps extend toward the equa-
- tor across high terrain and forms glaciers in the
- highest mountains, as on Earth. Higher values
- make ice sheets that cover more and more of the
- land surface, simulating planets in the midst of
- an ice age. Lower values tend to be boring,
- resulting in unrealistic geometrically-precise ice
- cap boundaries.
-
- ----hhhhoooouuuurrrr _h_o_u_r
- When generating a planet, _h_o_u_r is used as the
- ``hour angle at the central meridian.'' If you
- specify ----hhhhoooouuuurrrr 11112222, for example, the planet will be
- fully illuminated, corresponding to high noon at
- the longitude at the centre of the screen. You
- can specify any floating point value between 0 and
- 24 for _h_o_u_r, but values which place most of the
- planet in darkness (0 to 4 and 20 to 24) result in
- crescents which, while pretty, don't give you many
- illuminated pixels for the amount of computing
- that's required. If no ----hhhhoooouuuurrrr option is specified,
- a random hour angle is chosen, biased so that only
-
-
-
- Page 3 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- 25% of the images generated will be crescents.
-
- ----iiiicccceeee _l_e_v_e_l
- Sets the extent of the polar ice caps to the given
- floating point _l_e_v_e_l. The default level of 0.4
- produces ice caps similar to those of the Earth.
- Smaller values reduce the amount of ice, while
- larger ----iiiicccceeee settings create more prominent ice
- caps. Sufficiently large values, such as 100 or
- more, in conjunction with small settings for ----
- ggggllllaaaacccciiiieeeerrrrssss (try 0.1) create ``ice balls'' like Euro-
- pa.
-
- ----iiiinnnncccclllliiiinnnnaaaattttiiiioooonnnn||||----ttttiiiilllltttt _a_n_g_l_e
- The inclination angle of the planet with regard to
- its primary star is set to _a_n_g_l_e, which can be any
- floating point value from -90 to 90. The inclina-
- tion angle can be thought of as specifying, in de-
- grees, the ``season'' the planet is presently ex-
- periencing or, more precisely, the latitude at
- which the star transits the zenith at local noon.
- If 0, the planet is at equinox; the star is
- directly overhead at the equator. Positive values
- represent summer in the northern hemisphere, nega-
- tive values summer in the southern hemisphere.
- The Earth's inclination angle, for example, is
- about 23.5 at the June solstice, 0 at the
- equinoxes in March and September, and -23.5 at the
- December solstice. If no inclination angle is
- specified, a random value between -21.6 and 21.6
- degrees is chosen.
-
- ----mmmmeeeesssshhhh _s_i_z_e
- A mesh of _s_i_z_e by _s_i_z_e will be used for the fast
- Fourier transform (FFT). Note that memory re-
- quirements and computation speed increase as the
- square of _s_i_z_e; if you double the mesh size, the
- program will use four times the memory and run
- four times as long. The default mesh is 256x256,
- which produces reasonably good looking pictures
- while using half a megabyte for the 256x256 array
- of single precision complex numbers required by
- the FFT. On machines with limited memory capaci-
- ty, you may have to reduce the mesh size to avoid
- running out of RAM. Increasing the mesh size pro-
- duces better looking pictures; the difference be-
- comes particularly noticeable when generating high
- resolution images with relatively high fractal di-
- mensions (between 2.2 and 3).
-
- ----nnnniiiigggghhhhtttt A starry sky is generated. The stars are created
- by the same algorithm used for the stars that sur-
-
-
-
- Page 4 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- round planet pictures, but the output consists ex-
- clusively of stars.
-
- ----ppppoooowwwweeeerrrr _f_a_c_t_o_r
- Sets the ``power factor'' used to scale elevations
- synthesised from the FFT to _f_a_c_t_o_r, which can be
- any floating point number greater than zero. If
- no factor is specified a default of 1.2 is used if
- a planet is being generated, or 0.75 if clouds are
- selected by the ----cccclllloooouuuuddddssss option. The result of the
- FFT image synthesis is an array of elevation
- values between 0 and 1. A non-unity power factor
- exponentiates each of these elevations to the
- specified power. For example, a power factor of 2
- squares each value, while a power factor of 0.5
- replaces each with its square root. (Note that
- exponentiating values between 0 and 1 yields
- values that remain within that range.) Power fac-
- tors less than 1 emphasise large-scale elevation
- changes at the expense of small variations. Power
- factors greater than 1 increase the roughness of
- the terrain and, like high fractal dimensions, may
- require a larger FFT mesh size and/or higher
- screen resolution to look good.
-
- ----ssssaaaattttuuuurrrraaaattttiiiioooonnnn _s_a_t
- Controls the degree of colour saturation of the
- stars that surround planet pictures and fill star-
- ry skies created with the ----nnnniiiigggghhhhtttt option. The de-
- fault value of 125 creates stars which resemble
- the sky as seen by the human eye from Earth's sur-
- face. Stars are dim; only the brightest activate
- the cones in the human retina, causing colour to
- be perceived. Higher values of _s_a_t approximate
- the appearance of stars from Earth orbit, where
- better dark adaptation, absence of skyglow, and
- the concentration of light from a given star onto
- a smaller area of the retina thanks to the lack of
- atmospheric turbulence enhances the perception of
- colour. Values greater than 250 create ``science
- fiction'' skies that, while pretty, don't occur in
- this universe.
-
- Thanks to the inverse square law combined with
- Nature's love of mediocrity, there are many, many
- dim stars for every bright one. This population
- relationship is accurately reflected in the skies
- created by ppppppppmmmmffffoooorrrrggggeeee. Dim, low mass stars live
- much longer than bright massive stars, consequent-
- ly there are many reddish stars for every blue gi-
- ant. This relationship is preserved by ppppppppmmmmffffoooorrrrggggeeee.
- You can reverse the proportion, simulating the sky
-
-
-
- Page 5 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- as seen in a starburst galaxy, by specifying a
- negative _s_a_t value.
-
- ----sssseeeeeeeedddd _n_u_m Sets the seed for the random number generator to
- the integer _n_u_m. The seed used to create each
- picture is displayed on standard output (unless
- suppressed with the ----qqqquuuuiiiieeeetttt option). Pictures gen-
- erated with the same seed will be identical. If
- no ----sssseeeeeeeedddd is specified, a random seed derived from
- the date and time will be chosen. Specifying an
- explicit seed allows you to re-render a picture
- you particularly like at a higher resolution or
- with different viewing parameters.
-
- ----ssssttttaaaarrrrssss _f_r_a_c_t_i_o_n
- Specifies the percentage of pixels, in tenths of a
- percent, which will appear as stars, either sur-
- rounding a planet or filling the entire frame if
- ----nnnniiiigggghhhhtttt is specified. The default _f_r_a_c_t_i_o_n is 100.
-
- ----xxxxssssiiiizzzzeeee||||----wwwwiiiiddddtttthhhh _w_i_d_t_h
- Sets the width of the generated image to _w_i_d_t_h
- pixels. The default width is 256 pixels. Images
- must be at least as wide as they are high; if a
- width less than the height is specified, it will
- be increased to equal the height. If you must
- have a long skinny pixmap, make a square one with
- ppppppppmmmmffffoooorrrrggggeeee, then use ppppnnnnmmmmccccuuuutttt to extract a portion of
- the shape and size you require.
-
- ----yyyyssssiiiizzzzeeee||||----hhhheeeeiiiigggghhhhtttt _h_e_i_g_h_t
- Sets the height of the generated image to _h_e_i_g_h_t
- pixels. The default height is 256 pixels. If the
- height specified exceeds the width, the width will
- be increased to equal the height.
-
- All flags can be abbreviated to their shortest unique pre-
- fix.
-
- BBBBUUUUGGGGSSSS
- The algorithms require the output pixmap to be at least as
- wide as it is high, and the width to be an even number of
- pixels. These constraints are enforced by increasing the
- size of the requested pixmap if necessary.
-
- You may have to reduce the FFT mesh size on machines with 16
- bit integers and segmented pointer architectures.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- ppppnnnnmmmmccccuuuutttt(1), ppppnnnnmmmmddddeeeepppptttthhhh(1), ppppppppmmmmddddiiiitttthhhheeeerrrr(1), ppppppppmmmmqqqquuuuaaaannnntttt(1), ppppppppmmmm(5)
-
- [1] Voss, Richard F., ``Random Fractal Forgeries,'' in
-
-
-
- Page 6 (printed 9/7/93)
-
-
-
-
-
-
- ppppppppmmmmffffoooorrrrggggeeee((((1111)))) XXXXEEEENNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV ((((22225555 OOOOccccttttoooobbbbeeeerrrr 1111999999991111)))) ppppppppmmmmffffoooorrrrggggeeee((((1111))))
-
-
-
- Earnshaw et. al., Fundamental Algorithms for Computer
- Graphics, Berlin: Springer-Verlag, 1985.
-
- [2] Peitgen, H.-O., and Saupe, D. eds., The Science Of
- Fractal Images, New York: Springer Verlag, 1988.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- John Walker
- Autodesk SA
- Avenue des Champs-Montants 14b
- CH-2074 MARIN
- Suisse/Schweiz/Svizzera/Svizra/Switzerland
- Usenet: kelvin@Autodesk.com
- Fax: 038/33 88 15
- Voice: 038/33 76 33
-
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, without any conditions or restric-
- tions. This software is provided ``as is'' without express
- or implied warranty.
-
- PPPPLLLLUUUUGGGGWWWWAAAARRRREEEE!!!! If you like this kind of stuff, you may also enjoy
- ``James Gleick's Chaos--The Software'' for MS-DOS, available
- for $59.95 from your local software store or directly from
- Autodesk, Inc., Attn: Science Series, 2320 Marinship Way,
- Sausalito, CA 94965, USA. Telephone: (800) 688-2344 toll-
- free or, outside the U.S. (415) 332-2344 Ext 4886. Fax:
- (415) 289-4718. ``Chaos--The Software'' includes a more
- comprehensive fractal forgery generator which creates
- three-dimensional landscapes as well as clouds and planets,
- plus five more modules which explore other aspects of Chaos.
- The user guide of more than 200 pages includes an introduc-
- tion by James Gleick and detailed explanations by Rudy Ruck-
- er of the mathematics and algorithms used by each program.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 7 (printed 9/7/93)
-
-
-
-