Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Actions Status codecov Go Report Card GoDoc License MIT

Available here:

Research Paper: 26th International Conference on Software Analysis, Evolution and Reengineering (SANER)
PDF Version: ASERG Page

GoCity is an implementation of the Code City metaphor for visualizing source code. GoCity represents a Go program as a city, as follows:

  • Folders are districts
  • Files are buildings
  • Structs are represented as buildings on the top of their files.

Structures Characteristics

  • The Number of Lines of Source Code (LOC) represents the build color (high values makes the building dark)
  • The Number of Variables (NOV) correlates to the building's base size.
  • The Number of methods (NOM) correlates to the building height.


  • go install
  • Or just head to the releases page and download the latest version for you platform.


  • Online:
  • Commands
    • gocity server - Start server
    • gocity open <GITHUB_IMPORT> - Open a specific Github project from github
    • gocity open ./my-project - Open a local directory

UI / Front-end

The UI is built with React and uses babylon.js to plot 3D structures. The front-end source code is available in the front-end branch.

Related Works

This tool makes part of a scientific research developed at Federal University of Minas Gerais (UFMG)
Student: Rodrigo Brito
Advisor: Marco Tulio Valente