choreographic interventions

 

 

pathway studies

2 Duets 

  • Create 2, 1 minute duets between 1 dancer + 1 drawing.
  • Duet 1 is between 1 dancer + 1 live drawer.
  • Duet 2 is between 1 dancer + a coded drawing.

random pathway with conrols

/* Mimi Yin, NYU-ITP
Random pathways with controls.

- mouseX controls range (speed) of motion
- mouseY controls interval (how often there is a random change in direction)

When mouse is pressed:
- mouse position relative to center controls direction and extent of drift
When key is pressed:
- mouseY controls yscl (verticality)

*/

// Store x,y coordinates of current location
let x, y;
// Store x,y coordinates of previous location
let px, py;
// Store current xspeed and yspeed
let xspeed, yspeed;

// # of frames to wait before changing direction.
let interval;
// Range of random, relative range of vertical random
let range, yscl;
// How much to shift right/left, up/down
let xshift, yshift;

function setup() {
  createCanvas(windowWidth, windowHeight);
  x = width / 2;
  y = (height / 2) + 120;
  px = x;
  py = y;

  xspeed = 0;
  yspeed = 0;

  interval = 1;
  range = 4;
  yscl = 1;
  xshift = 1;
  yshift = 1;

  background(0);
  noStroke();
}

function draw() {

  // Draw very transparent background every frame
  // to create fade-out effect
  background(0, 10);

  //Change direction
  if (frameCount % interval == 0) {
    xspeed = random(-range, range * xshift); //shift median to go right/left
    yspeed = random(-range * yscl, range * yscl * yshift); // shift median to go up/down
  }

  // Move
  x += xspeed;
  y += yspeed;

  // Draw a line from the previous loc to this loc
  stroke(255);
  line(px, py, x, y);

  // Remember current location for next frame
  px = x;
  py = y;

  // Wrap around screen
  if (x < 0 || x > width || y < 0 || y > height) {
    if (x < 0) x = width;
    else if (x > width) x = 0;
    if (y < 0) y = height;
    else if (y > height) y = 0;

    // Don't draw line when wrapping around
    px = x;
    py = y;
  }

  // Draw a landmark in the center
  fill(255);
  noStroke();
  rect(width / 2, height / 2, 10, 10);

  // Controls
  if (keyIsPressed) {
    // mouseY controls yscl (verticality)
    yscl = mouseY / height;
  }
  // Mouse position relative to center sets directional drift
  else if (mouseIsPressed) {
    // Horizontal shift
    xshift = mouseX / (width / 2);
    // Vertical shift
    yshift = mouseY / (height / 2);
  }
  else {
    // mouseX controls range (speed)
    range = 100 * mouseX / width;
    // mouseY controls interval (frequency of change)
    interval = int(120*mouseY/height);
  }
}

Screen Shot 2018-02-08 at 5.10.30 PM.png

POLAR ROSES 

/*
Mimi Yin NYU-ITP
Polar Roses
*/

// Store current and previous x,y coordinates
let x, y;
let px, py;

// Angle
let a;
// Angle speed: How quickly we're circling
let aspeed;

// How quickly we're circling vertically versus horizontally
let yfreq;

// Size of circle (radius)
let range;

// Verticality of circle
let yscl;

// Center of circle
let centerX, centerY;

function setup() {
  createCanvas(windowWidth, windowHeight);

  angle = 0;
  aspeed = 0.01;
  yfreq = 1;

  range = width/4;
  yscl = 1;

  centerX = width/2;
  centerY = height/2;

  background(0);
}

function draw() {
  background(0, 5);
  
  angle += aspeed;

  //Move
  x = cos(angle)*range + centerX;
  y = sin(angle*yfreq)*range*yscl + centerY;
  
  /////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////
  ///////////////////////POLAR ROSES///////////////////////
  /////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////

  // // Spiral
  // range += 0.1;
  // x = cos(angle)*range + centerX;
  // y = sin(angle*yfreq)*range*yscl + centerY;
  //
  // // Straight line
  // x = cos(angle)*range*cos(angle) + centerX;
  // y = sin(angle*yfreq)*range*yscl*sin(angle) + centerY;
  //
  // // Circular squares
  // x = cos(sin(angle)*angle)*range + centerX;
  // y = sin(cos(angle)*angle*yfreq)*range*yscl + centerY;
  //
  // // Just a circle, sorta
  // x = cos(cos(angle)*angle)*range + centerX;
  // y = sin(cos(angle)*angle*yfreq)*range*yscl + centerY;

  // // Inny - Outy
  x = cos(sin(angle)*angle)*range*sin(angle)+ centerX;
  y = sin(cos(angle)*angle*yfreq)*range*yscl*cos(angle)+ centerY;

  // Bigger sweeps with tan
  //x = cos(sin(angle)*angle)*range*tan(angle) + centerX;
 // y = sin(cos(angle)*angle*yfreq)*range*yscl*tan(angle) + centerY;

  // Traversing by tan()ing centerX
  // Alternating horizontal curves with straight darts
   //x = cos(angle)*range*sin(angle) + centerX*tan(angle);
  // y = sin(cos(angle)*angle*yfreq)*range*yscl*cos(angle) + centerY;
    
  
  
    // Draw line
    stroke(255);
  strokeWeight(3);
  if(px) line(px, py, x, y);
    
  // Remember x,y coordinates for next frame
  px = x;
  py = y;
  
}


 

Screen Shot 2018-02-08 at 5.15.51 PM.png