Skip to main content

Python interface to LavaVu OpenGL 3D scientific visualisation utilities

Project description

# logo

Build Status Deploy Status DOI Binder

A scientific visualisation tool with a python interface for fast and flexible visual analysis.

Documentation available here LavaVu Documentation

examplevis

LavaVu development is supported by the Monash Immersive Visualisation Plaform and the Simulation, Analysis & Modelling component of the NCRIS AuScope capability.

The acronym stands for: lightweight, automatable visualisation and analysis viewing utility, but "lava" is also a reference to its primary application as a viewer for geophysical simulations. It was also chosen to be unique enough to find the repository with google.

The project started in the gLucifer1 framework for visualising geodynamics simulations. The OpenGL visualisation module was separated from the simulation and sampling libraries and became a more general purpose visualisation tool. gLucifer continues as a set of sampling tools for Underworld simulations as part of the Underworld2 code. LavaVu provides the rendering library for creating 2d and 3d visualisations to view this sampled data, inline within interactive IPython notebooks and offline through saved visualisation databases and images/movies.

As a standalone tool it is a scriptable 3D visualisation tool capable of producing publication quality high res images and video output from time varying data sets along with HTML5 3D visualisations in WebGL. Rendering features include correctly and efficiently rendering large numbers of opaque and transparent points and surfaces and volume rendering by GPU ray-marching. There are also features for drawing vector fields and tracers (streamlines).

Control is via python and a set of simple verbose scripting commands along with mouse/keyboard interaction. GUI components can be generated for use from a web browser via the python "control" module and a built in web server.

A native data format called GLDB is used to store and visualisations in a compact single file, using SQLite for storage and fast loading. A small number of other data formats are supported for import (OBJ surfaces, TIFF stacks etc). Further data import formats are supported with python scripts, with the numpy interface allowing rapid loading and manipulation of data.

A CAVE2 virtual reality mode is provided by utilising Omegalib (http://github.com/uic-evl/omegalib) to allow use in Virtual Reality and Immersive Visualisation facilities, such as the CAVE2 at Monash, see (https://github.com/mivp/LavaVR). Side-by-side and quad buffer stereoscopic 3D support is also provided for other 3D displays.

This repository

This is the public source code repository for all development on the project. Development happens in the "master" branch with stable releases tagged, so if you just check out master, be aware that things can be unstable or broken from time to time.

How do I get set up?

It's now in the python package index, so you can install with pip:

pip install --user lavavu

If you don't have pip available, you can try sudo easy_install pip or just install Anaconda, which comes with pip and a whole lot of other useful packages for scientific work with python. Once in anaconda pip install lavavu will install the package.

Currently no binaries are provided and the installer needs to compile the library, so on Linux you may need some developer tools and headers first, eg: for Ubuntu: sudo apt install build-essential libgl1-mesa-dev libx11-dev zlib1g-dev

To try it out:

python
> import lavavu
> lv = lavavu.Viewer() #Create a viewer
> lv.test()            #Plot some sample data
> lv.interactive()     #Open an interactive viewer window

Alternatively, clone this repository with git and build from source:

  git clone https://github.com/lavavu/LavaVu
  cd LavaVu
  make -j4

If all goes well the viewer will be built, try running with: ./lavavu/LavaVu

Dependencies

  • OpenGL and Zlib, present on most systems, headers may need to be installed
  • To use with python requires python 2.7+ and NumPy
  • For video output, requires: libavcodec, libavformat, libavutil, libswscale (from FFmpeg / libav)
  • To build the python interface from source requires swig (http://www.swig.org/)

Who do I talk to?

For further documentation / examples, see the online documentation

Included libraries

In order to avoid as many external dependencies as possible, the LavaVu sources include files from the following public domain or open source libraries, many thanks to the authors for making their code available!


1 Stegman, D.R., Moresi, L., Turnbull, R., Giordani, J., Sunter, P., Lo, A. and S. Quenette, gLucifer: Next Generation Visualization Framework for High performance computational geodynamics, 2008, Visual Geosciences
2 Ruijters, Daniel & ter Haar Romeny, Bart & Suetens, Paul. (2008). Efficient GPU-Based Texture Interpolation using Uniform B-Splines. J. Graphics Tools. 13. 61-69.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

lavavu_osmesa-1.8.81-cp312-cp312-manylinux_2_28_x86_64.whl (74.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

lavavu_osmesa-1.8.81-cp311-cp311-manylinux_2_28_x86_64.whl (74.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

lavavu_osmesa-1.8.81-cp310-cp310-manylinux_2_28_x86_64.whl (74.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

lavavu_osmesa-1.8.81-cp39-cp39-manylinux_2_28_x86_64.whl (74.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

lavavu_osmesa-1.8.81-cp38-cp38-manylinux_2_28_x86_64.whl (74.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

File details

Details for the file lavavu_osmesa-1.8.81-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lavavu_osmesa-1.8.81-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e8a06876fbc419c7d84862c8cce75a00274cbbd7debd8c66fa2a6eab00d9fd8e
MD5 42c243105c49b52535c164034d2ccea6
BLAKE2b-256 f533d7020cbcb3c3504faae37dc3a5959c5c50a5704e32c60c5278dc9d255b50

See more details on using hashes here.

Provenance

The following attestation bundles were made for lavavu_osmesa-1.8.81-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: osmesa_deploy.yaml on lavavu/LavaVu

Attestations:

File details

Details for the file lavavu_osmesa-1.8.81-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lavavu_osmesa-1.8.81-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98118e1b716c2c511bbfc86c8b89820c6909fd4281791d2c0583b5567e7572ae
MD5 08db84ae7349ece88337e53bdbaf338b
BLAKE2b-256 8af0a8e6c5431ec4b41864bf1caca72bbc03a56a3838377c66dc8762090b6f9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lavavu_osmesa-1.8.81-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: osmesa_deploy.yaml on lavavu/LavaVu

Attestations:

File details

Details for the file lavavu_osmesa-1.8.81-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lavavu_osmesa-1.8.81-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e74d0f3b8eceeae33f239d8ead6ed1df8d50803e31badc0f52442aee526aca4
MD5 ccc2c0aaac6f903145bf8d13b2df1f09
BLAKE2b-256 44ad6ff3586c8d715b89286c92ffbe6c858b9faebcb2a8fc09ba4da7c14c8c9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for lavavu_osmesa-1.8.81-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: osmesa_deploy.yaml on lavavu/LavaVu

Attestations:

File details

Details for the file lavavu_osmesa-1.8.81-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lavavu_osmesa-1.8.81-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b5bddf5047553074fc73e205e31124f1c36c72f6c11858c54454bf945520ccf6
MD5 31d1fdeddac704509e318d9574dd16af
BLAKE2b-256 375f6747772134b60f3fce228f5d6373e584ca422cd78414d919d86086adfad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for lavavu_osmesa-1.8.81-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: osmesa_deploy.yaml on lavavu/LavaVu

Attestations:

File details

Details for the file lavavu_osmesa-1.8.81-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lavavu_osmesa-1.8.81-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30b4be166972af5d034e637bccdb6840d5ac32a65f4663fa1ddfdb30084957a5
MD5 a194e2f4a3225fa2bfdba7b9e94d3cbe
BLAKE2b-256 ed1eaae8b6f3043ee6106ddf52514aa21642b7884bd12a0fb3ad0348a29a8604

See more details on using hashes here.

Provenance

The following attestation bundles were made for lavavu_osmesa-1.8.81-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: osmesa_deploy.yaml on lavavu/LavaVu

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page