Skip to content

Daniel-Duffy/MorphoShell

Repository files navigation

MorphoShell: Simple Simulation Software for Shape-Shifting Shells

MorphoShell simulates elastic shells as they deform. It calculates forces from an elastic stretch+bend energy, and evolves a triangulated mesh accordingly, via damped Newtonian dynamics. Such dynamics are more directly physical than those in many other codes, which means they capture elastic instabilities unusually well, and is also good for both understanding your results and making nice videos of them:



The code is especially aimed at "shape-programmed" shells (left and middle), which start flat but then develop a preferred metric and/or curvature as they are "activated"; a growing leaf being a familiar example. However more traditional simulations also work well; in the right-hand video a cone is squashed and then unsquashed.

MorphoShell first appeared alongside a 2020 paper (Defective Nematogenesis) by John Biggins and myself, but this github version is more up-to-date. It's written in C++, but is designed to be pretty friendly to use and modify, even for inexperienced coders. John and I wrote it because we couldn't find any good, easy-to-use software for shape-programmed shells. The philosophy is to be as simple as possible while getting the job done; the code's not supposed to be a black box, nor extremely general, nor impressively fast, nor particularly feature rich. It's served me well in my research. Pleasingly it's also been used in research that did not involve me, such as here, here, and here. The target audience is broad, but I'm particularly aiming at physicists who may be intimidated by the idea of running simulations themselves, or just don't want to spend loads of time coding. You should be able to use MorphoShell even if you have almost no experience writing or running code!

My C++ source files are distributed here under the Cambridge Academic Software License (CASL), which very roughly means that if you're an academic the license is a lot like GPL, while if you're at a company or in any commercial setting, you'll need to come to another arrangement with me. For meshing, I use a Python implementation of the DistMesh algorithm; I provide the necessary scripts in the repo under a GPL license. For visualisation I recommend ParaView, which is excellent and free.

To download the repo, click the green "<> Code" button near the top of this web page, then "Download ZIP". Please get in touch if you have any problems using the code: daniellouisduffy [AT] gmail [DOT] com.

Forc instructions on how the code works and how to use it, please see the MorphoShell Handbook, which is included in the repo, or this instructional video:

VIDEO COMING SOON!!

MorphoShell remains an evolving project! If you run into issues with it, I'm always happy to help; my email address is in the MorphoShell handbook.

About

Simple simulation software for shape-shifting shells

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors