Skip to content

fix(ipad): Building Customization Canvas shows generic placeholder illustration instead of the real building facade render #392

Description

@nigel-hall-codes

The canvas background in the Building Customization Canvas (BuildingCanvasView.facadeSurface, FacadeCanvasView.swift/BuildingCanvasView.swift in UnitySFApp) calls the per-facade /canvas/{osm_id}/{facade}/backdrop endpoint. That endpoint is documented in ServerClient.swift as unshipped — it returns nil until #300 ships — and FacadeCanvasViewModel.loadBackdrop() silently swallows the failure ("non-fatal: backdrop is a drawing aid only"), leaving backdropData nil for essentially every building.

With no backdrop, the canvas falls back to FacadeIllustrationView: a fully-opaque, procedurally-drawn generic building (windows, storefront, door), seeded by osm_id so it's consistent per-building but bears no relation to that building's real appearance. Users see this generic illustration and assume it's meant to be their building's facade — it isn't.

Meanwhile, the Buildings-browser thumbnail (BuildingThumbViewGET /buildings/{osm_id}/thumb, wired up in #369) and the canvas's own "3D Preview" card already use the real Unity-rendered facade from that same endpoint. So the real render exists and is reachable — the main paintable canvas just isn't using it.

Fix: make the main canvas backdrop reuse the real-render source (GET /buildings/{osm_id}/thumb) that the thumbnail and 3D Preview card already use, instead of (or as a fallback layered under/replacing) the unshipped per-facade backdrop endpoint, so the canvas shows the actual building instead of a generic placeholder.

Repo note: issue tracked here in UnitySF per centralized issue-tracking convention; the code fix itself happens in UnitySFApp (iPad app + FacadeCanvas package now live there).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions