Kyoto Visualization System (KVS) is a multi-platform, open-source C++ library for developing scientific visualization applications. KVS provides various classes and interfaces, such as isosurace extraction, streamlines and volume rendering, to visualize medical data obtained by computerized tomography or magnetic resonance imaging, numerical data from computational fluid dynamics and so on.
The source code of KVS can be downloaded via GitHub as follows:
$ git clone https://github.com/naohisas/KVS.git
The environment variable KVS_DIR
should be set to an install directory of KVS, and the binary directory KVS_DIR/bin
which includes several KVS commands should be add to the PATH variable.
export KVS_DIR=~/local/kvs
export PATH=$KVS_DIR/bin:$PATH
Variable | Value |
---|---|
KVS_DIR | C:\Program Files\kvs |
PATH | %PATH%;%KVS_DIR%\bin |
KVS supports the following software packages. By checking (changing 0:disable to 1:enable) the enable/support flags corresponding to each package in kvs.conf, the functionalities provided from them can be available in KVS.
Package | Flag | Description |
---|---|---|
OpenGL | KVS_ENABLE_OPENGL | Flag for enabling OpenGL functionalities. If '0' (disable) is specified for this flag, the renderer classes implemented with OpenGL functions in the visualization modules will be unavailable. |
GLU | KVS_ENABLE_GLU | Flag for enabling GLU (OpenGL Utility Library) functionalities. KVS can be complied even if this flag is zero. |
GLEW | KVS_ENABLE_GLEW | Flag for enabling GLEW (OpenGL Extension Wrangler Library) functionalities. Note: GLEW needs to be installed to compile KVS on Windows environments. |
OpenMP | KVS_ENABLE_OPENMP | Flag for enabling OpenMP functionalities. OpenMP supported compiler is required. |
(Deprecated functions) | KVS_ENABLE_DEPRECATED | Flag for enabling the deprecated functions and classes in KVS. Note: Although the deprecated functions and classes can be available by checking this flag, but not recommended. |
GLUT | KVS_SUPPORT_GLUT | Flag for supporting GLUT functions. The screen class based on the GLUT is provided. See SupportGLUT for setting information. |
GLFW | KVS_SUPPORT_GLFW | Flag for supporting GLFW functions. The screen class based on the GLFW is provided. Note: GLUT or GLFW is required for developing viewer application with KVS. See SupportGLFW for setting information. |
FFmpeg | KVS_SUPPORT_FFMPEG | Flag for supporting FFmpeg functions. See SupportFFmpeg for setting information. |
OpenCV | KVS_SUPPORT_OPENCV | Flag for supporting OpenCV functions. See SupportOpenCV for setting information. |
Qt | KVS_SUPPORT_QT | Flag for supporting Qt classes. The screen class based on the Qt. See SupportQt for setting information. |
Python | KVS_SUPPORT_PYTHON | Flag for supporting Python in KVS. By using these classes, python codes can be called in c++ codes. See SupportPython for setting information. |
MPI | KVS_SUPPORT_MPI | Flag for supporting MPI functions. Note: MPI compiler is required. See SupportMPI for setting information. |
EGL | KVS_SUPPORT_EGL | Flag for supporting EGL (The Khronos Native Platform Graphics Interface) functions. By checking this flag, GPU-based off-screen class is provided. See SupportEGL for setting information. |
OSMesa | KVS_SUPPORT_OSMESA | Flag for supporting OSMesa (Off-screen Mesa) functions. By checking this flag, CPU-based off-screen class is provided. See SupportOSMesa for setting information. |
By using the make command, KVS can be easily build and install to KVS_DIR
.
- Windows
$ cd KVS
$ nmake
$ nmake install
- Linux and Mac OS X
$ cd KVS
$ make
$ make install
KVS is released under BSD 3-Clause License. See LICENSE for details.
- KVS/Source/Core/NanoVG uses nanovg (zlib license) and stb (Public Domain, MIT license).
- KVS/Source/Core/FileFormat/XML uses tinyxml (zlib license).
- KVS/Source/SupportMPI/Renderer/ImageCompositor uses 234Compositor (2-clause BSD license).
- KVS/Source/SupportFFmpeg/AvCpp uses AvCpp (3-clause BSD license).
Naohisa Sakamoto and Koji Koyamada, KVS: A simple and effective framework for scientific visualization, Journal of Advanced Simulation in Science and Engineering (JASSE), Vol. 2, Issue 1, pp. 76-95, 2015.