GithubHelp home page GithubHelp logo

kustomzone / symphony-2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from input-output-hk/symphony-2

0.0 1.0 0.0 79.69 MB

Immersive 3D Blockchain Explorer

Home Page: https://symphony.iohk.io

License: Apache License 2.0

JavaScript 93.19% HTML 0.09% CSS 3.07% GLSL 3.66%

symphony-2's Introduction

Symphony 2.0

Symphony

Symphony 2.0 is a real-time, 3D, immersive blockchain explorer.

Symphony 2.0 aims to answer the question what does a blockchain look and sound like?

It is an educational initiative with the aim of inspiring a wide audience about blockchain technology.

Visual Structures

In Symphony 2.0 all of the 3D structures represent real components of a blockchain.

Transactions

Transactions are represented as hexagonal crystals. The height of each crystal is based on the transaction value. The brightness of the crystal surface is based on the ratio of unspent to spent transaction outputs, see Bitcoin UTXO. Fully spent transactions appear darker in color than unspent transactions.

Blocks

The arrangement of crystals on the block surface and the crystal radii is controlled by a 2D Simplex Noise function. The noise amplitude is controlled by the ratio of total block transaction fees to total block value. We use this metric as a type of "Network Health". If the transaction fees are very high compared to the transaction amounts, we consider this an unhealthy state. An unhealthy state is visually reflected by transactions being more random in radius and spacing.

Merkle Trees

Symphony

Merkle Trees are a fundamental component of blockchains and decentralized applications. They allow efficient verification of large data sets. In bitcoin and other cryptocurrencies, Merkle Trees connect one block to the next. They are constructed from hashes of the block transactions. In Symphony 2.0 we show how the branches of the trees connect to the transactions on the top of the block.

Mempool

In Symphony 2.0 the Mempool is visualised as a swirling cloud of particles at the center of the blockchain spiral. The total count of particles is controlled by the actual mempool size.

Spent Transactions

We show transaction outputs being spent via a trail of energy leaving the transaction crystal and flying toward the mempool.

Blockchain

The macro blockchain structure is shown as an archimedean spiral. This structure is an efficient use of space for showing the entire blockchain on screen.

Sound Synthesis

Symphony 2.0 generates a unique soundscape for each block based on the block data using Additive Synthesis. It loops through each of the transactions in a block and converts the transaction values to pitch (larger transaction value = lower pitch). Each transaction has a fundamental pitch as well as 7 harmonics. It utilises GPU.js to generate the sound buffers quickly. We use the ratio of the transaction fee to value as an indicator of "Transaction Health". If a transaction has a very high fee to value ratio, we add randomness to the harmonics, creating a more sonically inharmonic sound.

The sound in Symphony 2.0 serves a functional purpose - you can listen to the sound of a block and ascertain properties about the number of transactions, the level of fees in the block and the value being moved around.

Installation

yarn install && yarn start

License

Symphony 2.0 is licensed under the Apache-2.0 licence.

symphony-2's People

Contributors

scottdarby avatar tomasvrana avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.