(this page is under development) |
Mesh Tools | Thumbs Up! | An industry standard. Everyone involved in meshing needs a copy of this. Blender is like the Swiss Army Knife of meshing, it's good for visualization, editing, file format conversion, and a lot of other things. It's extensible with simple Python scripts, and there's a lot of software built around it. | | Neutral | A weird little tool. Idiosyncratic and non-standard user interface. Driven from external scripts. Crashes a lot. (A "lot"!) However it's used by other software, so you may need it. Actually this is one of the few Open Source tools that might be worth contributing to and maintaining. With a little extra get-current development this could be a very powerful tool. As things stand, it depends on user-written plug-ins that don't always work well with the kinds of meshes we use in neuroscience. | | Thumbs Up! | A great little visualization tool from the Blender community. Quick and easy. Doesn't handle glTF or hdf5, but handles most of the legacy file types nicely. Lets you do some basic remeshing, doesn't always work, mostly it's a quick and dirty way to look at your files. One of the interesting and special things about this tool is that it'll show you the outlines of the original cylinders that your mesh was constructed from (try the "position field" option). If you need to re-compartmentalize your mesh, this visualization is your best friend. However the remeshing part of this tool doesn't work. So just don't use it, the rest of the tool works fine. | | Thumbs Up! | A must-have! File format exchange is the bane of the simulation business. This library will let you convert "most" file formats into "most" others. It's used by "many" of the other tools, and you'll greatly appreciate the ability to convert one format into another with a single command in Python. That being said, it doesn't work on everything, you'll still need special tools for some of the newer formats like HDF5 and glTF 2.1 | | Thumbs Down | Crashes instantly with large or imperfect source files. There is a paid option that apparently works better, but the open source version isn't being maintained. However it has a place as a quick and dirty visualization tool, especially for the older formats like PLY, STL, and OBJ. The best and only use for this tool is to see if your files are working, if you can look at them here you can look at them anywhere. | | Neutral | Part of the CAVE project. Fails to convert imperfect files. Complains about insignificant details. Looks like an AI-generated tool cobbled on top of other tools. I tried this library extensively, it's pretty random, does some stuff well but completely fails on even the most basic of older formats. In all fairness, this is a morphology tool and simulations demand something more, but it's called MeshParty and its supposed purpose is to handle meshes, and in this area it isn't 100%. Meshing for computation is something different from meshing for visualization. | | Neutral | Old software with plenty of problems. It's being maintained, but slowly. It's supposed to be a simplicial mesh generator but it depends on the triangle library that hasn't been updated since 2005. Generally this tool delivers imperfect meshes that are hard to clean and repair. | | Thumbs Up! | This is an interesting little toolset, it does some important things very nicely and conveniently, including some things that are difficult to do with other tools. It has a very nice mesh statistics display, where you can tell at a glance whether your mesh is convex, watertight, manifold, and so on. The fix_mesh() operation doesn't always work, but between this and PyMeshFix() you can usually get something you can use. | | Neutral | This tool has some great stuff in it, but it's mostly C-only and it requires you to build a Python interface from source. It tends to crash with very large meshes, but that's par for the course in the C(++) world (people don't check their pointers). This tool works best with small geometry. It hasn't been maintained in a couple of years. | | Neutral | Good for certain things. The sampling algorithm works great, triangulation doesn't. Crashes on large meshes. Cumbersome file i/o, better with the older formats. OBJ export creates spurious information at EOL. Beware, when it crashes it takes Python with it. Save your work! | | Thumbs Down | Crashes instantly with large meshes. Unusable in the real world. | | Thumbs Up! | This tool works great if you don't abuse it. There's a wrapper for PyVista. Generally I've found it's best to repair a mesh in stages, instead of trying to do it all at once. This tool has a nice way of letting you inspect the result of intermediate stages, which is very helpful when you're trying to troubleshoot a mesh file. Mostly the tool just works, you might have to convert the output into the specific form you need but generally the output from this tool works seamlessly with many other tools. If you use this with PyVista, make sure to install PyVista's "manifold" library, that way you'll have an is_manifold property automatically attached to every mesh. | | Thumbs Up! | Pretty much the only game in town when it comes to tetrahedralizing meshes. The input mesh has to be pretty perfect to begin with (use pymeshfix first). Doesn't always work well with pre-triangulated meshes, sometimes works better with point clouds. | | Neutral | This tool requires CGAL, which is notoriously difficult to install on Windows. It works, but you'll have to jump through some hoops to install it. Someone needs to port CGAL over to Python, instead of just trying to wrap it. | | Thumbs Up! | This tool is able to load some of the problematic files that the others won't. It has pretty good interoperability. |
Morphology Tools
| Thumbs Up! | You'll notice this tool appears in multiple categories! | | Thumbs Down | Old archived repository, no longer being maintained. It's basically a C++ plotting program, and you can find its new incarnation here. | | Neutral | The Trees toolkit is still widely used in academia. It install and works. The only reason it gets a neutral rating is because it depends on Matlab (which is not open source). Big parts of it work in Octave (which is), but you have to dig into the documentation and set your paths accordingly. |
CAD Tools
| Thumbs Up! | Sometimes a good CAD tool is the easiest way to create a synthetic mesh. While CAD focuses on solid body modeling and doesn't know anything about biology, the nature of biophysical simulations is such that precise biological morphology isn't always necessary - especially at the beginning when you're testing out a new idea, you'll want to do it on a regular grid before you try it on a real astrocyte. Also it's much easier to create scaffolding in a CAD system, in terms of the model you can use CAD to find out what kind of scaffolding you need (ie which kinds will work), and then translate that over into your neuron mesh. FreeCAD is quick and easy, has a fast learning curve, and has a nice mesher that doesn't crash and creates most of the required file formats. FreeCAD now has a FEM module but it doesn't have any biological materials. | | Thumbs Up! | Salome is much more than just a meshing tool. It's an indispensible part of the workflow when you need to get meshes into any of the FEM simulators. It lets you compartmentalize your mesh and apply materials to the various compartments. This can be done in Blender as well, but Salome is intuitive for scientific work. It's a large complicated program with a steep learning curve and many dependencies, but it installs nicely and works. |
|