From: sauer@chama.eece.unm.edu (Tom Sauer)
Newsgroups: comp.soft-sys.khoros
Subject: Khoros FAQ
Date: 16 Nov 92 17:41:43 GMT



		FREQUENTLY ASKED QUESTIONS ABOUT KHOROS

				last updated:
				     Sept Oct 3, '92 -- total reorganization
                                                        moved some questions
 							to Compile FAQ 
		( Please Read!  Please Redistribute! )

		( Also - Please See the Khoros FAQ for Compiling )

	  Contents:  Questions 1 - 47
		 
		     * Introductory Khoros
		     * Mailing List, News Group, User Support, Etc
		     * General Khoros
		     * Manuals, Documentation, Man Pages
		     * 24 Bit Displays
		     * Problems With Displaying Images
		     * Problems with SGI 
		     * Annotations, Editimage, Xprism2/3, Animate  
		     * Problems with Graphical User Interface 
		     * and more

------- Introductory Khoros (obtaining Khoros, patches) -----

Q1.  What is the Khoros System?

Q2.  How do I obtain the Khoros system?
     What is the most recent version of Khoros?

Q3.  What is a "Patch"? What does "Patch Level" mean?  

Q4.  How can I find out what patch level our Khoros system is at?  

Q5.  How do I get the latest patch to Khoros?

Q6.  Do I want the most recent patch?  What changes have been made 
     in the patches to Khoros?

Q7.  What if I don't have access to the net / don't have the
     ftp program / don't want to bother with ftp / but still want Khoros?

-------  Mailing list, News Group, User Support, Etc -----

Q8.  I want to get on / off the khoros mailing list,
     I want to get on / off the digestified mailing list.
 
Q9.  Is there a network news group that I can read which talks about Khoros?
     Is there a mail archive of the news group that I can get?

Q10. I have a question to ask.

Q11. I have a bug to report.

Q12. I have a desired enhancement I would like you to know about.

Q13. Is there a book on Khoros that I can get?

Q14. What support is provided for Khoros by the Khoros group at UNM?  
     What if I need additional support?

-------  General Khoros -----

Q15. What is the Khoros Consortium?  What are the benefits of joining
     the Consortium?  How much does it cost?

Q16. What machines does Khoros currently run on? 

Q17. Does Khoros work with shared libraries? 

Q18. Can you use C++ with Khoros?  How?

Q19. What file formats are supported by Khoros?  If Khoros doesn't support
     my file format, is there any way to get my data into the Khoros system?

Q20. I have some GIF images that I would like to use with Khoros.  Is
     there a GIF to VIFF converter?

Q21. I would like to remove all of Khoros that is not needed to 
     actually run it, in order to free up disk space.   What can
     be removed without compromising the integrity of the runtime 
     operation of Khoros?

Q22. Is it possible to get only a subset of Khoros?  I realize that
     Khoros has a core of utility routines that must be obtained, but
     I was hoping that one could pick and choose the routines one wanted
     on an as-needed basis.


-------  Manuals, Documentation, Man Pages --------------
	
Q23. Can I buy the manuals separately?

Q24. How do I print the documentation?

Q25. I want to read the Khoros man pages, but vman doesn't seem to work.
     What's the problem?

Q26. I can not regenerate the Khoros manual on a Sun Workstation
     because soelim for .so lines in the roff files, limits the
     file length to 64 characters.


-------  24 bit displays --------------

Q27. Does Khoros work with 24-bit displays?  Can I expect any particular
     problems when I run Khoros applications on my 24-bit display?

Q28. Is there a way to load a 24-bit image, display it on an 8-bit display 
     (using 3-3-2, or 7 levels each of rgb), and allow LUT manipulations, 
     histograms, etc, to be done on the original values?  

-------  Problems with Displaying Images --------------

Q29. I'm on a SUN architecture, using OpenWindows.  When I display images,
     they come up  with colored speckles in them, or strangely colored in
     some way. This condition rights itself when I move the cursor into 
     the image, but then the colors in my user interface get messed up -
     sometimes I can't see anything but the image.  Is this a bug in Khoros?

Q30. When I display an image that has a large number of colors in it
     the colors will not be displayed correctly unless
     I move my mouse into the image;  then, all my other windows lose
     their colors.  How can I get rid of this "techno-flash" phenomenon?
     NOTE: there is a difference between this problem and the one mentioned
     in Q15.  In Q15, the graphical user interface is lost;  here, the
     graphical user interface is preserved, but colors in other windows
     are lost.

-------  Problems with SGI --------------

Q31. The Khoros display programs are not working on SGI machines.  The 
     symptom is that when displaying images a title bar will appear, but 
     no window -- just an hole where the image should be.  

Q32. On our SGI (NCD terminal with an SGI server), when the Khoros 
     applications come up, they have extremely large graphical user 
     interfaces.  The user interface is so large, it doesn't even fit 
     on the screen!  What can I do?


-------  Annotations, Editimage, Xprism2/3, Animate  --------------

Q33. I have a problem with the annotations capability in editimage (xprism).
     When I move the image (plot), the annotations don't move accordingly.
     It seems that they are tied to the device coordinates of the screen,
     rather than the pixels in the image (world coordinates of the plot)
     as they should be.

