Visualization library written in Julia and OpenGL

First Commit


Last Touched

1 day ago

Commit Count

859 commits


Build status (Linux x86-64): Build Status

Coverage Status


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.

Please run:


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.

lorenz attractor

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!


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:

  • boundingboxes are not always correct
  • 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 and xorg-dev libglu1-mesa-dev on linux (can be installed via sudo 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.