This is xpgs 2.5 - a suite of programs to design, generate and animate Single-Image Random Dots Stereograms (SIRDS) for the X Window System, and output Single-Image Stereograms (SIS) or autostereograms in a variety of formats.

There have been a deluge of dotty poster on sale in your high street shops (or shopping malls). This is a 'freeware' distribution that produces such images and is written to run using X11R6/5/4 (or even X11R3) graphics on any computer with an ANSI C compiler and Xlib.

Below is a history of the current and previous versions of this package.

Xpgs-2.5

The main innovation is a new SIRDS algorithm which has correct geometric perspective (that is, in both the horizontal and vertical directions) unlike other published ones such as Thimbleby et al's. The new method requires two z-buffers but memory requirements have been reduced (at the loss of some speed via repetition of certain routines).

Other significant improvements include a revamp of the scene setter (almost like a wireframe modeller) and colour smoothing in making SIS.

The xss format is different from the one defined in xpgs-2.0b. Xss can read the old xss files but writes out the new type only. You can easily tell which type xss files are by reading the first line.

The routines in polyh.c now support an environment variable or (logical in VMS speak) XPGS_DIR to contain the directory to find polyh files. If a polyh file referred to either on the command line or in an xss file can't be found in the current directory then the loading routine will look in the directory pointed to by XPGS_DIR.

Builtins can be loaded in xss. These include the presets triangle, square, box, cylinder, cone, torus, sphere & spring and the primitives polygon(), pyramid(), prism() & spiral() which need parameters.

Raw pgm and ppm files are now supported. PGS files are scraped because they were too limiting.

xss
Changed the interface. Two projection schemes - third angle and perspective. Mouse support includes click and drag on control panel especially with the cursor pad (the small window with the squares in it) where circles appear to help indicate the magnitude of the applied transformation - such as rotation. The THIRD mouse button (usually the right one) and the shift keys increases effects fivefold.

There are dialogue boxes which appear for file operations. These support arrow keys and emacs type editing keys and the mouse can be used to move the cursor.

To speed up drawing there is a bounding box toggle to draw only the bounding box of the current object.

sisgen
This is the equivalent of pgs2ppm but allows both xss and p?m files for input, the numerous options include different smoothing and tiling methods for SIS generation.

Also does SIRDS with three different colouring options for b&w, grey-scale and colour random tiles.

mkpolyh
A program for you to change to make polygonal nets of functions z = f(x,y).
xpgs
A little friendly than the old version. Not much changed on the surface.
cvtoppm
Equivalent of cvtopgs, but we are using p?m depth maps now. Does polyh, xss and rle to p?m conversions.
Actually the standard free paint packages such as XPaint are not very useful for editing continuous colour images. There is room for someone to write some free tools to do gradient fills, colour filters, colour washes, shade manipulations and other things handy for changing depth maps.
vpgs
Inputs p?m depth maps now.
cvtopolyh
More or less unchanged.

Xpgs-2.0

Changes since last version (1.8):
xpgs
A new density option for random dots. Multiple objects can used to make a SIRDS using the xss format (more on this later). A compile-time option to use XImages instead of Pixmaps to animate SIRDS.
vpgs
No major changes apart from the density option.
cvtopolyh
Renamed from 3dtopolyh, debugged a little. Now includes a check for redundant vertex points.
xss
A new program. It is an interactive scene setter which lets you manipulate 3D objects for use in xpgs. It also defines the axis that xpgs rotates objects about. The resultant scene can be saved in a xss file.
pgs2ppm
Another new program to let you create colour SISs using data saved in the pgs format from xpgs. On Unix machines, it allows the result to be piped to xv for viewing, converting and saving.
cvtopgs
The final new utility which lets you convert pgs files to/from pgm files (the portable bitmap formats). Resizing either kind of files is permissible too.
Overall, there is more flexibility. Image outputs are configurable in size. Both PS and pgs outputs can depict scenes as large as memory permits. The Postscript output can also be in grey scale with specified density. The SIRDS algorithm has been tweaked again to run faster on "lower" machines, there is a compile-time option to choose whether you use the old or new hidden surface algorithms.

Xpgs-1.8

This suite of programs is an updated version of xps with various improvements and changes:

Xps-1.0

xps
a program to generate and output SIRDS of objects defined by polygon faces, the display is an X windows. It animates the object rotating about a randomly- chosen axis by making and storing frames of pixmaps. Any frame can be save in either XBitMap or PostScript format.

Distribution

This suite of programs will be put onto alt.sources in a shar'd form.

You can get it by anon ftp from:

katz.anu.edu.au (150.203.7.91)
main SIRDS archive
hpux.csc.liv.ac.uk (138.253.42.172)
HP-UX archive and its mirrors:
and
avalon.vislab.navy.mil (129.131.31.225)
main repository of 3D objects, associated programs and information

Further information and resources

The main SIRDS archive is katz (address above), this holds lots of pictures, programs, the alt.3d SIRDS FAQ and a paper on SIRDS.

Also, with popularity of the WWW, there are now many SIRDS web pages. The pages maintained by the author are at

which holds a copy of the FAQ, a gallery of SIRDS and SIS produced using programs written by Gareth Richards (responsible for SIRDSAni for PCs) and me (xpgs), a short article on autostereograms (including an explanation of the algorithms for making SIRDS) and many links to other SIRDS pages throughout the world.

IMPORTANT NOTICE

I would like to thank Max Calvani for being a guinea pig and testing this release (2.5) of xpgs. Also thanks goes to Luke Hutchison for his suggestions and new ideas on SIRDS algorithms.

Any feedback, reactions, suggestions, hacks, contributions, constructive criticisms, donations of large amounts of money, etc. would be most welcomed.

Send your responses to

Peter Chang: peter.chang at nottingham.ac.uk


Go back to get programs