Share anyone's city directly. Three views, one link:
https://gitcity.natrajx.in/{username}/isometric <- 3D skyline
https://gitcity.natrajx.in/{username}/heatmap <- bird's eye view
https://gitcity.natrajx.in/{username}/simulation <- driveable city
| Username | Isometric | Heatmap | Simulation |
|---|---|---|---|
| @gaearon | skyline | heatmap | drive |
| @torvalds | skyline | heatmap | drive |
| @sindresorhus | skyline | heatmap | drive |
ISOMETRIC HEATMAP SIMULATION
3D skyline built Bird's-eye grid of Driveable city powered
from your commit contribution density. by Three.js. Your
streaks. Taller = Spot your hottest commits become
more commits. coding months. real streets.
The city simulation isn't just a drive-around. It has consequences.
CRASH DETECTION
When your vehicle collides with a building or another object,
an explosion triggers at the impact zone.
SPEED-RESTRICTED ZONES
The crash site becomes a permanent hazard zone.
You cannot exceed 15 km/h within the blast radius.
Zone markers appear on the minimap.
EXPLOSION RESIDUE
Charred geometry stays on the road.
Drive through it and your handling degrades temporarily.
ZONE STACKING
Multiple crashes create overlapping restriction zones.
Reckless driving turns your city into a no-go labyrinth.
Your commit history literally shapes how dangerous your city is to drive through.
GitCity fetches your entire GitHub contribution history via the GitHub GraphQL API and renders it as an interactive 3D city — no token required, no login, no paywall.
Six handcrafted themes — switch instantly via URL param:
| Theme | Preview | Direct Link |
|---|---|---|
| Matrix | ?theme=matrix |
|
| Noir | ?theme=noir |
|
| Aurora | ?theme=aurora |
|
| Ocean | ?theme=ocean |
|
| Gold | ?theme=gold |
|
| Ice | ?theme=ice |
https://gitcity.natrajx.in/torvalds/isometric?theme=matrix
https://gitcity.natrajx.in/gaearon/simulation?theme=noir
Drop a live, always-updated skyline anywhere — README, portfolio, blog post.
[](https://gitcity.natrajx.in/YOUR_USERNAME)With theme
Available: matrix · noir · aurora · ocean · gold · ice
HTML — full control
<a href="https://gitcity.natrajx.in/YOUR_USERNAME">
<img src="https://gitcity.natrajx.in/api/svg?u=YOUR_USERNAME&theme=aurora"
alt="My GitHub Skyline" width="100%" />
</a>iframe — interactive, for portfolios
<iframe
src="https://gitcity.natrajx.in/YOUR_USERNAME/isometric"
width="100%" height="500"
frameborder="0"
title="GitHub Contribution Skyline">
</iframe>Option A — Hosted (recommended)
https://gitcity.natrajx.in/YOUR_USERNAME
No setup. No token. No account.
Option B — Self-host
# 1. Clone
git clone https://github.com/natrajx/gitcity
cd gitcity
# 2. Install
npm install
# 3. Set your GitHub token
echo "GITHUB_TOKEN=ghp_your_token_here" > .env.local
# 4. Run locally
vercel dev # with /api serverless functions
# OR
npm run dev # Vite only (uses hosted API)
# 5. Deploy
vercel --prodEnvironment variables
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
Yes | GitHub PAT with read:user scope |
Three files in public/ are served directly from the site root:
| File | URL | Purpose |
|---|---|---|
robots.txt |
/robots.txt |
Crawler rules, AI bot allowlist, sitemap pointer |
sitemap.xml |
/sitemap.xml |
Pages for Google to index |
llms.txt |
/llms.txt |
Machine-readable summary for ChatGPT, Claude, Perplexity |
GitCity/
├── api/
│ ├── contributions/
│ │ └── [username].js # GitHub GraphQL proxy
│ ├── og/
│ │ └── [username].js # OG image generator
│ └── svg.js # SVG embed endpoint
├── public/
│ ├── blast.mp3 # Explosion sound
│ ├── crash.mp3 # Crash sound
│ ├── music.mp3 # Ambient city music
│ ├── rain.mp3 # Weather ambience
│ ├── wind.mp3 # Weather ambience
│ ├── comparison.html # gitcity.natrajx.in/comparison
│ ├── story.html # gitcity.natrajx.in/story
│ ├── llms.txt
│ ├── robots.txt
│ ├── sitemap.xml
│ └── screenshots/
│ ├── banner.png
│ └── twitter-banner.png
├── screenshots/
│ ├── birdeye.gif
│ ├── cardriving.gif
│ ├── gitcity.svg # Banner SVG (used in README)
│ ├── isometric.gif
│ └── login.gif
├── src/
│ ├── App.jsx # Auth flow, URL params, view routing
│ ├── main.jsx
│ ├── components/
│ │ └── ContributionGraph3D/
│ │ ├── index.js
│ │ ├── ContributionGraph3D.jsx
│ │ ├── IsometricGrid.jsx
│ │ ├── Citysimulation.jsx # Three.js city + crash physics
│ │ ├── BirdsEyeGrid.jsx
│ │ ├── Building.jsx
│ │ ├── CityAssets.js
│ │ ├── CitySignage.js
│ │ ├── CityTraffic.js
│ │ ├── CityVehicles.js
│ │ ├── GitHubConnect.jsx
│ │ ├── GraphLegend.jsx
│ │ ├── PedestrianSystem.js
│ │ ├── StatsBar.jsx
│ │ ├── ThemePicker.jsx
│ │ ├── Tooltip.jsx
│ │ ├── ViewToggle.jsx
│ │ ├── WeatherSystem.js
│ │ └── useDragRotation.js
│ ├── constants/
│ │ ├── graph.js
│ │ └── themes.js # 6 colour themes
│ ├── hooks/
│ │ ├── useContributionData.js
│ │ ├── useGitHubData.js
│ │ ├── useMountAnimation.js
│ │ └── useMousePosition.js
│ └── utils/
│ ├── colorUtils.js
│ └── dataUtils.js
├── index.html
├── vercel.json
├── vite.config.js
├── package.json
├── CHANGELOG.md
├── COMPARISON.md
├── CONTRIBUTING.md
├── SECURITY.md
├── CODE_OF_CONDUCT.md
├── ACKNOWLEDGEMENTS.md
├── CASE_STUDY.md
├── HISTORY.md
└── LICENSE
| Layer | Tech |
|---|---|
| UI | React 18 |
| Build | Vite 5 |
| 3D / Physics | Three.js r128 |
| Skyline | Pure SVG (embeddable) |
| Data | GitHub GraphQL API |
| Hosting | Vercel + Serverless |
PRs welcome. Open an issue first for major changes.
git checkout -b feat/your-feature
git commit -m "feat: your feature"
git push origin feat/your-feature
# open PR -> mainGitCity is free and open-source — no login, no paywall, no token required for the hosted version.
If it made your README cooler or your portfolio stand out, consider a coffee. It goes toward hosting, GPU time, and building more free tools.
Is this the same as thegitcity.com?
No — completely different project. See COMPARISON.md for a full breakdown.
Do I need a GitHub token?
No. The hosted version at gitcity.natrajx.in handles auth server-side. Token only needed for self-hosting.
Can I share someone else's city?
Yes — just use their username in the URL. All data is public GitHub contribution data.
Built by Rishabh Bhartiya — ML Engineer & full-stack developer. 3 years turning research-grade ideas into production systems.
- Portfolio: rishabhbhartiya.natrajx.in
- GitHub: @rishabhbhartiya
- Ko-fi: ko-fi.com/rishabhbhartiya
If GitCity is useful to you, a star on the repo goes a long way.
MIT © Rishabh Bhartiya — free to use, modify, and distribute.
Made with coffee by Rishabh Bhartiya · gitcity.natrajx.in · More projects · Blog · Ko-fi

