Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Software visualization.
JavaScript Clojure
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
resources/public
src-cljs
src/metric_hero
test/metric_hero
.gitignore
README.md
project.clj

README.md

Metric Hero

The hero is one who kindles a great light in the world, who sets up blazing torches in the dark streets of life for men to see by.

-- Felix Adler

Metric Hero analyzes your codebase and builds interactive visualizations. Use it to more effectively learn your way around a new codebase, or to focus your efforts on evolving existing projects.

Example

A Metric Hero render of the Ruby on Rails codebase:

Rails Render

About

This technique of software visualization is largely based on work from Richard Wettel and Michele Lanza -- specifically Wettel's Ph.D. thesis Software Systems as Cities.

In the current incarnation, a git repository is analyzed and projected onto three dimensions. Each building of the city represents a file on disk. The width and length of the buildings in the city are representative of the file size. The buildings are laid out using a Treemap tiling algorithm. The height of the buildings are determined based on relative commit times. Files that have been updated recently are taller.

Usage

(require 'metric-hero.core)
(metric-hero.core/analyze "/path/to/repo" :ignore [#"ignored" #"regex"])
  • Copy output.json into resources/public
  • Compile ClojureScript lein cljsbuild once
  • Start jetty: lein run
  • Visit http://localhost:3000/
  • Navigate with WASD, QE, RF, and Arrow Keys

License

Copyright © 2013 Robert Boyd

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.