Makie is a modern plotting library for
Julia.
It is easy to use, fast and powerful. Packed with features,
it is a general-purpose tool that makes as few compromises for specialized use cases as possible.

Surgical updates & high performance

Makie uses Observables.jl to only update what’s necessary at a given point in time.
This example animates hundreds of thousands of points just through a colormap update, modifying only a few bytes per frame directly on the GPU.
There’s no faster way to animate large data. Combining the power of GPUs and Julia’s high performance, Makie is fit for any task!

Powerful Layouting

Makie has one of the most powerful layouting systems compared to other plotting
libraries, allowing you to tweak any possible attribute and place your plots
and subplots freely.



2D, 3D, Volumes, Meshes, Sliders, Buttons and more

Makie has support for all kind of primitives for interactive data exploration. This makes it simple to quickly build up dashboards for any kind of data.

Powerful event system and rendering engine

Makie is certainly not a game engine, but its rich rendering and interaction features allow the creation of simple, interactive games such as Minecraft.
While Makie might not be the go-to for more complex games, using it to build a Minecraft-like game highlights its versatility for complex, interactive visualizations.
Many use cases, such as AI gyms or complex, interactive 3D simulations, greatly benefit from this.



Makie’s backends are the reason why we can have high quality vector graphics for publication while also delivering fast GPU accelerated renderings.
Use exactly the same code and change how your interactive graphic is displayed simply by switching the backend.

GLMakie

The backend for fast, interactive desktop applications.
It was Makie’s first backend and uses the GPU via OpenGL for fast 3D animations.
It supports basic UI elements for simple Dashboards.
Either a hardware or virtual GPU (e.g. Mesa, VirtualGL) is necessary to use GLMakie.
(Image from:

A. N. Souza)



CairoMakie

CairoMakie runs anywhere on the CPU and is Makie’s backend for SVG and PDF vector graphics output.
With CairoMakie, you can achieve the highest quality output for publications and reports.
Because it uses vector graphics primitives, CairoMakie does not support 3D rendering the same way as GLMakie
and has no interactive mode.
(Image from:

beautiful.makie.org)



WGLMakie

WGLMakie puts your visualizations in the browser using Threejs and WebGL.
It runs almost anywhere on the GPU and is great for working on remote machines,
with Pluto or Jupyter notebooks, or in browser-like IDEs such as VSCode.
Like with all javascript-based visualization tools, there is an overhead when transferring large amounts of data to the browser.
(Image from:

VISUS)

RPRMakie

RPRMakie is the newest experimental backend for raytraced images using RadeonProRender.
With appropriately fast hardware, you can render beautiful visualizations that show off your data
using physically accurate materials and lights.
(Image from:

Lazaro Alonso)



Makie is highly modular and extensible.
Many use cases are already covered by its inbuilt plot types and interactive elements.
For more specialized applications, have a look at the rich third-party ecosystem that has developed around Makie:

Users

Supporters

Follow us

Read More