Goo allows you to create your first 3D digital tissues in just a few clicks.
![]() |
![]() |
Nagivate to the preferences | Enable Add Mesh: Extra Objects add-on |
![]() |
Add Goo scripts to Blender’s path |
Create cells
from goo import goo
import bpy
goo.setup_world()
# create first collection
goo.make_collection(name = "my_cell_collection")
# create first cell
goo.make_cell(name = "my_first_cell",
loc = (0,0,0),
collection = "my_cell_collection")
# create second cell
goo.make_cell(name = "my_second_cell",
loc = (0,2,0),
material = ("red", 0.1, 0, 0), # optional, default = ("purple", 0.007, 0.021, 0.3)
stiffness = 2, # optional, default = 1
collection = "my_cell_collection")
Add cell adhesion
Cells do not interact yet thus declare the corresponding adhesion forces:
# create first force collection
goo.make_collection(name = "my_force_collection")
# declare first force
goo.make_force(force_name = "my_first_force",
cell_name = "my_first_cell",
strength = -1000,
collection = "my_force_collection")
# declare second force
goo.make_force(force_name = "my_second_force",
cell_name = "my_second_cell",
strength = -1000,
falloff = 1, # optional, default = 1
collection = "my_force_collection")
Add simulation details and launch
Handlers wrap up functions from Blender and Goo to update Blender’s scene when certain critera are met e.g. triggers cell division.
# launch simulation
goo.launch_simulation(start = 1, # optional, default = 1
end = 250, # optional, default = 250
filepath = "path_to_data_file//file.json", # if data = True
adhesion = True; # optional, default = True
growth = False, # optional, default = False
division = False, # optional, default = False
motility = False, # optional, default = False
data = False # optional, default = False
)
Execute your script
spacebar
).python simulations/blender_background.py
blender_background.py
specifies your Blender executable path and the path to your newly created Goo script.
subprocess.run(
["<your_blender_folder>\\blender.exe",
"--python",
"<your_path>\\my_fist_script.py"])
Goo’s cells models biological cells as polygon mesh deformable upon collision with other cells. Cells’ physical behavior such as stiffness, pressure and adhesion are tunable for biologists to investigate their impact on cell and tissue shapes. Homotypic adhesion is supported in Goo.
Adhesion forces are mimmicked by Blender’s built-in force fields. In Goo, they emanate from the cell’s surface, are local and centered on the cell’s center of mass.
Goo cells grow at a user-specified rate so that they volume isotropically increase.
Goo implements cell undirected motility as a uniform random walk.
Goo’s model for cell division follows Hertwig’s rule, stating that cells divide along their long axis. Therefore, the division plane is described as the plane orthogonal to the long axis and that passes by the cell’s center of mass.