29 comments

[ 126 ms ] story [ 1119 ms ] thread
This is one of the rare impeccably aesthetic programs.
What does “aesthetic” mean to you in this context?
Shows how human activity such as git history is quite simlar to how evolution branches and (git programs forks) and some branches dies off and the one that survives is the current way haha
I used it to visualize comment activity on Reddit: https://youtu.be/8ozKt3O8O4Y
That was incredible to watch. You can clearly see when the conversation tapers off and then it must have gone viral because it suddenly explodes with activity. Thanks for sharing!
I discovered Gource back in 2013 when Minecraft released an animation of their first 800+ days of dev: https://www.youtube.com/watch?v=zRjTyRly5WA
Hah! I also discovered it from the same source and was just about to post the same link. That video made quite an impact on me.
(comment deleted)
I remember hearing about this ten years ago, and I played with it, and it's cool enough, though for the life of me I have not been able to figure out anything actually useful to do with it. Does anyone use it as part of their actual workflow?
Same, we used it for a bit to demonstrate the quantity of work that underly the feature requests to the business. Sure, you see a new button, but HERE is the rest of the iceberg...
At an agency I worked for, we'd play back the gource during a project retro. An opportunity to reflect, or see which surprise characters turned up to throw something at the codebase.

I personally enjoyed those sessions, it gave non-coders an opportunity to point and ask questions about various clusters of nodes or find out why we were working on certain things at particular times.

The value was debatable to be sure. Fun though.

It is a direct visualization of churn. You can really tell when some area of the codebase changes every single day. Probably means that you need to break whatever is attracting all the attention apart.
One of the first things I do any time I start a new job or enter a new repository is run Gource – it gives me an initial sense of several things:

* Project structure (how flat vs hierarchical is the file tree?)

* Which files keep being edited (likely to find bugs and/or tech debt there)

* Which areas different people tend to work in (eg, do they hop around a lot between client/server?)

And of course it is just a fun thing to watch, and usually someone will walk by and ask about what I'm looking at, then they'll come watch with me.

One company I worked for in the past made visualizations of the work being done. They took a repo I was working in, turned it into a gource video and displayed it on the 40 foot screen in the lobby.

And there was my name. Making huge changes causing the tree to fork. It was pretty cool.

Honestly I find that a bit weird. Maybe I'm too introverted but I would be too embarrassed for my work flow to be put on the spot like that.
Only a handful of people noticed it frankly, and it was one of 200 other visualizations on a video loop.
Always fun to run on any repo every year or so.

We ran it on our startup and it was really a proud moment as founding engineers.

I have used this a couple of times for a codebase I started work on 6 months ago. It’s incredibly rewarding to see branches dying off after a successful refactor.

It also helped me to make more tangible to friends and family the amount of effort required to write software.

We actually created a Gource-export plugin for our product like 6 years ago.

It would export our data structures and user activity as a git-like log that Gource could ingest. Then we would create videos that would be posted internally at different product dashboards or used for making a cool demo.

We even ended up writing our own JS-based gource, using the C3.js library IIRC. It could ingest more specific activity and history that Gource wouldn't. It didn't have all the shiny visual effects though.

slightly embarrassing Gource story...Was part of a group assignment (about 7 people each) and pushed the entire generated Doxygen site without realizing it.

After the assignment, the professor used Gource to visualize the codebase of each group. Needless to say the Gource graph blew up and I was the butt of every git related joke for a while.

I switch from being a musician by profession to software development because I got burned out and music stopped feeling like art. Ever since I left, I feel like engineering has become my new preferred means of artistic expression. This project is so cool in how it shows the process and craft of software and how it is carved, smoothed and honed into a “final product”. And much like in conventional art, it’s hard for the artist to call the job done and stop improving on it.
It's all so much easier with linear history...
The site offers executable downloads for Windows. On macOS, the source builds with just a few warnings. It's even on MacPorts (v0.53).
If you find this type of codebase visualisation useful, you might want to checkout codeatlas.dev and its Github Action (https://github.com/codeatlasHQ/codebase-visualizer-action). It doesn't animate the repo over time like gource (yet), but instead aims to give a beautiful interactive visual snapshot of a repo at a particular point in time. It also lets you zoom in on specific aspects like recent commit activity, programming language and hopefully in the future test coverage.

E.g. see here for a visualisation of the pytorch codebase we did a while ago: https://codeatlas.dev/gallery/pytorch/pytorch

(disclaimer: I'm the author)