Foldit
June 30th, 2009Hm… It’s been quite a while since my last post. School drains me of my time more than I expect…
Anyway, even though it’s already halfway through, I thought I might post about what I’m doing this summer. I decided against taking an internship in the software industry this year. Not because I didn’t enjoy it (working for Mozilla was amazing), but because I wanted to explore some other possible futures, specifically graduate school.
To that end, I decided to work on campus for a professor doing something reserachy this summer. At the same time, I really wanted to work on game development since that’s one of my big passions. So, I decided to do both: I’m working on a research videogame project, Foldit.
Solve Puzzles for Science!
You can read more details about the project here, but here’s a short version. Figuring out the most stable shape of a particular protein is hard. Really hard. There exist algorithms to find it, but the search space is enormous. It’s just a optimization problem, but a rather difficult one. But hey, humans are good at 3D spatial reasoning. Why not enlist their help in solving this problem? And, while we’re at it, why not disguise it as a game?
Thus Foldit was created. It presents the user with the problem of trying to fold a given protein to maximize their score, which equates to minimizing the energy. A server is used to store the results of the players, which can hopefully be used to improve search algorithms. Or a human might just even find the stable shape for a really important protein herself.
The project began at the University of Washington as a collaboration between the CS and Biochemistry departments. One of the creators, Dr. Adrien Treuille, is now a faculty member at Carnegie Mellon, and he brought the project with
him. There a handful of students at CMU working on the project now, myself included.
What I’m Doing for the Project
My primary task is trying to improve the quality and performance of the rendering engine. Currently, some of the puzzles display very slowly on many computers, and some of the visualization has undesirable artifacts. Basically I’m rewriting as much of the 3D rendering engine as I want, which is a pretty sweet job. It’s all done in C++ and OpenGL, which means I’ll be getting much more familiar with OGL than I have ever before. I’ve never worked on or written such a large 3D engine, so I’m already learning a whole lot. My changes have already caused some big gains in a few areas. I may talk about in more detail in later posts.
So that’s what I up to, in case anyone was curious. I’m going to try to post more frequently this summer than I have been (namely, never). We’ll see if I can keep that up… Anyway, go check out Foldit!
Images courtesy of foldit’s website.
Unsurprisingly, others felt the same way about X, and decided to write an
