The mesh generation for visualization should be separate from the Vispy bits. The vispy bits should only be needed to then show the mesh. Once they are decoupled, the mesh generation will be general purpose enough to pass to any visualisation tool, such as PyVista, or even a JS one based on ThreeJS.