January 10, 2009

Enjoying my new polarizing filter!

Tree at Montrose Beach

September 14, 2008

Oncofertility Short Documentary Series

This summer I served as Producer on a pilot project at Northwestern called the Oncofertility Communications Initiative (OCI). The OCI's goals were to produce a short documentary series about cancer patients and the challenges they have faced related to having children.

The videos are now available for viewing or download from http://oncofertility.northwestern.edu/for-patients/videos

I have enjoyed the project immensely, and am very proud of the pieces that our filmmakers Uji Films and Kartemquin Films have produced.

March 13, 2008

ITunes U - Stanford Technology Ventures Program

My friend Dave tipped me off to a great series on ITunes U -- the Stanford Technology Ventures Program. It has a wonderful set of lectures by various high-tech entrepreneurs mostly from Silicon Valley.

As I'm in the process of launching a company, I'm amazed by how relevant the insight of these repeat entrepreneurs can be. I'm recalling how this type of lecture used to sound trite and self-important back in school when I had no notion about what it takes to run a business. Now, however, it feels urgent and relevant because so much of starting a business seems to be about trusting yourself and others -- about escalating commitment while managing risk.

It's not the type of knowledge that you cite, since just as soon as you cite it you're reminded of exceptions to the rule. It's the type of knowledge that helps to build judgment, patience, and prudence. No wonder so much of it feels like a parable -- professors telling stories meant to teach a lesson and to serve as a strong reminder of what *could* happen.

I highly recommend the series (and thanks to Dave for pointing it out!).

Link via ITunes U

December 5, 2007

Nodebox - Hyperlink Graph

I'm in love with NodeBox, a simple to use scriptable graphics tool (uses Python) for Mac OS X. Among many other things, you can use it to generate hyperlink graphs like this one (for www.seanzehnder.com).

nodebox-hyperlink-seanzehnder_dot_com.png

October 12, 2007

Media Revolutions Redux

Announcing the re-birth of the Media Revolutions Project!

http://www.mediarevolutions.org


October 5, 2007

Application of MapFlows Analysis - aimless wandering vs. patterned exploration

One of the applications of this technology is to provide a visual/analog means of assessing level design, with data from real players.

For example, it can bring into high-relief when players are exploring a level in roughly the same manner, or if they appear to be wandering aimlessly. In both of the examples below, there was 1 fixed spawn point and roughly the same number of player-sessions of data. Each frame is 1 second of gameplay and the video plays at 12 frames per second.

Example 1 - Wandering Aimlessly

Example 2 - Highly-Patterned Flow Through the Level

October 4, 2007

MapFlows Videos

The MapFlows application I've been developing now has the option to generate quicktime movies of the heatmaps. These maps can either show or hide the background image of the level. For the purpose of analysis, I like to sometimes see the emergent structure of the level from the patterns of movement without having the map always in view. Below is an example of my "catwalk" map (using one of my experimental conditions) with and without the background map.

Without Background Map

With Background Map

September 28, 2007

MapFlows - update

I've also just completed an update of my MapFlows application, which shows a heatmap-style visualization of where players are over time in the game level. It averages all available samples within a specified "bucket" range, and then generates a color value for each pixel based on its distance from all sampled player positions. It basically treats the known (i.e. sampled) positions of players as forces on the pixel where the magnitude of the vector is inversely proportional to the straightline distance to the point.



The app saves the frame images, stats about the app performance (meaning how long it took to process), and you can also print contact sheets of the frames in order to represent the flow as a static series of images.

I will post little videos of these flow-maps in the next day or so...

September 25, 2007

New App -- LogImporter

In the process of collecting data for my dissertation experiment, I amassed something like 200 sessions of game play, each about 5 minutes in duration. Each log file from these sessions had millisecond sampling of player position, camera pitch and yaw, and the player's health. This gives me millions of samples I can use to analyse my game level in a variety of ways.

However, managing that much data is tricky -- especially when the software development was (is) ongoing and there are inevitably bugs in the system that require re-processing of the raw log data.

In order to ensure data integrity and the ability to sort erroneous and/or invalid session logs from valid ones, I needed a dedicated utility application -- enter LogImporter.

It's not the sexiest piece of software I've ever seen, but it has proven IMMENSELY helpful in verifying my data and trusting that everything that should be in the database has actually reached the database successfully.

In the process of this development, I wrote a general-purpose HistogramWidget (in Java/QtJambi). The widget can take either a query string (e.g. "SELECT rowcount as valueField FROM tableFoo") or an existing TreeMap of data, and then it renders a histogram of the values in that resultset. The dark blue bar represents the bucket containing the mean, the darker purple box represents 1 standard deviation, the lighter blue represents 2 standard deviations, and the red bar indicates the currently selected log file (in the list on the left).

This means that when you select an existing log file, it will show you where that falls in the distribution compared to all the other sessions in the database. This is extremely handy when you're not sure if the session you're looking at is vastly outside the norm compared to its peers. While I am currently only using it to show the rowcount for each log file, new histograms can be added extremely easily (if there's some other thing you'd like to compare across log files).

GameTracker Software Updates

I've made a bunch of updates to GameTracker in the last few weeks.

1 - Player Movement Replay -- the little green streak shows the last 100 frames of the player's position and the cone represents the player's field of view for a particular frame.

2 - Time in Cell Histogram -- you can also see a blue-ish chart in the bottom left of this image. This is a new histogram feature that shows the distribution of time spent in a particular cell. This is calculated as part of the grid analysis view, which is something I've been in the process of developing for some time (other shots of that, below).

3 - Performance of the Grid Analysis View -- The basics of this view have remained the same, but I have dramatically boosted performance by cleaning up the code and being slightly more careful about where and when the Qtjambi AbstractItemModel-based objects are initialized. The threading on this piece has also been spruced-up.