How chanjoongx/atlas works
Atlas turns a public GitHub repository into an interactive isometric city map. A user submits a repository reference; the frontend uses a pre-rendered demo when available or requests analysis, then presents the annotated result for exploration and PNG export. The live analysis stages are archive ingestion, file and import parsing, spatial layout, and landmark annotation. The frontend converts the result into a renderable scene and draws the map. README capabilities such as the animated landing skyline, shareable links, themes, and inspector are included; unsampled subsystem wiring is omitted where uncertain.
Main entry points: App.tsx App workflow · analyze.ts Analysis endpoint · index.ts Map interaction · draw.ts SVG drawing
Components 24
Repository Analysis
- Analysis endpoint
functions/api/analyze.ts - Archive ingester
functions/lib/agents/ingester.ts - Tar reader
functions/lib/tar.ts - Structure parser
functions/lib/agents/parser.ts - District layout
functions/lib/agents/layout.ts - Landmark annotator
functions/lib/agents/annotator.ts
Map Experience
- App workflow
src/App.tsx - API client
src/lib/api-client.ts - City map view
src/components/CityMap.tsx - File inspector
src/components/Inspector.tsx - Map controls
src/components/MapControls.tsx - Repository input
src/components/RepoInput.tsx - Theme settings
src/lib/theme.ts
Isometric Rendering
- Scene builder
src/lib/iso/scene.ts - Map interaction
src/lib/iso/index.ts - SVG drawing
src/lib/iso/draw.ts - Isometric projection
src/lib/iso/projection.ts - Map palette
src/lib/palette.ts
Landing Discovery
- Landing page
src/components/Landing.tsx - Animated skyline
src/lib/iso/skyline.ts
Map Export
- Export control
src/components/ExportButton.tsx - PNG export
src/lib/png-export.ts
Other components
- Repository visitor
- GitHub archive
Connections 29
- Repository visitor → Repository input: enters reference
- Repository input → App workflow: submits repository
- App workflow → API client: requests analysis
- API client → Analysis endpoint: posts request
- API client → App workflow: returns layout
- Analysis endpoint → Archive ingester: runs ingestion
- Archive ingester → GitHub archive: downloads archive
- Archive ingester → Tar reader: reads stream
- Analysis endpoint → Structure parser: runs parsing
- Analysis endpoint → District layout: runs layout
- Analysis endpoint → Landmark annotator: runs annotation
- App workflow → Scene builder: builds scene
- Scene builder → App workflow: returns scene
- App workflow → City map view: shows map
- City map view → Map interaction: renders interaction
- Map interaction → SVG drawing: draws scene
- SVG drawing → Isometric projection: projects geometry
- SVG drawing → Scene builder: places nodes
- Repository visitor → File inspector: selects building
- App workflow → File inspector: opens details
- Repository visitor → Map controls: navigates map
- App workflow → Map controls: provides controls
- Repository visitor → Landing page: opens Atlas
- Landing page → Animated skyline: shows skyline
- App workflow → Theme settings: reads settings
- Map interaction → Map palette: reads colors
- Repository visitor → Export control: requests export
- Export control → PNG export: starts export
- Map interaction → SVG drawing: exports markup