Code Swarm Post Git: Data Visualization

The above visualization shows the history of commits for the Knewton Adaptive Learning Platform. A commit occurs when a developer alters the code and transfers the changes into our central git repository. Each file in a commit is represented by a colored-coded blob which indicates the type of file committed. Each time a developer commits a file, the algorithm brings the file closer to the user’s blob; this proximity reflects the associativity between code files and users as well as the relationships among users themselves. The histogram at the bottom displays the frequency of commits over time.

This visualization can also be referred to as a “code swarm”, and is an example of “organic information visualization” (a phrase coined by Ben Fry), that is, any data visualization that allows the elements to interact in a dynamic and unpredictable fashion. The benefit of such a visualization is that it brings the relationships between different project components into relief. The viewer can also observe the evolution of a project over time.

What's this? You're reading N choose K, the Knewton tech blog. We're crafting the Knewton Adaptive Learning Platform that uses data from millions of students to continuously personalize the presentation of educational content according to learners' needs. Sound interesting? We're hiring.

  • Dexter

    Feb 24: You spelled “Joffrey Baratheon” wrong.

  • Thwack41012
  • Michael O. Church


  • Thwackimodo

    On the other side of a street I knew
    Stood a girl that looked like you
    I guess that’s deja vu
    But I thought this can’t be true
    Oh I swear to you
    I’ll be there for you
    This is not a drive by-y-y-y-y

  • Chuck Daniels

    Urjit, this is fascinating! Would you explain how you determine initial positions of file blobs and user blobs? That is, you indicate that as a developer makes commits to a file, that file’s blob moves closer to the user’s blob, but how do you determine where to initially position blobs?