thijs.gg
← Home

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 MuniLines bag being helf

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

Screenshot of the code generating the pattern

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.

Generated muni bus lines pattern
Generated pattern with bus stop dots
Generated pattern with messy lines
Generated thicker muni bus lines pattern

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.

Few, randomly positioned bus lines
More randomly positioned bus lines
Dark theme, zoomed in pattern
Light theme, zoomed in pattern

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 full final textile pattern

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.

Sewing hems on the bag
Sewing the handles onto the bag
The bag laid out on a table
A corner of the bag
The bag in use on a rainy day
© 2026 Thijs Simonian