LPM 2013 live art recode

Ervare Farroretre


Based on: Untitled 3 by Reiner Schneeberger, 1978

Category: experimental


Description:

This recoding was done for artworks published in 'Computer Grahics and Art' in May 1978 in an article "Experimental esthetics ..". As Reiner Schneeberger developed a method for teaching 'how to create computer graphics' to art students in the late 70s by setting up parameters to be used for 'a call' of FORTRAN routines this method become known as 'parameterart'. Most time the works are 'generative art'. For ’the live performers meeting’ LPM 2013 in Rome he uploaded in recodeproject.com a sketch of the routine SNEKAO using the artist name ROT-13 Ervare Farroretre. 'Ervare' stands for 'expert' (just Google) as anybody can become one in Digital Art. This sketch is a 100% recoding of the original routine SNEKAO programmed in FORTRAN in 1976-78. The recoding was done by Dietrich M. Scheringer.

The PDF you can download via the shortlink http://is.gd/lpm2013 underlines the live demonstration of recodeproject.com at LPM 2013. Enjoy '4 steps from ‘recode’ to your own art [a piece of historic value 'by the code you use']' This sketch is running in the browser.






/* 
Part of the ReCode Project (http://recodeproject.com)
Based on "Untitled 3" by Reiner Schneeberger
Originally published in "Computer Graphics and Art" v3n2, 1978
Copyright (c) 2013 Ervare Farroretre - OSI/MIT license (http://recodeproject/license).
*/

/* @pjs pauseOnBlur="true"; */

/** Sne Comp Art: Routine SNE KAO

originally developed in 1976 by Reiner Schneeberger
recoded in Processing in 2013 by Dietrich M. Scheringer
version 3.0

*/

void setup() // Setting up the area for drawing
{
size(400,600); // defines the dimension of the display window in units of pixels
background(0); // backround colour: black
stroke(255); // colour of the lines: white
noLoop(); // execute method draw only once
}

void draw()
{
/* Parameters for snekao */

float startx = 20.; // starting point in direction of x-axis
float starty = 60.; // starting point in direction of y-axis
float anzinx = 6.; // number of fields in direction of x-axis
float anziny = 12.; // number of fields in direction of y-axis
float feldlx = 50.; // field lenght in direction of x-axis
float feldly = 30.; // field length in direction of y-axis

float anzstr = 10.; // number of lines per field
float pwaag = 40.; // percentage of fields filled with horizontal lines
float psenk = 55.; // percentage of fields filled with vertical lines
// pwaag + psenk <= 100. !

snekao(startx, starty, anzinx, anziny, feldlx, feldly, anzstr, pwaag, psenk);
}
//——————————————————————————–

void snekao(float startx, float starty, float anzinx, float anziny, float feldlx, float feldly, float anzstr, float pwaag, float psenk)

{
float strtx = 0.; // local variables
float strty = 0.;
float start = 0.;
float delta = 0.;
float h = 0.;

int istr = round(abs(anzstr));
int inx = round(abs(anzinx));
int iny = round(abs(anziny));
float pdicht = pwaag + psenk;

if (istr == 0)
{
pdicht = 0.;
}

for (int i=1; i <= iny; i++)
{
strty = float(i-1)*feldly + starty;
for (int j=1; j <= inx; j++)
{
strtx = float(j-1)*feldlx + startx;
h = random(0.00001,100.);
if (h > pdicht)
{
continue; // next loop
}
else if (h > pwaag)
{
delta = feldlx/float(istr);
start = strtx;
for (int k=1; k <= istr; k++)
{
line(start, strty+feldly,start, strty);
start += delta;
}
}
else
{
delta = feldly/float(istr);
start = strty;
for (int m=1; m <= istr; m++)
{
line(strtx+feldlx,start,strtx,start);
start += delta;
}
} // end of if … else if … else …
} // end of inner for-loop
} // end of outer for-loop
} // end of snekao