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.
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.
Please run:
Pkg.add("GLVisualize")
Pkg.test("GLVisualize")
Running the tests will walk you through all examples. I made a recording of me giving a descriptions for every example:
GLVisualize can be used as a backend for Plots.jl
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.
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.
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!
Please visit glvisualize.com . Example code on the website is out of date, pleaser refer to examples folder to get the newest versions.
Known problems:
- 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
cmake
andxorg-dev
libglu1-mesa-dev
on linux (can be installed viasudo apt-get install xorg-dev libglu1-mesa-dev
).
Try 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.