 Good afternoon everybody. I am Antoine and I do research in computational biology at Harvard University and today I'd like to discuss with you how we started using Blender to simulate biological cells in 3D and well as I'm probably one of the very few biologists in this room I was curious to know the first thought that would come to non biologists minds when they saw the title of my talk and so I did what any very rigorous scientists would do I went and asked my mom and dad and so they responded this great question which I really love and so is Antoine why on earth would you want to simulate cells and well I responded to them that cells are one of the fundamental components of life that they can be found in all living things including microorganisms, plants and animals like us humans and that a greater understanding of how cells behave and operate together in our tissues might result in improvement in biomedicine and other related fields and well even though my parents were slightly disappointed that I was not going to save the world say with Blender I kept on explaining to them that modeling and simulating are great ways of figuring out which mechanism prevails in systems with several mechanisms which is very much the case when trying to understand collections of cells or should I say tissues and in our lab we study the embryonic development of zebrafish that is how can one single fertilized egg can evolve into a fully grown fish and it all starts with a zygote the zygote is the first cell the first fertilized cell and it first divides into then it divides again again and again and so it reaches about a thousand cells in just a matter of three hours which is completely mind-blowing and development then continues to reach gas relation and epiboli during reach some cells from the external layer of the embryo tug into the interior and that will form future tissues and so after about say 10 hours of embryonic development the head and the tailbud now becomes visible and then development continues the tailbud will continue to extend and body movement will now be possible and the primary organs now become visible development is happening and so after say something like 20 24 hours we now clearly see something that resembles a tiny fish and so as you can all appreciate it is mind-blowing how in such a short amount of time development happens so the precision and the robustness of the cell is something that we're fascinated by and that I hope everyone will be after this talk and so we believe that nature has developed a recipe book of strategies for precisely programming tissue patterns and shapes and so in order to decipher these recipes in that book our lab has pioneered a suite of approaches and so well first we can genetically perturb those love these living embryos that mean that we can turn on and off some components and properties of the cells then we can visualize those genetic perturbations using a microscopy technique called in total imaging and in total imaging is gorgeous because it allows us to image and track every single cell movement in a living embryo in 3d and over time so I mean look at that it is simply gorgeous even though it is not yet a blender animation it inspires us and then we can digitize those time-lapse 3d images using computer vision and meshing algorithms then finally we can use mathematical modeling to identify the set of general principles that can recreate life on computers and it is the last bit here that I really want to stress out during this talk and so there are many ways of modeling a system but here I'd like to introduce one of the inspirations behind this project and that is cellular automata theory and one of the most famous applications of this theory remains the game of life that John Conway genius mathematician developed in the 70s and well even though I discovered this game when I was a kid or probably more a teenager I never thought it would actually inspire my research but here we are and so say you have a grid and each cell on that grid is an agent and very simple rules basically governs the behaviors of that cell and so from such a simplistic set of rules what Conway observed is pretty remarkable because some very complex multicellular patterns arise from that and so that got us thinking about embryonic development basically can we recreate as a realistic game of life with a set of rules that are rigorously based from principles from biology and physics and so you know to do so I need to introduce a little bit more biology bear with me I promise should be easy or at least bring back some lovely memories maybe from high school biology and so yeah we'll define some rules together here well first thing first biological cells are deformable 3d objects and they obey to some very specific surface and soft body physics and we can model them mathematically using meshes that is as you all probably know a collection of vertices connected by edges and messages are great because they have a really high spatial resolution so that allows us to capture quite precisely and plausible positions and shapes of cells within tissues then biological cells move in their environment and we have observed that one type of movement that those cells can be approximated by a random walk so in other words the position of a cell at its next time steps can be approximated by the position of that cell at the previous time step plus a random coordinates that can be generated really easily then say you have two distinct cell and they move randomly in the environment and so at some point they will get close to each other they will collide and so thanks to cell cell adhesion now those two cells will stick together they now adhere to one another and so this is a strategy or rule that is super important to development because otherwise life would just fall apart tissues would not stick together I don't know what we would look like probably not like humans and so we've seen in microscopy movies that those cells divide and a really simple model for cell division here is the following so first you have a cell that grows that grows its volume until he matches a certain target then a ring pinches there's the cell surface along a division plane and how the division plane is being computed by cell is rather complex but here we just assume that the division plane is the plane that is perpendicular to the lot to the cells long axis that we need to compute and that passes through the cells center of mass and because all of these are measures we can do that mathematically and so once a constriction is done you now have a model cell that has been divided into two distinct data cells and then cells often need to work in harmony pretty much like us and even when they are separated by really long distance and so say we can isolate two cells here and even though they are quite not touching they are actually intrinsically linked because they're having molecular conversations here and in other words cells can send molecules in their environment but they can also monitor the molecules that are in their environment and it is I mean communication is super important I'm sure we can grasp that as humans as a society that it is crucial for coordination and regulation of collectives of agents and in this case cells and so the next rule we should discuss is how these external from external information molecules are being processed by the cell to change in fun in cells functions and properties so picture cell and be that we've seen previously we know that they're having some kind of a molecular conversations between each other and now imagine we can zoom inside cell B and so what we actually observe is a lot of molecules all over the place and we can model that in a set of circuits made of genes proteins and RNAs here simply put as A B and C for illustration and we can we call that regulatory circuits because A B and C can regulate each other's positively or negatively and the output of the circuits is again the regulation of the cells function such as the rate of growth such as the rate of division such as the strength that they will have between each other and so they really are a key part of maintaining the delicate cells balance within an environment that is constantly changing birth rate division rate these are strengths being modified here and so now that we have defined models for each individual rule what might happen if we combine them together in simulations on computers and it's really this question that drives the development of goo and so goo is a Python based blender extension to simulate biological cells in 3d and that's what I've been working for now a bit more than a year and a half and that was already previously developed before and I will now discuss the different implementation behind our blender extension so first thing that got me that really got me thinking about cells in blender is the amazing soap bubble simulations that you can find all over the place on YouTube they are gorgeous and we found that the common feature between a soap bubble and a cell is that they will both undergo deformations when a stress is being applied so in other words they are just soft bodies in the realms of simulation and so as many of you might be aware blender's cloth physics offers a powerful solution for simulating soft bodies and so that's what we did and so the way cloth are being simulated in blender is via mass spring damper systems in such systems every mass every node is a mass that is being connected by springs and those springs then can be controlled by a certain stiffness and so that will control the overall mechanical behavior of those soft body and so what we just did is transforming ordinary meshes into dynamic soft bodies and those soft bodies are now capturing the overall mechanical behaviors of cells and we took an amazing care at fine-tuning lots of blender parameters towards applications of cells and so a crucial characteristic of those soft bodies and of cells is their elasticity because when a relatively normal stress is being applied such as as when two cells collide and adhere the cells are the good deformation but when the stress is being relieved the cell will then revert to its original shape and that's the concept we call elasticity I should of course note here for some biologists and maybe physics in the room or the ones looking from their home that this of course only applies to deformation or stresses that are below a certain threshold because above that threshold then that would cause permanent deformation and so on top of cloth physics we also added an adaptive remeshing algorithm to improve numerical stability and so that's really powerful when we're simulating really complex shapes and so here meshes are allowed to dynamically relax over the simulation time and so therefore each frame meshes are being remeshed to ensure the numerical stability then we also use force fields to program cells to adhere to one another and we design these force fields in such a way that they can now follow the cells center of mass of their corresponding cell of course and then also cell solid illusion is a process that only happens at the surface of the cell so we made those force fields so that they are only active bounded around the surface of each of each cell and so cell solid illusion is a widely studied concept in biology and in developmental biology and it's a metric that is in a metric that is commonly reported in this field is the contact area between the two mesh and so thanks to that thanks to simulation we can report these metrics in a very easy way and so we implemented a method to calculate that and as expected when a decision strength increases so does the contact area between the two cells so I've now discussed a little bit of like details about blender implementation but let's take a break from that and have a little sneak peek inside blender and so we can we coded our library written in Python so that it's super user-friendly you can actually launch simulations in just a few lines of codes and also we are taking advantages of the collections in blender so that each cell has its own collection that acts as a container for its underlying mesh but also for all the attributes and force fields then we actually also use force field to make cells move randomly in their environment and how we do how we did that is that we programmed force field to move around a cell or mesh and it attracts the cell and so the consequences is that you will have cells that move randomly according to where the force field is being positioned in the scene and using our library you have a really simple function that lets user to try out many combinations of parameters such as the strength of that motion forces or also the random distribution or the size of that distribution that can be used to control the movement of the cell and so typically adhesion forces are larger than random forces so that means that when put together two cells will travel randomly and then very soon while they collide it will stick together and then their motion will now be correlated that's what we are observing right now and so implementing cell growth in blender was actually super straightforward I was very happy with that and because we use the built-in mesh shrink factor shrinking factor and when this factor is below zero or below the initial shape then it shrinks otherwise it grows and that so we then extended this function so that users now can choose between a an exponential or a linear growth because both are possible in development in biology basically then I should note that a tissue is actually a very confined environment like moving around when there's many cells around you many molecules proteins is quite the task so it's super packed and so it's only natural that we started making those simulations of cells growing in boxes and sphere and that allows us to investigate how cells grow when put in a constrained or confined environment which is very much the case in reality and so now that we have soft body physics running we have motion we have growth and we have adhesion we can start creating those nice simulations of growing tissues and so each of the 22 cells here moves independently from the others but they all adhere to each other plus they grow until reaching a volume that is about three times higher than their initial volumes we also implemented different cell types in blender and a type here from a biological point of view is defined as a unique set of biophysical properties that's unique to a specific collection of cells and so here in this example cell solid adhesion is specific to each type meaning that red would only adheres will only adhere to red purple to purple but also it's harder to see but the red cells actually moves faster than the purple cells and so now I'd like to discuss a last few work in progress regarding cell division and solving differential equation with simulation nodes so first implementing cell division in blender has proven to be quite the task and I tried a few different blender functions to achieve these results but didn't manage to get it running for now so the first thing I tried was using a subdivision surface basically cutting the topology into filling up the holes but this is really computationally intractable when we're expending the simulation to many cells then I found a trick to do that which is using a Boolean surface with a super thin division plane that's all the issue but this is not really how cell division work and so the last thing I tried was to have kind of a toaster like ring that pinches the cell along the division plane but that proved to be really hard to do even though it's computationally tractable and realistic we're still struggling with that and how to at the end bring those two newly created atmospheres into a new spherical topology so I'm very happy to chat with anyone that has an answer here because I've been struggling you would save my time so I'm also working on using the new simulation nodes to solve regulatory circuits and so I will illustrate the idea with the quite simple circuits here where a converts into b at rate beta 1 b into c at rate beta 2 and b and c also being degraded respectively at rate alpha 1 and alpha 2 and so the circuit it can be rewritten as a system of ordinary differential equation I promise we're not going to dive into equations just to give an example here and so in order to solve the system it requires integration of a time at each frame and which is basically what a node e solver is supposed to do and so given some initial condition this particular system of equation can be solved with a python od solver here and that gives the concentration of each a b and c over time and so what we want to do now is because we want to do everything when blender because we don't like library dependencies and everything I am working on using the new simulation nodes to work on two implementations of of od solving and two famous methods of that are the forward earlier and the run scooter implementations it's a work in progress I've seen some people working already on that so I'm sure there's a lot of collaborations here to do so from taking inspiration from the famous cellular automata concept and from the large and amazing blender community we extended the software towards applications in artificial life or a life for short we aim on the long run to recreate several hours of principles of zebrafish embryonic development and so also on the long run we aim to develop to evolve programs to make patterns and shapes which means quantifying how well specific programs on rules I've we've seen our rules are basically selecting patterns and shapes over time and so the parameter space here explore explore explode or blows up really quickly and so we need an efficient 3d mesh based cellular model in which we can vary the initial conditions and the regulatory circuits to explore to run simulations and then to see what is the outputs which one is favored through selection and so great news because blender proved to be a very promising tool to pave the way towards this this direction and I will end with a very slight note meaning that you will find currently a release that is simply a python library that can be run in blender which is say the beta version and we are aiming in the in the next couple months to add new functions that is cell division differential equations being solved and also molecular communications with particle systems and we will of course release that through geometry nodes and simulation nodes that should I mean we hope there will be a really nice user interface for people to use but also should bring more power and will allow us to do more powerful simulations and so we are a team of computer we are a team of biologists and computer scientists so we really we're really looking to have collaborations with blender aficionados so please come and talk to us after because we'd love to get involved with you guys and so to conclude I'd like to thank all the ones that contributed to the development of goo until today and so you can find all the information about goo and this website and finally I'd like to thank also the magazine laboratory for which I work at Harvard because it is a dream job so it's pretty amazing so please come and find me and Sean magazine in the couple next days thank you