GLVisualize is an interactive 2D/3D visualization library completely written in OpenGL and Julia. Its focus is on performance and allowing to display animations/interactions as smooth as possible.
Installation of GLVisualize
You need OpenGL 3.3, which should be available on most computers nowadays. If you get an error like this, please try updating your system/video driver.
Running the tests will walk you through all examples. I made a recording of me giving a descriptions for every example:
Plot examples created with Plots and GLVisualize as a backend:
Support for hovers and unicode:
Image marker type and hover:
GLPlot.jl, a GUI for plotting with GLVisualize
GLPlot allows you to interact with your plots and create GUI elements.
Hybrid GLPlot, Plots.jl
These examples use the lower level API of GLVisualize+GLPlot to allow interactions that would not be possible with Plots.jl alone. It is planned to integrate this more nicely with the higher level interface in Plots.jl.
Demo of GPU computing and visualization of the GPU object with GLVisualize
GLVisualize is GPU accelerated and we can use this fact to display computations run on the GPU as efficient as possible. This is a demo using the packages CUDAnative and GPUArrays to run Julia code on the GPU and visualize the result. Note that the CPU version takes around 60 seconds for every iteration. GPU acceleration brought this down to interactive speeds at around 0.12s per iteration!
- On Mac OS, you need to make sure that Homebrew.jl works correctly, which was not the case on some tested machines (needed to checkout master and then rebuild)
- GLFW needs
libglu1-mesa-devon linux (can be installed via
sudo apt-get install xorg-dev libglu1-mesa-dev).
Pkg.test("GLVisualize") to see if things work! If things are working, you should see (after some delay for compilation) an animation pop up in a window with a spiral of cubes moving over a background of several other images and visualizations.
Close the window when you tire of watching it, and you should see a "tests passed" message.