views:

733

answers:

4

I have heard some good reviews oF Visualization ToolKit(VTK) from developers. But, exactly how powerful is it? For example, can it handle visualization of an entire oil reservoir (in a simulator) with billions of grids?? Most industrial reservoir simulators run on parallel processors. I know VTK supports parallel processing, but again how stable can it be utilizing parallel processors when running something like reservoir simulations?? Has anybody used VTK on a large scale project?? Mathematica supports some simple reservoir simulations, but i think it using java swing libraries. So, any idea of VTK being used for a powerful visualization other than 3DSplice?? Also, what about development time?

+4  A: 

VTK is coded in C++ and usable in C++, Python, Tcl/Tk, Java. Labs such as Sandia (including, I believe, their Titan effort), Los Alamos, and Livermore, use VTK for visualization efforts on a scale large enough to rival your ambitions (of course, this is done with huge amounts of hardware in support, and extremely skilled programmers very experienced with VTK and all other technologies being used in the project -- "billions of grid points" is not a project to tackle until you have a team with such extreme skills, not with ANY toolkit).

I'm not claiming this (a visualization project of the fiercely ambitious scale you have in mind) is going to be EASY no matter how you tackle it -- but I can't think of any alternative frameworks that would make it any easier than VTK would!-)

Alex Martelli
Basically, I am petroleum engineer but I am very much passionate about programming(I know there is a difference between being passionate and being skilled).We do have a team of skilled programmers who have been involved in development of reservoir simulators. Lately, we have been thinking about VTK.So, what about the development time?
Learner
Development time may be faster than any other similar toolkit I've ever heard about, but fine-tuning and optimizing for running billion-nodes visualizations FAST on huge clusters will still feel like it's taking forever -- it's an inherently HARD problem. I don't know any tool that makes your development faster than VTK, but that doesn't mean you'll LIKE the amount of effort involved even WITH VTK (so what's the alternative -- doing nothing at all as it's too hard?-).
Alex Martelli
A: 

Defining how "powerful" VTK (or any library) is impossible. It all depends on your needs. It's not like you can throw any grid at VTK, beef up with loads of loads of hardware and expect it to run smoothly. VTK is not geared towards huge models - however there's a library named Paraview that attempts to support this.

Sidenote: we visualize billion cell models interactively on plain laptops (not using VTK/Paraview). How? I guess that's a secret... :)

larsm
I want to upvote this for mentioning ParaView, but ParaView is a stand-alone program, not a "library". Also, its role is not adding large-data support to VTK. For now, I'm forced to vote -1 for being technically incorrect.
Eric
+2  A: 

My personal experience with VTK is positive, but only with small datasets. It can definitely be very slow if you have large datasets, as in your case. On the plus side, it sports so many visualization modes that it's unthinkable to rewrite them in pure OpenGL. I don't know where the slowness of VTK comes from, but the pipeline architecture probably does not help. Also, much of it depends on the filter you use. The Volumetric plot, for example, is insanely slow by construction (many parallel transparent planes).

A solution we found useful was to trim the dataset to a bare minimum before plotting it. Very often, the loss of visual accuracy is negligible. You can also try with the LevelOfDetail (LOD) filter but I have no experience with it.

Stefano Borini
+2  A: 

VTK is a pretty powerful toolkit in that it offers reasonably efficient implementations of a wide variety of visualization algorithms. To see some of what VTK can do, I recommend checking out ParaView. ParaView builds usable application around VTK so you can immediately visualize data by coupling various VTK components together.

To more directly address your questions, the parallel processing in VTK is used to accelerate creating the visualization. This should be stable, but independent of your simulation calculation. Learning how to use VTK takes some time, but there is a book that you can buy that explains many aspects of how to use it. Experimenting with the Python wrappings is a good way to get up to speed on how to use VTK.

For your applications, I'm not sure if VTK is the most suitable solution. I would recommend some small scale experiments using either ParaView or the Python VTK bindings to see if you can create a reasonable visualization of your simulations.

Eric

related questions