The Airport is the Museum - An Experimental Wayfinding Service for SFO Museum

This is a blog post by aaron cope that was published on February 14, 2023 . It was tagged whosonfirst and wayfinding.

Today we are releasing an experimental web-based wayfinding service for SFO Museum. Using this service you can ask for directions between two “waypoints” at SFO. For example, traveling from Gate G9 to Wayne Thiebaud’s painting 18th Street Downgrade in Boarding Area E:

Or from the Thiebaud painting, in Terminal 3, to Yayoi Kusama’s sculpture High Heels for Going To Heaven in Terminal 1:

Or maybe you are waiting for a passenger at the Boarding Area E Meet and Greet area and their flight is delayed and you’d like to visit the SkyTerrace Observation Desk and Museum Galleries in Terminal 2:

People often ask: Where is the museum at SFO? It’s an understandable question and many people will point to the SFO Museum galleries that happen to be in the terminal they travel to and from most often. Popular answers include the F-02 North Connection gallery at the top of Boarding Area F and the 2-A Boomerang Gallery in Terminal 2. One or both of these galleries often appear on the maps produced by Apple, Google or OpenStreetMap. Sometimes people mention the Aviation Museum and Library in the International Terminal. None of these answers are “wrong” but a more correct way to answer the question (where is SFO Museum) is to say: The airport is the museum!

In addition to the dedicated Aviation Museum and Library space, SFO Museum has upwards of two dozen galleries located throughout the terminals as well as over 100 works of art purchased by the San Francisco Arts Commission. It is already possible to travel between all the terminals pre-security and you can walk from the end of Boarding Area G, in the International Terminal, all the way to the end of Boarding Area C, in Terminal 1, post-security. Once the final section of the new Harvey Milk Terminal 1 building is complete you’ll be able to do the full-loop post-security: From Boarding Area A all the way to Boarding Area G, and everything in between.

A network overview of the waypoints, that are part of the SFO Museum Wayfinding service, in the SFO terminal complex and Grand Hyatt Hotel (February 2023).

That presents anyone visiting SFO with an amazing opportunity to see all the artwork, and objects from the Museum’s own permanent collection, on display. Until now, though, it hasn’t been as easy as it should be to discover what’s nearby or, importantly, how to get there from a particular spot in the airport (for example, the gate your flight is leaving from). This new experimental wayfinding service aims to address these issues.

It is considered experimental in the sense that “it works, until it doesn’t”. It is understood to still contain inaccuracies and may return incorrect results on occasion. There are also user interface and accessibility issues that need to be addressed. Here is a short list of “knowns-knowns”:

  • Locations for some waypoints, particularly public works, are still approximate. These waypoints are closer to where they should be than not but their location on the map may not reflect their exact reality yet.
  • Some routes are missing necessary waypoints in order for that route to make sense. For example not all the doors at SFO have corresponding waypoints which means that, were you to follow routing instructions exactly, you might be directed to walk through a wall. Please do not try to walk through any walls at SFO.
  • Routes do not take in to account (or “weight”) whether or not a given path requires going out of, and then back through, TSA security checkpoints.
  • Some routes are lacking in the necessary metadata to weight them relative to other options or to exclude them altogether. For example, at least once I’ve been instructed to travel through the BART station to reach a point in the International Terminal. There’s nothing to prevent you from doing this but it will probably cost you a BART fare that you weren’t expecting.

If you’re curious to see all the waypoints and their relationship to another have a look at the Wayfinding Service Network Overview webpage. It is also possible to review individual waypoints and their related adjacencies using the Wayfinding Service Edge Inspection Tool.

What’s Next

We are making this experimental service publicly available in the hopes of soliciting feedback and to “learn by doing”. We welcome your feedback about this tool. We are especially interested to know if, and where, the tool doesn’t work as you expected. You can submit your feedback using the form on the wayfinding service’s about page:

https://millsfield.sfomuseum.org/wayfinding/about#feedback

At present, there is no immediate timeline for fixes. Simple things will be addressed as quickly as possible and harder things will be added to the list so that they aren’t forgotten. A short list of improvements we’d like to make as time and circumstance permit include:

  • Creating new waypoints and updating incorrect waypoints where necessary.
  • Integrating the weighting algorithm for determining routes using wait times at the security checkpoints provided by the airport’s own Checkpoint API.
  • Displaying the names of the exhibitions alongside the gallery they are being shown in, as well as image previews for those exhibitions and public art.
  • Improved menus, search and other user-interface elements for choosing and rendering directions between two points at the airport.
  • Supporting geolocation and associating those coordinates with their nearest waypoint.

Routing is a complex subject and SFO Museum’s wayfinding service is relatively primitive by comparison to other wayfinding services. Under the hood it uses a simple directed graph with little to no conditional weighting yet. Some of this is a matter of expediency and some of it by design. The goal of our wayfinding service is not to provide directions precise enough that an automated system, a robot for example, could use them to navigate between terminals. It is meant to be a routing service that provides sufficient cues to allow a person to get from one part of the airport to another, supplementing the airport’s existing signage and an individual’s own awareness and curiosity. Airports are busy and dynamic places, after all and if you’re not using the giant “directional engine” in your head you are bound to get lost or bump in to something!

