User:Yeem/BE.180 notes/4-25

Drew Endy: So far, we've talked about controlling systems in time & space.
 * One extreme: can run autonomously
 * Other: runs entirely on external input

Last class: couple different examples of languages
 * "Growing point language"
 * "Origami language"
 * "Crop circle language"

Today, we're going to cover "growing point language". On Thursday, we'll probably do the crop circle language.

Growing point language
Person responsible: Daniel Coore, head of computer science in Jamaica

Randomly distributed cells (see figure 1)
 * two dimsensional surface
 * independent agents
 * local information: cell can sense surrounding area r away, but not really far from itself
 * want them to make a pattern

Challenge: invent a programming language that allows you to make patterns like this

Detals
How would you imagine wanting to write such a program, in English? (figure 2)
 * 1) Arbitrarily initiate/start at the leftmost point
 * 2) Create line (L to R)
 * 3) Material (line)
 * 4) Phermones (signal)
 * 5) Create lines (up/down), with length
 * 6) etc.

Three points of external information:
 * 1) Point 1 (red)
 * 2) Line 1 (blue)
 * 3) Line 2 (orange)

Program
Actual program for how "tip" point should move:

Discussion
Costs
 * Memory/logic/state
 * Communication
 * time