+ Fundamental Research Lab      + FLOAT
+ FACE     


radiation robotic project

Main Idea>
Real randomness vs. Psedo-randomness>
Quantum randomness /based on radiation>
Python>
Synthesis>
Limits>
Space>
General research>


Nuclear Random Engine

People are extremely bad at generating random sequences. People behave in a mechanic and repetitive manner. Human brain aims to conceive reality within periodic sequences and patterns. This is why most sequences and rhythms we encounter in art and music are repetitive. The existing computing machines don't generate random sequences; the so called pseudo-generators of random numbers are periodic. This is why the project reaches quantum states which are highly randomized and can be used for generating random numbers. The radioactive disintegration of Tor is converted into light-sound impulses. 

Nuclear Random Generator

 

Real randomness vs. Psedo-randomness

The existing computing machines don't generate random sequences; the so called pseudo-generators of random numbers are periodic. You can create a formula that generates a pseudo-random number. When designing the formula, the idea is for it to produce a string of numbers that would look random to anyone who did not know what the formula is. Characteristics of a good formula include:
* No repetition: The sequence does not cycle around and repeat itself. Good numeric distribution: If the formula is producing random numbers between 0 and 9, the number of zeros, ones, twos, etc. that it produces should be roughly equal over a long period of time.
* Lack of predictability: You have no way to predict what the next number will be unless you know the formula and the seed (the initial value).


RANDOM BLAST - Robert B. Lisek from Robert B. Lisek on Vimeo.

 

Quantum randomness /based on radiation

I used an old Geiger counter and point it at a source of radiation -- like e.g. Torr. The output of the Geiger counter is feed to an interface that will connect to the serial port on a Mac and watch the interval between "clicks". If the most recent interval is greater than the previous interval I'll count that as a 1, if less I will count it as a 0, and if equal, I'll just drop the current interval.
some random bits:

101100110010011111101101101000000100100011010100010011010010110011101100111000
110011010101101010101100111010110000101001111101110111111101010111001101100011
101001001011010101110111100011100101100111011110101101101001101011111110100111
110011000100001110001010101101100101110110110101110110100001001010100101000001
000100100010001011101110100110101000001101011100011000110100100100101101011011
111000011110000110010000000011100101001001111001000111010000100010001101001101
110010010111011001101110100110101111001010101010110110011111111101011101110011
110111100010101000100001111100110101100000010000010011000101101110111000101011
000011001100010010101111001110000110001111000100011011111101000101011000110111
001011010100110110001100011100000101110001101001100000100010101011101001000100
011000010110111001101000111000011001111100101111011000110001010000101100000010
101010111111010011100111100010000010000010110110011101010110011000111101011100
010111001001100100110111100010111000001110001011010010011001110111011110101101
101110011100001101000010011111010010100001011111101011111100000101100000011011
001001010011100110111110011000110100010111100000100110101010001110101001100000
111011001111000001001111001010110110011011000001011011101111000100101011111001
111001010110111000010001100001110011111110010110101101111011110000001111111101
110111100011010111100101010100101100101110111111101100001110111100100101011001
101111010000110011011000010101001001000101011000001010011011010100100110111011
101111011111001001101111110000000110001000101001110100110101010110000001010001
100001011010111101011100001101110001011011101011101001100001111100010101101011
111011001010101110110110100100101001001111001100000100111100011001100111010111
110100011111010111110101101111001010011000111111100111011101111011101100000100
110011100110111000111110000010100110001001110001000101011011010010000010111101
000001011110011001100111011101101001010000010001000001100011010011110110100010
011110111001001000011000100111000000010101100000111110111101011001001111101110
011110100001110100010011001101110000001001010000100001000001011111010110110100
111001111000001000110011011011000110010001011111001000001011101011100100111101
100100101000110011011001010101011010001111100111101110011000111100111000111001
101001100100111110000010111001000000100100101110101110000100111111000100110011
110111110100111110111101010010000001101011001010101110100110010010000000101010
110110101111010111001010011000001110111110100100101100011101101011100001101100
000011100001101010100000101111000111100000000001101111001110101001100000110110
110000111001000011001100011111011000011011010000010111011011110010110110101011
11100010111110111110001101100100000011100101001000110100000101010100101011011

 

geiger counter


PYTHON REAL RANDOM FROM GEIGER

capital

#!/usr/bin/python
# Integer unbiaser version 1.0

# Convert a biased uncorrelated stream of integers (eg, click
# intervals from a Geiger counter) into an unbiased uncorrelated
# bitstream. See

import random

def amls(stream):
if len(stream) < 2:
return []
res = []
s1 = []
sa = []
p0 = None
for p1 in stream:
if p0 == None:
p0 = p1
else:
if p0 == p1:
sa.append(0)
s1.append(p0)
else:
sa.append(1)
res.append(p0)
p0 = None
return res + amls(sa) + amls(s1)

def extract_juice(data):
if len(data) < 3:
return []
pivot = data[0]
data[0:1] = []
nonp = [x for x in data if x != pivot]
if len(nonp) == 0:
return []
bits = amls([x == pivot for x in data]) + amls([x < pivot for x in nonp])
left = [x for x in nonp if x < pivot]
right = [x for x in nonp if x > pivot]
return (bits + extract_juice(left) + extract_juice(right))

n = 1
k = 1024
for i in range(0, n):
# Numbers from HotBits hbhist.gif
data = []
for j in range(0, k):
sample = int(0.5 + random.gauss(1889.35,26.4))
#sample = (sample * 1000) % 2011
data.append(sample)
bits = len(extract_juice(data))
print "Bits:", bits
print "Efficiency: ", bits * 1.0 / k

capital


Synthesis

Unique sequence of code from geiger counter counter is directly synthesized to sound and light. The whole system is controlled by original software that I developed and coded using Supercollider, Python and LISP. This stage of work is still in progress.

 

Tests and limitations

Another aim of the project is connected with examining the limitations of computability through testing different sequences and functions.

SPACE

An integral part of the project is the multidimensional presentation of data in architecture. The project has been exhibited in CARGO Posen and MOOZAK Vienna.

random_blast

General research

The project investigates the effect of radiation on living organisms that is connected with the influence of this spectrum on living cells.

Author

development: Robert B. Lisek
coding: Robert B. Lisek
http://www.lisek.art.pl
contact: lisek at fundamental dot art dot pl

 


produced by Robert B. Lisek & Fundamental Research Lab