MuniLines Bag
A hand-sewn tote bag with a textile based on SFMTA public transit routes.
Inspired by the patterns of transit routes, the MuniLines bag transforms SFMTA route data into a beautiful multi-colored textile. Printed on fabric, I hand-sewed this textile into multiple tote bags. The complex shapes and random patterns in transit routes make them the perfect lines to transform into a fabric pattern.
Limited edition: only 4 have been created to this date, in the hands of SFMTA Director of Transformation Jeffery Tumlin, transit advocate Hayden Miller, and a family member.

The Data
Transit route data was imported from SFMTA's transit data API. SFMTA contracts Umo IQ, a Cubic service, for their arrival predictions and general realtime technology.
SFMTA rolled out more accurate predictions in early 2023 under a new contract with Cubic. Unfortunately, this contract didn't include a public API, discontinuing the API route I used :(
Today, route shape data might exist on 511.org's GTFS API, but it'll be a bit more complex.
A sandbox route with the same data structure still exists: https://retro.umoiq.com/service/publicJSONFeed?command=routeConfig&a=sfmuni-sandbox

Transformation
The MuniLines pattern transforms a distinct map and into an art piece that appears more like a line-based drawing than data. With a closer look, though, the lines vividly represent transit routes, both in shape and color.
At first, I transformed the latitude and longitude positions of routes into pixel coordinates, recreating the San Francisco shape. I experimented with different colors, shapes and sizes.




To create more of a random and expandable pattern, I settled on randomizing the positions and colors of routes. Each route is duplicated 10 times, randomly translated, and set to a random transit-map-like color.




Final Textile
I created a larger, zoomed-out version to be uploaded and printed on fabric. I really like how the diagonal Market Street line is visible throughout.

The final pattern was printed on Cypress Cotton Canvas by Spoonflower.
The Bag
I cut rectangles out of the two-yard piece of canvas, and sewed them into a tote bag. It was challenging to prevent the fabric from fraying, lots of little strands are present in the final designs!
But at least I have a transit map with me at all times. If I can figure out what each line is.




