Hi FOAM community!

I just wanted to introduce myself and show you something I have been building, involving FOAM.

A brief introduction… I am a developer and part of Streamr’s community (www.streamr.com). To me, FOAM and Streamr have always seemed like a great match; FOAM provides a link between geographical locations and smart contracts and Streamr can provide real-time data streams for these locations.

In the future, Streamr’s data network will be fully decentralised, so it will be possible to have data streams coming over a decentralised network (via Streamr) for locations that have been verified in a decentralised manner (via FOAM) - seems pretty cool to me / and maybe an important part of an open, fair and decentralised smart city solution!

So here’s what I have been building… pollution.network. It’s a very early stage proof of concept (that domain is pointing to my github repo so it’s currently unstable/evolving). The idea combines both FOAM’s CSCs and Streamr’s real-time data network. It uses the context of pollution monitoring, which is an area of interest for Streamr.

Following the structure outlined in FOAM’s parking DAO example, a registry contract, running on ropsten, is used to register new pollution sensors. Sensors, instances of a LocationStream contract, have a CSC providing the link between their address and the geographical location and also reference a stream ID relevant in the Streamr ecosystem (this structure might change in future as I further develop the project).

The website picks up registration events to populate markers on a map:

On clicking one of these markers, some more details about the sensor are displayed, and the user can click on ‘Get Stream’. When clicking ‘Get Stream’, the stream ID retrieved from the smart contract for that location is used to retrieve the appropriate stream from Streamr (via a javascript library) and data points are displayed on the chart. Some historical points are reloaded. New points appear as they are generated by the sensors; in most locations, it’s approximately one per hour.

The below shows an example of a streams data points being retrieved/displayed:

The data is being received from a feed covering 60+ countries and 10,000+ sensors (although I’ve only added a few countries to the demo - currently the UK and Switzerland).

I plan to continue developing this proof of concept as FOAM and Streamr grow and add more features of both projects become available. I’m hoping the work prompts further collaboration between the FOAM and Streamr project and their respective communities, when possible.

I’m very happy to take suggestions, feedback and comments. It’s the first iteration, so I’m sure there are many improvements I could make - I’m going to improve the usability next, and want to make it more like http://manpopex.us/ eventually.

Thanks!