Open Street Map Example does not work in Agents.jl

Hello, I am having difficulty running the Open Street Map for Agents.jl. In particular, CairoMakie does not compile, leading to the error below. I received the same error on Windows. The error also persists after downgrading CairoMakie to 0.11.x.

The newer versions of CairoMakie and OSMMakie could be tried on Agents.jl main, but it does not seem to be passing tests.

Any advice would be greatly appreciated.

Error

ERROR: The following 1 direct dependency failed to precompile:

CairoMakie 

Failed to precompile CairoMakie [13f3f980-e62b-5c42-98c6-ff1f3baf88f0] to "/home/itsdfish/.julia/compiled/v1.12/CairoMakie/jl_s6OAaT".
ERROR: LoadError: FieldError: type Core.TypeName has no field `mt`, available fields: `name`, `module`, `singletonname`, `names`, `atomicfields`, `constfields`, `wrapper`, `Typeofwrapper`, `cache`, `linearcache`, `partial`, `hash`, `max_args`, `n_uninitialized`, `flags`, `cache_entry_count`, `max_methods`, `constprop_heuristic`
Stacktrace:
  [1] getproperty(x::Core.TypeName, f::Symbol)
    @ Base ./Base_compiler.jl:54
  [2] func2string(func::typeof(MakieCore.linesegments))
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:9
  [3] plotkey(::Type{MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}})
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:40
  [4] plotkey(::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:41
  [5] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol, default::Nothing)
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:237
  [6] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol)
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:234
  [7] draw_atomic(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::Union{MakieCore.Lines, MakieCore.LineSegments})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/primitives.jl:6
  [8] draw_plot(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:135
  [9] cairo_draw(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Makie.Scene)
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:49
 [10] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/screen.jl:375
 [11] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE}, format::Makie.ImageStorageFormat)
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:391
 [12] colorbuffer(fig::Makie.FigureAxisPlot, format::Makie.ImageStorageFormat; update::Bool, backend::Module, screen_config::@Kwargs{})
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:475
 [13] colorbuffer
    @ ~/.julia/packages/Makie/Y3ABD/src/display.jl:466 [inlined]
 [14] colorbuffer(fig::Makie.FigureAxisPlot)
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:466
 [15] top-level scope
    @ ~/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:6
 [16] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:307
 [17] top-level scope
    @ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:11
 [18] macro expansion
    @ ~/.julia/packages/PrecompileTools/gn08A/src/workloads.jl:73 [inlined]
 [19] macro expansion
    @ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:15 [inlined]
 [20] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:307
 [21] top-level scope
    @ ~/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:37
 [22] include(mod::Module, _path::String)
    @ Base ./Base.jl:306
 [23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base ./loading.jl:3024
 [24] top-level scope
    @ stdin:5
 [25] eval(m::Module, e::Any)
    @ Core ./boot.jl:489
 [26] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2870
 [27] include_string
    @ ./loading.jl:2880 [inlined]
 [28] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:315
 [29] _start()
    @ Base ./client.jl:550
in expression starting at /home/itsdfish/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:4
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:10
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:1
in expression starting at stdin:

Version Info

(zombie_outbreak) pkg> st
Status `~/.julia/dev/sandbox/zombie_outbreak/Project.toml`
  [46ada45e] Agents v6.2.10
⌃ [13f3f980] CairoMakie v0.12.18
⌃ [76b6901f] OSMMakie v0.0.10
  [9a3f8284] Random v1.11.0
Info Packages marked with ⌃ have new versions available and may be upgradable.
Julia Version 1.12.4
Commit 01a2eadb047 (2026-01-06 16:56 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × AMD Ryzen 7 7700X 8-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver4)
  GC: Built with stock GC
Threads: 8 default, 1 interactive, 8 GC (on 16 virtual cores)
Environment:
  JULIA_EDITOR = code
  JULIA_VSCODE_REPL = 1
  JULIA_NUM_THREADS = 8

Your julia version is too new for that version of Makie. Try going down to 1.10

1 Like

Thank you!

I see that you are a developer for Makie. Do you happen to know the timeline for supporting newer versions of Julia?

The issue is that you are on an old version of Makie…this is probably because of OSMMakie.jl which is quite outdated. I’l take a look but there is probably not a firm timeline…

1 Like

Thanks for looking into the timeline.