USC College of Engineering and Information Technology
USC main page
Model Sharing!

    
  USCThis site
 
VXE
 


Visualization EXtension Engine (VXE)

The Visual Extension Engine is application independent software designed to "extend" the visualization capabilities of simulation applications. VXE allows a user to examine data represented with a graphical plot, visualize the plot data with 3-D "plug-ins", or both, allowing a visual representation of how data affects the outcome of the system.

VXE Architecture

Vxe_Arch.jpg

2D Plotting

meter.jpg

    (17.9 K)Data is imported into the VXE program by sets of formatted data, known as streams. VXE can receive streams in one of two ways:
  • Off-line: Precomputed data can be transferred into the VXE system via data files.
  • Run-time: Simulation Applications can communicate data to VXE while they are running.

How this data is used is determined by the plug-ins. Streams remove data acquisition responsibilities from the VXE plug-ins and they allow the "number-crunching" engine and the visualization system to run on separate machines.

Off-line streams

A file containing streams has a special format, so that VXE can determine what data corresponds to which stream. The layout of the text file is not immediately ovious by opening the file in a text editor, but when the file is opened in a spreadsheet program, the layout becomes much clearer.

X_Translation Y_Translation Z_Translation Car_X_Rotation
0 0 0 0
0 0 0 0
0 0 0.1350337 0.0278657
0 0 0.2712308 0.2001622
0 0 0.3835038 0.3157064

Run-time streams

Simulation applications can transfer to data to VXE in either of two ways:

  • Output only: These data streams represent the output of the simulation application and input to VXE. This method of receiving streams can be considered the typical method of run-time streams.
  • Input/Output: These data streams allow the variables they represent to be modified by either the simulation application or VXE. This is possible because of the implementation of bi-directional communications in VXE v.2.0 and above. These types of streams allow interactive plug-ins to be created, where simulation data can be based on the user's interaction with the visualization.

The 2D Plotter has features including, but not limited to:

New features in VXE v.2.0 for WinNT:

Improved Communications

The ability to communicate with other programs is one of VXE's most important attributes. Its cross-platform compatibility allows a solver on a NT workstation to communicate with a visualization system on a UNIX workstation, and vice versa. Two improvements in communications come with VXE v.2.0: Bi-Directional Communication and Remote Procedure Calls.

Bi-Directional Communication

2waycomm.jpg (10.5 K) Bi-Directional communication allows for synchronization of the numerical solver and the visualization system by providing real-time visualization data across the network.
  • Users can change simulation parameters from the visualization interface which allows sophisticated, customized input mechanisms for interactive simulations.
  • Also, bi-directional communication allows computational plug-ins to be created which can provide feedback to active simulations.

Remote Procedure Calls(RPCs)

rpccomm.jpg (17.3 K)Remote Procedure Calls allow for high speed data transmission between the solver and the visualization system.
The traditional "sockets" method sends data byte by byte. RPCs allow the data to be sent either byte by byte, or it can send "chunks" of data across the network.. This method of mass data transfer is what provides the increased performance in the speed of the network communication.

3D System

The 3D system allows users to visualize data streams with OpenGL models. The models allow users to represent data in ways that plots cannot. It has OpenGL rendering controls such as wire frame, face culling, etc., 3D manipulation, and 3D user navigation. One of the main advantages of the 3D system is that it is designed in such a way that anyone can create their own visualizations. This is done by the use of plug-ins.

Plug-ins

motor.jpg (17.4 K)Plug-ins are C++/OpenGL objects instantiated within VXE which are designed to visualize data fed to them via specified streams. They can be written as generic problem solvers or customized visualization objects. Almost anyone can write a plug-in and have access to the power and flexibility of C++/OpenGL for visualization, provided that they:
  • understand OpenGL
  • are familiar with C++
  • understand either the Microsoft Developer Studio environment, or the IRIX equivalent
  • are familiar with VTB graphics libraries(e.g. GU, C3DModel, Images, OGLText, etc.) (extremely helpful, but not necessary)

Plug-in development is made much easier with the Plug-in AppWizard for Developer Studio v.6.0. which will be available in an upcoming SDK. The AppWizard automates the following tasks for the developer:

  • It creates the workspace needed to build a plug-in.
  • It handles all of the routine code required including the identification requirements and port specifications.
  • It also automates the installation of the plug-in DLL with a post-build batch file.

Plug-ins should be carefully designed so that they can be reused in other visualizations. As more plug-ins are developed, they can be made available to other developers and simulationists. Eventually, the growth in the availability of plug-ins should reach a stage where plug-ins could be "pulled off the shelf" for many applications.

How do plug-ins work?

Developers specify how many streams are necessary, then C++/OpenGL code is written that will use the data in the streams to construct the visualization. Then the plug-in is instantiated in the VXE system. Next, simulation data streams are attached to the plug-in, then finally rendering begins.


Can they do anything other than drawing?

domoredrw.jpg (12.9 K)

Of course! In addition to rendering, plug-ins can perform any desired calculations on the incoming data. With VXE v.2.0 for WinNT, calculated streams can do much of this beforehand and bi-directional communication allows the plug-ins to return the calculations to the simulation application.

Examples include:

  • Electric and magnetic field calculations
  • Mechanical motion
  • Voltage propagation along transmission lines
Sample Visualizations
Magnetic Flux in Airgap of Motor: (3.94 MB) InductiveMotor.JPG (9.27 K)
Magnetic Field Surrounding Power Cables in Magnetically Permeable (Steel) Conduit: (2.94 MB) powerCable1.JPG (8.19 K)
Propagation of Electrical transient through Zonal Distribution System: (3.94 MB) Transient.JPG (7.47 K)
Hybrid Electric Car: (3.56 MB) elec_car.JPG (3.92 K)
Construction of the PEBB: (8.84 MB) Pebbassemblympeg.jpg (1718 bytes)

Documentation:

  • Documentation for VXE v.1.1 for IRIX:
    • Download vxedoc.zip (MS Word format) (1.46 M)
  • Documentation for VXE v.2.0 for WinNT: