The scientific application with computationally intensive code needs a GUI. The purpose is numerical simulation on grids with floating point data. Requirements are following:

  1. Load/Save computational grids (floating point arrays) in various formats
  2. Beautiful Visualization with coordinates, scale bars, slices (like Paraview or MayaVi)
  3. Ability to fill some areas in grid with some values. Interpolation, copy-pasting parts of arrays (with arbitrary form)
  4. Ability to set own primitives (points, arrows), use own controlling elements (buttons, text fields, etc.)

The question is what technologies can solve this problem with small amount of time. Of course it is posible to code everything in OpenGL but maybe there are some better suited for this task technologies.

I consider VTK library, but it seems better suited for visualization of objects, which doesn't change by editing them in realtime. So it can be slow. Or maybe I'm wrong here?

Should I consider using some GUI library like QT or GTK?

Maybe this application should be in browser, but I think there will be an issue with transferring data to/from server. Maybe solutions exist to make it fast?


The QVTKWidget class provides the best of both worlds: use the visualization capabilities of VTK an embed them into a Qt-based GUI window with menus and dialog.

In theory the same may be possible in a browser by making use of WebGL and WebSockets. With reasonable data throughput even. But there'll be less ready-made visualization elements to choose from. At the time of writing at least.

  • It seems the most suitable case for my problem. Currently I'm stopped my search with exactly this combination (Qt + VTK). However since VTK 8.0 it is named QVTKOpenGLWidget instead of QVTKWidget. – Bhavin Chirag Feb 4 '18 at 8:05

Tkinter is used to build GUI wrappers around python code. The Tkinter module (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. It is object-oriented and cross-platform. Runs on the Mac under the Unix system. Also, check out tcl/tk for programming desktop apps.From a tcl/tk site: Tcl is a general purpose multi-paradigm system programming language. It is a scripting language that aims at providing the ability for applications to communicate with each other. On the other hand, Tk is a cross-platform widget toolkit used for building GUI in many languages.

Your Answer

