Skip to content

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

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!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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