No backend available (GLMakie, CairoMakie, WGLMakie)

Hi, I followed one of the tutorial from Agents.jl package.(Schelling's segregation model · Agents.jl)

However after executing the following lines of code, I got an error ERROR No backend available (GLMakie, CairoMakie, WGLMakie).

using Agents
using CairoMakie
using InteractiveDynamics:abm_plot

figure, _ = abm_plot(model; ac = groupcolor, am = groupmarker, as = 10)

This was when I was using vscode in its interactive form (executing each line of code with cmd + enter). I managed to however get the figure displayed temporarily when running as a script (include("schelling.jl")). But this too didnt work after adding plots.jl package to my environment and following that I never managed to get it working again.

I tried removing plots, creating a whole new environment (without plots.jl), updating all packages as well as Pkg > build CairoMakie but non of these methods worked.

Currently I have the following packages in my environment, also I am using Mac with the new m1 chip.

Agents v4.3.1
CairoMakie v0.6.0
GLMakie v0.4.0
InteractiveDynamics v0.14.6
WGLMakie v0.4.0

Any ideas how to get this fixed?

1 Like

I just had this issue on my M1 .Mac (not sure if it’s related to that) and adding GLMakie fixed the issue.

1 Like

Thanks for this. But unfortunately didn’t work for me !

I have exactly the same issue. With similar versions of the packages (I have InteractiveDynamics v0.14.6).

Please let me know if you manage to fix this.

(I’m on a 2016 MBP with macOS Catalina)

Looks like the Makie version is fixed to an older version, while you got the newest backends installed… I’d try to downgrade the backend

Hi all, these issues are due to the recent change from AbstractPlotting to Makie as the base package of the Makie environment.

The crossover point for InteractiveDynamics (and thus Agents) was in v0.15 - can you upgrade that package and report back?

Edit: if you can’t get this to work automatically, try ] rm GLMakie, then ] up InteractiveDynamics and finally ] add GLMakie back. I think the hook is that AbstractPlotting is sitting around in the manifest and is not allowing the upgrade to happen easily.


This is also quite confusing since the latest GLMakie at time of writing is v0.3.4

Screenshot 2021-06-16 at 4.29.53 PM

No clue why but yeah thats what it says

Yeah, I’d remove that, update and add again.

Libbum solution worked for me. Had to remove pretty much all backend of Makie (GLMakie, CairoMakie, …) in order to update InteractiveDynamics to 0.15.1. @Libbum thanks heaps for this

Yeah sorry about that, we did quite a few drastic changes for the repositories, and didn’t have enough time to figure out a 100% hassle free way for the users…


In particular, GLMakie etc live in the Makie monorepo now, so the versions you find in their old repos are outdated.

@Rajith_Vidanaarachch try Libbum’s solution. Will hopefully work for you as well.

Oh, that makes sense!

Just wanted to chime in with my opinion:

The drastic changes are much appreciated for the future, and an okay implementation now is better than a perfect implementation never <3


Thank you everyone - this is working now :slight_smile:

It’s exciting to be working with stuff that is currently being developed. Despite the little blocks we run into.

I’m stuck on the same problem, but the solution doesn’t work for me.
Whatever sequence of actions I try, including the direct url to GLMakie, I can’t get it to upgrade to the latest version…

Any ideas?

Is that your complete list of dependencies in this project?

GLMakie looks old for sure, but it may be one of the other packages you have needs it.

Best thing I could suggest right away is start a new environment with Agents, GLMakie and InteractiveDynamics. Then, start adding your other requirements until you see GLMakie downgrade to this value - that will find the package that’s causing the conflict.

It is. It’s a very basic EGT model that I am trying to recreate with some interactive features.

Thank you for the suggestions, I’ll try them out and report back.

1 Like

@Libbum Thank you again for the help. I’ve managed to successfully get myself to the right versions. It seems that Atom was the culprit of the little issue. I’m not even sure what it was doing in my dependencies, but I am quite new at this.

My dependencies now correctly read GLMakie v0.3.4 and InteractiveDynamics v0.15.1.

Unfortunately, I’m still running into the same issue after the fix. Perhaps it’s something much more daft than the OP’s issue.

I’d be forever grateful for any help in demystifying this once and for all.