VTK Remote Server with C++

You have a mixed version that I was talking earlier. Neither VTK or ParaView can run using aiohttp. We are still working toward that but it looks like you need to downgrade wslink<1.

Yes, sorry about posting the error, I accidentally ran Paraview whilst in virtual environment of VTK. But the performance is quite terrible. With vti file of 200 Mb, client is quite lagging when requesting 2D images from server. Do you have any hint to boost the performance. Here is the file that I am using: 209.64 MB file on MEGA . Server is running fine without error log. The issue is only performance.

  1. What ParaView are you using (osmesa, egl, desktop) on which OS?
  2. What kind of GPU do you have?
  3. Are you doing volume rendering or geometry rendering?

That example toggle between remote rendering and local rendering which could hammer the network when sending the geometry. If you want Remote rendering, you need to try the proper example such as py-web-vue/examples/02_contour/vtk-remote-rendering.

I am using this package : ParaView-5.9.1-1476-gf2172c1-osmesa-MPI-Linux-Python3.9-x86_64 downloaded from Paraview page. I am using Ubuntu 20 desktop with no GPU. And I am doing volume rendering. For your question " If you want Remote rendering , you need to try the proper example such as py-web-vue/examples/02_contour/vtk-remote-rendering", I tried it but in browser I cannot rotate the object like I did in “02_contour/pv-toggle-rendering” . Since I am new to this VTK/ Parview, applogize me for such silly questions, but my main objective is : server is responsible for 3D rendering, client is just display 2D images. And client is able to rotate object, cut object … (somehow it visualize like Overview | itk-vtk-viewer, but this itk-vtk js is client side (which handles all task: volume rendering, rotate, cut …))

ParaView-5.9.1-1476-gf2172c1-osmesa-MPI-Linux-Python3.9-x86_64: osmesa == very-slow rendering.

You should use another binary if you want fast rendering. If you have X running, you can use the full ParaView binary otherwise EGL is the best option but will require that you have an nvidia GPU with the proper driver installed on your machine.

Thanks a lot Sebastien,

Using ParaView-5.9.1-1512-g16e57c9-MPI-Linux-Python3.9-x86_64 gives much better performance. My ubuntu laptop (8Gb RAM, core i3, and no nvidia GPU) can handles 1Gb of vti file, and client can display the 2D images and can rotate the object although it’s still lagging (but much better than my previous post). I have another question, how can I get rid of displaying the application (as image below) when running app.py ? Says if I run the server in a docker or a remote Ubuntu server (which only work via terminal), how can the server works without x-running ?

image

Thanks a lot Sebastien,

Using ParaView-5.9.1-1512-g16e57c9-MPI-Linux-Python3.9-x86_64 gives much better performance. My ubuntu laptop (8Gb RAM, core i3, and no nvidia GPU) can handle 1Gb of vti file, and client can display the 2D images and can rotate the object although it’s still lagging (but much better than my previous post). I have another question, how can I get rid of displaying the application (as image below) when running app.py ? Says if I run the server in a docker or a remote Ubuntu server (which only work via terminal), how can the server work without x-running ?

image

You need the EGL binary with the nvidia-runtime for your docker and an nvidia gpu. That is the way we deploy vtk/paraview web application in the cloud with docker.