Happy to announce a new package VolumeRendering.jl for visualizing 3D fields – scalar or vector, always fast, interactive, and extensible.
The default recommended way to use it is as an ImGui widget, can potentially be integrated into other environments if needed.
Simplest example
using VolumeRendering, AxisKeys
# your data: any 3D `KeyedArray` whose axis keys give the world coordinates
A = KeyedArray(...; x = xs, y = ys, z = zs)
view = FieldView(A)
# ...then, inside your ImGui frame:
ShowField(view)
Result (the small UI popup is automatic):
More advanced
VolumeRendering is used in PlasmaScope.jl to display 3D fields from GRMHD simulations. See that app for how to add simple geometry objects, slices into the field, and for arbitrary (non-rectangular) grid support.
Should be broadly applicable and performant in basically any regime!