872a Model Based Design

Assignment 3, due 10/3:
Mobile Agents

Submissions are to be posted to the web before class so that we can do an online "pinup" in the second half of class.

 

The template

In class we had a brief introduction to Valentino Braitenberg's vehicles. The reading you have (the first few chapters of his book) describes the system in more detail. I implemented a small Braitenberg vehicles template, but it was both too complicated and not interesting enough, so I reworked it into a not-quite Braitenberg vehicles system I call Bugs on Images. (I know it's a little disturbing, but I thought it might get your attention.)

What are they doing? Well, they're behaving exactly like Braitenberg vehices whose sensors sense image brightness and are connected directly to the back wheels on the same side. These tend to turn away from brightness since when a wheel turns faster in back, that steers it in the opposite direction. Play with the template for a while to get a feel for how the bugs/vehicles behave. Try it with a bunch of different images. Try it with different path colors. Try switching the sensors to control the opposite wheels. Instructions on how to do all of this are in the code.

This will be a harder template to control and get interesting results from, but it is potentially quite rich. Good ideas may come from Braitenberg's book Vehicles, which is on reserve.

 

 
 
 
1. Your own system
 
   
a: Analysis development  

Last week you began to consider your system as a distributed network. Then on Friday we talked more about how such systems are modeled and why they're relevant. If you didn't do part 3 of last week's assignment, return to it now and do it. It is essential to going forward.

What is the cardinal property of your system that you want to be sure makes it into your design?

Having described the agents at work in your system, you are going to do a first-person analysis of each of them. Imagine you are one of them--for instance a smoke particle. What are the possible behaviors you have? List them. What are the properties you must know about yourself to fully describe your state? List them. What are the properties of your environment that you must know to determine your behavior? List them. What are the rules that govern your behavior? List them.

 

b: Considering design beyond the system

Your system and the computational visualization of it are just the beginning--the easy part. What is beyond that is a piece of design work that your system informs. It is likely to look nothing like the visualization of your system, but it will have somehow ingested it. Dream up a small design project that you want to carry the property of interest from your system. For example, if I were looking at wound healing, I might propose in a highly damaged site an intervention that uses some of the same principles my analysis identifies in biological healing. (This is a particularly literal example. Yours may be considerably more subtle.) Show some preliminary sketches.

 

 

2. Making something new from the template

The raw materials are images, vehicle/bugs, and the template. Produce a system that does something of interest. If you are careful in your construction of this system, it might even be doing an analysis on an image that you couldn't do by hand. Optimally, this can be a process of design discovery or development. Please write in your assignment what you've done so that you can talk about it.

Template: here.
Image: here.
[Note: The image must go in the "data" folder of your sketch, and it must be the same dimensions as your program. GIF or JPGs will work, but the name must match the name in the code. You can change either the name in the code or the name of the image.]

Possible technical ingredients to consider using:

Multiple vehicle types: These would be different colors, react differently to the image, and lay down different trail colors. Not too hard to implement. If you want to and you don't know how, let me know.

Non-physical vehicle rules: You can change the vehicles' behavior any way you want. For instance you can have them turn 90 degrees (PI/2 radians in the case of this system) whenever they sense the color green. They can hop ahead whenever they get to dark colors. However you want them to behave, they can. Think about what you'd like them to do. Describe it thoroughly. Try to get them to do it. You might find it useful to reduce the number of vehicles to 1 and reduce the frame-rate while you work on the behavior so you can see what's going on more easily. You should be able to perform some pretty interesting analyses by changing the vehicle rules.

Different ways of laying down trails: Right now they just apply a simple tint to a single pixel. You could easily have them lay down a different trail color depending on different conditions. They could lay down trails just about any way you can imagine. They might pick up color from one part of the image and deposit it in another part. This will take some doing, so if you try and get stuck, let me know.