Voxler uses a collection of modules and their connections to create a visualization network to represent data and process one or more modules in the Network Manager.
Modules are the building blocks from which the final output is constructed. They consist of input data sets and processes to be applied to the data sets. Modules accept data on their input ports, modify the data, and pass it along through the output ports. The modules link together in an infinite number of ways to form a pipeline that passes the processed data from one module to the next. The final output from the network is usually a graphical representation of the data. This architecture is commonly called a "data flow" model.
Modules have inputs, outputs, and properties. The inputs and outputs are the data types described in the Data Types page. Modules are displayed in the Network Manager. The properties of a selected module appear in the Property Manager. When a module's input or properties have changed, it automatically updates in the Viewer window. After the module has updated and recomputed its outputs, the framework ensures that all downstream modules are updated as well.
Modules are display in the Network Manager.
In this example, the VectorPlot and StreamLines
modules are attached to the TestLattice data set.
Multiple data sets can be loaded into a single Voxler project. Each data set can be connected to any number of visualization or computational modules to produce a single scene. Data sets are automatically loaded into source modules. The scene can be interactively manipulated in the three-dimensional Viewer window and saved to a file or printed.
Voxler's data flow model allows for incredible flexibility and power. Here are some of the specific advantages:
The modules can be dynamically connected and edited to see the effect of different parameters on the data. For example, a point set can be loaded, connected to a Gridder module, and output to an isosurface. The gridding parameters can be altered to see the new output in the Isosurface without having to save grid files. The Isosurface automatically recognizes that the grid has changed and automatically updates.
Multiple modules can be connected to a single input module in order to "stack" the effects. For example, a Contours module, Isosurface module, and ClipPlane module could all be connected to a single lattice module. The output from all three modules is correctly combined in the final scene.
Network updates execute on a separate work thread. This allows the user interface to stay responsive even while the network is being updated. If a changing property threatens to invalidate the currently updating network, Voxler detects and aborts the update in progress. A new update to include the changed properties is then requested.
There is no need for intermediate files, i.e., grid files. The data are loaded once and need not be resaved in an intermediate form for later reloading.
Execution through the network can be optimized so only those modules that actually need to execute are triggered. Paths that do not change are cached and do not contribute to the overall execution time. If data or parameters are altered in the middle of the module network, only the downstream modules need to re-execute.
The Network Manager allows the user to easily select modules in the two-dimensional interface.
See Also