Since
1989, Dr. Michael J. Gourlay has been writing programs in C almost
entirely on UNIX systems. He has worked on computer animations, image
procesing, and scientific data visualization software both professionally
and as a hobby. His Ph.D. is in physics in computational fluid dynamics
and he has the coursework equivalent of a bachelor's degree in computer
science. Although he's held the title of UNIX system adminstrator now
and then over the past 9 years, his current position of Research
Scientist with Colorado Research Associates involves visualization
of large 3D data sets which rely heavily on volume rendering.
CL: What initally drew you to Linux
as an operating system and developers' tool?
MG: I've written programs using
the X Window System almost as long as I've been writing C code, but
before Linux was around, I had always prefered using Unix to the other,
less refined operating systems. I tended not to have a machine at home
because I could not afford a computer that ran Unix (since I was a poor
student). I knew about Minix but found it horribly lacking and annoying.
When BSD386 came out I tried it but it was extremely buggy. When Linux
finally came out and was more or less stable, it was a natural choice
for me to use it. Linux allowed me to use at home the operating system
I prefered. I had heard of the GNU project when it began and was sympathetic
to their ideals. I had written a few programs and always allowed other
people to use the source code I wrote. Very few of those programs were
worth the attention of other people, though. Probably the only other
program I wrote before XMorph that might have potentially gained popular
appeal was an X Window System version of missile command, except that
my version employed a slightly more realistic physical model of how
balistic missiles fall from the sky. I used that program as an example
to myself of how to write a widget. I never really pursued making it
widely available.
CL: What is Xmorph?
MG: Xmorph is a program that allows
the user to create coordinate meshes, and which digitally warps and
dissolves, or morphs, images. Xmorph uses the X Window System for its
graphical user interface (GUI). The image processing functionality is
a separate set of code which can be used as a library to write morphing
programs in other GUIs. The morphing library is standard C and should
be easily portable to any operating system. I wrote the rudiments of
a TCL/Tk version of Xmorph, and that was called Tkmorph. The intention
was to have a program that would run under any operating system that
TCL/Tk worked under. The Simplified Wrapper Interface Generator (SWIG)
was used to create the TCL bindings of the morph library. Tkmorph never
got finished due to a lack of interest from other people, and because
of discouragement from Richard Stallman to use TCL/Tk.
CL: What initially prompted you
to create Xmorph?
MG: At the time I wrote Xmorph,
morphing was relatively new as a special effects technique, and there
were not very many programs to accomplish the task. As far as I knew,
none of the available programs were for Unix/X Window System architectures,
and I was positive that there were none which were freely available.
Also, I knew how to write the algorithms since they were published in
a book called Digital Image Warping, by George Wolberg.
CL:What kinds of hardware, software,
and what flavor(s) of Linux were used in the creation of XMorph?
MG: The original version was written
in 1993 under HPUX on an HP 9000/700. At the same time, I made sure
Xmorph would compile and run under SunOS (now called Solaris) and SGI
IRIX. When Linux became stable, I also made sure Xmorph worked under
Linux on various Intel-based boxes. As other people would port Xmorph
to various machines, I would incorporate changes to the distributed
code. The changes were mostly in the Makefile. Some additional changes
included support for monochrome and truecolor displays. Xmorph also
has the ability to have its colormapping technique use a configurable
number of bits per channel. Since I wrote Xmorph, other open source
morphing programs have been written for the X Window System but I know
of none which are still maintained.
CL: How does Xmorph work with GIMP?
MG: Xmorph is a stand-alone application
that is also a GIMP plug-in. The plug-in code was written by Gordon
Matzigkeit. When Xmorph is compiled with the plug-in support and properly
installed, Xmorph is invoked from within GIMP as any other plug-in is
invoked.
CL: What do you have planned for
the future, both for XMorph and for any other tool you may be devoloping?
MG: For Xmorph, I add features on
demand. When other people ask for a certain feature, I encourage them
to implement the code so that I can include it into the distribution.
If I am able, and I have enough time, I implement other features. It
would be nice to have Xmorph ported to ther GUIs such as Lesstif, GTK,
or Qt, and to other operating systems, such as MS Windows and Macintosh.
You can contact Dr. Michael J. Gourlay at 303-415-9701x203, fax:303-415-9702,
or by e-mail at Michael.Gourlay@colorado-research.com.
His home page is located at http://www.colorado-research.com/~gourlay.
Information on Xmorph can be found at http://www.colorado-research.com/~gourlay/software/Graphics/Xmorph/.
Check out the
Xmorph tutorial here!