Home > Multifield-Isosurface-Explorer

Multifield-Isosurface-Explorer

Multifield-Isosurface-Explorer is a project mainly written in C++ and C, based on the GPL-3.0 license.

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

+TITLE: Multifield Isosurface Explorer

+AUTHOR: Shantanu Choudhary

+DESCRIPTION: User Manual

+OPTIONS: H:3 num:nil toc:t ^:{} date:nil email:nil

+STARTUP: oddeven

  • 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 [[http://vgl.serc.iisc.ernet.in/pub/paper.php?pid=013][paper]] by Suthambhara N. and Vijay Natrajan published in IEEE Transactions on Visualization and Computer Graphics 2011. [fn:1]

+LaTeX: \newpage

  • Installation Download Kappa-app from github

    +BEGIN_SRC shell

    $ git clone https://github.com/baali/Multifield-Isosurface-Explorer $ cd Kappa-app $ mkdir build $ cd build $ cmake .. $ make

    +END_SRC

    • Dependencies
      • OpenCL drivers.
      • VTK 5.9+ build with

        +BEGIN_SRC shell

        cmake -DVTK_USE_QT=ON -DVTK_USE_GUISUPPORT=ON -DBUILD_SHARED_LIBS=ON

        +END_SRC

        +LaTeX: \newpage

  • Usage

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

      +BEGIN_SRC shell

      $ ./MIE

      +END_SRC

      +ATTR_LaTeX: width=10cm

      [[./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.

      +ATTR_LaTeX: width=10cm

      [[./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.

      +ATTR_LaTeX: height=8cm

      [[./images/calculation.png]]

      +LaTeX: \newpage

    • 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.

      +ATTR_LaTeX: height=8cm

      [[./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

    • [[http://drona.csa.iisc.ernet.in/~vijayn/][Vijay Natrajan]] for his guidance and feedback.
    • Suthambhara, it was his code base and research work which is behind this application.
    • [[https://github.com/ccluri][Chaitanya]] and Dilip for all the help in getting GUI setup and other tweeks working.
    • [[https://github.com/punchagan][punchagan]]
    • Code base for GUI are taken from VTK Example kits for Qt.
    • OpenCL tutorials and source code from [[http://enja.org/][enja]]. Base of all openCL code for this application was taken from his [[https://github.com/enjalot/adventures_in_opencl/][github]] repository.

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