Skip to content

Application to get Important isovalues by profiling the relationship between multiple scalar fields over isosurfaces of a given scalar field.

License

Notifications You must be signed in to change notification settings

baali/Multifield-Isosurface-Explorer

Repository files navigation

Multifield Isosurface Explorer

Overview

Identification of important isovalues of scalar fields is a well studied problem. In this application we have used a relation-aware approach to explore scalar multifield data. In the context of multi-field data, we calculate a variation density function, whose profile is a good indicator of interesting isovalues of individual scalar fields. The application, includes a graph viewer to plot the variation density function against isovalues and an Isosurface viewer to interact with Isosurfaces. The implementation is based on ideas described in the paper by Suthambhara N. and Vijay Natrajan published in IEEE Transactions on Visualization and Computer Graphics 2011. [fn:1]

Installation

Download Kappa-app from github

$ git clone https://github.com/baali/Multifield-Isosurface-Explorer
$ cd Kappa-app
$ mkdir build
$ cd build
$ cmake ..
$ make
  • Dependencies
    • OpenCL drivers.
    • VTK 5.9+ build with
      cmake -DVTK_USE_QT=ON -DVTK_USE_GUISUPPORT=ON -DBUILD_SHARED_LIBS=ON 
              

Usage

  • To start application navigate to build folder and either double click the MIE file or type the following in the terminal
    $ ./MIE
        

    ./images/app_start.png

  • The application handles Unstructured data grids with multiple scalar fields.
  • The isosurface shown in the right pane corresponds to the scalar field selected from the first drop down list.

    ./images/load_file.png

  • Select two scalar fields from the drop down menu, that you want to compare and calculate the variation density function.
  • Two charts are displayed after calculations are over. One is of Variation Density profile and the other is the isosurface statistics.

    ./images/calculation.png

  • To select isovalues, you can either click on points displayed in the chart, use the slider, or the text box. Local mamima, minima and points with high slope in the chart may correspond to interesting isovalues.

    ./images/interaction.png

Breakdown

  • GUI
    • GUI4.ui is the UI design of application.
    • GUI4.h and GUI4.cxx are files where all the signals and slots are defined.
  • OpenCL
    • pointData.cl is the kernel file.
    • Points.Cxx takes care of creating buffers, passing the data to GPU and invoking kernel.
    • cll.cpp and cll.h are files which take care of Hardware detection, kernel compilation and all.

Issues/TODOs

  • Not able to highlight the selected point on the chart.
  • Still there are cases when I am getting NaN during calculations, locate and handle them.

Credits

  • Vijay Natrajan for his guidance and feedback.
  • Suthambhara, it was his code base and research work which is behind this application.
  • Chaitanya and Dilip for all the help in getting GUI setup and other tweeks working.
  • punchagan
  • Code base for GUI are taken from VTK Example kits for Qt.
  • OpenCL tutorials and source code from enja. Base of all openCL code for this application was taken from his github repository.

[fn:1] Please include a reference to the above paper when you use the visualization tool in your research work.

About

Application to get Important isovalues by profiling the relationship between multiple scalar fields over isosurfaces of a given scalar field.

Resources

License

Stars

Watchers

Forks

Packages

No packages published