Skip to content

[Feature] Language-Based Building Silhouettes (Architectural Archetypes) #28

@AegisX-dev

Description

@AegisX-dev

What problem does this solve?

Currently, all buildings in Git City share a uniform boxy geometry, regardless of the developer's tech stack. While the height and window lighting vary based on contributions and stars, the overall architectural identity is identical for every user.

This is a missed opportunity to visually celebrate the diversity of the GitHub ecosystem. By introducing building "Archetypes" based on a user's primary_language, we can make the city feel more organic, personalized, and visually rich without sacrificing the core pixel art aesthetic.

Proposed solution

We propose mapping a developer's primary_language to 4-5 "Architectural Archetypes." This would involve:

  1. Defining Archetypes:

    • The "Frontend" Tower (TS, JS, CSS): Modern, "Glass House" aesthetic with wider window grids and glass balconies.
    • The "Backend" Monolith (Go, Rust, C++, Java): Industrial, Brutalist style with external "pipes," vents, and heavy concrete textures.
    • The "Data & AI" Spire (Python, R, Julia): High-tech, "Server Farm" look with glowing data cables and spherical nodes on the roof.
    • The "GameDev" Arcade (C#, GDScript, Lua): Irregular heights, neon signs, and "retro" pixel-art roof decorations.
  2. Technical Implementation (Performance-First):

    • Multi-Instance Rendering: Instead of a single InstancedMesh for all buildings, we create one InstancedMesh for each archetype. This maintains the 3D performance benefits of instancing.
    • Mapping Logic: Update src/lib/github.ts to assign a silhouetteId based on the existing primary_language field.
    • Shader Integration: Utilize the building's custom_color attribute to highlight archetype-specific features (e.g., tinting the "Backend" pipes or "Frontend" neon strips).

Alternatives considered

  • Procedural Geometry per Building: Too expensive for performance; would break instancing.
  • Static Textures Only: Less impactful than physical geometry changes; wouldn't provide the same "skyline" silhouette variety.

Additional context

This feature would significantly enhance the "exploration" aspect of the city, as users could visually identify "Frontend" or "Data Science" districts just by looking at the building shapes.

I'm happy to work on a PR for this if the community is interested!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions