ppmforge man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

ppmforge(1)							   ppmforge(1)

       ppmforge - fractal forgeries of clouds, planets, and starry skies

       ppmforge [-clouds] [-night] [-dimension dimen] [-hour hour]
		[-inclination|-tilt angle] [-mesh size] [-power factor]
		[-glaciers level] [-ice level] [-saturation sat] [-seed seed]
		[-stars fraction] [-xsize|-width width] [-ysize|-height

       ppmforge	 generates  three  kinds  of ``random fractal forgeries,'' the
       term coined by Richard F. Voss of the IBM  Thomas  J.  Watson  Research
       Center for seemingly realistic pictures of natural objects generated by
       simple algorithms embodying  randomness	and  fractal  self-similarity.
       The techniques used by ppmforge are essentially those given by Voss[1],
       particularly the technique of spectral synthesis explained in more  de‐
       tail by Dietmar Saupe[2].

       The  program  generates	two varieties of pictures: planets and clouds,
       which are just different renderings of data generated 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  synthe‐
       sised directly from pseudorandom numbers.

       The  generation	of planets or clouds begins with the preparation of an
       array of random data in the frequency domain.  The size of this	array,
       the  ``mesh  size,''  can  be set with the -mesh option; the larger the
       mesh the more realistic the pictures but the calculation time and memo‐
       ry  requirement	increases as the square of the mesh size.  The fractal
       dimension, which you can specify with the -dimension 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 trans‐
       form is performed upon it.  This converts the original random frequency
       domain data into spatial amplitudes.  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 ap‐
       plying a ``power law scale'' to it  with	 the  -power  option.	 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  re‐
       places  the numbers in the mesh with their cubes.  Power law scaling is
       best envisioned by thinking of the data as representing	the  elevation
       of  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  con‐
       taining	numbers	 that range from 0 to 1.  The pixmaps are generated as

       Clouds	 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.

       Planet	 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 approximate‐
		 ly  like  the	Earth's	 is simulated; its light absorption is
		 calculated to create a blue cast around the limb of the plan‐
		 et.   A  function that rises from 0 to 1 based on latitude is
		 modulated 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 apparent colour of each pixel of the planet is
		 calculated 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 primary star is the only source of illumi‐
		 nation).  Additional random data are used to  generate	 stars
		 around the planet.

       Night	 A  sequence of pseudorandom numbers is used to generate 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 pic‐
       tures often contain tens of thousands of colours	 which	must  be  com‐
       pressed	with  ppmquant or ppmdither before encoding in a colour mapped
       format.	If the display resolution is high enough, ppmdither  generally
       produces	 better	 looking  planets.   ppmquant tends to create discrete
       colour bands, particularly in the oceans,  which	 are  unrealistic  and
       distracting.   The  number  of colours in starry sky pictures generated
       with the -night option depends on the value specified for  -saturation.
       Small values limit the colour temperature distribution of the stars and
       reduce the number of colours in the image.  If the -saturation  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 dif‐
       ferent  star colours often look best when colour compressed by pnmdepth
       rather than ppmquant or ppmdither.  Try newmaxval settings of  63,  31,
       or  15  with pnmdepth to reduce the number of colours in the picture to
       256 or fewer.

       -clouds	 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.

       -dimension dimen
		 Sets the fractal dimension to the specified dimen, which  may
		 be  any floating point value between 0 and 3.	Higher fractal
		 dimensions create  more  ``chaotic''  images,	which  require
		 higher	 resolution  output and a larger FFT mesh size to look
		 good.	If no dimension is specified, 2.4 is used when	gener‐
		 ating planets and 2.15 for clouds.

       -glaciers level
		 The floating point level setting controls the extent to which
		 terrain elevation causes ice to appear	 at  lower  latitudes.
		 The  default value of 0.75 makes the polar caps extend toward
		 the equator 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, simulat‐
		 ing planets in the midst of an ice age.  Lower values tend to
		 be boring, resulting in unrealistic geometrically-precise ice
		 cap boundaries.

       -hour hour
		 When generating a planet, hour is used as the ``hour angle at
		 the central meridian.''  If you specify -hour 12,  for	 exam‐
		 ple,  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
		 hour, but values which place most of the planet  in  darkness
		 (0  to 4 and 20 to 24) result in crescents which, while pret‐
		 ty, don't give you many illuminated pixels for the amount  of
		 computing  that's required.  If no -hour option is specified,
		 a random hour angle is chosen, biased so that only 25% of the
		 images generated will be crescents.

       -ice level
		 Sets  the  extent of the polar ice caps to the given floating
		 point level.  The default level of 0.4 produces ice caps sim‐
		 ilar to those of the Earth.  Smaller values reduce the amount
		 of ice, while larger -ice settings create more prominent  ice
		 caps.	 Sufficiently  large  values,  such as 100 or more, in
		 conjunction with small settings for -glaciers (try 0.1)  cre‐
		 ate ``ice balls'' like Europa.

       -inclination|-tilt angle
		 The inclination angle of the planet with regard to its prima‐
		 ry star is set to angle, which can be any floating point val‐
		 ue  from  -90 to 90.  The inclination angle can be thought of
		 as specifying, in  degrees,  the  ``season''  the  planet  is
		 presently  experiencing  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,  negative	values	summer	in  the southern hemi‐
		 sphere.  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	incli‐
		 nation	 angle	is specified, a random value between -21.6 and
		 21.6 degrees is chosen.

       -mesh size
		 A mesh of size by size will be	 used  for  the	 fast  Fourier
		 transform  (FFT).  Note that memory requirements and computa‐
		 tion speed increase as the square of size; 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  pro‐
		 duces	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
		 capacity, you may have to reduce the mesh size to avoid  run‐
		 ning  out  of	RAM.  Increasing the mesh size produces better
		 looking pictures; the difference becomes particularly notice‐
		 able  when  generating high resolution images with relatively
		 high fractal dimensions (between 2.2 and 3).

       -night	 A starry sky is generated.  The stars are created by the same
		 algorithm  used  for the stars that surround planet pictures,
		 but the output consists exclusively of stars.

       -power factor
		 Sets the ``power factor'' used to  scale  elevations  synthe‐
		 sised from the FFT to factor, which can be any floating point
		 number greater than zero.  If no factor is  specified	a  de‐
		 fault	of 1.2 is used if a planet is being generated, or 0.75
		 if clouds are selected by the -clouds option.	The result  of
		 the  FFT  image synthesis is an array of elevation values be‐
		 tween 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 exponen‐
		 tiating values between 0 and  1  yields  values  that	remain
		 within	 that  range.)	 Power	factors	 less than 1 emphasise
		 large-scale elevation changes at the expense of small	varia‐
		 tions.	  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.

       -saturation sat
		 Controls the degree of colour saturation of  the  stars  that
		 surround  planet  pictures and fill starry skies created with
		 the -night option.  The default value of  125	creates	 stars
		 which	resemble the sky as seen by the human eye from Earth's
		 surface.  Stars are dim;  only	 the  brightest	 activate  the
		 cones	in  the	 human retina, causing colour to be perceived.
		 Higher values of sat approximate the appearance of stars from
		 Earth	orbit,	where  better dark adaptation, absence of sky‐
		 glow, 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  re‐
		 flected  in  the  skies  created  by ppmforge.	 Dim, low mass
		 stars live much longer than bright massive stars, consequent‐
		 ly  there  are many reddish stars for every blue giant.  This
		 relationship is preserved by ppmforge.	 You can  reverse  the
		 proportion, simulating the sky as seen in a starburst galaxy,
		 by specifying a negative sat value.

       -seed num Sets the seed for the random number generator to the  integer
		 num.	The  seed  used to create each picture is displayed on
		 standard output (unless suppressed with the  -quiet  option).
		 Pictures  generated with the same seed will be identical.  If
		 no -seed 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.

       -stars fraction
		 Specifies  the	 percentage of pixels, in tenths of a percent,
		 which will appear as stars, either surrounding	 a  planet  or
		 filling the entire frame if -night is specified.  The default
		 fraction is 100.

       -xsize|-width width
		 Sets the width of the generated image to width	 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	speci‐
		 fied,	it will be increased to equal the height.  If you must
		 have a long skinny pixmap, make a square one  with  ppmforge,
		 then  use  pnmcut  to extract a portion of the shape and size
		 you require.

       -ysize|-height height
		 Sets the height of the generated image to height pixels.  The
		 default  height  is  256 pixels.  If the height specified ex‐
		 ceeds the width, the width will be  increased	to  equal  the

       All flags can be abbreviated to their shortest unique prefix.

       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  con‐
       straints are enforced by increasing the size of the requested pixmap if

       You may have to reduce the FFT mesh size on machines with 16 bit	 inte‐
       gers and segmented pointer architectures.

       pnmcut(1), pnmdepth(1), ppmdither(1), ppmquant(1), ppm(5)

       [1]  Voss,  Richard  F.,	 ``Random Fractal Forgeries,'' in 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.

	    John Walker
	    Autodesk SA
	    Avenue des Champs-Montants 14b
	    CH-2074 MARIN
	    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, with‐
       out any conditions or restrictions.  This  software  is	provided  ``as
       is'' without express or implied warranty.

       PLUGWARE!   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: Sci‐
       ence 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  compre‐
       hensive fractal forgery generator which creates three-dimensional land‐
       scapes as well as clouds and planets, plus five more modules which  ex‐
       plore  other  aspects  of Chaos.	 The user guide of more than 200 pages
       includes an introduction by James Gleick and detailed  explanations  by
       Rudy Rucker of the mathematics and algorithms used by each program.

				25 October 1991			   ppmforge(1)

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net