Lectures 1&2
Watt, Watt, |
For more pointers and as an excellent reference |
||
Levy, S., |
A readable introduction to artificial life |
||
Langton, Christopher G. (ed), Varela, F.J., Bourgine P. (eds), |
Some pioneering conference proceedings in artificial life |
||
|
A sample set of google search terms to try |
||
Book reviews and a brief description of some of the above books are online. |
|
This course is largely (but not exclusively) concerned with the modelling of natural phenomena.
Here are some characteristics of animate objects which will be of interest in this course...
Here are some characteristics of in-animate objects which will be of interest in this course...
Special techniques for modelling natural phenomena may exploit the computer's speed in order to handle complexity.
Visual models of natural structures may be represented using any of the computer graphics modelling techniques.
Models may be produced by hand by manipulating:
|
|
...via a GUI, keyboard and mouse, or from data obtained by measurement (using
scanners and range-finders etc.) from the real world.
|
Here are some tools for interactive modelling
using Specular Infini-D (mid 90's).
|
|
...and some tools for interactive modelling using the old Hash
Inc. Animation Master.
|
An animation of any kind may be produced:
Hand-drawn animation frames may be produced:
|
Timeline from Inifini-D animation software |
Manual computer animation is tedious when models are:
|
human figure |
|
tap-dancing human figure tossing a coin |
|
snow-boarding, tap-dancing human figure rolling a coin down a ravine |
|
snow-boarding, tap-dancing human figure rolling a coin down a ravine into a pond and falling in after it (Kids, don't try this trick at home unless supervised by an adult.) |
In all but the most trivial of cases, manual computer animation is a difficult,
time-consuming process.
|
void setGeometryAndColour (double time) { for (long i=-2; i<20; i++) { for (long j=-2; j<20; j++) { controlPt[i][j]-> x = i; controlPt[i][j]-> y = sin(i*time); controlPt[i][j]-> z = j; cel[i][j]-> red = (1+ sin(i*time)) / 0.5; cel[i][j]-> green = 0.0; cel[i][j]-> blue = 0.0; } } } |
Image from Macintosh Graphing Calculator | Sample code to create a plane containing sin waves in colour and geometry |
|
|
Image created using the interactive "Artmatic", procedural texture generator by U&I Software | Image showing structure of the function used to create the Artmatic image (left) |
Computer code is used to determine / control how the model changes over time
(Just add a parameter 't' to your procedural models for a simple example of
this)
General methods include but are not limited to:
Work with actors (objects in an animation) which
Have variables to describe their current state Have instructions to be carried out at each frame May pass messages about their state to other actors
Special-purpose animation scripting languages have been developed which offer high-level descriptions of what an actor is to do.
E.g. Define a "car" actor and four "wheel" actors. Each frame, the car may be moved some distance. The car actor passes the distance it moves on to the wheel actors, that respond to these messages by rotating the correct amount so that they appear to have rolled along a surface without slipping.
Specify a set of bodies and their physical properties
Specify the manner in which forces will be applied to bodies
Model some aspect of physics in order to simulate the behaviour of bodies
acting under forces as applied by/during:
![]() |
|
...and run the simulation for some time-span, rendering the objects at
regular intervals.
Specify a set of agents and their properties
- tendencies to mate,
- eat,
- sleep or
- change colour
- visual acuity... etc.
Specify a set of behavioural rules for each agent
eg. An agent simulation for an undergraduate student:If (Need (food)) Move-Towards (Union Building) Else If ((Weather == SUNNY) AND (Visible (mate)) { Set-FacialExpression (cheerful) Move-Towards (mate) } Else Sleep(5)
and run the simulation for some time-span, rendering the objects at regular intervals
Specify probabilities of certain events occurring
eg. tendencies for spontaneous combustion / emission of particles or shoots of grass
Seed / constrain the simulation
eg. specify boundaries within which fireworks or plants are to emerge
and run the simulation for some time-span, rendering the objects at regular intervals
Decide on your purpose... |
||
Science |
? |
Art |
...necessary to achieve the desired result |
Failure to observe this simple rule is guaranteed to result in much wasted
effort and heartache.
Some themes (not 'truths') of a-life:
Some opinions (not 'truths') on a-life:
Langton et. al. 1991, Alife (USA) II...
"Artificial Life is a field of study devoted to understanding life by attempting to abstract the fundamental dynamical principles underlying biological phenomena, and recreating these dynamics in other media - such as computers - making them accessible to new kinds of experimental manipulation and testing"
A living system can be viewed as having an input (stimulus), an output (response) and some internal control acting on the input to produce the output.
Bourgine & Varela 1992, Alife (Europe) I...
"Artificial Life can be better defined as a research program concerned with autonomous systems, their characterization and specific modes of viability."
A living system can be viewed as an autonomous device with its autonomy / viability arising through internal self-organizing processes which are responsible for its behaviour.
Software
Hardware
Wetware
Artificial Life as a field of endeavour is so loosely defined that
almost any animated procedural model, vaguely reminiscent of a living thing,
will be called 'Artificial Life'.
lecture
notes | home
All material accessed from www.csse.monash.edu.au/~cema
is
© Copyright 1994-2008 Alan Dorin, Jon McCormack & Monash University
except where noted.