Git_Icon

by Christoph Grünberger

Christoph Grünberger is an award winning German illustrator and designer. He is the author of "Analog Algorithm" and most recently "The Age of Data", a stunning compendium of artists and studios in the world of data-driven design.

The Git_Icon design is based on a central grid, and by drawing lines connecting several points on the grid we can create an enormous variety of shapes. With the additional dimensions of colour palettes and stroke styles, the range of output is absolutely vast, but the design system assures the aesthetic. Each piece is unique yet a recognisable result of Christoph's original framework.

A slide from Christoph's original concept desk for Git_Icon.
A slide from Christoph's original concept desk for Git_Icon.
A variety of outputs using different palettes and stroke options.

To provide a layer of context and detail over what is admittedly a very abstract visualisation of a Git repository, the design permits an overlay of text. This features the most active contributors and paths, as well as some more general statistics.

Detail view of featured contributors.
Detail view of featured contributors.

This is one of our favourite features of the design — the bold styling catches your eye and draws you closer, and then you realise there are actual names and numbers to appreciate. It's a summary of course, but it almost feels like your repository is encoded both figuratively and literally into the artwork.

Implementing Christoph's design system was also interesting. There wasn't an obvious way to connect the lines drawn on the grid with the properties of a Git repository in a meaningful manner, but we settled on an approach which we feel makes sense and also produces a diverse range of output.

We use three properties of each file in the repository: The file's size; the number of commits affecting it; the number of lines changed over all of its commits. We can consider each property as a dimension, so each file is represented by a point in 3D space. By calculating the convex hull of all these points we are left with a solid 3D shape which represents both the content of a repository and the history which led to it.

The grid is then intersected with the shape in a few different orientations and we find the longest continuous line along the intersected grid sections. This gives us a set of lines which are essentially two dimensional cross-sections of the 3D shape.

For sales of Git_Icon which aren't for one of our featured Open Source projects, Christoph has chosen to support the Amnesty International, a charity fighting human rights abuses worldwide.