top of page

VIS 145B: To Prey Or To Mate -- Final Documentation

  • Mai Dinh
  • May 30, 2016
  • 4 min read

Project Narration -- Time and Process

To Prey or To Mate is an interactive program that is a technical and conceptual exploration of cybernetic principles. Using my own version of boids (an "artificial life" program that simulates flocking behavior in birds), I demonstrate an extremely simplified simulation that explores how cannibalism and mating affects population dynamics in a species. My boids respond to each other, their own internal conditions, and the user to create emergent behavior that is reminiscent of "weak artificial intelligence" systems.

All my boids have the following characteristics that vary between individual boids: health, health depletion rate, sex, breeding rate, size, and speed. Health is the boid's vitality, which naturally depletes and can only be replenished when the boid eats. Once their health reaches 0, the boid will disappear. Health depletion rate is how quickly the health depletes. my boids can be one of two sexes -- male or female -- and can only mate with the opposite sex. Breeding rate is how often my boids will seek out a mate. A boid's speed is inversely proportional to its size and a boid's size determines whether they can be easily eaten (the bigger boid eats the smaller boid).

Upon starting, my program starts off with five boids rendered to the screen, each one with randomly generated characteristics. Normally, my boids move randomly, until either their health is critically low or they are ready to mate, in which case they will seek out nearby boids to eat or mate with. Over time the population will change, with weaker boids dying off and mating boids creating offspring that inherit their characteristics.

Moreover, the user can interact with boids through a webcam, which detects outlines and users' faces. The boids can bounce off and be blocked off by these outlines, allowing the user to alter the boids' paths and ultimately how they eat or mate. Moreover, boids react very negatively with the presence of faces, in which their health depletes faster and their breeding rate lowers. As a result, the more people that are detected, the more likely boids will die off.

The end result varies with every startup, user action, and number of users, creating emergent and cybernetic behavior.

Poetically, my project represents humanity's relationship with other species' populations, in which every action we take, even the action of observation, can have interesting effects on other organisms. I wanted my project to combine my interest in genetics and natural selection, East-Asian philosophy of interdependence, and humanity's effects on the environment.

Installation Scenario

I imagine that my project would be projected on a single wall or on all the walls of an enclosed room. I would want each projection to stretch from the floor to the ceiling, creating an environment of sorts.

A camera would be placed on every wall and would face towards the center of the room. Audience members can walk into the room and use the camera(s) to interact with my boids. The screen would be mirrored so that they seem like they're reflecting the audience members. However, as soon as their face is visible, activity in the room would drop drastically. Therefore, I want to create a small area in the room that audience members can stand behind, so that they can observe the boids without "disturbing" them and understand how their own presence and actions can make all the difference in my work.

Language of Praise

What I and others enjoyed about my project was the level of ambition that my work pursues. It tries to capture complex processes -- breeding, hunting, natural selection -- so that my boids seem "life-like". Copying reality is extremely difficult, but I think I streamlined my simulation well without it seeming too simple.

Moreover, my project embraces a minimalist aesthetic that emphasizes these processes, which successfully captures my intention.

In my opinion, the most interesting part of my project is the act of tension between the two environments -- the environment inside the screen and the one outside of it. Both cannot coexist in large numbers; if there are too many people, the boids will die off.

However, my program may have too much going on. As pointed out during critique, my artwork could do away with the contoured video feed while still preserving its essence. Moreover, my program does suffer from technical issues. For example, I have trouble running my program for more than a few minutes, because too many boids could be rendered to the screen and my computer wouldn't be able to handle processing so many.

Overall, I'm really proud of my project. I set my sights high and I think I succeeded for the most part. I learned a lot about openFrameworks and its addons by working on this project and maybe I can expand on this for my senior project.

Citations:

Although most of my code is original, I did borrow the following addons.

  1. Sier, Andre. "S373/ofxDna." GitHub. N.p., 5 Aug. 2012. Web. 12 May 2016. <https://github.com/s373/ofxDna>.

  2. McDonald, Kyle. "Kylemcdonald/ofxCv." GitHub. N.p., 30 Mar. 2011. Web. 12 May 2016. <https://github.com/kylemcdonald/ofxCv>.

1 was used to generate the genetic crossover algorithms in my code, thus allowing my boids traits to be passed down over generations.

2 was used to process video information to create the thresholded image that is rendered to the screen.


Comments

Couldn’t Load Comments
It looks like there was a technical problem. Try reconnecting or refreshing the page.
Featured Posts
Recent Posts
Archive
Categories
Search By Tags

© 2020 by Mai Dinh

bottom of page