Simulation of Biology

CS 7492
Instructor: Greg Turk
Semester: Spring 2015

Time: 11:05-11:55, MWF
Location: College of Computing Building, Room 101

Textbook:
The Origins of Life: From the Birth of Life to the Origin of Language
by John Maynard Smith and Eors Szathmary


Course Description

This course covers a broad array of techniques for computer simulation of biological systems. The course material will draw from biology, artificial life, robotics, computer graphics and other research areas. Some of the course topics include self-replication, artificial chemistry, multi-cellular development, simulation of evolution, cellular automata, mass-spring simulators, L-systems for plant development, animal locomotion (walking, swimming, jumping), flocking and herding behavior in groups, predator/prey systems, parasites, and foraging behavior.

Students will carry out a number of programming projects during the course. These projects are designed to give students first-hand experience with a range of simulation methods that are used in biology. Grading for the class will primarily be based on student performance on these projects. Basic programming skills are recommended for students entering the course. Projects will be done using Processing, which is a Java-based programming environment. Prior programming experience in a Java or another C-like language is the best preparation for the course.

No previous background in biology is necessary.

Homework

Homework 1 (Life Cellular Automata) - This first homework is due at the end of the second week of class.

Homework 2 (Flocking)

Homework 3 (Reaction-Diffusion)

(More homeworks assignments to be determined.)


Reading

Week 1
Chapter 1 in Origins of Life.
Christopher Langton's Self-Reproducing Loops.
Stephen Wolfram's Cellular Automata Classes. Optional: Christopher Langton's Edge of Chaos.

Week 2
Chapter 2 in Origins of Life.
Craig Reynolds' flocking of virtual creatures.

Week 3
Chapter 3 in Origins of Life.
Metabolic pathways chart1 and chart2.
Wolfgang Banzhaf's self-organization in binary strings.

Week 4
Chapter 4 in Origins of Life.
Tim Hutton's self-reproducing simulated molecules.
2D version of protein folding. Optional: Cyrus Levinthal on protein folding complexity.
Classic DNA paper by Watson and Crick. Optional: Stanley Miller's bubbling flask to produce amino acids.
Seeing if genetic code is optimal.

Week 5
Chapter 5 in Origins of Life.
Pattern formation by reaction-diffusion.

Week 6
Simulation of lipid micelles.

Week 7
Chapter 6 in Origins of Life.
The
Genetic Algorithm.

Week 8
Chapter 7 and 8 in Origins of Life.
Simulation of
Sympatric Speciation.
Plant growth simulation with voxel space automata.

Week 9
Plant growth using L-systems.
Creating branching patterns using Laplacian growth.
Simulation of leaf venation.

Week 10
Chapter 9 in Origins of Life.
Development papers:
Fleischer/Barr, Eggenberger, Furusawa/Kaneko.

Week 11
Chapter 10 in Origins of Life.
Evolving
virtual creatures from Karl Sims.
Evolving autonomous agents from Frank Dellaert and Randall Beer.

Week 12
Evolution and manufacturing of crawling robots.
Swimming creatures from Tu and Terzopoulos. 
Evolved flying creatures.

Week 13
Chapter 11 in Origins of Life.
Thomas Ray's
Tierra system of evolving programs.
Robert Axelrod and the Iterated Prisoner's Dilemma.

Week 14
Chapter 12 in Origins of Life.
Craig Reynolds on
Co-Evolution for game of tag. 
Ant foraging behavior.


Related Web Links

Flocking resources, compiled by Craig Reynolds.

Mass-spring locomotion at sodaplay.  (Be sure your browser can run Java!)

Dr. Prusinkiewicz's research on plant development.

Langton-style self-reproducing loops from Hiroki Sayama.



Course Topics

Self-Organization

self-replication (von Neumann, Christopher Langdon, others)
complexity at edge of chaos

Molecules

artificial chemistry
metabolism
molecular hypercycles
RNA folding
DNA codon optimality

Membranes and Cells

membrane formation
cell models
cell cytoskeletons
immune systems


Cell aggregation (courtesy of Kurt Fleischer)

Development

multicellular development
slime mold aggregation
pattern formation
gene cascades/networks
cell simulation of development (Fleischer and Barr)
L-systems for plant development


Plant growth (courtesy of Przemyslaw Prusinkiewicz)

Evolution

evolution
speciation
Dawkins on major events in evolution
genetic algorithms
blind watchmaker
co-evolution (Karl Sims, Craig Reynolds, Danny Hillis)
sexual selection

Locomotion

modes of locomotion
Braitenberg vehicles
evolution of walking and hopping motion (Karl Sims)
swimming (Terzopoulos)


Walking simulation (courtesy of Karl Sims)

Physics Simulation Techniques

partial differential equations (PDE's)
reaction-diffusion
cellular automata (life, spiral waves, etc.)
mass-spring systems


Tentacle motion (courtesy of Andrew Cantino)

Multi-Organism Interaction

communication
Prisoner's dilemma, tit-for-tat
predator/prey
flocks, schools, swarms
ant foraging
parasites
digital creatures (Thomas Ray)


Flocking with collision avoidance (courtesy of Craig Reynolds)


Go to Greg Turk's Home Page.