The rest of this blog post is about the technical underpinning of the wayfinding service. If you’re not interested in that you can stop here and start investigating the wayfinding service itself here:

https://millsfield.sfomuseum.org/wayfinding/

Under the hood

All the data for the waypoints used in the wayfinding service are available as openly-licensed data in the sfomuseum-data-wayfinding GitHub repository. For the most part these are just named points located through the SFO campus with references to their adjacent waypoints. For example here’s a truncated version of the record for the AirTrain International Terminal A Station.

{
  "type": "Feature",
  "properties": {
    "millsfield:wayfinding_detail": "ITB",
    "millsfield:wayfinding_kind": "ATR",
    "wof:adjencies": [
      1796903609,
      1796903611,
      1796889585
    ],
    "wof:id": 1796982265,
    "wof:name": "AirTrain Internation Terminal A Station",
    "wof:parent_id": 1763588469,
    "wof:placetype": "venue",
    "wof:placetype_alt": "waypoint",
    "wof:repo": "sfomuseum-data-wayfinding",
  },
  "geometry": {"coordinates":[-122.38870726626416,37.614615881257876],"type":"Point"}
}

Generally any two waypoints are rendered as a straight line between one another but sometimes that doesn’t make sense. The screenshot below illustrates this point. Although, this particular example has since been addressed (meaning it has an “alternate geometry” described in the next section) it is an example of when drawing a straight line between two adjacent waypoints doesn’t make sense.

A straight line suggests that a passenger would travel between the two waypoints by floating in the air outside the airport terminal and over the airfield. Please, don’t try to do this. Another example would be drawing a straight line between the International Terminal A and Terminal 2 AirTrain stations (the Terminal 1 AirTrain station is currently closed). Doing so would make it appear as though it were necessary to travel through the central parking garage which is not the case. In situations like this a record may contain an additional src:geom_alt property. This is the case for the record representing the AirTrain International Terminal A Blue Line stop:

    "src:geom_alt": [
      "sfomuseum-pathto-1796889549"
    ]

This is a signal to tools consuming the data that the record has an “alternate geometry” file; specifically, a file with an alternate geometry containing the path that the AirTrain follows to travel between the International Terminal A (1796889585) and Terminal 2 (1796889549) stations. SFO Museum’s wayfinding tool checks these signals when rendering waypoints and uses them to render accurate directions.

Waypoints are associated with public art works, SFO Museum galleries and passenger gates at SFO by adding a millsfield:waypoint_id property containing one or more waypoints. For example, this is what that property for the record representing Rufino Tamayo’s Conquest of Space, located outside the International Terminal, looks like:

    "millsfield:waypoint_id": [
      1796935711
    ]

Machine-readable data for public art works as well as galleries and gates are available in the sfomuseum-data-publicart and sfomuseum-data-architecture GitHub repositories respectively. Finally, there is a machine-readable endpoint for producing routing directions between any two edges (where an “edge” is the set of all the waypoints and public art works, galleries and gates with millsfield:waypoint_id properties) at the airport. For example, here is the request you would make to get directions from Grand Hyatt Hotel Station AirTrain station to Tamayo’s Conquest of Space followed by an abbreviated JSON-encoded response:

https://millsfield.sfomuseum.org/wayfinding/api/route?from=1796935709&to=1729793211

[
  {
    "id": 1796935709,
    "name": "AirTrain Grand Hyatt Hotel Station",
    "adjacencies": [
      1796903599,
      1796889551,
      1796903625,
      1729793263
    ],
    "geometry": {
      "type": "Point",
      "coordinates": [
        -122.39332890371237,
        37.613435201247555
      ]
    },
    "is_airtrain": true,
    "airtrain_line": "B",
    "placetype": "waypoint",
    "kind": "ATR",
    "detail": "GHH"
  },
  
  ...more steps here
  
    {
    "id": 1729793211,
    "name": "\"Conquest of Space\" by Rufino Tamayo (sculpture)",
    "adjacencies": [
      1796935711
    ],
    "geometry": {
      "type": "Point",
      "coordinates": [
        -122.390368,
        37.616249
      ]
    },
    "level": 3,
    "placetype": "publicart",
    "kind": "ITB",
    "detail": "DEP"
  }
]

As of this writing developer-focused documentation for waypoints and wayfinding at SFO Museum is scant and incomplete. For example: What do the kind and detail properties in the machine-readable response mean? That’s not written down anywhere yet (but will be once the dust has settled a bit more). If you have specific questions, requests or suggestions please don’t hesitate to file them as new issues in the sfomuseum-data-wayfinding GitHub repository:

https://github.com/sfomuseum-data/sfomuseum-data-wayfinding/issues