Introduction_EN - CCSEPBVR/CS-IS-PBVR GitHub Wiki

Introduction

Overview

CS/IS-PBVR is a scientific visualization application designed based on Particle-Based Volume Rendering (PBVR). This application is capable of multivariate visualization and three-dimensional point cloud visualization in addition to standard visualization functions such as volume rendering and isosurfaces for 3D volume data obtained from simulations and measuring instruments. In addition, the framework for distributed processing of optimized PBVR is characterized by the ability to remotely visualize large-scale time-series volume data in remote locations at high speed. As a method of remote visualization, you can choose between client-server (CS) visualization, which visualizes volume data stored in remote storage, and in-situ (IS) visualization, which visualizes simulations simultaneously and in the same environment. This application is being developed at the Center for Computational Science and e-Systems of the Japan Atomic Energy Agency.

PBVR converts volume data into compressed visualization particles and projects them onto the screen to generate a volumetric rendered image. The structure of the CS/IS-PBVR framework is shown in the figure below. CS-PBVR realizes remote visualization by dividing particle generation processing and particle projection processing into a remote server and a user PC at hand, and communicating the particle data for visualization. In addition, the interactive data exploration is possible by communicating visualization parameters such as user specified color and opacity functions. In IS-PBVR, the particle generation process is tightly coupled to the simulation, and it outputs a particle file on the storage. The in-situ control program running at the login node sends the particle files to the user PC, enabling interactive visualization without interfering with the simulation. In addition, the in-situ control program outputs the user specified visualization parameters to a file to the storage, and the particle generation process checks them at the timing of the time step update of the simulation, enabling interactive data exploration. In CS/IS-PBVR, the GUI on the user PC is built with a common program.

Local Image

CS-PBVR Supported Data Formats

The CS-PBVR consists of a server program that converts volume data into particles for visualization and a client program that displays images. The server program supports the following data formats.

  • VTK Legacy (ASCII, binary)
  • VTK XML(ASCII、binary)
  • EnSight Gold(ASCII、binary)
  • CGNS (only binaries are present)
  • Plot3D(ASCII、binary)
  • AVS(ASCII、binary)
  • STL(ASCII、binary)

Local Image

The server program supports the KVSML format, which is a custom XML-based data format for visualization. By using a KVSML converter, which is an independent program from PBVR, the aforementioned data formats can be converted into the KVSML format. Since the KVSML converter supports parallel reading using MPI, it enables efficient data loading when processing large-scale data on high-performance computing systems. Additionally, there is a filter program that divides volume data spatially and outputs it in KVSML format, allowing for parallel processing of large-scale data stored on storage systems.

Simulations Supported by IS-PBVR

IS-PBVR supports OpenFOAM, and by inserting visualization functions into the simulation source code, visualization processing in the same environment can be performed at the same time as calculation. It also supports simulations written in C/C++/Fortran. For simulation meshes, it is possible to handle structured, unstructured, and block structured AMR grids.

Support for textured polygon data

The CS/IS-PBVR client program can display textured polygons. The supported formats are FBX and 3DS.

Source code structure

The source code of the CS/IS-PBVR GUI application running on the user PC is in the QTPBVR directory, the CS-PBVR server program is in the CS_server directory, and the KVSML converter is in the kvsml_converter directory. The IS-PBVR particle generation program and in-situ control program are stored in the IS_DaemonAndSampler directory. Hereafter, the in-situ control program is simply referred to as a daemon.

Structure of this wiki

The installation method of the distributed binary is described in "Binary". The environment setting method and build method on Linux/Windows/Mac for generating binaries from source code are described in "Linux environment settings", "Linux build method", "Windows environment settings", "Windows build method", "Mac environment settings", and "Mac build method". Details of the filter program and how to start it are described in "Filter program". Details of the CS-PBVR server program and how to start it are described in "Server". The settings required for the particle generation program of the IS-PBVR are described in "In-Situ Setup". The coding method for inserting the IS-PBVR particle generation program into the simulation source code is described in "Particle Sampler". Details of the CS/IS-PBVR client program and how to start it are described in "Client". Details of the KVSML converter and how to start it are described in "KVSML converter". How to use CS/IS-PBVR is described in the "Tutorial".

Operating environment

CS/IS-PBVR is based on the C++ language, and is developed with OpenGL for image rendering, KVS for visualization processing, and Qt for GUI. It runs cross-platform on Linux, Mac, and Windows, and is available on the SGI8600 of supercomputers owned by the organization. The following table shows the environments that have been confirmed to work.

Platform OS Compiler Client CS Server KVSML Converter IS Daemon IS Particle Generation
Linux Kubuntu 22.04.04 g++ 11.4.0 O O O O O
Mac OSX14.4.1 Apple clang 15.0.0 O O N/A N/A N/A
Windows Windows11 MSVC2022 O O N/A N/A N/A
SGI8600 Red Hat 7.8 Intel Parallel, OpenMPI N/A O O O O

Operating environment(OpenXR)

The VR functionality of this application has been tested and confirmed to work with the following HMDs on a PC equipped with Windows 11, MSVC 2022 compiler, and Qt 6.2.4.

  • Meta Quest2
  • Meta Quest3
  • VIVE Pro
  • VIVE Focus 3
  • PICO4
⚠️ **GitHub.com Fallback** ⚠️