Looking for a good backend for 3D plots

Hey, I am still fairly new to Julia (coming mainly from Matlab) and am looking for a good solution for 3D plots.
So far, it seems to me like you have to pick one plotting backend (Matplotlib, Makie, … [?] ) and master it, so I wanted to scout out where to invest time.

What I want to plot (out of the “ordinary”):
3D flow fields from wind turbines - Might be slices, might be something playing with transparency like this, I am also open for suggestions in that regard. And naturally it depends on what the options are.

What I expect / hope to get:

  • Being able to move the plot! Often it is hard to say which angle shows features in the best way, and needing to re-plott it with always slightly changing angle would be a pain.
  • Classic features like: Intuitive use, well documented, easy to save in different formats, font can be changed, speed - these kind of things.

Maybe I am also spoiled by Matlab’s figure and its options, but I hope to find something similar and maybe even better. Thanks!

MeshCat.jl

2 Likes

I’ve recently used Makie for interactive 3D volume plots of flow fields, and in some respects it works very well - snappy response to interactions and lots of configurable options. But the Makie API is in a state of flux right now, with the core axis/layout/plotting mechanisms halfway between the old and the new (especially for 3D). Right now, I’d say Makie satisfies all your requirements except intuitive use & good documentation, both of which should improve once the API settles down.

2 Likes

Thanks! Is there currently a major re-work going on?
And I assume you are using the GLMakie.jl backend?

Yes, @jules has been working through a major overhaul of Makie’s axis/layout mechanisms. I’ve used both GLMakie and WGLMakie. I’d recommend sticking to GLMakie until everything stabilizes.

**edit: speak of the devil, and he shall appear to post an update on the exact topic of discussion: [ANN] Makie - Axis3, text in screen space and nonlinear scales

1 Like

Makie is pretty powerful and even though the documentation is lacking, the people behind it are super helpful answering questions. You can make a simple post proc tool in it and it works.
I used it quite a bit for an application very similar to yours and I was pretty happy with it, but the limitations with zooming in and out easily (box zoom is such an important feature for me) made me go back to Paraview (also a couple of features were missing for me, like drawing mixed meshes). So I switched from trying to do it all in Julia to using WriteVTK and using Paraview.
I think it depends on what you want to do. If you want do do fancy postproc to investigate flow features and make nice images and animations, use something designed for it (Paraview or any of the many paid alternatives). If you want to quickly look at your results while debugging your code, then Makie can be great.
Hope this helps!

2 Likes

I wrote my own postprocessing in PlotlyJS.jl, because no sw I was aware of could visualize 3D beams well: FinEtoolsFlexBeams, visualization example.

1 Like

@PetrKryslUCSD, can we use the 3D beams to show why spaghetti do not break in half? See here for a solution of an old Feynman problem.

Indeed, that is a famous question. Many a cook pondered this in a moment of day-dreaming.

The model would certainly allow for the first release of the circular spaghetti to be simulated, hopefully resulting in the maximization of curvature described in the paper. It would needto be enhanced to model the response after breakage.

2 Likes