Geneses

Geneses

A poem consisting of the genesis block hashes from the hundred cryptocurrencies with the highest market capitalization on January the Second, 2016 encoded as BIP-0039 mnemonics.

It begins:

abandon abandon abandon ability output crowd ice area thumb clown sibling charge youth range ribbon stairs plug argue provide toddler gaze edit meadow update

Details on how to order the book can be found here:

http://robmyers.org/geneses/

Posted in Art, Crypto, Generative Art, Projects

Simple Blockchain Art Diagram

Simple Blockchain Art Diagram

Simple Blockchain Art Diagram, 2016, digital media. After MTAA ca. 1997.

Very obviously adapted from MTAA’s “Simple Net Art Diagram“.

Proofs of existence stored in Bitcoin block 422422 and 422423.

More details on the project page.

Posted in Art, Crypto, Projects

Using The Palette

palette-chooser

The “Democratic Palette” contract provides 12 colours to use. What happens if griefers set the palette to 12 colours that are almost exactly the same? What happens if you need colours with more or less contrast or hue difference? What if you need more or fewer colours? The only guarantee about them is that they will all be different by at least one point.

To fetch the current palette:

var withPalette = function (callback) {
  var democratic_palette = Democratic_palette.deployed();
  var requests = [];
  for (var i = 0; i < 12; i++) { requests.push(democratic_palette.palette(i) .then(function(colour) { return {index: i, colour: colour}; }); } Promise.all(requests).then(colours => {
      var palette = [];
      colours.foreach(function(colour) {
        palette[colour.index] = colour.colour;
      });
      callback(palette);
    });
  }
};

We can then get from one to twelve colours simply by truncating the array, e.g.:

var my_3_colours = palette.slice(0, 3);

Or we can get the bluest colour using a simple comparison:

var bluest_colour = palette.sort(function(a, b){
  return a.blue - b.blue;
})[0];

Or we can take the average of the colours, which will probably represent the triumph of statistics over aesthetics.

More complex orderings and comparisons can be achieved using a colour library that allows us to work in HSV space. In particular we can use a version of the algorithm that Harold Cohen used for one version of his program AARON’s colouring system (see figure 15 here), effectively ordering the colours in the palette by brightness then distributing them evenly across a brightness range sufficient to ensure that each is distinct from its neighbours.

What about more colours, or more structured relationships between colours where we are concerned that those relationships may not be present in the colours voted for within the palette? In the first case we can interpolate between existing colours, producing colours in-between those in the palette. Or in both cases we can use colour theory to produce related colours: complements, split-complements, tints and tones, etc. There are libraries to do this in Javascript, for example color-scheme-js will produce entire colour schemes from individual colours.

“Democratic Palette” is intended to provide the equivalent of an aesthetic or colour symbology backed by Blockchain democracy rather than any other ideology or iconography, so it is intended to be easy and significant to us it as-is. But it’s also possible to maintain a direct relationship to the palette while using colours that are not themselves present within it.

Posted in Aesthetics, Ethereum, Projects

Democratic Palette

palette-spots

Democratic Palette, 2016, Ethereum Contract and HTML/JavaScript/CSS.

A palette of twelve colours that anyone can set on the Ethereum blockchain. Every vote for every colour is tracked and the top twelve make up the palette.

palette-vote

palette-representations

palette-squares

palette-stripes

The images above show various different visual applications of the palette and the use of the GUI to vote for a colour (the GUI appears if you click in the window displaying the canvas).

Note that the above images are from test runs. The current palette on the live Ethereum blockchain looks like this, ready for people to vote on:

live-palette

You can download the interface code here, it’s in the dapps/democratic-palette directory.

To use it you’ll need an Ethereum node running locally, and to vote for colours you’ll need some Ether.

Posted in Aesthetics, Art, Crypto, Ethereum, Projects

Blank Canvas

Blank Canvas 1

Blank Canvas 2

Blank Canvas 3

Blank Canvas 4

Blank Canvas, 2016, Ethereum Contract and HTML/JavaScript/CSS.

A blank canvas that anyone can set the colour of on the Ethereum blockchain.

The images above show use of the GUI to change the colour (the GUI appears if you click in the window displaying the canvas).

You can download the interface code here, it’s in the dapps/blank-canvas directory.

To use it you’ll need an Ethereum node running locally, and to change the colour you’ll need some Ether.

Posted in Art, Ethereum, Projects

Oculus Rift CV1 Support in OpenHMD

Bad Camera Image of Rift CV1

OpenHMD has added support for the Oculus Rift Consumer version 1 (CV1) in the dev-oculus-cv1 branch.

It tracks the headset and turns the video and sound on. Above is a blurry image taken on my phone showing openglexample running on-screen and in the rift display.

