The idea was to graphically represent bitcoin transactions, and it ended up like this...
BitcoinCity uses a websocket API as source of data and Isomer as javascript graphics library.
It receives information on the latest bitcoin transactions, mostly still unconfirmed, and draws a little city based on the transaction info.
It tries to display as much information as possible about the transaction, with a touch of randomness to make each city as unique as possible.
City Elements
Ground
- ground depth/elevation reflects transaction size in bytes
Building
- each building shows either an input (north side of the street) or an output (south side of the street)
- building colors have 2/3 parts based on the 7th and 8th byte of the input or output script, the 3rd part is forced to max, red channel for the inputs and green channel for the outputs
- inputs and outputs with less than 1 btc form a round tent
- 1 or more btc generates a building
- the larger the value, the taller the building
- inputs and outputs with multisig addresses are meant to look like castles, as they are more secure
- if value >= 100 000 btc, you get a special building
Window
- inputs and outputs need at least 1 btc to have windows
- if value <= 10 btc, large windows will light up to represent the number of btc (ex: 2 lights up means the number of btc is >= 2, but < 3)
- if value > 10 btc and < 100 000 btc, windows will light up to represent the input or output amount. Each column of windows represents the digit's place and each
floor represents the digit. Bottom floor is 0, top floor is 9 (ex: transaction amount of 99 999 btc, all windows on top floor will be lit)
Roof
- each roof is coloured green when unspent, red when spent, with variations according to the script type of the associated input or output
- if a building should be taller than the limitations, it gets a roof twice the normal size
Flag
- as blockchain.info displays tags on some of the addresses, these addresses will have a small white flag on their roof
- transactions from some known services (Proofofexistence.com, Counterparty.io, Coinprism.info, OpenAssets, Blocksign.com, Coinspark.org) are also identified by
a coloured flag, according to the service
Crosswalk
- escrow transactions get a crosswalk on the street, something that "helps" the side crossing/transaction completion
Tree
- when no fee is paid to the miners, it doesn't help the network, and so a brown tree appears as a reminder of the "environment"
Limitations
- Only the first 24 inputs/outputs will be represented
- Max building height is 4 btc
Special thanks to @bitcoinmom, @JVianaZ, @zonkism, @RussHarben and @sawall for their endless patience, precious advice and good will helping me in this fun project.