Project - joeriBouwman25/bubble-machine Wiki

:star2: The project

  • What is the Bubble Machine

The Bubble Machine is an online simulator that show a graph of people, documents (like news articles, social media posts) and their links between them. The idea is to simulate how these documents have an effect on the creation of filter bubbles. The users in the simulation can choose to incorporate a certain document inside of them, how they "choose" certain documents is based on probability. The documents that are most closely related to them have a bigger chance of being incorporated by the user. Users have a limited "memory" which means they can only incorporate a certain amount of documents before they "forget" others. This way the simulation will always keep moving. Besides this the original project also has parameters you can change and edit to get a different result.

Our job was to make this Bubble Machine usable and understandable for journalists and researchers to understand, besides this we needed to think about the data visualisations and how to make one that was more efficient. The current graph was readable in the beginning of the simulation but the more links and documents it got the more the graph started to become unreadable and overcrowded.

In the end we thought of a different way to visualise the data which aims to highlight one user and their links to other users and documents. We built a frontend that was pleasurable to use. We incorporated extra features like darkmode, the ability to save the simulation to an image, make multiple different sessions so you can run multiple different simulations at the same time, the ability to run steps continuously instead of one step at a time and the ability to see a line graph that shows the distance between friends overtime.

There were also some things we started but could not finish in time. We started on a websocket connection to be able to change only the data that has changed with every step instead of querying the graph all over again. We were working on being able to zoom in on the graph to show details. We started on being able to take steps back in the simulation, this started with localstorage but that did not work, after that we planned on starting with a service worker to cache the taken steps and open the cache when you need it.

  • What were the requirements

The requirements

  • Simulation parameters (we ran out of time because the parameters were only available in week 5)
  • Real-time analysis of population using a graph
  • Real-time analysis of metrics (presence of homogeneous networks, diversity metrics)
  • Deployment of the Web API to the production environment
  • What did we implement In the end we implemented:
  • Data visualisation using D3.js
  • Running a simulation automatically with one button
  • Creating and deleting a session
  • Highlighting connections between one user and other users and documents
  • Seeing the amount of friends and links a user has on click
  • Showing a line graph of the distance between friends

What does our project contain, you can read all about it in the following sections.