# "ERROR: No backend available (GLMakie, CairoMakie, WGLMakie)!" when calling "abm\_video" in InteractiveDynamics.jl

**URL:** https://discourse.julialang.org/t/error-no-backend-available-glmakie-cairomakie-wglmakie-when-calling-abm-video-in-interactivedynamics-jl/61626
**Category:** New to Julia
**Tags:** makie
**Created:** [May 22, 2021, 9:00am UTC](https://discourse.julialang.org/t/error-no-backend-available-glmakie-cairomakie-wglmakie-when-calling-abm-video-in-interactivedynamics-jl/61626 "2021-05-22T09:00:32Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![ultrapoci](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ultrapoci/32/25356_2.png) [@ultrapoci](https://discourse.julialang.org/u/ultrapoci)
#### Post date: [May 22, 2021, 9:00am UTC](https://discourse.julialang.org/t/error-no-backend-available-glmakie-cairomakie-wglmakie-when-calling-abm-video-in-interactivedynamics-jl/61626/1 "2021-05-22T09:00:32Z")

</div>

Hi, I’m a quite new Julia user. I’m currently trying to implement a simple gas model using [Agents.jl](https://juliadynamics.github.io/Agents.jl/stable/). To do this, I’ve been following a couple of tutorials from the docs, namely Continouos Covid19 and Flocking. To show the results, both examples call the `abm_video` function, in conjuction with calling `using InteractiveDynamics` and `using CairoMakie`. The problem is that when I try to do so, I get the error from the title:

> ERROR: No backend available (GLMakie, CairoMakie, WGLMakie)!  
> Maybe you imported GLMakie but it didn’t build correctly.  
> In that case, try `]build GLMakie` and watch out for any warnings.  
> If that’s not the case, make sure to explicitely import any of the mentioned backends.
> 
> Stacktrace:  
> [1] error(s::String)  
> @ Base .\error.jl:33  
> [2] backend\_display(#unused#::Missing, #unused#::AbstractPlotting.Scene)  
> @ AbstractPlotting ~.julia\packages\AbstractPlotting\M8Nlv\src\display.jl:42  
> [3] AbstractPlotting.VideoStream(scene::AbstractPlotting.Scene; framerate::Int64)  
> @ AbstractPlotting ~.julia\packages\AbstractPlotting\M8Nlv\src\display.jl:332  
> [4] AbstractPlotting.VideoStream(fig::AbstractPlotting.Figure; kw::Base.Iterators.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:framerate,), Tuple{Int64}}})  
> @ AbstractPlotting ~.julia\packages\AbstractPlotting\M8Nlv\src\display.jl:345  
> [5] Record(func::InteractiveDynamics.var"#62#65"{Int64, Int64, AgentBasedModel{ContinuousSpace{2, true, Float64, typeof(Agents.defvel)}, Agent, typeof(Agents.Schedulers.fastest), Dict{Symbol, Float64}, MersenneTwister}, typeof(agent\_step!), typeof(model\_step!), InteractiveDynamics.ABMStepper, Observable{Int64}}, scene::AbstractPlotting.Figure; framerate::Int64)  
> @ AbstractPlotting ~.julia\packages\AbstractPlotting\M8Nlv\src\display.jl:581  
> [6] record(func::Function, scene::AbstractPlotting.Figure, path::String; framerate::Int64, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})  
> @ AbstractPlotting ~.julia\packages\AbstractPlotting\M8Nlv\src\display.jl:576  
> [7] abm\_video(file::String, model::AgentBasedModel{ContinuousSpace{2, true, Float64, typeof(Agents.defvel)}, Agent, typeof(Agents.Schedulers.fastest), Dict{Symbol, Float64}, MersenneTwister}, agent\_step!::typeof(agent\_step!), model\_step!::typeof(model\_step!); spf::Int64, framerate::Int64, frames::Int64, resolution::Tuple{Int64, Int64}, title::String, showstep::Bool, axiskwargs::NamedTuple{(), Tuple{}}, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})  
> @ InteractiveDynamics ~.julia\packages\InteractiveDynamics\BMtlp\src\agents\plots\_videos.jl:198  
> [8] top-level scope  
> @ REPL[28]:1

I’ve tried `]build CairoMakie`, but it didn’t help. I’ve also tried using the GLMakie backend but I get the same error. When calling `] status` all packages are present. And all packages have been recently installed with `] add`, so they should be the updated to the last available version. I’m on Windows 10, by the way. One thing to note is that in Pluto this works fine: calling `abm_video` correctly saves the file to disk. The error happens when using the Julia REPL directly. I’ve also noticed that both GLMakie and CairoMakie get precompiled when calling `using GLMakie` or `using CairoMakie`, not sure if it’s something useful to know or not.  
What can I do to solve the issue?

---

<div class="post-metadata">

### Author: ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)
#### Post date: [February 9, 2023, 4:26am UTC](https://discourse.julialang.org/t/error-no-backend-available-glmakie-cairomakie-wglmakie-when-calling-abm-video-in-interactivedynamics-jl/61626/3 "2023-02-09T04:26:33Z")

</div>

I could try to troubleshoot this if you could figure out a minimum working example that produces this error, and if you could include your current `project.toml` file!
