Thursday, June 30, 2005

Introduction

Ok, first of all, if you were expecting a nice formal scientific logbook, you came to the wrong place. Formality in this case would not be useful. If I did something or had an idea, it'll go here. If I'm frustrated about something, that can go here too. If I finally understood something, I'll probably explain it to myself here so I won't forget. I like to be pretty up front on blogs.

If you are curious about what I'm doing, click on the "My VCU Web Page" link on the side, and then click on the link under "Summer 2005 Research Proposal."
If you want to know more about the Virtual Parasite Project and what a T. cruzi is and why anyone should care about modeling a swarm of them, click on the "Virtual Parasite Project Link."
If you want to know what I mean by Swarming, click on the "Craig Raynolds' Boids" link.
If you like applets, visit Craig's Steering Behaviors page and scroll part way down until you see a list of java applets--the crowd behavior ones are especially cool. :-)
If you are my mentor, don't kill me for what I say here.
That said...

After about four weeks researching, planning, and presenting things, I finally started working out the nitty-gritty of the actual project. I feel like it's going to be my mission for the next month to make sure my mentor, Tarynn, gets nothing done--I was in and out of her office all afternoon with questions. And I ended up sincerely wishing that she had been my math teacher in high school. As it is, it's a good thing she's patient--I haven't had a solid background in math or any physics, so without those mental hooks to hang things on, it's taking me a long time to understand things. She finally had to take vectors all the way down to "ok, here is a tree, here is me. I take off running at three feet per second away from the tree..." before I finally got her point: you couldn't add a vector to a point because the units were wrong; I was able to do it before because I ignored the "per timestep" part of the vector since it was basically like dividing by one. So I'll need to add an extra piece for this program to make it match the actual physics (units and everything) instead of just making it so that it comes out ok in the end.

She's been asked to present the project at a conference in Germany at end of September so she sent off an e-mail to the team saying "hey we need to get this all working so I have something to talk about." So I walked into her office and told her flat out--I can't do it. period. no chance. and certainly not in C++. It'll take me that long to get my brain around C++, never mind getting anything coded. So she said "so prototype it in Scheme and translate it into C++ later". Woot! Getting to code in Scheme is like getting to read Greek after staring at Mandarin for days--Greek takes a lot of thought, certainly, but at least I know where to start.

So now I can focus on what needs to happen in the program instead of a new language too. That will still take me a long time though. I've got a sketch of how the world can be structured (subject to change, maybe I'll post a pic of my diagram later), but I am currently trying to figure out how to make a parasite bounce off the sides of the world. Tarynn said it was an elastic collision, but I'm still working on understanding vectors enough to calculate the "after bounce" vector from the "before bounce" vector based on direction cosines.

I'm changing the posting time on this post so that "today" is still today instead of yesterday (it took me a long time to finish this post)...