MANUAL CONTENTS

Preface

Volume I - Khoros User's Manual

    Chapter 1 - GETTING STARTED

    Chapter 2 - CANTATA

    Chapter 3 - XPRISM2

    Chapter 4 - XPRISM3

    Chapter 5 - EDITIMAGE

    Chapter 6 - ANIMATE

    Chapter 7 - WARPIMAGE

    Chapter 8 - VIEWIMAGE

    Chapter 9 - CONCERT

    Chapter 10 - OTHER PROGRAMS

Volume II - Khoros Programmers's Manual

    Chapter 1 - WRITING PROGRAMS / VIFF FORMAT

    Chapter 2 - USER INTERFACE SPECIFICATION

    Chapter 3 - PREVIEW

    Chapter 4 - COMPOSER

    Chapter 5 - GHOST ROUTINES

    Chapter 6 - CONDUCTOR

    Chapter 7 - EXAMPLES & TROUBLE SHOOTING

    Chapter 8 - KHOROS LIBRARIES

    Chapter 9 - CONFIGURATION MANAGEMENT

    Chapter 10 - INSTALLATION GUIDE

    Chapter 11 - KRAFTSMAN

Volume III - Khoros Reference Manual

    Chapter 1 - MAN (1) PAGES

    Chapter 2 - MAN (3) PAGES

Appendices

    Appendix A - Glossary

    Appendix B - Imake Symbols and Variables

The Khoros system has grown out of an effort to provide a more effective environment for research in image processing by supporting the rapid prototyping of imaging applications. It began in 1987 with the creation of the Vision Lab research group under Dr. John Rasure. The first step taken was to identify and assemble a collection of fundamental algorithms for image processing. In addition, a 2D/3D plotting package and an interactive image display/editor were written to provide tools for visualizing image data. The goal was to bring together a library of programs with a consistent, easy to use interface.

The next step was the search for a more user-friendly interface to the growing library, especially as applications became more sophisticated, drawing on larger numbers of routines in more complicated combinations. Since the results of image processing programs are typically visual, it seemed particularly appropriate that the means of obtaining those results should be visualized also. Therefore, it was natural to look to the exciting new applications of computer graphics, made available with the new generation of less expensive, high resolution workstations. The decision was made to base the graphical component on the X Windows network-transparent window system. Dependence on the Athena Widget set was kept at the lowest level so that it could be later replaced if a more suitable alternative was found.

Several different graphical user interfaces were considered, tried, and outgrown, with the best features of each retained for the next iteration. What finally emerged was a hybrid approach. A data flow graph, similar to the block diagrams already familiar to practitioners in the field of image/signal processing, is used to access and connect routines from the processing library. A graphical user interface is used to acquire additional information needed by those routines.

As the visual interface to the image processing library was evolving, so were tools to assist in the use of the system. Complete hand coding of programs for the image processing library gave way to the use of code generators. Development and maintenence tools were introduced to support the creation of command-line and graphical user interfaces to programs. A high level user interface specification was defined as the foundation for defining the user interface to library routines as well as the tools themselves.

The original simple, pipeline concept of the visual user interface was then extended to a complete, high-level, visual programming language by the addition of control constructs and visual hierarchy.

Meanwhile, other high level application programs were added to the system. At the same time, the image processing library was expanding at a rapid pace, and was joined by a digital signal processing library and an image file format conversion library. The graphics library, the image display library, and the expression parser matured as was necessitated by the needs of the new high level applications that required their services.

That the project ultimately proved successful is, as they say, "history." Usage of the system has expanded along with the library of algorithms, with new routines continually being added. The development of new routines has always been driven by a specific need. The applications of environmental monitoring and medical imaging have been primary contibutors to the current library which contains over 250 image/signal processing and pattern recognition algorithms.

Because image processing spans a variety of disciplines and generally demands high computational requirements from a system, it has provided a good test bed for the development of Khoros. The ultimate test will come when Khoros finally cuts loose of its domain specific mooring and takes flight with new and unrelated applications. This is only possible because the application specific layer has always been isolated from the interface. With the creation of a new library of information processing routines to represent the nodes of the visual language flow graph, Khoros will provide a powerful, extensible interface to an entirely new domain.

The Khoros system was created through the efforts of:

Danielle Argiro
Pascal Adam
Charlie Gage
Ramiro Jordan
Steve Jorgenson
Steve Kubica
Donna Koechner
John Rasure
John Salas
Tom Sauer
Carla Williams
Scott Wilson
Jeremy Worley
Mark Young

Important contributions to the Khoros system were made by:

Tait Cyrus, Greg Donohoe, Eric Engquist, Stephanie Hallett, Don Hush, Richard Krukar, Mike Lang, Shirley Lee, Per Lysne, Ron E. Neher, and Marcelo Teran.

Our sincere thanks are extended to these people provided valuable assistance and support:

Patrick Arnoul, James Brunt, Robin Corbet, Robert Estes, Dave Forslen, Jim Gosz, Chuck Hanson, Sakari Jalovaara, Dick Kruger, Philip Kegelmeyer, Al McPherson, Emiel Polman, John Salas, Jim White, Mathew Yeates, and Kurt Zeilenga.

Thanks to the following people for doing ports of Khoros to different architectures, providing changes to support different architectures, and/or for providing access to their systems:

Rob Armstrong, Dave Brooks, Robert Clark, Andrew J. Cole, Maurizio Davini, James Gallagher, Ping-Kang Hsiung, Konstantinos Konstantinides, Laura Lang, Reiner Lenz, George Lindholm, Brian Love, Hideo Noro, Bill Mermagen, Roque Oliveira, Bill Samoyoa, Bob Weaver, and Jim White.

Valuable legal services were provided by:

Bill Chappell, Chappell & Barlow
Al Sopp, UNM Patent Attorney

And special thanks to our extremely tolerant system managers:

John Salas, Mark Walker, Tom Konerth, and Richard McCracken