*nix:
Based on the Unix asterisk wildcard which stands for "any number of characters", this abbreviation is short for any or all Unix or Linux flavors, commercial or open source (including FreeBSD and probably Mac OS X, once it is released).
2D:
Two-dimensional; as in an X-Y plot; also, referring to the topology of a surface, a plane is 2D. A 2D surface can be warped into the third dimension, yet it remains a 2D surface, albeit connecting 3D positions in space. This is sometimes referred to as "2.5D" (not a widely acceptable or meaningful term, except among computer graphics types).
3D:
Three-dimensional; as in an X-Y-Z space. A truly 3D object is also called "volumetric" as it contains not only a surface but an interior.
Alpha test, beta test:
In developing new software, someone has to test the usability and functionality of the program. Since writing complex software to perform flawlessly is only a theoretically realizable goal, "bugs" inevitably are found that cause the software not to work as the programmer(s) intended. New software is thus given to extremely hardy souls called "alpha testers" who can live with the software crashing itself and/or their machines frequently and repeatedly, work with little or no documentation, and yet who somehow manage to document and report their activities and findings to the programmers, who then attempt to fix the bugs. Beta-testers (sometimes the same people) usually see the software at a much later and more stable phase of development; glitches and bugs they report are presumably smaller, less frequent, and easier to repair. Theoretically, commercial software passes through a beta test stage before it is shrink-wrapped and sold to customers who would rather not be testing the software but simply using it productively. However, in recent years, it would appear that virtually all users are beta-testers for major new commercial software releases.
In open source software development, this practice is more widely accepted to be the nature of the software development cycle. Open source communities tend to agree at some point on the stability of a particular version of the software, and declare a version number that defines that state of agreement. But simultaneously and in an ongoing fashion, the next version(s) are being built, passed around, and tested. Thus, there is no clear "alpha" or "beta" test stage in the open source development cycle, simply previous "stable" versions to fall back to if a new version is too buggy to be usable.
Antialiased, aliased:
Aliasing appears when the sampling frequency of the display medium is less than twice the resolution of the object being displayed. The most obvious case is a single pixel black line drawn at a low angle above the horizontal (say 15$#176;) on a white computer screen or TV monitor. Because of the arrangement of pixels and the relatively low density (usually around 72 pixels per inch on monitors), the pixels in the line fall discretely on one horizontal line or the next. Because of the high visual acuity of our eyes, we see a staircase effect as the pixels on the line jump from one pixel row to the next. Anti-aliasing is implemented by a renderer; the rendered image is actually calculated at 2 or more times the original resolution of the display (oversampled), then subsampled (interpolated) back to the desired output resolution. As a result, instead of black or white pixels, in the case of our line, some pixels are various shades of gray. These blur the harsh edge of the staircase and our eyes see a smooth(er) line. Anti-aliasing is costly since rendering time increases by the square of the oversampling factor, as a general rule. DX does not automatically provide for anti-aliasing, but you can achieve it by rendering the image at some multiple of the display size, then using the Reduce module to subsample.
Cache:
A place to store values within a program; in Data Explorer, the cache is managed by the dxexec; the dxexec also provides places for the user to cache intermediate results when you use the SetLocal or SetGlobal modules.
Colorbar:
A representation of the relationship between numeric values and the colors that map to these values. Usually appears as an auxiliary item within a visualization image so the viewer can "lookup" the data value associated with any color.
Compile, compiler, compiled program:
The process and tool used to convert human-readable computer program text into machine readable instructions. Compiled programs generally run many times faster than interpreted programs, but require the intermediate step of creating the compiled version of the program. Thus, there is an inherent delay between the time the programmer makes a change and when he or she can see the results, making compiled programs unsuitable for real-time development or interactive feedback. Contrast with interpreter, hybrid.
Component:
In DX, a Component is an array of values with some associated metadata (information about the array data). By themselves, Components are not visualizable; Components are bound together into Fields which are visualizable.
Configuration Dialog Box (CDB):
Each module in DX has a CDB in which you can set values for the various inputs to that module's instance (that is, these values apply only to the particular copy of the module you are currently modifying, not all instances of that module). Most CDB's are opened by double-clicking the module; some special cases are accessible only by Ctrl-F or single-clicking the module, then choosing
VPE: Edit: Configuration… (the special cases all have custom windows of their own).
Custom module:
A module that a sophisticated DX programmer has separately created and compiled using a language like C or C++ (though you can't create a module entirely in FORTRAN, you can create a simple C wrapper around a FORTRAN routine). Using custom modules may increase the efficiency of certain functions you've added to your programming environment, but reduces the ease of sharing your program with others who do not use the same machine architecture, as your custom module(s) must be recompiled to run on those other architectures. If you do not have any custom modules in your < a href="#network">net, your net can easily be shared with and run by a colleague even if he or she is using
OpenDX on another architecture, since nets are not compiled.
Data-driven:
In DX, modules may be data-driven, that is, they can change their behavior on the fly based on the values or types of data found in the inputs to modules. They do this by examining the object metadata (the self-describing information). See also metadata, self-describing.
Data model:
A comprehensive scheme for describing how data is to be represented for manipulation by humans or computer programs. A thorough representation details the types of data, the topological arrangements of data, spatial and temporal maps onto which data can be projected, and the operations and structures that can be invoked to handle data and its maps. Because of the vast variety of objects that need to be manipulated by computers, no one data model subsumes all data types. However, the Data Explorer data model is inherently flexible and extensible and can describe and manipulate a very large number of different data representations efficiently.
Data Visualization, Scientific Visualization:
The process of converting symbolic data, usually numbers, into visual representations, by using specialized computer graphics software. Visualization transforms the representation of complex information from a form that requires mental processing of symbols into a directly perceptual form. It thus directly employs the powerful human eye-brain system to reveal pattern, form, similarity, discontinuity, color, depth, relative motion, etc. Some representations are "realistic" (for example, a terrain map created from real-world elevations), but most visualizations are depictions requiring some interpretation by the viewer. For example, a magnetic field around a comet might be represented as a field of vector arrows pointing down gradient. Obviously, if one observed a comet, they would not see little arrows (nor would they perceive the magnetic field visually), but by agreeing on this form of "mapping" of a vector field into a visual representation, different viewers can perceive the field and discuss the scientific import of it.
Executive, or dxexec:
The Executive is a process that manages all of the memory use, computation, network flow, and rendering of images within Data Explorer. As a separate process, dxexec can be invoked either by using the dxui (User Interface) process, or by a DX script. The latter form permits DX to be used in batch or parallel operations without the necessity or overhead of starting and manually operating the User Interface. The normal mode of starting up DX will start both a dxexec process and a dxui process which then connect to each other automatically through a socket (this is invisible to users). See also User Interface (dxui).
Field Object:
The fundamental data structure in DX, the Field describes the relationship between data values and the sampling space in which the values were measured. A non-null Field has at a minimum a "positions" component, usually a "data" component, and frequently, a "connections" component, in addition to other optional components.
Hybrid program:
A programming environment that combines elements of interpreted and compiled environments. DX is hybrid because the functional modules that one links together are each in themselves compiled, so as a functional module is called upon to execute, internally it executes very quickly. However, the program can be interactively wired together and immediately executed without compilation, so the process of developing, debugging, testing, and improving a DX program is much more interactive and direct than is possible in a strictly compiled programming environment. As a result, visual programming with DX gives the best of both worlds fast interactive development of the overall program with fast execution of each component piece of the program. See also compiler, interpreter.
The dxexec is responsible for figuring out (on the fly) in which order to execute the modules that the programmer has linked together interactively. Both the graph analysis (done before execution begins) and the actual passing of output values from each module to inputs of succeeding modules (as execution proceeds) is done within the dxexec, in memory, so there is little cost in overall execution time, preserving the interactive nature of DX programming for the user.
Interpret, interpreter interpreted program:
The process and tool used to parse human readable program instructions into a computer executable form in a direct way, rather than requiring an intermediate compilation step. Generally, this has the advantage of providing real-time, or at least highly interactive, response between the human and the computer process; however, the disadvantage is that interpreted programs tend to run much more slowly than compiled programs and are therefore unsuited for long computations. Contrast with compiler, hybrid.
Isocontour, isoline, isosurface:
Iso is derived from the Greek for equal, thus isolines represent lines on which the data values are everywhere the same. The most obvious example is published daily in weather reports as the line along which the temperature is 30 degrees, or 40 degrees and so on, the assumption being that the temperature forms a simple gradient in between isolines. Isosurfaces are the 3D counterpart of isolines. Note that isolines are one-dimensional (as are all lines in mathematics), but lie in a two-dimensional space. Isosurfaces are two-dimensional surfaces that are pitted in three-dimensional space (think of an eggshell with an infinitely thin shell thickness). It is also possible to have a 1D isoline that curves in 3D space (a hair that curves over the surface of your head). In Data Explorer, the same module (Isosurface) is used to make isolines and isosurfaces the appropriate output object is internally determined by the topology of the input object.
Keyframe:
In animation, both classic (hand-drawn) and computer-based, the main animator would draw only the "key" frames to designate where a character or object would appear at certain points. In classic animation, in-betweeners (apprentice animators) would then draw all the in-between frames to create the illusion of smooth "morphing" between keyframes. In computer graphics, the computer program calculates the transitional frames. The ability to set keyframes on a time line is a hallmark of a professional animation package. DX is, by that definition, not a professional animation package. However, one can emulate keyframes by creating, for example, certain camera views, recording them into a list, then playing them back after splining between them and resampling the splined curves at higher resolution to create in-between frames.
Macro:
In Data Explorer, a collection of modules that can be stored with a meaningful name on any Tool Category the user designates, then recalled as many times as needed and placed within a network program, just like modules. This permits the programmer to build customized packages, saving time when the same functionality is needed at a later time. Macros can have arbitrary numbers of inputs and outputs as specified by the programmer who creates the macro.
Metadata:
Data about data. That is, given an array, we must also inform DX about the number of items in the array, the type (float, integer, byte, and so on) of the array elements, and other information. This information is metadata about the data items in the array. Metadata is not a keyword in DX, but is a widely understood term within computer science. See also data-driven, self-describing.
Module:
In Data Explorer, a module is a function. It has inputs and outputs, and internally represents a piece of compiled program code that causes an action to happen on the inputs to create the outputs. The graphic representation is of a teal-colored (greenish-blue) rectangle. Sophisticated users of Data Explorer may write, compile, and add custom modules to the set of modules provided with DX.
Network or "net":
In Data Explorer, the visual program that represents the connected functions through which the input data passes. The visual representation is of rectangular modules connected by black wires. This looks like a network. Also, when a DX program is saved, it is given the suffix ".net" to distinguish its type. A ".net" file is plain text and can be opened, inspected, or modified with any text processor or editor. However, modifying a .net file without using the graphic editor is prone to error and is not recommended.
OpenDX:
The open source version of the visualization software that was formerly a commercial product known as IBM Visualization Data Explorer. The commercial version is no longer sold by IBM but as a transition aid for previous users, IBM continues to make the last version (3.1.4B) of the commercial product available. OpenDX is free for download and requires no license servers or keys. Complete information and links to both the OpenDX and commercial versions can be found at http://www.opendx.org/
Open source software:
Software for which the underlying "source" code (the program text as written in its native language C, C++, FORTRAN, etc.) is readily available for inspection and modification by any interested person. This contrasts with most commercial software, for which the source code is a closely guarded trade secret. Advocates of open source software believe that the more eyes that can see and hands that can change software, the quicker "bugs" are found and fixed, and new features added and tested by the open source community. Most open source software has some type of license agreement for its use that may cover rights to modify, redistribute, use for commercial purposes, and so on; that is, open source does not necessarily equal "free" software.
Path, pathname:
Most computer filesystems are represented as hierarchies starting from a top level directory, then propagating into a tree structure down to individual directories containing individual files. To locate a particular file or subdirectory, we specify the list of container directories in top-down order. This list is a "path".
Ray-trace:
An algorithm used in computer graphics renderers that emulates the real-world physics of calculating the paths that light rays take as they emanate from light sources and bounce off objects in a scene. If the scene contains reflective objects like mirrors, ray-tracers can calculate the additional light ray paths that bounce from the object to the mirror to the camera, adding additional realism to the scene.
Render, renderer:
Computer graphics term for the process or program that creates an image from the projection of virtual light rays in a three-dimensional scene onto a two-dimensional surface. For example, in a graphics scene, one would typically place one or more objects, frequently representing three-dimensional surfaces, one or more virtual lights to provide shading of the objects, and at least one camera that provides the point of view of the observer. The process of rendering the image involves the calculation of how the light rays bounce off the surface of the object and intersect a view plane in front of the camera essentially identical to how a photographic camera captures a scene in the real world.
Scalar:
A dimensionless value. 5, 2.14, -1e20 are all scalar values. See vector.
Scientific Visualization:
See Data Visualization.
Self-describing:
Because DX objects generally contain metadata which travels along with the data values in arrays, the objects are self-describing. Modules examine objects, read the metadata, and determine appropriate operations based on that information. See also metadata, data-driven.
Sequencer:
In DX, a special module called Sequencer permits us to generate a series of values (similar to a FOR-NEXT or DO loop in C or FORTRAN). As a side effect, each time a new number is generated, the entire program is caused to re-execute. Thus, if you feed the new number to various inputs, you will see different images on each execution. In this way, you can create animation (or motion graphics).
Streakline:
In visualization, a representation of the path of a massless particle through a gradient field over multiple time steps (that is, the field is allowed to change at each time step). Imagine releasing Styrofoam balls into a stream of water and videotaping their motion. If you set the shutter speed slow enough, the path of each ball would blur into a continuous line that traced its history through the gradient over some period of time. Since the water molecules are permitted to move freely, the path of the Styrofoam balls is continuously altered by the changing positions of the water.
Streamline:
In visualization, an instantaneous representation of a vector field. In contrast to Streakline, the path of a Styrofoam ball or balls over time through a static vector field. For example, if you released a set of balls at the top of a hill, and assume the hill gradient is not changing over the brief time of sampling, the same paths would be traced by balls released at the same points now and one hour from now (disregarding chaos theory). Videotaping their motion with an open shutter would yield a line showing the overall path through the static gradient.
Texture-mapping:
Much of the entertainment industry's computer graphics depends on this trick, in which an image is "draped" over a geometric object. If the image has detail (texture), we perceive a more complicated looking object than is actually modeled. Because the calculation of light reflecting off polygonal surfaces is costly in rendering, the more polygons, the slower the render. If an object has only a few polygons, but sports a rich texture, it can look more realistic and be less costly to render. The alternative would be to have a great many polygons each of which had a specific bit of color; for example, the dinosaur skins in Jurassic Park were texture-mapped, but the actual dinosaur objects did not need enormous numbers of polygons to make us see "real" animals. That said, texture-mapping has a number of weaknesses that make it difficult to use effectively for scientific visualization. There's a great deal of artistic license in texture-mapping that may not be appropriate for accurately depicting data that has been colormapped at specific sample points in a data field. Although DX provides for a form of texture-mapping, this is limited to hardware rendering with OpenGL, which not all users of DX have access to.
User Interface, or dxui:
The User Interface is a process that mediates the exchange of information between a human user of Data Explorer and the dxexec. The particular interface provided with DX is only one possible interface, and some people have explored developing unique graphic interfaces that can link to and call functions from the dxexec. However, most people learn and use the standard UI provided with DX, especially for developing "nets" and interacting with images. The normal mode of starting up DX will start both a dxexec process and a dxui process which then connect to each other automatically through a socket (this is invisible to most users). See also Executive (dxexec).
Vector:
A value that encodes magnitude and direction. The number of terms (usually called "components" in math and physics, but not in the same sense as DX Components), determines the dimensionality of the vector. In DX, vectors are usually designated by enclosing the terms in square brackets, for example [2] is a one-dimensional (1D) vector whose value is 2 and whose direction is taken to be from the origin pointing along the X axis in the positive direction. [3.2, -1.4] is a 2-vector that points down and to the right from the origin. DX supports data vectors with an arbitrary number of terms (I've actually created 57-vectors), but can only represent spatial vectors up to 3D. See also scalar.
Vertex, vertices:
In computer graphics, a vertex is a spatial location, usually found at line ends or along edges of polygons or at grid intersections. DX refers to vertices as "positions".
Visual Programming Language:
Traditional programming languages are almost all text-based (or at least, keyboard symbol oriented); the programmer types words in a syntax and structure peculiar to the language he or she is using. Visual Programming Languages are graphic in nature the programmer "draws" the program by placing function calls on an editing canvas, then interconnecting these functional blocks with links that indicate the order of operations, or the direction of data-flow through the blocks. Thus, a visual program represents the same sort of operations as a text-based program, but if done well, hides a lot of triviality (spelling errors, recalling exact names and order of arguments, etc.) from the programmer that may result in improved efficiency in developing a program. On the other hand, whenever a system hides low-level details from a programmer, inevitably there are programmers who are frustrated by not being able to manipulate those very details.