I’ve found a few minor issues:

  • You’ll need a strong enough graphics card to power the CV1. An X200 laptop’s built-in graphics won’t cut it.
  • openglexample crashed the Gnome window manager on my under-powered laptop. Other window managers were fine.
  • The rendering in opengexample is intended for the DK1 so it isn’t quite right for the CV1, the resulting viewpoints are slightly too far apart.

But, as I say, these are minor issues. The Rift CV1 works on GNU/Linux! Next to find a good (Web)GL example of rendering for the CV1.

(A big thank you to Oculus for sending Kickstarter backers a CV1! o_O )

Posted in Virtual Reality

nom

 

$ ./nom --help
Usage: nom [OPTIONS]
       Defaults to using 32 bytes of entropy.
  -rep string
    	hash representation - hex, base58, bip39 or proquint (default "hex")
  -seed string
    	read the bytes to hash as the parameter of this argument
  -stdin
    	read the bytes to hash from stdin rather than as an argument
$ ./nom --rep hex
331151629ed17389c079aa3ecdd9828d52cde9c8411b4fd591f7a18dcda6be2a
$ ./nom --rep base58
anAa9gRLWMn3BhLSb2TQNfEoVBhLBbZnDeGnMhqnthkj
$ ./nom --rep proquint
pisil-tufag-zanir-didin-ruzaz-rutop-kakip-zatir-vutig-gavaf-nuzuf-sibuh-zilur-sakim-mimut-soziz
$ ./nom --rep bip39
sheriff core resemble talent service sword warfare offer boil vibrant uncover leisure circle pupil cattle prize cherry joke social daring media nurse primary chuckle

nom is a command line tool to generate names (identifiers).

It’s written in go. You can grab the source here:

https://gitlab.com/robmyers/nom

Posted in Crypto, Projects

Left Universal Basic Income

The Universal Basic Income proposed by the Left is different from that proposed by the Right. Rather than replacing the welfare state it is a supplement to it.

As Srnicek & Williams note in “Inventing The Future”, 2015 (p.297):

The conservative argument for a basic income – which must be avoided at all costs – is that it should simply replace the welfare state by providing a lump sum of money to every individual. In this scenario, the UBI would just become a vector of increased marketisation, transforming social services into private markets. Rather than being some aberration of neoliberalism, it would simply extend its essential gesture by creating new markets. By contrast, the demand made here is for UBI as a supplement to a revived welfare state.

In the footnote to this, they quote Alyssa Battistoni, “Alive in the Sunshine”, Jacobin 13, 2014 (p.4):

A UBI programme would ideally involve a transformation of the welfare state. Programmes that provide services must be kept and expanded – for example, healthcare, childcare, housing, public transport and internet access. All of these should be immediate goals of the left, not only for their inherent good but also because expanding public services is necessary for reducing overall energy consumption.

And in response to the question of why the rich should be given money as well as the poor, they respond (p.296):

As there would be no means-testing or other measures required to receive the UBI, it would break free of the disciplinary nature of welfare capitalism.

It is perfectly possible to disagree with any or all of this. That does however first require acknowledging it. And there’s a lot more where this came from…

Posted in Accelerationism, Politics

Problems to be Isolated, Described and Discussed

A & L developed slowly and untidily around a consensus that there were historical and objective problems which could be isolated and described, and thus discussed. This is what distinguished and distinguishes A & L from other artists or artistic formations. A & L saw these problems as matters to be articulated by work, rather than as professional aspects of their social lives to be adopted only once they had left the studio. Conversation, discussion, and conceptualisation became their primary practice, as art.

– p22, “A Provisional History of Art & Language”, Charles Harrison & Fred Orton.

Posted in Art, Art History, Notebook

“Hot Cold” on Homestead

cold-hot-live

Here’s “Hot Cold” live on the Ethereum “Homestead” network.

“Hot Cold” calls back to Art & Language’s 1960s Conceptual Art involving abstract aesthetic properties. It looks (and is implemented to be) twice as complex as “Is Art“, but it’s still really only one bit of information.

You can run the user interface locally in a web browser with an Ethereum node such as geth. Once geth is running, the user interface can get the contract’s state from the blochchain and, if you have Ether for gas, modify it. If someone else changes the contract’s state, you’ll see this updated.

If you want to change the contract’s status without using the user interface, you can do so using the contract’s address and ABI in EtherWallet.

The address:

0x53cd5d6bebff1eef892c191875e4d963875f50d7

The ABI:

[{"constant":true,"inputs":[],"name":"cold","outputs":[{"name":"","type
":"bytes4"}],"type":"function"},{"constant":false,"inputs":[],"name":"swap","out
puts":[],"type":"function"},{"constant":true,"inputs":[],"name":"hot","outputs":
[{"name":"","type":"bytes4"}],"type":"function"},{"inputs":[],"type":"constructo
r"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hot","type":"bytes4"},
{"indexed":false,"name":"cold","type":"bytes4"}],"name":"Swap","type":"event"}]
Posted in Art, Crypto, Ethereum, Projects, Uncategorized

In Archive