Building a solar-powered, decentralised social network
Table of Contents
In summary
For the final project of my Interaction Design degree, I explored the role that wireless, solar-powered micro-controllers could play in communication within communities.
Researching the social impacts of technology
Following a brief of using solar-powered technology for good, I researched ways in which people are using technology in subversive manners. I found the role of encrypted messaging apps to be crucial, yet deeply vulnerable.
My largest discovery was how centralised our national internet infrastructure is, 2.3 exabytes of annual traffic passing through just 3 datacenters. Many countries, like Iran for example, use this centralisation to restrict and block access to the internet. I realised there was a need for digital communication tools that could resist forms of surveillance and suppression in ways that the internet is susceptible to.
Building a hardware testing platform
Looking to create a realistic platform to design from, I researched many different micro-controllers and parts to use. For example, the ESP32-S3 was chosen for it's wifi capabilities and low power consumption. Similarly, a Lithium Phosphate battery was chosen over the more common Lithium Ion or Polymer batteries as it was non-toxic and better suited for longer, outdoors deployment.
With the parts, I designed a number of rudimentary enclosures for different use-cases. Each was designed to be easily manufactured with access to tools, and provide a variety of ways to deploy a module like sticking in a window or hanging on railing. All part files are open-source, so easily modified by end users.
Designing and iterating on a solution
The remaining time in the project was spent building small web applications and testing various parts of the project with users. I researched numerous software libraries and approaches to building a live social network. I tested a number of different approaches like PUSH requests and WebRTC before landing on websockets for the final implementation
I wrote a static webserver in C++ for the ESP32 that supported websockets and writing to an SD card. This allowed me to build a lightweight chat application for the browser with Javascript that could save and reload the chat history on demand.
Creating a suitable brand
The visual communication of Solar Space and it's ideas was an important focus for me from the beginning, much time was put into iterating and developing a strong visual brand in which the project could follow. This involved the creation of a dynamic wordmark that could represent the project's themes of open spaces and solar power, as well as a reliable font system and colour scheme.
Evaluating in the real world
The solutions went trough real world deployment in order to evaluate it's success at every stage. I found valuable insights about the role of anonymity in communications, people's feelings on public and private group chats, as well as the limitations of solar-powered computing. These all contributed to the shape of Solar Space as a concept.
I also presented the idea to several experts in topics like solar powered computing and communal server infrastructure. This helped me get valuable critical insight into the project and infer a direction for the project's future to come.