Q34. I am trying to load 3D data into xprism3 from an ASCII file.
     When I try to plot the data, a pop-up window states that there 
     is 1 row and (total # data points) columns, and asks for the correct
     number of rows. What is going on?

Q35. What does the "*" mean after a pixel value at the bottom of
     the editimage window?

Q36. I am running animate on a DecStation 5000/200.  Animate is so slow that
     it is unusable.  Occasionally, it even seems to lock up the display.
     What is the problem?

Q37. When plotting raw ASCII data specified in XYZ format, does the data 
     have to be rectangular, or can I provide irregular data?  Does each 
     row have to have the same number of elements?  Is there anyway to plot 
     3D data that has a varied number of points per row?

-------  Problems with Graphical User Interface --------------

Q38. I have a version of Khoros installed on a DecStation running the 
     dxwm window manager (DecWindows).  I have problems with running
     Khoros programs -- some of the buttons do not work at all, while
     others sometimes lock the program, or otherwise do not act properly.
     What's wrong?

Q39. I'm using khoros on a monochrome monitor. I have connected up some glyphs
     in the cantata workspace, but the connections don't appear on the screen,
     even though the workspace executes correctly.


-------  Writing New Programs in Khoros --------------

Q40. I have finished writing my new program under Khoros, and now
     I would like to install it into a toolbox, and integrate it 
     into the cantata visual language.  How do I go about doing this?

Q41. Is there a tutorial describing how to create and install an xvroutine?

Q42. Can user-written routines be installed under existing buttons on
     the Cantata workspace? For example, if I have written a new
     signal processing routine, can I fix things so that it appears
     on the menu under the Signal Processing button, or do I have to
     install it in a new toolbox?

-------  Miscellaneous --------------

Q43. Where did you get the name "Khoros"? Is it an acronym?

Q44. I would like to do 3D object modelling, with multiple light sources,
     animation, and so on.  Does Khoros do this?

Q45. I heard about the audio cantata demo, and would like to hear it.
     How do I go about this?

Q46. Is there a way to convert VIFF images with 3 color bands (rgb) to
     images with only one band and a colormap?  What about vice versa?

Q47. We are trying to run cantata on an NCD Xterminal as the display, 
     and the program fails, exiting with the following error:

     X Error:  BadAlloc
       Request Major code 65 ()
       Request Minor code 0
       ResourceID 0x2400085
       Error Serial #1576
       Current Serial #1582
    Major X error encountered for display ':0'! Unable to recover.

Q48. When I try to use my double or double complex viff image that came from
     another kind of machine, the program always gives an error.  What gives?


==============================================================================

============= Introductory Khoros (obtaining Khoros, patches) ================


    Q1. What is the Khoros system?

    A1. Khoros is an integrated software development environment 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 manipulation, 
	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.

	For complete details, please read the "announce.ftp" and "khoros.ftp"
        documents that are available in the khoros release/ directory.
        These documents can be obtained via anonymous ftp from any official
        Khoros ftp site (see Q2).
        
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q2. How do I obtain the Khoros system?
	What is the most recent version of Khoros?

    A2.              ----  anonymous  ftp ----
	The most recent version of Khoros, Khoros 1.0 Patch 5, can be 
	obtained free of charge via anonymous FTP.
	Our official FTP site from which you can get
	the Khoros system is listed below.   

        USA:  	   	ftp pprg.eece.unm.edu  (129.24.24.10)		
	(University of 	Login:  anonymous  (or ftp)
         New Mexico)	Password: user_name@machine
	       	   	cd /pub/khoros

        In all cases, we recommend that you first obtain the "install.ftp",
        "install.ms", or "install.ps" installation document found in the
        release/ directory, and read it before attempting to obtain the 
        Khoros system.  The Khoros system is large, and fewer mistakes will 
        be made if the proper documentation is read beforehand.

                    ----  USA tape orders ----
	If you are not on the network, or do not want to use ftp for some
	reason, you may order a tape of Khoros and printed manuals for a 
	fee of $250 from:

	The Khoros Group
	Room 110  EECE Dept.
	University of New Mexico, 
	Albuquerque, NM 87131
	email: khoros-request@chama.eece.unm.edu

	Please mail khoros-request@chama.eece.unm.edu to obtain the order
	form that must be filled out to place your order.

                    ----  Europe tape orders ----
	In Europe, you may order a tape from:

	Pascal ADAM
	DTA / LETI / DEIN / SIR
	CEN SACLAY
	91191 Gif / Yvette Cedex FRANCE
	tel: 33 1 69 08 82 91
	fax: 33 1 69 08 83 95
	email: padam@fauvette.saclay.cea.fr


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q3. What is a "Patch"?  What does "Patch Level" mean?  

   A3. Periodically, we release "patches" to the Khoros system.  In general,
       a "patch" to a program means that the author made one or more bug fixes
       to the program.  These bug fixes are then made available to users of the 
       program in the form of context diff files, which are applied to the
       original program with the public domain "patch" program in order to 
       bring it up to date. In general, patches are small, fixing a few 
       reported bugs and nothing more;  they are released frequently following 
       the release of a software package, as the author(s) endeavor to make 
       the original program solid and reliable before moving on work on the 
       next version of the program.

       When used with respect to the Khoros system, however, the term "Patch"
       is used rather loosely.  "Patches" to the Khoros system would more 
       suitably be termed "minor releases".  They are made available to users
       in the form of large tar files, and the use of the "patch" program used
       on context diff files was abandoned after the first try, as it was 
       simply not sufficient to address the number of changes that were 
       included.  Patches to the Khoros system are large, fixing dozens of
       bugs and introducing major enhancements to the Khoros system;  they
       are released infrequently, often with 2-3 months elapsing between
       patches, as the authors attempt to make new capabilities available
       to users.

       In any case, "Patch Level" refers to the number of patches that
       have been applied to the software at a certain site;  for example,
       if three patches have been acquired and applied to the software, that
       software would be said to be "at Patch Level 3".   In addition to
       making patches available to users who already have the Khoros system,
       we also apply the same patches to the Khoros system which is available
       via public ftp.  Thus, if you acquired the Khoros system after Patch 3
       was released, your software would still be said to be "at Patch Level 3",
       regardless of the fact that you had never actually applied any patches.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q4. How can I find out what patch level our Khoros system is at?  
       
    A4. If you do not know what patch level your version of Khoros is at,
        look in $KHOROS_HOME/src for a file called "PatchLevel".  The one-line
        contents of this file will tell you what patch level the system is at.
        If the file does not exist, you probably have the original
        Khoros 1.0 with no patches applied,  although some sites may still 
        have the Beta version of Khoros.  The Khoros Manuals will indicate 
        if you still have Khoros Beta.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q5. How do I get the latest patch to Khoros?

    A5. If you are acquiring the Khoros system for the first time, see Q2.
	The distributed version of Khoros on pprg.eece.unm.edu always has
        the most recent patch incorporated.  If you have an existing version
        of Khoros, do an anonymous ftp to pprg.eece.unm.edu  (129.24.24.10);
        the most recent patch is in /pub/khoros/patch/patchN, where patchN
        is the most recent patch.  Follow the instructions in the README found 
	in that directory for installing the patch.  ONLY install patchN onto
        a Khoros system which is currently at Patch Level N-1. If your version
	of Khoros is at Patch Level N-2 or earlier, re-acquire the entire 
	system from scratch as explained in Q2.

	IMPORTANT:  You must ALWAYS have the same release of "system" to go 
	with either a release of "source" or a release of "binaries".  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
        
   Q6.  Do I want the most recent patch?  What changes have been made
        in the patches to Khoros?

   A6.  Of course you will want the most recent patch if you want to stay 
        up to date with what we are doing with the Khoros system.  The changes 
        that have been made in each patch are too extensive to list here;  
        however, a complete list of changes that were made during Patch N can 
        be obtained by ftp'ing to pprg.eece.unm.edu (129.24.24.10), and getting 
	/pub/khoros/patch/patchN/README.

       
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q7.  What if I don't have access to the net / don't have the
	ftp program / don't want to bother with ftp?

   A7.	If you don't want to ftp the system yourself, you may
	get a tape and printed documentation from UNM. It will cost 
        $250 if you are in the United States or Canada, $350 internationally.

	MAIL ORDERS:
	First, get an order form.   You may ftp to of the sites listed 
	above and get the announce.ftp document (which contains the order
	form), or mail khoros-request@chama.eece.unm.edu and request an order
	form.  Fill out the order form and send it to the 
	address listed on it with a check or purchase order for 
	$250 made out the University of New Mexico.
	
        FAX ORDERS:
	You can FAX orders to UNM at 505-277-1439

	CREDIT CARD ORDERS:	
	You can use your credit card to order Khoros, provided that you
	specify all the necessary information (name, credit card number,
	expiration data, daytime phone number) on your order form.
        We do not accept American Express.

	ORDER INFORMATION:
	email khoros-request@chama.eece.unm.edu

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

============= Mailing list, News Group, User Support, Etc =====================

    Q8. I want to get on / off the khoros mailing list,
	I want to get on / off the digestified mailing list.

    A8. PLEASE don't mail these requests to khoros@chama.eece.unm.edu!
        Over 1000 people who don't care will be getting your request.
        Mail to khoros-request@chama.eece.unm.edu, and we will process
        your request as soon as we can.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q9. Is there a network news group that I can read which talks 
        about Khoros?  Is there a mail archive of the news group
        that I can get?

    A9. Yes.  We have our own news group, comp.soft-sys.khoros.
        Note that all messages to the mailing list are cross-posted to the
        news group and vice versa;  thus, you may want to be on the mailing
        list or read the news group, but it is not necessary to do both.

        We do have a mail archive, but it is unfortunately not updated 
        automatically;  at this time, it is only updated when patches are
        released.  However, on the philosophy that something is better than
        nothing, you can do an anonymous ftp to pprg.eece.unm.edu (129.24.24.10)
	and get the files found in /pub/khoros/mail_archive.

	For researching previously-posted mail to comp.soft-sys.khoros, 
	you can also make use of the WAIS server for Khoros mail, provided
	by Mathew Yeates of the Image Analysis Systems Group, JPL.  
	WAIS - The Wide Area Information Servers system, is a set of products 
	supplied by different vendors to help end-users find and retrieve 
	information over networks.   It can be obtained from think.com.

	The server is running at henry.jpl.nasa.gov on port 1025 and the 
	database name is khorosmail. As an example:

	% waissearch -p 1025 -h henry.jpl.nasa.gov -d khorosmail ansi

	This gives a list of mail containing the keyword "ansi". Next, you may
	choose which mail to read (xwais is a better interface).  
	Please direct any questions about WAIS to alt.wais, not 
	comp.soft-sys.khoros.

	This is a temporary service provided for members of the Khoros 
	community by Mathew Yeates, and may go away at any time, depending
	on any adverse effects that it may have on his machine.  Thanks go
	to Mathew (mathew@elroy.jpl.nasa.gov) for providing this service.
	

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q10. I have a question to ask.
 
   A10. If you have a question, mail to our mailing list: 
        khoros@chama.eece.unm.edu.  When mailing questions, please follow 
        the proper mail etiquette by including enough information for us 
        to understand your situation.  Indicate what machine architecture 
        and operating system you are using.  Include complete details so as 
        to exactly describe your problem.  Do not mail long files to the
        mailing list, such as make.World files, or saved cantata workspaces.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q11. I have a bug to report.

   A11. If you have a bug report, mail to khoros-bugs@bullwinkle.eece.unm.edu.
        Please use the Bug Report form found in $KHOROS_HOME/repos/BugReport.
	It is very difficult for us to trace bugs when we don't have enough
	background information.  Also, it will help if you first read
	$KHOROS_HOME/repos/BugList, which lists currently known bugs in Khoros.
	We rarely respond to reports mailed to khoros-bugs;  however, we do
	log them in our list of bugs to be dealt with. In the future, we hope 
	to implement an automatic reply so that you know your mail was received.
	Please *DO* send bug reports on any documentation errors you may find,
	no matter how "nit-picky" they may seem!  We don't have a professional
	proof reader, so any reports you make are *truly* appreciated!
        Please *don't* send questions to khoros-bugs -- they probably will not 
	be answered, as this account is for logging of bugs & desired 
	enhancements only.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q12. I have a desired enhancement that I would like you to know about.

   A12. If you would like to request an enhancement to a program,
 	mail to khoros-bugs@bullwinkle.eece.unm.edu.  You don't need to use
	the Bug Report form, but please be clear and give enough information
	so that we will exactly what the enhancement is.  We cannot promise
	that desired enhancements will be implemented. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q13. Is there a book on Khoros that I can get?

   A13. Not at this time, but there is a book scheduled to begin development 
        this year by Carla Williams, PhD.  An outline of the book has been 
	decided on;  it will include writings from a number of authors, 
	and will address the solution of various scientific problems using
	the Khoros system.

	We do recommend "AN INTRODUCTORY GUIDE TO SCIENTIFIC VISUALIZATION",
	by R. A. Earnshaw (University of Leeds) and and N. Wiseman (Natural 
	Environment Research Council), published by Springer-Verlag, 157 pp, 
	which was published in July 1992.  It has a low price and popular 
	presentation style, and it does include information on Khoros in 
	Chapter 8, section 8.1.  A summary of this book appears below:

	This volume is intended for readers new to the field of scientific
	visualization, and who require a quick and easy-to-read summary of what
	the field is  and what it can do. Written in a popular journalistic 
	style with many illustrations, it will enable readers to appreciate 
	the benefits of scientific visualization and how current tools can be 
	exploited in many application areas.  This volume is indispensable 
	for scientists and research workers who have never used computer 
	graphics or other visual tools before, and who wish to find out the 
	benefits and advantages of the new approaches.  This guide is concerned
	with answering the following questions -

	o What is Scientific Visualization?
	o What can it do?
	o What do the technical terms and jargon really mean?
	o What products are currently available?
	o What kind of hardware do I need?
	o What are the costs?
	o What do I get?
	o Where do I go next to find out more, or explore current
          possibilities?
	o What are the prospects for the future?

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q14. What support is provided for Khoros by the Khoros group at UNM?  
        What if I need additional support?

   A14. The best we can do here at UNM is to try to answer your mail to
        khoros@chama.eece.unm.edu, and to post to our new news group,
        comp.soft-sys.khoros -- a big job in itself for our small group.
        We have decided that the best way to provide additional support
        is via the Consortium.  Hopefully, in the future, one or more of
        the Consortium members will take the initiative to provide Khoros
        support.  
         
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~


========================== General Khoros ====================================


   Q15. What is the Khoros Consortium?  What are the benefits of joining
        the Consortium?  How much does it cost?

   Q15. The Khoros Consortium will oversee the distribution of the
        Khoros software and the continued research and development
        of the Khoros project.  There are two levels of membership
	in the Consortium: a Supporting Member at $50,000/year, and an
	Affiliate Member at $5000/year. Affiliate Members have the right
	to redistribute the Khoros system and early access to enhancements
        and updates;  Supporting Members have the right of redistribution and
	early access to updates; they also participate on an advisory group 
	as well as participate in staff exchange, and training sessions. 
	For more information about joining the Consortium, send email 
	to: consort@chama.eece.unm.edu
	 
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   
   Q16. What machines does Khoros currently run on? 
   A16. Please see the Khoros FAQ for Compiling, Q1.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q17. Does Khoros work with shared libraries?  
   A17. Please see the Khoros FAQ for Compiling, Q9.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q18. Can you use C++ with Khoros?  How?

   A18. Klamer Schutte, of the Faculty of Electrical Engineering at the 
	University of Twente, The Netherlands, (klamer@mi.el.utwente.nl, 
	SMTP: klamer@utelmi01.el.utwente.nl) provides the following answer:

	I am doing this now on a regular basis with Sun C++ 2.1. I use composer 
	& ghostwriter to generate a main() with command line handling. The C++ 
	function does the real thing.

	One problem: Sun C++ 2.1 needs a C++ main, not a C main. So I have a

	#define        main    my_main

	as a #define in the ghostwriter-generated C main. 
	Also, I have a simple wrapper
	in C++ for the main function:

	extern "C" my_main(int argc, char *argv[]);

	main(int argc, char *argv[])
	{
            return my_main(argc,argv);
	}

	The library function also needs the extern "C" directive.

	Recently, I tried the same method with g++ 2.{1,2} and 
	it worked similarly.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q19. What file formats are supported by Khoros?  If Khoros doesn't support
        my file format, is there any way to get my data into the Khoros system?

   A19. Khoros supports Sun Raster, Terra-Mar BIG, TGA, DEM, DLG, FITS, PBM,
        and ELAS images;  there are routines to convert each of these file
        formats to the VIFF format used by Khoros.  In addition, there are
        also routines to convert ascii data and raw data to the VIFF format.
        If your file format is not one of these, you can still import the 
        image data to Khoros provided you can display the image.  Once any 
        image is displayed on an X11 screen, the "getimage" program can be
        used to store it as a VIFF image. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q20. I have some GIF images that I would like to use with Khoros.  Is
        there a GIF to VIFF converter?

   A20. Currently, we do not have a gif2viff program, although we may put
	one out in the future.   For the time being, you can convert your 
	GIF image to PBM (Portable Bit Map) and then use the
        khoros routine 'pbm2viff' to get it from PBM into VIFF format.
        To convert your GIF image to PBM, the pbmplus package is very useful.
        The pbmplus package is a public domain package that can obtained via
        anonymous ftp on pprg.eece.unm.edu or export.lcs.mit.edu in the file
        'pub/pbmplus.tar.Z'.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q21.  I would like to remove all of Khoros that is not needed to 
         actually run it, in order to free up disk space.   What can
         be removed without compromising the integrity of the runtime 
	 operation of Khoros?

   A21.  The minimum set of directories that you need to run Khoros are:
         	bin     - of course for executables
         	repos   - user interface files
		dotfiles- dotfiles for khoros environment

         You may also want to keep:
        	doc     - on line help
        	man     - man pages used by vman
        	manual  - printed manual

 	 You do not need the following for only a "runable" khoros:
       		src     - needed for compiling
        	lib     - needed for compiling
        	include - needed for compiling
        	data    - examples
        	release - documentation
 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q22. Is it possible to get only a subset of Khoros?  I realize that
	Khoros has a core of utility routines that must be obtained, but
	I was hoping that one could pick and choose the routines one wanted
	on an as-needed basis.

   A22. No, sorry.  At this time, you must get the ENTIRE distribution to 
        begin with.  After you have the system, you may selectively delete
	programs that you are not interested in.  We do recommend that you
	be very careful when deleting libraries, as deleting a library that 
	existing routines link against may be fatal.  Making the distribution
	of Khoros more modular has high priority for Khoros 2.0;  we understand
	that it would be much more convenient to be able to acquire only those
	programs in which one is interested. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

================ Manuals, Documentation, Man Pages =============================


    Q23. Can I buy the manuals separately?
    A23. Yes.  For a cost of $100 / set, you can order printed manuals from
         us here at UNM.  See A7 for details.
    
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q24. How do I print the documentation?
    Q24. Use the "prnmanual" program.  It is an interactive program
 	 which will take you through a series of prompts in order to
	 print the desired portion of the manual.
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q25. I want to read the Khoros man pages, but vman doesn't seem to work.
        What's the problem?

   A25. Be sure that you have run  the "customize" program before attempting 
	to use "vman".  The "customize" program sets paths correctly so 
	that "vman" knows where to go to find man pages.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q26. I can not regenerate the Khoros manual on a Sun Workstation
        because soelim for .so lines in the roff files, limits the
        file length to 64 characters.

   A26. This is a bug and has been reported to Sun, but not expected
        to be fixed until the release after 4.1.2 (maybe). We are
        distributing a public domain version of the soelim program.
        If you think or know that your OS has this problem, then make
        sure you have the "SoeLim" symbol set to YES in your sun.cf file.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

==================  24 Bit Displays ===========================================

   Q27. Does Khoros work with 24-bit displays?  Can I expect any particular
        problems when I run Khoros applications on my 24-bit display?

   A27. Yes, Khoros works with 24-bit displays.  As of patch 2, increased
	support was added for 24-bit displays - most xvroutines should display
	graphics and images on 24 bit displays without problem.   One drawback
	of editimage is that the position widget (displayed under the image,
	in [X x Y = Z] format) should display 3 components when used with a 
	24 bit image;  we did not have time to update this as of yet.
	Similarly, the Pixel Print capability should also treat the lookup
	as 3 decomposed RGB values. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q28. Is there a way to load a 24-bit image, display it on an 8-bit display 
	(using 3-3-2, or 7 levels each of rgb), and allow LUT manipulations, 
	histograms, etc, to be done on the original values?  

   A28. Allowing such manipulations to be done on the original values of 24-bit 
	images would have many advantages. We would like to do this in the 
        future, as well as allow the manipulation of integer and short images.  
	As time permits, we will be adding these kind of capabilities in the 
	near and long term.  Our goal is to provide a merged display and 
	graphics library that is flexible and is easy for the user to build 
	new applications, and that handles this situation (among others) 
	automatically.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

==================  Problems With Displaying Images   =========================


   Q29. I'm on a SUN architecture, using OpenWindows 2.0. When I display images,
        they come up  with colored speckles in them, or strangely colored in
	some way. This condition rights itself when I move the cursor into 
	the image, but then the colors in my user interface get messed up -
	sometimes I can't see anything but the image.  Is this a bug in Khoros?

   A29. No, it is a result of us having to work around a bug in the X server 
	which will cause the server to dump when any display routine attempts 
	to create a private colormap.  We managed to work around the bug,
	but at the cost of user interface colors no longer being defined as 
	the original colors.  This implies that with any display routine, your 
	user interface colors will be undefined if the programs cannot use 
	the default colormap;  in this case, your user interface colors may 
	disappear, may be arbitrarily defined, or may have their colors 
	re-defined according to the current colormap.  The best you can do
	is try to limit the colors used in your image, thus leaving more
	color cells "left over" for the user interface to use.
	Note that this bug has been fixed in OpenWindows 3.0.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q30. When I display an image that has a large number of colors in it
	the colors will not be displayed correctly unless
	I move my mouse into the image;  then, all my other windows lose
	their colors.  How can I get rid of this "techno-flash" phenomenon?
	NOTE: there is a difference between this problem and the one mentioned
	in Q29.  In Q29, the graphical user interface is lost;  here, the
	graphical user interface is preserved, but colors in other windows
	are lost.

   A30. The number of colors that may be displayed nicely is X server 
	dependent -- it also depends on the number of colors currently 
	used by other windows on your display.

	For color rgb (3-band) images, use the vgamut program to reduce the 
	number of  colors, using the [-n] option to specify the number of 
	colors you want in the compressed image. 

	For psuedocolor images, you first must use the vmapdata program to 
	convert the image into a temporary 3-band rgb image; use this
	temporary image as input to vgamut, as described above. 

	For grey scale images with no map, you may want to use 
	v1bgamut (one-band gamut) to reduce the number of colors.
	Another method is to use vconvert to convert the image to type 
	BYTE, scale by 0.5, and multiply by 2.0, thus quantizing the grey 
	levels to 7 bits (even values 0-254).

	There are a very large number of ways that images can
	be modified to use a reduced number of pixels;  explanations of
	other methods are omitted here.  To begin with, the user should see
	man pages on vgamut, v1bgamut, vmapdata, vconvert, and vmsquish. 
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

================  Problems With SGI  ==========================================

   Q31. The Khoros display programs are not working on SGI machines.  The 
        symptom is that when displaying images a title bar will appear, but 
        no window -- just an hole where the image should be.  

   A31. We have found what appears to be a bug with SGI's Xsgi server.  
        The bug is with the shape window extension and seems to only appear 
        on machines that are running either the 3.3.1 or 3.3.2 maintenance 
        update.  It does work however with the original 3.3 distribution.  
        To identify what version of the Xsgi server is installed on your 
        machine, run the following command:

        % /usr/sbin/versions long | grep Xsgi

        If "versions" returns the string below then all should be well:

        f 39751  1569 eoe2.sw.X11             usr/bin/X11/Xsgi

        If "versions" returns either of these two strings then the display 
        routines will not work:

        f 34353  1569 maint1.eoe2_sw.X11      usr/bin/X11/Xsgi
        f 34353  1569 maint2.eoe2_sw.X11      usr/bin/X11/Xsgi

	In the 4.0 version of the operating system, this the bug is fixed.  
	Patch 1 of Khoros fixed the problem by totally disabling the shape 
	option for SGI servers.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q32. On our SGI (NCD terminal with an SGI server), when the Khoros 
	applications come up, they have extremely large graphical user 
	interfaces.  The user interface is so large, it doesn't even fit 
	on the screen!  What can I do?

   A32. A bug in the SGI 3.3.x X Server prevents default fonts being 
	read from the .Xdefaults file by the xvforms library, causing 
	Khoros applications to come up with unpredictable fonts.   To find 
	out which fonts are available on your display, use:

		% xlsfonts 

	Then, use your favorite font with the [-fn] option that is provided 
 	with all Khoros applications that have a graphical user interface.  
	We recommend the "fixed" font, if it is available.  For example,

		% editimage -fn fixed

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

================= Annotations, Editimage, Xprism2/3, Animate ==================


   Q33.  I have a problem with the annotations capability in editimage (xprism).
	 When I move the image (plot), the annotations don't move accordingly.
	 It seems that they are tied to the device coordinates of the screen,
	 rather than the pixels in the image (world coordinates of the plot)
	 as they should be.

   A33.  This is true.  You are noticing a design limitation in the annotations
	 implementation.  Annotations were originally created to work on device
	 coordinates, with future plans to upgrade them to work on the pixels
	 in the image / world coordinates of the plot.  Unfortunately, we still 
	 have not added this capability.   We hope to rectify this for 
	 Khoros 2.0.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q34. I am trying to load 3D data into xprism3 from an ASCII file.
        When I try to plot the data, a pop-up window states that there 
	is 1 row and (total # data points) columns, and asks for the correct
        number of rows. What is going on?

   Q34. When you input data points into xprism3, there is nothing in the data 
	to indicate how many rows and columns are included in the data.

        While row & column information is not needed to do a scatter
        plot, for instance,  it is required in order to draw a mesh plot, a
        surface plot, and others.

	Suppose you have 200 data points.  Xprism3 does not know
        whether you want 1 long row of 200 points, or 2 rows of 100 points
	each, or 5 rows of 40 points, etc:  so, you have to *tell* it what
        you mean.  If you are providing the data file as input from the
        command line, you would specify the number of rows with the [-rows]
        option, as in the following data file containing 5 rows of 38
        points (columns) each:

        % xprism3 -i11 data2.pts -rows11 5

        If you input the data file from the "Input File" pane of the "Plot"
        subform, you will be prompted by a pop-up window noting that the 
 	default is to have 1 row of 200 columns (one long row with 200 points 
        in it).  If you really wanted 5 rows of 40 points (columns) each, you 
 	would correct xprism3 by substituting a 5 for the 1 in the pop-up 
	window.  From that point on, the default action would be for xprism3 
	to assume that all subsequent sets of data points all have 5 rows;  
	the number of points in each row (the number of columns) is computed 
	as the total number of points divided by the number of rows specified.  
	If you then enter a set of data points that has, say, 2 rows, you will 
	have to correct xprism3 again by entering "2" in the pop-up window.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q35. What does the "*" mean after a pixel value at the bottom of
        the editimage window?

   A35. This is an indication of whether the pixel was _actually_ allocated. 
	If a "*" is displayed, this means that the pixel being displayed has 
	really been mapped to its closest available neighbor.  On an 8-plane
	display, an application can only have up to 256 colors; this means that 
	the application and the image must share these colors.  So, if you
	display a byte image with 254 colors, you will only have 2 colors left
        for the user interface colors and special application displays.  For
        editimage, special colors like red, green, blue, white, black, yellow,
        cyan, magenta, and gray are used with the application display
        components such as LUT and PSEUDO.  But, you have only 2 colors left --
	what should be done?   What editimage does to deal with this problem
	is to allocate all the special colors and user interface colors first,
	to ensure that the user interface will not be corrupted; image colors 
	are allocated next.  When the image needs more colors than are 
	available, the xvdisplay library will find the closest available colors 
	from the previously allocated pixels;  thus, a particular pixel being
	displayed on the screen may actually represent 2 or more actual pixel
	values from the image data.  Thus, when you move the mouse around the 
	image, these special pixels have a "*" displayed to indicate this 
	situation where it occurs.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q36. I am running animate on a DecStation 5000/200 PX or PXG.  Animate is 
	so slow that it is unusable.  Occasionally, it even seems to lock up 
	the display.  What is the problem?

   A36. There is only limited pixmap hardware memory available on the PX and
	PXG.  The default action of animate is to use a pixmap Use animate 
        with the [-pixmap false] option.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q37. When plotting raw ASCII data specified in XYZ format, does the data 
        have to be rectangular?  Does each row have to have the same 
	number of elements?  Is there anyway to plot 3D data that has a 
	varied number of points per row?

   A37. Currently, xprism3 does allow you to have unevenly spaced 
        points, but the number of points in each row must be the same in order
	to do a mesh, colormesh, surface, horizon, contour 2D or 3D plot.  You
	can do a 3D scatter plot with a varying number of points in each row:
	simply tell xprism3 that you have 1 long row of (total number) points. 
	To get an accurate plot in this situation, however, you are limited
	to scatter plots.
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

==================  Problems with Graphical User Interface ==================

   Q38. I have a version of Khoros installed on a DecStation running the 
        dxwm window manager (DecWindows).  I have problems with running
        Khoros interactive programs such as cantata, xprism2/3, etc -- 
	some of the buttons do not work at all, while others sometimes lock 
	the program, or otherwise do not act properly.  What's wrong?

   A38. Khoros does not behave well at all under dxwm (DecWindows).
	What usually happens is that the application in question needs 
	to pop up a warning message, error message, or other pop-up window;  
	but dxwm does not map the pop-up message for some reason.  
	So the application sits there and waits for you to acknowledge an 
	error message that never came up -- thus giving the impression that 
	nothing is happening.  Since we can't provide you with advice on how 
	to fix the problem, we recommend obtaining a copy of either twm 
	(Tab Window Manager) or mwm (Motif Window Manager) and using that 
	instead of dxwm.  DEC is phasing out dxwm and migrating to mwm.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q39. I'm using khoros on a monochrome monitor. I have connected up some
        glyphs in the cantata workspace, but the connections don't appear
        on the screen, even though the workspace executes correctly.

   A39. You need to set up your X resources so that the connections and
        workspace background appear different.  Cantata defaults to using X
        resources that are appropriate for color screens, and which may be
        inappropriate for monochrome monitors.  The file

              $KHOROS_HOME/dotfiles/Xdefaults.monochrome

        contains the appropriate resources.  Include this file (or as many
        lines of the cantata.???? as you want) in your .Xdefaults file, and
        reload the X resource database (xrdb -merge ~/.Xdefaults).  This
        should solve the problem.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

==================  Writing New Programs Under Khoros ========================


   Q40. I have finished writing my new program under Khoros, and now
	I would like to install it into a toolbox, and integrate it 
	into the cantata visual language.  How do I go about doing this?

   A40. First of all, you must create and install your toolbox.
	At the end of Chapter 1 ("Writing Programs") of Volume II of
        the Khoros Manuals ("The Khoros Programmer's Manual") is a 
        section on "The Use of Toolboxes"; this is required reading
	for those who wish to learn to use toolboxes. Also, there
	is an application called "kraftsman" that will help you
	create and manage your toolbox. Consult Volume II, Chapter 11
	of the Khoros Manual for more information.
	
	Next, you will want to modify the cantata UIS form in your toolbox 
	to include your new program(s). This also covered in Chapter 1 
	("Writing Programs") of the  Khoros Programmer's Manual, in the
	section entitled, "INTEGRATING THE NEW PROGRAM INTO CANTATA".
	
	Finally, you will want to make use of your new, modified cantata UIS 
	form instead of the original. using:

	% cantata -restore {toolbox name}/repos/cantata/cantata.form

	or by specifying this alternative cantata.form file in your
	.Xdefaults file, as in:

	cantata.Form: {toolbox name}/repos/cantata/cantata.form


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q41. Is there a tutorial describing how to create and install an xvroutine?

   A41. Yes, the tutorial was created and provided by Carla Williams
        (carla@chama.eece.unm.edu).  Here is what she has to say:

	"For your edification and entertainment I have created a 'cook-book'
	 style tutorial that will take you through the steps required to
	 create a new vroutine (based on an existing one), test it in cantata,
	 install in a toolbox, and access via the main cantata menu.  
	 It is a supplement to Volume II the Khoros Programmer's Manual.

	 The tutorial is available for ftp in the contrib directory on pprg:
         ftp to  pprg.eece.unm.edu
         cd to  /pub/khoros/contrib

         You will find the two files:

         README.vroutine_tutorial
         vroutine_tutorial

         If you decide to try it out, please give me feed-back (both positive
         and negative!) as I plan to use it as part of a training course on 
         using Khoros.

         Enjoy!

         Carla Williams
         carla@chama.eece.unm.edu


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

   Q42.  Can user-written routines be installed under existing buttons on
         the Cantata workspace? For example, if I have written a new
         signal processing routine, can I fix things so that it appears
         on the menu under the Signal Processing button, or do I have to
         install it in a new toolbox?

   A42.  Brad Castalia, of the University of Arizona 
	 (castalia@gaea.lpl.arizona.ed) provides the following answer:

         While individual routines can be added to the Khoros base structure
         (e.g. new library functions and/or libraries, new executables,
         and new forms), this is probably not advisable except in
         extraordinary situations as the resulting upgrades will be a
         management nightmare. Thus using the toolbox mechanism should
         be used whenever possible. the following procedure offers a
         general outline of how to add general access toolboxes into the
         cantata environment:
     
         After building and testing the new software to the point of
         satisfaction (or obtaining a user-contributed toolbox), the new
         software is installed as a general access toolbox in a
         subdirectory of the $KHOROS_HOME/toolboxes directory (this
         location is not necessary, it's just convenient for management
         purposes). Be sure that you do NOT name the subdirectory the
         same name (regardless of case) as the name of the toolbox (due
         to an unfortunate bug in the software management tools)! If the
         toolbox is user-contributed, you will at least need to be sure
         the KHOROS_USER and LOCAL_SRC_TOP variables are correctly set
         in the repos/config/src_conf/<toolbox>_mf file. Checking
         pathname references in UIS files is a good idea too.
     
         Update the $KHOROS_HOME/repos/cantata/cantata.form file (you
         should probably work on a copy). About a third of the way into
         the file you will encounter the groups of -D/-u lines that
         define the main toolbox collection buttons that appear across
         the top of the cantata workspace. Pick the collection where
         you would like the toolbox to appear (e.g. SIGNAL PROCESSING)
         and add a duplicate of one of the -u lines at the point in the
         list where your new toolbox should be listed (e.g. duplicate
         the line containing 'Spectral Estim.' if you want to add your
         toolbox to the end of the list). Change the descriptive name
         (inside single quotes) to an appropriate descriptive name for
         your toolbox (this need not be identical to the toolbox name
         itself). NOTE THE POSITION OF THIS NEW -u LINE IN THE LIST.
         Proceed down to the last third of the cantata.form file to
         where the long list of -k lines is located. Duplicate the -k
         line corresponding to the -u line you duplicated above (you
         MUST get the order right %-(, count the lines to be sure). To
         make this easier, add comment lines (beginning with a #
         character), containing the same toolbox collection names on the
         -D lines from above, to delineate the -k lines into
          recognizable groups. Change the -k line to reference your
         toolbox .sub UIS file. For example, to add a toolbox called
         FILMWRITER to the end of the OUTPUT collection list, after the
         line
     
             -k KHOROS_HOME/repos/cantata/subforms/output_dither/dither.sub
     
         add
     
             -k $FILMWRITER/repos/cantata/subforms/filmwriter.sub
     
         Notice the reference to the toolbox name variable in the
         pathname.
     
         Update the $KHOROS_HOME/repos/Toolboxes file. This may already
         have been done for you if you used kinstall. It should have a
         line beginning with your toolbox name (e.g. FILMWRITER in the
         example above), with other descriptive fields following (follow
         the model of the other lines in the file). Be sure the second
         field (after the colon following the toolbox name) contains the
         path to the directory where the new toolbox is located.
     
         Add links in $KHOROS_HOME/bin that point to the executable
         files in the new toolbox (usually in the bin subdirectory of
         the toolbox directory structure).
     
         Run cantata to check out the new installation.
     

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

======================   Miscellaneous  =======================================
     
     
   Q43. Where did you get the name "Khoros"? Is it an acronym?

   A43. Khoros is not an acronym; rather, it is the greek word for
        "chorus". A definition of a "chorus" is: a company of
        singers or dancers who sing or dance in concert.
        We chose the name "Khoros" because we felt that it was symbolic
        of our objectives for our software system.  The "singers or dancers"
        are the many programs in the Khoros system;  our objective is to
        provide a group of programs that will, when used in concert,
        provide a harmonious environment for the the user.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q44. I would like to do 3D object modelling, with multiple light sources,
	animation, and so on.  Does Khoros do this?

   A44. No, sorry.  At this time, Khoros is geared more towards imaging than
	volume modelling or rendering.  We suggest you try AVS or Explorer for
	this types of work.  Both packages provide excellent object modelling 
	and rendering.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q45. I heard about the audio cantata demo, and would like to hear it.
        How do I go about this?

   A45. First of all, you have to be on a SparcStation (SUN4), and
        you must have the raw2audio program installed.  raw2audio is a
        program distributed by SUN; it is not part of Khoros.

        Go to /usr/demo/SOUND, and compile the code that is there using
        the Makefile provided.   Note that in this directory is the file
        raw2audio.c -- when you compile this directory, you will get the
        raw2audio* executable.  Then you may use the dsp.Z workspace with
        cantata to hear the demo.

        Note that if /usr/demo/SOUND does not exist on your SUN system, you
        must install it -- it should be available on the SUN OS 4.1.1
        distribution tape.

	The cantata workspace to run the sound demo file is available
        anonymous ftp from pprg.eece.unm.edu (129.24.24.10) in the 
        directory /pub/khoros/misc/workspaces;  it is called dsp.Z.  Be sure you
        have bin set (ftp> bin) before acquiring the compressed workspace.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q46. Is there a way to convert VIFF images with 3 color bands (rgb) to
	images with only one band and a colormap?  What about vice versa?

   A46. To convert VIFF images with 3 color bands (rgb) to images with only 
	one band and a colormap, use the vgamut program, using the [-n] option 
	to specify the number of colors you want in the compressed image.  
	Many of the Khoros routines will require that you use vgamut on your 
	3-band image before using them.

	To convert a single-band VIFF image with a colormap (a pseudocolor 
	image) to an RGB image, you can use vmapdata to map the image data 
	through the maps, which will result in an RGB image. However, the 
	colors will still be quantified to 256 values as they were in the 
	psuedocolor image (your " VIFF-with-colormap") -- therefore, the 
	resulting will not look the same as the original image did (assuming 
	the "original" image was an RGB image, and that is where the 
	psuedocolor image originated from).  You cannot go back to the full, 
	original RGB information given only a psuedocolor image. After using 
	vmapdata (which creates a single image), if you want 3 separate images, 
	you can then use vbandspt3 to extract the 3 bands from the image and 
	create 3 new images, each containing one of the R, G, and B bands.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q47. We are trying to run cantata on an NCD Xterminal as the display, 
        and the program fails, exiting with the following error:

        X Error:  BadAlloc
          Request Major code 65 ()
          Request Minor code 0
          ResourceID 0x2400085
          Error Serial #1576
          Current Serial #1582
       Major X error encountered for display ':0'! Unable to recover.

   A47. You are probably running out of memory.  One solution is, of course,
        to inquire and install more memory.  However, you are especially likely
        to run out of memory if you have Backing Store and/or Save Unders on.  
        If you look at the system setup you can see how much remaining memory 
        remains before starting cantata or displaying images.  You should be 
        able to set whether you want backing store "on demand", "always", or 
        "off".  You may want to try setting it to "on demand" or "off".

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q48. When I try to use my double or double complex viff image that came from
        another kind of machine, the program always gives an error.  What gives?

   A48. The support for double and double complex machine format translation 
        is not complete.  Unlike all other data types, which will be 
        transparently converted to the current architecture when loaded, 
        reading double precision data that was generated by another 
        architecture will cause an error in the translation code.  Presently, 
        no translation code for double precision exists.