Lectures 1&2

FIT4012: Artificial Life, Procedural Modelling & Animation
General Course References

Watt, Watt,
"Advanced Animation and Rendering Techniques, Theory and Practice"
Chapters 15, 16, 18 ACM Press, Addison-Wesley, 1992

For more pointers and as an excellent reference

Levy, S.,
"Artificial Life - The Quest For A New Creation"
Jonathan Cape 1992

A readable introduction to artificial life

Langton, Christopher G. (ed),
"Artificial Life"
Santa Fe Institute Studies in the Science of Complexity, Vol VI, Addison-Wesley 1989

Varela, F.J., Bourgine P. (eds),
"Toward a Practice of Autonomous Systems"
Proc's of the First European Conference on Artificial Life, MIT Press 1992

Some pioneering conference proceedings in artificial life

  • Adaptive systems
  • Animats
  • Artificial Life
  • Autonomy
  • Complex systems
  • Genetic Algorithm
  • Self-Organization
  • Synthetic Biology, etc.
  •  

     

    A sample set of google search terms to try

    Book reviews and a brief description of some of the above books are online.

     


    Overview

    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...


    Why do natural phenomena in particular require special modelling techniques?

    Special techniques for modelling natural phenomena may exploit the computer's speed in order to handle complexity.


    Manual modelling

    Visual models of natural structures may be represented using any of the computer graphics modelling techniques.

    Models may be produced by hand by manipulating:

    • polygons
    • control points
    • graphics primitives
    • splines... (the list goes on)

    ...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).
    (3D modelling and animation software based on primitives)

    • Translating, rotating, scaling a primitive
    • Ray tracing the current view
    • Creating a new primitive of a specific type
    • Joining and breaking hierarchies of primitives
    • Adding lights and cameras to a scene
    • Moving and zooming the current camera view


    ...and some tools for interactive modelling using the old Hash Inc. Animation Master.
    (3D modelling and animation software based on splines) (mid 90's)

    • Adding new splines
    • Adding control points to existing splines
    • Breaking splines
    • Peaking / smoothing splines at control points
    • Selecting control points to manipulate
    • Scaling, rotating a spline
    • Extruding a spline
    • Produce a surface of revolution from a spline
    • Apply texture / surface property to a patch
    • Flip or view normals of a patch
    • Create splines around text outlines


      Interactive methods are tedious for the creation of complex structures. Even current software offers little improvement compared to these 10+ year old user interfaces.

      Imagine trying to build a detailed model of a tree trunk and branches by manually positioning and shaping thousands of differently sized branch segments... and then having to add the leaves!


    Manual animation


    Manual computer animation is tedious when models are:

    • complex and have many degrees of freedom

    human figure

    • required to interact with one another

    tap-dancing human figure tossing a coin

    • expected to move in accordance with the laws of physics

    snow-boarding, tap-dancing human figure rolling a coin down a ravine

    • of deformable or fluid bodies

    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.


    Procedural modelling


    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)

    Procedural Animation

    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:

    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 agents and their properties

      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



    General principles of procedural modelling and animation



    Dorin's Razor for procedural modelling

    Decide on your purpose...

    Science

    Model exactly the aspects of the real system...

    ?

    Art

    Model (or ignore) any aspects of any system...

    ...necessary to achieve the desired result

    Failure to observe this simple rule is guaranteed to result in much wasted effort and heartache.


    An Introduction to Artificial Life

    Some themes (not 'truths') of a-life:

    Some opinions (not 'truths') on a-life:

    Langton et. al. 1991, Alife (USA) II...

    Bourgine & Varela 1992, Alife (Europe) I...




    Historical "Artificial Life"

    Hero of Alexandria's pneumatic animals

    1st C. AD

    The Golem of Prague

    ~1400->

    Jacks, clockwork armoured figures

    ~1400->

    Vaucanson's duck

    1735

    Mary Shelley's "Frankenstein"

    1818

    Von Neumann's self-reproducing automata

    1929->

    Penrose's machines

    1959

    Conway's "Game of Life"

    1970

    Braitenberg's vehicles

    1984

    Dawkin's biomorphs

    1986

    Reynold's boids

    1987

    Marionettes, Automata etc.

    ~early ->

    Artificial Life Art

    recent



    Artificial Life Techniques

    Software

    Hardware

    Wetware




    Artificial Life, Procedural Modelling, Procedural Animation

    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.