At IDEO CoLab, we love thinking about what nature can teach us about emerging technology. Recently, we revisited an old podcast from a source we adore: Radiolab. Their episode “From Tree to Shining Tree” inspired us when we were thinking about naturally-occurring mesh networks.
The podcast talks about how mycelium and mycorrhiza give plants a natural network for absorbing and sharing nutrients in soil. The fungi create connections with the rootlets of individual trees and grow further out to connect with the root networks of other plants. These networks create an “underground economy” by which trees can trade and share nutrients.
This method of sharing is a good lesson for business: A lack of connections can create inefficiencies and tensions between potential collaborators. Looking at these networks raised a question for us: How can we facilitate connections between real-world businesses that would allow them to share resources?
We got so excited about the idea we jumped right into building something: a prototype called Myko, a smart scale and sensors that create a mesh network allowing two businesses to share streaming data that benefits both parties. We took the opportunity to build with Nomad, an open source streaming protocol Reid Williams and Gavin McDermott have been developing at the CoLab.
Nomad works as a decentralized messaging system, an open source protocol to discover, publish, and remix live data streams from anyone, anywhere. Nomad is built on IPFS, a distributed network, engineered as universal infrastructure to be open, scalable, and durable.
The Nomad API is based on a publish and subscribe system. When someone creates a node, it can either publish data to peers on the network, or subscribe to other peer nodes on the network. Publishing nodes are called “atomic” nodes, while subscribing nodes are called “composite” nodes. When someone creates a node on the network, it’s given a unique ID. For a composite node to receive data from an atomic node, all that’s needed is this ID. From then on, any data that the atomic node publishes is delivered to the composite node in real time.
Warning, nerd paragraph:
Using a couple Particle Photons and force-sensitive resistors, we quickly set up two atomic nomad nodes capable of broadcasting real-time data from two connected objects. I used the particle event stream API to output data in a JSON format, so I could easily parse event objects just like I would with any REST API.
Since the Photons can broadcast anywhere with wifi and a power source, these nodes will always be running, providing a constant stream of data no matter how far apart they are.
In this prototype, we built two connected weight-sensing plinths for coffee pots to rest on. The weight data from the plinths allowed us to determine when new coffee was brewed, how old it was, how many cups had been poured, and how much was left (we could even see the cups being poured in real time). One pot sat in our office at the CoLab, and the other sat in a nearby coffee shop.
When the CoLab pot was old or out of coffee, and when the cafe’s pot was fresh or about to be emptied (which happens every 45 minutes at our local cafe — they’re serious about freshness!), a signal on the plinth at CoLab was activated to tell would-be coffee drinkers to head to the cafe for a walk outside and a fresh coffee. At the same time, a signal was activated on the cafe’s pot, letting them know that IDEOers were being sent over.
The partnership possibilities created by this workflow are endless. For example, what if CoLab diverted some of its monthly studio coffee budget to create a steady income stream for the cafe? Could the cafe institute dynamic pricing on its coffee to reduce food waste? What about baked goods that go stale the next day? Could neighboring cafes use infrared sensors to share their current occupancy to load-balance their wait times in line or their occupied seats?
These questions sparked a lot more ideas and another experiment, in which we used Nomad to reduce coffee and food waste at the cafe. When a barista brewed a fresh pot of coffee, they simply pressed a button to send a notification to customers with the app. After 15 minutes, the price of a cup of coffee dropped by 10%. After 20 minutes, it dropped by 45%, and so on. Since we knew the cafe threw out its coffee after 45 minutes, we could set a timer to reset the price to normal levels when a fresh pot was ready.
In our prototype, coffee drinkers could see dynamic pricing via an app. This website was a small nomad web app powered by data from the Myko button in the cafe.
Whenever the user viewed the app, it displayed the current price of the coffee and a “buy now” button that used Stripe to create a purchase. When a user purchased a coffee, they received a unique code to redeem for the cup they purchased at the shop. The app operated off of a simple set of events whose time and content could be customized.
Something I didn’t have time to implement in the experiment was customization. Ideally, a cafe owner would be able to create new events themselves, adjusting elapsed time, content, and price with just a few taps. While this example isn’t a perfect design, we’re inspired by the live connections it can form between the cafe and its patrons.
Coffee isn’t a life-changing mechanism, but these prototypes represent a developing form of communication between objects and organizations. As we create digital twins of real world objects, our world becomes a living, breathing network, driven by data that we generate by going about our daily lives. Will smart cities be able to divert traffic through different routes based on live congestion data? Can a group of sensor-outfitted machines in a factory automatically organize a group-buy of replacement parts at a discount to the facility owner? These are questions that I’m hoping to answer through these digital fungal relationships.
Adapted from IDEO CoLab’s post on decentralizing chat here.