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.

Features

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.

Backends

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 from AMD. RadeonProRender is not only a production ready high quality raytracing engine, but even though the name suggests otherwise, its truely cross platform and runs on AMD/NVIDIA GPUs and any CPU. With appropriately fast hardware, you can render beautiful visualizations that show off your data using physically accurate materials and lights. (Image from: Lazaro Alonso)

Rich Ecosystem

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:
Ferrite​Viz.jl

Small package to visualize Ferrite.jl results, which is a simple finite element toolbox written in Julia.