tarngerine / rtp2020

course notes and project from sfpc.io recreating the past 2020
4 stars 1 forks source link

5/21 — Week 1 — Randomness and Noise (Vera Molnár) #2

Open tarngerine opened 4 years ago

tarngerine commented 4 years ago

Intro

Typical agenda:

People

RTP slack for all vs RTP-B

CoC

  1. Be kind
  2. Work and share openly
  3. Respect confidentiality, get permission before sharing

Photo/video release Look at Recurse Center/Babycastles CoC Lauren will send that out

Class bg

Motivation: recodeproject.com Mathew Epler cut out images from PDFs of "Computer Graphics and Art" (1970s). No source code/algo, no way to run them. Website created as a prompt: recode this

Two types of implementation

  1. Direct translation: truest recreation
  2. Experimental: take algo as a starting point and push it in a diff direction

/Screen Shot 2020-05-21 at 12.37.55 PM.png

Osamu Sato: "Art of Computer Designing" (90s) PDF on archive.org, combinatorial way of working with graphics, afterword quote:

The work of past ages accumulates, and is remade again It's a gift and obligation to do so as a student

Recreation is common in art — master studies, painting a painting, deconstruct and reconstruct

Grant D Taylor: "When the Machine Made Art - the troubled history of computer art", framing of computer art led to difficulties with traditional art word understanding/engaging with it.

David Reinfurt: "A New Program for Graphic Design" a lecture, Yale design professor, give lectures about designers/artists that are important/personal. Book is written like the lecture

I want you to, when you're done reading this book, rip it up and write your own. These are the artists that are important to me. Excited for us all to write our own version of this class

Montfort, Baudoin... "10 PRINT CHR$(205.5+RND(i)); : GOTO 10" Writes a whole book about this basic code that generates a maze based on / and \ characters. Field of software studies — take software as a starting point for discussion for implications

Our class: try to celebrate code. Fesitval "Day for Night" in Houston, TX. Usually only see output for creative code, but we wanted to show language and result side by side. Showing homework, highlights the line of codes. Also made a zine.

Vera Molnar

Talk about randomness/noise

I have no regrets, my life is squares, triangesl, and lines Early work was computational in nature, but using paper, "imaginging I was a computer" Later started to write code: FORTRAN, pen plotter

-Geometry, but make it chaos-

How does randomness change the charcter of what I'm drawing

Interruptions > parts are removed Look simple, but complex to create

Machine can help realize what is most subjective, unattainable, and profound in a human being

Project to recreate mother's handwriting in code

Collective research

Add to Paper doc: https://paper.dropbox.com/doc/Vera-Molnar--A0Y4jemMz9TireV~eSMJK1mhAg-QjqqrAmMJeoG8cWgNfJ0x

Technical lecture

Part in class, part async video (take more time to explain)

RAND corporation: A Milliion Random Digits -> manual random number lookup (open random page, tells you to go to x page)

Coherent vs non-coherent noise RNG is never truly random, always a math formula creating pseudo-random numbers

Chaos theory

ofRandom() ofNoise() function in OF, based on Ken Perlin algo (Perlin noise) Worked on TRON -> TRON wasn't polygons, it was unions/subtractinos with primitives like spheres Noise is salt

ofSeedRandom(mouseX * 100); // Can help fix the randomness to seed, use mouse to identify the right combo
cout << ofRandom(0,100) << endl;

draw() runs on every frame, so ofSeedRandom() can help fix it, but still have randomness. Can also seed an array.

Recteating "Interruptions"

  1. Project generator
  2. veraExample
  3. Guess at grid with randomly rotated lines, and there are pockets of missing lines
  4. There's some padding inset: convert i/j into coordinates with inset of 50: float x = ofMap(i, 0, 39, 50, 750)

ofBackground(255) white ofSetColor(0) black ofSetLineWidth(1) ofDrawCircle(x,y,r) ofDrawLine(x1,y1,x2,y2) ofRotateDeg() change ur coordinate system around 0,0. translate to where the line is, rotate, draw the line as if it's 0,0, then translate it back (similar to push/pop in processing) allows you to draw around 0,0:

ofPushMatrix();
ofTranslate(x,y);
ofRotateDeg(ofRandom(0,360));
ofDrawLine(-10,0,10,0);
ofPopMatrix();

how to get neighbors? use noise instead of random

small numbers for ofNoise to "zoom in" on the noise (similar to PS cloud function)
if (ofNoise(i*0.01,j*0.01) < .85) {
  ofDrawLine(...)
}

Original video had more vertical lines than horizontal > how to do this?

Homework

  1. do 1 or multiple pieces - spend about 5 hours if you want, some are quick, some take a long time. try to enjoy it. see the world thru her eyes

  2. reading: computer grass is natural grass, charles __ - find a sentence u like to read out loud next time