Profile picture
, 19 tweets, 7 min read Read on Twitter
With the new @Tesla software update + browser, @c9r can view @swim's traffic.swim.ai app in his Model 3 as he drives through Palo Alto, CA. Live #ML predictions about untimed traffic signals streaming from city traffic infrastructure. Check it out @elonmusk! #swimOS
1/ If this is your first time seeing the @swim traffic.swim.ai app, here's what you're looking at...
2/ The app displays a map of Palo Alto, CA. We use @Mapbox here, but the UI core is all @swim.
3/ We get this data from our partner @Trafficware. All data streams directly from connected traffic infrastructure in Palo Alto, CA.
4/ Blue dots represent intersections. We actually run unique neural networks for each intersections, which train on local data and data from neighboring intersections. Click the intersection of Middlefield and University to see one in action. The rest just display phase cycles.
5/ The red/yellow/green rectangles represent traffic signals at an intersection. The rectangles change opacity based on whether an intersection is occupied. Width is determined by queue length.
6/ The blue ripples are generated when a new vehicle is detected at an intersection. The purple ripples are generated when a pedestrian is detected.
7/ If a pedestrian is waiting to cross an intersection, the blue intersection dot turns purple.
8/ If you click one of the red/yellow/green rectangles, a modal pops up which displays the current light state and a countdown timer until the next traffic signal phase. These predictions are powered by the neural networks running on top of @swim.
9/ The dials on the righthand side are displaying aggregate statistics about the city. The first gauge displays the % of green lights which have traffic flowing. The second displays # of red lights with vehicles waiting.
10/ The purple gauge displays the % of intersections which have pedestrians waiting at them.
11/ Every object in this application is being represented as a stateful Web Agent in Swim. Each web agent is processing the data from that real-world object independently.
12/ Aggregator Web Agents subscribe to many data streams and combine them into new data streams. This is how we power the gauges on the side.
13/ This is also how we're able to run unique neural networks for each intersection and train them in real-time.
14/ All the gauges, modals, and graphical components are subscribing to individual @swim APIs to provide streaming updates.
15/ We're showing data from Palo Alto, CA but this application is actually deployed in several other US cities as well. We're able to run all these cities in real-time using only @swim. No database, message brokers, app servers required.
16/ We host this application on @Azure cloud. But the same could be done for AWS, on-premise, or any other environment.
17/ For those curious, the @swim traffic.swim.ai app is open source and available at github.com/swimos/traffic
18/ This #thread about traffic.swim.ai was totally gratuitous and unnecessary:
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Swim
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!