Tuesday, February 23, 2010

Timeline/milestone document

Tentative timeline:

3/1: General class structure decided on, skeleton classes written

I will decide on the classes I will need for this project and how they will interact. I will also write skeleton classes (classes with all fields and methods declared but no methods filled in) for each class.

Also: mockups for phases G1, S and G2

These mockups will show what each stage will look like, but will not function. Some very basic functionality using a mouse may be implemented if I have time.

3/8: Mockups for prophase, prometaphase

3/22: Mockups for metaphase, anaphase

3/29: Mockups for telophase, cytokinesis

4/5: Main classes filled in and functional

All method bodies in main classes filled in, main classes run without errors

4/12: Functionality added to G1, S, G2 phases

All the named phases should work properly when tested with a psuedoserver. I may have to tweak Cleo's provided psuedoservers to get something suitable for testing.

4/19: Functionality added to prophase, prometaphase, metaphase

4/26: Functionality added to anaphase, telophase, cytokinesis

Testing and debugging with camera, circumstances willing

5/3: Presentation

Sunday, February 21, 2010

Status Report 1

A few of the graphics for the Mitosis Game are done now. Mostly what I've been doing is trying to figure out the class structure for this program. I would like all the different minigames to share a single CVManager to put less strain on the processor, but I am not sure how to set the program up to accomplish this. Here is the solution I have so far:

1.) The CVManager will be instantiated in the main MitosisGame class when the game starts.

2.) The MitosisGame class will add a symbol (hereafter referred to as "Game") as a child of itself. This symbol will contain each minigame as a child within a single keyframe. The Game symbol will take the MitosisGame's CVManager as a parameter in its constructor. In this way the Game symbol will be able to share the CVManager with the main class.

3.) The symbols containing the minigames will all be subclasses of another Minigame class, which will take the Game's CVManager as a parameter in its own constructor. Within these symbols the CVManager will perform its minigame-specific functions.

This should work, if I'm thinking about it right... however, I have a nagging feeling that there is an easier way to do this.

Wednesday, February 17, 2010

Pitch Document





The Mitosis Game will be an interactive lesson to teach children ages 9-14 about mitosis. Mitosis is the process by which living cells divide and reproduce. By interacting with a Computer Vision based Flash movie, children will be able to learn about this process in a more engaging way than with common teaching methods.

A diagram of mitosis taken from https://dbscience3.wikispaces.com/Drew. " The G1, S and G2 phases are part of Interphase.

Core Gameplay

The Mitosis Game will consist of a series of mini-games illustrating the various stages of mitosis. Each game will provide an interactive demonstration of the core function of that stage. The mini-game for each stage will be as follows:

Stage G1: In this stage, the cell grows in size to prepare for mitosis. Children will form holes in front of the projection to "hug" the cell. If the hole intersects the image of the cell on the screen, the cell will enlarge in size. The game will proceed to the next stage once the cell reaches a specific size.

Stage S: In this stage, the cell duplicates its DNA. After a brief animated explanation of the process, children will be shown a half-strand of DNA along with a series of loose nucleotides. The children will be asked to match these nucleotides to their correct partners: adenine to thymine, and guanine to cytosine. This will be accomplished by having the nucleotides react to and move along with hulls. When all the nucleotides have been matched, the game will proceed to the next stage.

A diagram of DNA, illustrating the two base pairings, from http://www.breakitdownblog.com/bush-signs-the-genetic-information-nondiscrimination-act/. Children will construct a similar structure in the Mitosis Game.

Stage G2: This stage is virtually the same as G1. The cell grows further to ensure it is large enough to divide. Children will have to "hug" the cell again until it reaches its final size.

Prophase: During prophase, the centrosomes of the cell move to opposite sides of the cell. Children will have to move these centrosomes to their correct positions in a similar manner to that described for the nucleotides in the S stage. Once the centrosomes are in their correct positions, the game will proceed to the next stage.

A diagram of a cell in prophase taken from http://www.ias.unt.edu/~tpp001/Mitosis_Diagram_Page.main.html. Each pair of centrioles is collectively called a centrosome. Note that the two centrosomes are moving toward opposite ends of the cell.

Prometaphase: Two notable events occur in this stage. First, the nuclear envelope dissolves in preparation for the separation of chromosomes. The game will emulate this by having the child wave his or her hand over the image of the nucleus on the projection, causing the nuclear envelope to dissolve. Secondly, the centrosomes generate kinetochores, which reach toward the center of the cell. Children will be asked to move their hands toward the center of the cell to cause this to occur.

A diagram of a cell in prometaphase from Sparknotes' page on mitosis. Note that the nuclear envelope has dissolved into nuclear vesicles and that the kinetochores are extending toward the center of the cell.

Metaphase: In this stage, the chromosomes line up at the center of the cell. Children will have to align the chromosomes along the center line. Once the chromosomes are all in place, the game will move on.

A diagram of a cell in metaphase, from http://www.uic.edu/classes/bios/bios100/lecturesf04am/lect16.htm. Notice the chrosomes aligned at the center.

Anaphase: In this stage, the kinetochores shorten and pull the chromosomes apart. The children will have to "stretch" the chromosomes toward the opposite ends of the cell. The game will accomplish this by keeping track of the distance between two hulls on the screen.

A diagram of a cell in anaphase from iknow.net. Here the chromosomes are being pulled toward opposite ends of the cell.

Telophase: In this stage, the chromosomes reach their final positions at opposite ends of the cell and new nuclei are formed. Children will be asked to make holes at each end of the cell to "create" the new nuclei. Once each nucleus has been formed, the game will move to the next and final stage.

A diagram of a cell in telophase from http://www.biology.iupui.edu/biocourses/N100/2k2ch8mitosis.html. Notice that the new nuclei are beginning to form.

Cytokinesis: In this stage, the cell "pinches off" at the center and splits into two new cells. Children will be asked to form a "wall" between the two forming cells with their arms. The game will detect this as a hull and split the cell in response. Once the new cells are formed, the game ends.

A diagram of cytokinesis from Stanford University, illustrating the division of the two new cells.

Monday, February 15, 2010

Status Report 0

Looks like the winner for now is the Mitosis Game idea. The Google Maps idea might be implemented if I have time. The Google Maps API for Flash is here.

Pitching ideas

Here are the different ideas I have for a project:

Mitosis Game - A CV-driven game/interactive demo to teach people about mitosis. Each stage of the cell cycle would have a separate "mini-game" to illustrate the concept. Below are the ideas I had for each stage:

G1 - "hug" cell to make it grow to a certain size

S - catch the correct nucleotides to duplicate the DNA

G2 - "hug" cell again

Prophase - move centrosomes to opposite sides of the cell

Prometaphase - wave your hand to dissolve the nuclear envelope
"stretch" kinetochores toward the middle of the cell

Metaphase - line up chromosomes at the center

Anaphase - "stretch" chromosomes apart

Telophase - "stretch" cell some more, create new nuclei

Cytokinesis - "hug" the middle of the cell to pinch the cytoplasm

Google Maps - A Google Maps application that would compute the shortest distance between two points selected by the user. I have already had some experience using Dijkstra's Algorithm to find shortest distances, and I know Jim Teresco has created data sets containing a list of highway intersections. The user could then scroll the map and zoom in and out. The obvious problems here are:

-how to recognize that a user has selected a certain point without selecting every point the user touches

-how to recognize that a hull is moving so that the map can be scrolled and zoomed

Magnets - A game using the 2D physics engine. This would involve a maze with a metallic ball placed at the starting point. The user would control a magnet and try to guide the ball through the maze.