Thursday, July 9, 2009

Visualizing an Agent Based Model for H1N1

A couple of months back I wrote a series of articles about designing, experimenting with, and running an agent based model for Influenza A H1N1 (or whatever we're calling it this week). I've been working on 3D visualizations for the Eclipse AMP AGF tools, so I thought it would be neat to build a quick 3D version of the influenza model. Here it is running within the new AMP Escape environment. Agents are colored for their infection status and shaded for transmission probability. Note that except for making the model space larger, everything else is exactly the same.



It's interesting to see how people respond to visualizations of models like this. I can spend weeks working on challenging details of model mechanics and then find people far more engaged by the model after just a few hours of work on a nice visualization. Does this mean that the model users are shallow? Not at all. Yes, people can be a bit too fascinated by eye candy, and I have certainly seen computational social science models that look fantastic but whose internal mechanics are trivial or poorly implemented. But a good visualization helps researchers get inside the model and 3D can provide much richer information.

As I move ahead with development on the AMP project and Escape, I've been able to leverage a number of other Eclipse platform technologies. One of the most enjoyable aspects of this has been experimenting with new tools such as GEF3D which provides the core 3D visualization you see here. Even though GEF3D is a new and rapidly evolving tool, it was remarkably simple to get it working within the rest of the AGF framework -- the team did an excellent job of following design patterns and interfaces established by the GEF and Draw2D efforts, patterns that AGF was already leveraging. Then I was able to use other Eclipse platform services to add in new features like simple view navigation buttons for helicopter, first person, and overhead views.

That's the beauty of working within a software ecosystem like Eclipse. Getting up to speed on a large and dynamic set of interrelated technologies can be tedious and frustrating at times, but the investment is worth it. When everyone works to a core set of patterns and practices, everything else is gravy.

No comments:

Post a Comment

Popular Posts

Recent Tweets

    follow me on Twitter