Isocaps in GLMakie

Are there any ways in GLMakie to add isocaps to a cut of an isosurface?
Something like this:
isocap1
isocap2

Seems to me you can do something like that by adding transformed contourfs:

using GLMakie

data = [sin(x) * cos(y) * z^2 for x in 1:0.1:3pi, y in 1:0.1:3pi, z in 1:0.1:2]
f, ax, vol = volume(data; axis = (; type = Axis3), algorithm = :iso, isovalue = 0.5)
contourf!(ax, data[:, :, end], levels = range(0.5, maximum(data), length = 10),
    transformation = (:xy, size(data, 3)))
contourf!(ax, data[:, 1, :], levels = range(0.5, maximum(data), length = 10),
    transformation = (:xz, 1))
contourf!(ax, data[1, :, :], levels = range(0.5, maximum(data), length = 10),
    transformation = (:yz, 1))
f

3 Likes

Great! Thank you.