Khoros - Virginia Tech

Khoros
Yongqun He
Dept. of Computer Science, Virginia Tech
What is Khoros


Definition: Khoros is a software integration
and development environment that
emphasizes information processing and data
exploration.
Goal: provide a complete application
development environment that redefines the
software engineering process to include all
members of the project group, from the
application end-users to the infrastructure
programmer.
What Khoros Offers






Solutions for scientific and engineering
problems
Visual programming environment for solution
creation and problem solving
Software development environment and tools
Libraries for portability, scalability, data
access, GUI creation, data visualization
Visualization applications
More than 90,000 lines of code
History of Khoros
2001


Originated as a research project at the Univ. of New Mexico
Khoros Pro 2001: by Khoral Inc. – no longer free
Khoros for End Users

Offers > 300 Programs (operators) for:




Information processing
Data exploration
Data visulization
All programs are available via Cantata

Cantata: visual programming environment
Khoros for Developers

The Khoros Toolbox Programmer’s System



Programming services
Software development tools
The Software Development Environment





Direct manipulation GUI design tool
Automatic code generation
Standardized user interface and documentation
Interactive configuration management
Software integration: bring in existing programs
Organization of Khoros


Toolbox – collection of programs and/or libraries
that are managed as a single entity, or object.
Data Models
Khoros Toolboxes











Bootstrap -- Installation & make utilities. Required
Dataserv -- Data services. Required
Design -- Software development system. Required
Support – Utilities for software development system
Datamanip -- Polymorphic Data Processing Operators
Envision -- Interactive Data Exploration Tools
Geometry -- 3D Scalar and Vector Visualization
Image -- Image Processing & Analysis Operators
Matrix -- Matrix Operators
Migration – Utilities for migration from K1 to K2
Sample Data -- Sample Workspaces and Data
Khoros Toolbox Dependencies




Bootstrap must be installed first
Dataserv depends on Bootstrap
Similarly, …
Sampledata contains only data, independent
The Bootstrap Toolbox

Contains the base utilities for installing the
Khoros software:






Installit: the installation script
Kconfigure: configures the user environment
Kgenimake: generates Imakefiles
Kgenmake: generates Makefiles
Kimake: on which kgenmake depends
Also includes the lowest-level libraries in the
Khoros system
The Dataserv Toolbox


Consists of a collection of libraries which
together comprise Data Services, a powerful
system for accessing and manipulating data.
Objective of Data Services: access and
operate on data independent of its file format
or its physical characteristics such as size or
data type
The Design Toolbox
-- Programming Tools

The Khoros Toolbox Programmer’s System


Cantata – Advanced data flow visual language
Craftsman – toolbox and software objects manager;
create software objects

Composer – edit, manipulate, and compile existing
software objects
Guise – GUI specification editor
 Khelp – displays online hellp pages
Also includes GUI and Visualization Services
Libraries


Khoros Data Models

Polymorphic Data Model: up to N dimensions


Geometry Data Model: dimensions


width, height, depth, time, and elements.
Spheres, triangles, lines, …
Color Data Model
Data Operators in Toolboxes
Address needs of many application domains
Cantata

Definition: a graphically expressed, data flow visual
language which provides a visual programming
environment within the Khoros system.





Data flow: a "naturally visible" approach in which a
visual program is described as a directed graph, where
each node represents an operator or function and each
directed arc represents a path over which data flows.
Icons (Glyphs) represent programs: hundreds
Glyphs executed locally or remotely
Glyphs process data in both blocks and streams
Develop interactive programs visually by combining
glyphs into a complete program
Standard Glyph Components (Fig)
Standard Glyph Components

Input (Output) Data Connection Node:



Input (Output) Control Connection Node:



One for each glyph
Delay execution of the glyph until another (this)
glyph is executed.
Pane Access Button:



Zero to many
Yellow: required; Blue: optional
One for each glyph in the upper-left corner
Display the GUI (pane), specify argument values
Run Button:

Execute the program (operator) by the glyph
Input/Output: Glyph Connections


Output of one
operator becomes
input of another
one
Prevent the 2nd
glyph from
executing until
the 1st one has
done so
Ready to Play ?
What is the order to execute ?
Manipulating Connections

Click left mouse button:



Delete Connection
Save Data to File: for data flow connections only
Connection Options: line width, color, connection type.
Control Structures

Conditional constructs






If/Else
Merge: merge two separate data flow paths
Switch
Trigger: execute under certain condition
Expression: set a variable value
Looping constructs


Count Loop
While Loop:
References







Khoros Manuals:
http://rab.ict.pwr.wroc.pl/khoros_root/topmost_toc.html
Khoral Inc: -- Khoros Pro 2001 IDE:
http://www.khoral.com/
Wei Yu Presentation in 1999 for CS6704:
http://ei.cs.vt.edu/~cs6704/Khoros_C.pdf
Khoros Information at LBNL:
http://www-vis.lbl.gov/software/khoros.html
Khoros Programming Tutorial:
http://www.cab.u-szeged.hu/local/doc/khoros/Tutorial/
Khoros Pro 2000 Programming Tutorial
http://www.cse.sc.edu/~kubota/csce763/KhorosTutorial/manual/
Khoros 1 and 2 Information:
http://www.tnt.uni-hannover.de/js/soft/imgproc/khoros/