---------------------------------------------------------------------------- The Florida SunFlash KHOROS SunFLASH Vol 38 #3 February 1992 ---------------------------------------------------------------------------- This is an announcement about a public domain image processing (and more) project from the Department of Electrical and Computer Engineering at the University of New Mexico. Ftp and mail instructions are included. -johnj ---------------------------------------------------------------------------- AN ENVIRONMENT FOR INFORMATION PROCESSING, DATA VISUALIZATION, AND SOFTWARE DEVELOPMENT THE KHOROS PROJECT The main goal of the Khoros software project is to create and provide an integrated software development environment for information pro- cessing and data visualization. The Khoros software system is now being used as a foundation to improve productivity and promote software reuse in a wide variety of application domains. A powerful feature of the Khoros system is the high-level, abstract visual language that can be employed to significantly boost the productivity of the researcher. Central to the Khoros system is the need for a consistent yet flexible user interface development system that provides cohesiveness to the vast number of programs that make up the Khoros system. Automated tools assist in maintenance as well as development of programs. The software structure that embodies this system provides for extensibil- ity and portability, and allows for easy tailoring to target specific application domains and processing environments. OVERVIEW The Khoros system integrates multiple user interface modes, code gen- erators, instructional aids, data visualization, distributed computing and information processing. The result is a comprehensive tool for computational research and development. The Khoros infrastructure consists of six major subsystems: (1) A high-level visual language that may be extended to fit the application domain. (2) A user interface development system consisting of a User Inter- face Specification (UIS) and code generators that use the UIS to generate code for all programs created under the Khoros system. (3) An interoperable data exchange format (VIFF) supported by a comprehensive automatic storage conversion library. (4) Application specific data display and processing libraries; image processing, digital signal processing, numerical analysis, data and file conversion, graphics display, and image display. (5) A set of interactive X Windows-based programs address such areas as image display, colormap manipulation, animation, plotting, warping of image data, and surface visualization. (6) A set of meta-system calls provide a foundation for distributed computing and efficient data transport. Khoros provides user selectable compute locations via the visual language, computer supported cooperative work via a distributed X mechanism, and remote access to data via a distributed data transport server. The software structure that embodies this system provides for extensi- bility and portability, and allows for easy tailoring to target specific application domains and processing environments. Khoros is a successful demonstration of how research programming, application pro- gramming, information processing, data visualization, instruction, documentation, and maintenance can be integrated to build a state-of- the-art software environment. THE VISUAL LANGUAGE The visual language of Khoros, cantata, is a graphically expressed, data-flow oriented language. The user builds a cantata application program ("workspace") by connecting processing nodes ("glyphs") to form a data flow graph. Glyphs are selected from the many library routines available with Khoros; the user may also create new library routines using the Khoros user interface development system, and make them available to cantata. The visual language is considered to be large-grain because each glyph represents an entire program. "Con- trol" glyphs (providing if/else conditions, loops, etc) and a expres- sion parser extend the functionality of the underlying data flow methodology. Visual "procedures", each representing a segment of the network of glyphs in a workspace, can be used to add structure to the visual language and help to manage the complexity often associated with visual programming. A dynamic execution scheduler allows the user to interactively execute the entire flow graph across a heterogeneous computer network. The execution can be set to either a demand driven or data driven model depending on the application and desired level of interactivity. USER INTERFACE DEVELOPMENT SYSTEM The framework of every program in the Khoros system is defined by a User Interface Specification. This high-level specification is used with automatic code generators that allow Khoros programs to combine a UNIX-like command line user interface (CLUI) with an X-Windows based graphical user interface (GUI). Khoros programs can be easily incorporated into the visual language that is an integral part of the Khoros system; the use of the code generators ensures that program user interfaces and documentation are consistent and correct. In addition, the user interface development system provides a means of quickly prototyping new algorithms, encourages standard coding styles and methods, and can potentially make the user as productive in extending the system as the original programmers were in creating it. The software development tools listed below allow an end-user to act as a developer to extend the system. Program Name Description ----------------------------------------------------- preview GUI display tool composer GUI editor conductor code generation tool for a GUI's ghostwriter code generation tool for CLUI's kinstall source configuration & management tool The Khoros user interface development system provides features common to all applications, such as: (1) journal recording/playback & distri- buted user interfaces for X-Windows based applications, (2) re- arrangement of the graphical user interface without recompiling, (3) consistency of use, (4) standardized documentation format, and (5) consistent structured programming methodology and styles. INTEROPERABLE DATA EXCHANGE FORMAT The Khoros Visualization and Image File Format (VIFF) or data struc- ture supports general geometric objects, multidimensional data, and a robust mapping scheme. Storage type conversion between different architecture platforms is automatically performed by the meta-system read and write utilities; for example, DEC VAX floating point data is automatically converted to IEEE format if read on a SUN computer. The consistent use of the Khoros data structure promotes an algorithm library that can be used in many disciplines and supports data exchange. As Khoros expands, there will be a need to support a set of "standard" file formats. Currently, Khoros provides for data interchange with other systems via file format converters. Khoros supports the follow- ing file formats: TIFF, pbm, BIG, DEM, DLG, ELAS, FITS, Matlab, SUN raster, TGA, and xbm. DATA PROCESSING LIBRARIES Khoros includes libraries of programs that can operate on point data, one-dimensional data, two-dimensional data, multiband data or N- dimensional vector data. These operators are designed to be polymorphic, or in other words they function on bit, byte, short, integer, float and complex data types. The term also implies that the functions know to operate differently depending on the dimensionality or organization of the data. There are two interface levels defined in the library functions in Khoros; the program or process interface and the function call or pro- cedure interface. The program interface is determined completely by the high-level user interface specification described above. The pro- cedure interface is currently not as well defined, but allows the pro- cedures (functions) to be easily combined into a single program. As a note, visual programs are built by executing a set of programs using the program interface. The libraries contain over 260 programs, in the following categories: arithmetic, classification, color conversion, data conversion, file format conversion, feature extraction, frequency filtering, spatial filtering, morphology filtering, geometric manipulation, histogram manipulation, statistics, signal generation, linear operations, seg- mentation, spectral estimation, subregion, and transforms. In addition, high-level graphics and display libraries are available to those who wish to create new X-Windows based applications under Khoros. These libraries act as a "visualization toolkit" that is lay- ered on top of Xlib, Xtk and the Athena Widgets. Library Description --------------------------------------------- forms graphical user interface utils pop-up browsers, errors, help, etc. gaphics 2D/3D graphics; X, Postscript, HPGL display image display & editing X WINDOWS APPLICATIONS The interactive graphical user interface programs that are part of Khoros are based on MIT X11R4 and the Athena widgets. Such applica- tions written under the Khoros system are automatically endowed with a journal record and playback capability that is useful for demonstra- tion and instructional purposes. Taken a step farther, the journal record/playback capability was extended to work on multiple displays simultaneously with a "distributed user interface controller". This distributed user interface empowers users to execute a Khoros applica- tion which not only will appear on multiple displays simultaneously, but which can also receive input from each of the users. Still under development, the distributed user interface controller will provide a more sophisticated mechanism for instructional and demonstration purposes, as well as a powerful tool for a long- distance, collaborative approach to problem solving. Program Name Description ----------------------------------------------------------- cantata visual programming language editimage image display & manipulation animate image sequence display xprism2 and xprism3 2D and 3D plotting packages viewimage surface visualization warpimage image registration and warping concert distributed user interface controller META-SYSTEM FOUNDATION Khoros is designed to operate and fully utilize a heterogeneous com- puting environment. The meta-system library provides a set of func- tion calls that extend the standard UNIX system calls to provide a network level interface. As an example, the kopen() function can open a standard file on the local host as well as open access to: a remote file, a socket, shared memory, a pipe, a stream, or SUN's Virtual Memory. This simple interface provides access to network wide data transport. The application programmer benefits from the meta-system because the task of writing distributed applications is simplified. The end user benefits from the meta-system by being able to select compute loca- tions via cantata and by being able to access remote data transparently. The careful integration of the six Khoros subsystems summarized above allow it to act as a distributed collaboration environment. HISTORY The Khoros project has been underway at the Department of Electrical and Computer Engineering at the University of New Mexico since January of 1987. Previously named "XVision", the project has undergone tremendous changes in focus and scope since its beginning. Originally conceived as a tool to improve the productivity of research, initial software was developed to provide a consistent command line user interface for an existing library of image processing programs. The project quickly expanded to contain an image display program, a plot- ting package, and code generators to automate the creation of code that was common to all programs. A visual language was developed to provide users with a more con- venient and intuitive access to the capabilities offered by the bur- geoning image processing library. Other libraries were developed to address problems in digital signal processing, numerical analysis, data conversion, and remote sensing. A number of new graphical and image display packages were developed to meet the demands of the users, while the user interface development system matured in order to meet the demands of the rapidly growing project. The distributed user interface was implemented experimentally, to support the concept of groupware; reactions have been extremely favorable so far. CURRENT STATUS OF KHOROS (Patch Level 4) The Khoros system has been applied to a diverse spectrum of areas including medical research, ecological studies, remote sensing, vir- tual reality, telecommunications, and optics. The Khoros project con- tinues to evolve as new developments occur in the continued research and development of software environments for information processing, data visualization and software development. Khoros is being used as a teaching tool at several Universities. Release 1.0 of Khoros was offered free of charge via public ftp access on May 10, 1991; updates have since been provided in patch form. Release 2.0 of Khoros is expected to be out in late 1992. The documentation for the system is a combination of on-line help and printed manuals. The manual is made up of three separate volumes: User's Manual, Programmer's Manual, and Reference Guide. Also, jour- nal playback files are provided to give the new user "live" demonstra- tions of the various applications. Khoros currently runs on APOLLO, CRAY, DEC, HP, IBM, OMRON, MIPS, NeXT, SGI and SUN platforms, and there are porting efforts for 386/486, CONVEX, DG and MacII platforms. Khoros is now available via anonymous ftp at no charge (from pprg.eece.unm.edu, 129.24.24.10, in the /pub/khoros directory), or a tape and printed documentation can be ordered for $250.00. Support is provided via both a mail user's group and USENET News in which hundreds of users are now members. For more information, send e-mail to khoros-request@chama.eece.unm.edu. ======================================================================= ======================================================================= KHOROS 1.0 (Patch Level 4) RELEASE ANNOUNCEMENT INTRODUCTION Khoros is an integrated software development environ- ment for information processing and visualization, based on X11R4. Khoros components include a visual programming language, code generators for extending the visual language and adding new application packages to the system, an interactive user interface editor, an interactive image display package, an extensive library of image processing, numerical analysis and signal processing routines, and 2D/3D plotting packages. X Windows Applications Animate - Interactive Image Sequence Display Tool Cantata - Extensible Visual Programming Language Concert - A system for distributed X user interfaces (groupware) Editimage - Interactive Image Display & Manipulation Program Xprism2 and Xprism3 - Comprehensive 2D and 3D Plotting Packages Viewimage - A basic interactive program for surface rendering Warpimage - An interactive program for registering and warping images Data Processing Algorithms Khoros contains over 260 programs, in the following categories: arithmetic, classification, color conversion, data conversion, file format conversion, feature extraction, frequency filtering, matrix algebra (LINPACK and EISPACK), spatial filtering, morphology filtering, geometric manipula- tion, histogram manipulation, statistics, signal generation, linear operations, segmentation, spectral estimation, sub- region, and transforms. Khoros supports the following file formats: TIFF, pbm, BIG, DEM, DLG, ELAS, FITS, MATLAB, Sun raster, TGA, and xbm. User Interface Tools Preview - Graphical User Interface Display Tool Composer - Interactive Graphical User Interface Editor Conductor - Code Generation Tool for a Graphical User Interface Ghostwriter - Code Generation Tool for a Command Line User Interface Source Configuration & Management - Tools to install and maintain a distributed source tree. KHOROS DISTRIBUTION METHODS 1) Anonymous FTP Khoros is available via anonymous ftp from pprg.eece.unm.edu (129.24.24.10). Use your e-mail address as the password (for example, ralph@whizbang.wmu.edu). Once you have logged in, cd to the "pub/khoros/release" directory and get the ascii file install.ftp. This file will give you complete instructions on how to get Khoros and install it on your system. To get this file, execute the following commands or steps: a. Use ftp to connect to pprg.eece.unm.edu. % ftp pprg.eece.unm.edu -or- % ftp 129.24.24.10 b. Use "anonymous" or "ftp" as the user name. Name (pprg.eece.unm.edu:login): anonymous -or- Name (pprg.eece.unm.edu:): ftp c. Use your e-mail address as the password; please carefully use a valid e-mail address, as this ver- sion site logs all anonymous ftp's. Password (pprg.eece.unm.edu:user): {your valid e- mail address} 331 Anonymous login ok, use your E-MAIL address as the password. 230 Guest login ok, access restrictions apply. d. Get the release notes for acquiring Khoros via anonymous ftp (note that "install.ftp" is the plain text file - both ".ms" and ".ps" files are available for those who would like them). ftp> cd /pub/khoros/release ftp> get install.ftp 2) Tape and Printed Documentation If you would like to order a tape and printed documentation, fill out the order form below (last page). The cost is, $250.00 (US and Canada) and $350.00 (International). Please include a check or purchase order payable to UNM EECE Dept., in U.S. funds. If you need additional information or confirmation of your order, call the Khoros Group at 505-277-0806 and leave a message. All communication to the Khoros group should be via e- mail. If you have questions, comments or problems of a gen- eral nature, then either mail the Khoros mailing list (khoros@chama.eece.unm.edu), or post to the Khoros USENET news group (comp.soft-sys.khoros). To subscribe to the mailing list, mail to khoros-request@chama.eece.unm.edu. Once you have the system and want to report bugs, mail to khoros-bugs@chama.eece.unm.edu. KHOROS REQUIREMENTS AND LIMITATIONS To run Khoros, you must have a UNIX platform running the X11R3, X11R4, X11R5, or OpenWindows servers. The Khoros system consists of ~450,000 lines of C code; you will need a maximum of 120 Megabytes of storage for source, documenta- tion and binaries. To compile Khoros, the system requires X11R4 (patch levels 1-18) or X11R5 client software from MIT and an additional 50 Megabytes of storage. ----------------------------------------------------------------------------- Khoros 1.0, patch level 4 Compiles On These Machines (MIT X unless otherwise noted) ------------------------------------------------------------------------------ Vendor Name Configuration --------+--------------------------+------------------------------------------- Apollo | DN10000 | OS 10.3, Fortran 10.8, cc 6.8 | | CRAY | XMP, YMP, Cray 2 | UNICOS 6.1 | | DEC | 5000/3100 | Ultrix 4.2, mips cc 2.0, DEC f77 V3.0-2 | | DEC | Vax 3600 | Ultrix 4.1, cc1.37.1 | | HP | HP9000/* | HP-UX 7.05, HP-UX 8.05 | | IBM | RS/6000 | AIX v3.x | | OMRON | Luna88k | Mach 2.5, gcc 1.37, f77 1.8.5 | | MIPS | Magnum 3000 | RISCOS 4.51, cc 2.11, f77 2.11, X 4.0 | | NeXT | 68030,40 | MACH 2.0, gcc 1.37, Absoft f77 2.0, | | Pensoft X | | SGI | All | OS 3.3.2, OS 4.0, X11 1.2, f77 3.3 | | SUN | SPARCstations, SUN4/* | SUN OS 4.1.1, f77 1.3.1 | | SUN | SUN3/* | SUN OS 4.1.1, f77 1.3.1, gcc 1.39 ------------------------------------------------------------------------------- The Khoros user community has ported Khoros to various other platforms such as the Convex, the Sequent, Data Gen- eral Aviion, MacII, and 386/486 machines. At this time, these platforms are not directly supported by the Khoros Group. KHOROS CONSORTIUM If your organization is interested in distributing the Khoros software system, and/or supporting further research and development of software environments for data processing and visualization please contact Tom Sauer at the address below or e-mail consort@chama.eece.unm.edu. Tom Sauer, Khoros Consortium Department of EECE, Room 110, University of New Mexico Albuquerque, NM 87131 ============================================================================= C U T H E R E ============================================================================= KHOROS Room 110 Department of EECE University of New Mexico Albuquerque, NM 87131 SHIP TO: ----------------------------------------------------------- ----------------------------------------------------------- ----------------------------------------------------------- ----------------------------------------------------------- PHONE NUMBER: ----------------------------------------------------------- E-MAIL ADDRESS: ----------------------------------------------------------- PURCHASE ORDER NUMBER: ----------------------------------------------------------- CREDIT CARD ORDERS - Please include the type of credit card, your credit card number, and its expiration date. In order to process your order, we need to have your full name (as it appears on the card) and also a number where we can reach you during the day. NAME (as it appears on credit card): ----------------------------------------------------------- CREDIT CARD NUMBER: ----------------------------------------------------------- EXPIRATION DATE and CARD TYPE: ----------------------------------------------------------- Media: (Please circle one of the following types of media) 1) DC600A cartridge tape 2) DC6250 cartridge tape 3) 9-track tape (1/2 inch, 1600bpi) 4) 9-track tape (1/2 inch, 6250bpi) 5) DAT 4mm tape Binaries: (If you would like a compiled version of Khoros, please circle one of the following machine architectures) 1) DEC MIPS (Ultrix 4.2) 2) SUN3 (SunOS 4.1.1) 3) SUN4, SPARCstation (SunOS 4.1.1b) 4) SGI (OS 4.0) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ For information send mail to info-sunflash@sunvice.East.Sun.COM. Subscription requests should be sent to sunflash-request@sunvice.East.Sun.COM. Archives are on solar.nova.edu, paris.cs.miami.edu, uunet.uu.net, src.doc.ic.ac.uk and ftp.adelaide.edu.au All prices, availability, and other statements relating to Sun or third party products are valid in the U.S. only. Please contact your local Sales Representative for details of pricing and product availability in your region. Descriptions of, or references to products or publications within SunFlash does not imply an endorsement of that product or publication by Sun Microsystems. John McLaughlin, SunFlash editor, flash@sunvice.East.Sun.COM. (305) 776-7770.