Skip to content

Experiment: façade textures on the diorama massing (scalable atlases, not per-building photos) #331

Description

@TortoiseWolfe

Goal

Experiment with skinning the OSM massing buildings for more realism in the Three.js diorama, instead of the current flat per-type colors.

Current state

src/world/Buildings.tsx renders one merged mesh with meshStandardMaterial + vertexColors (a solid color per building keyed by type). Terrain already uses the aerial drape as a texture; buildings do not.

Recommended approach (scalable)

  • Tiled façade atlases keyed by building type (residential / commercial / industrial / civic) — a handful of window/brick/glass texture tiles, UV-mapped per wall by height. Scales to the ~14k wide-city buildings with a few small textures; NOT per-building photos (no data source, gigabytes, doesn't scale).
  • Simple rooftop treatment (flat shade, or sample the aerial drape onto the roof cap so rooftops match the imagery).
  • Keep it one merged/instanced mesh for perf; textures via a small atlas + per-vertex UVs or a shader.

Explicitly NOT recommended

Per-building photographic textures — no source, unscalable.

Design question to settle first

The diorama is a deliberate toy tilt-shift / miniature aesthetic ("a living tilt-shift diorama"). Photoreal façades may fight that look. Prototype on a few blocks and judge whether it enhances or cheapens the miniature vibe before rolling out city-wide — this is as much an art call as a technical one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    3dCesium/Three.js/diorama/twin 3D work — parked behind the enterprise arcpriority:p3Low — defer (heavy work, polish, nice-to-haves)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions