Radix Universe Visualizer

At Radix we like to think big, a useful mindset when trying to create a fast and scalable ledger that can support billions of people. With that in mind, Edgars and I (Stephen Thornton) decided to try and build something that would let us view the entire universe. However, since we were limited to just one day, we instead built a Universe Visualizer that would let us view in real-time all of the network activity and atoms in the Radix universe. This had been something Edgar had been wanting to build on Radix for a long time and was something we both agreed would both be useful. Most importantly, we also thought it would be exceptionally cool.

What is it?

The day started inauspiciously, with our hotel serving one of the worst cups of coffee either of us had ever had the misfortune of trying. However, a quick trip into town to get some decent real coffee gave us the time to further brainstorm our ideas. We agreed that we wanted to build something that showed how atoms were being stored across the network in real-time but were unsure of the best way to present it. Some of our initial ideas were quickly discarded due to lacking the physical devices necessary, including using a ‘Palantir’ style model in which we could project a multi-dimensional network view onto a spherical touch-screen display unit, as well as a virtual reality device.

  1. Taking this information, we needed to form some graphical representations of what was happening with them
  2. In addition to graphics, we wanted to use sound effects to augment the experience

How does it work?

The above describes what we built but for those keen to understand how it works, the basic idea is that:

  • It then connects to every node in the network using the radixdlt.js library
  • When you click on a node, it submits an atom to that node
  • Each node then lets the browser app know when it has received the atom, displaying the path it has taken based on the temporal proof in the atom sighting that has been reported
  • The path is different every time because the next hop in a temporal proof is determined randomly, eight nodes from the originator, binary branching from then on
  • If you click on other nodes, it submits conflicting atoms
  • When a node resolves the conflict, it also tells the app that an atom has been rejected due to the conflict
  • The aforementioned audio plays when appropriate events are triggered

The first layer 1 protocol specifically built to serve DeFi