Progress in Final Project


Once I’m more or less decided on my project, I went to do my little research on the many possibilities that Processing tool has to offer. I found many libraries and examples implemented in Processing, such as Mirror by Daniel Shiffman which quite literally shows ur reflection captured by webcam, or PeasyCam that transforms ur face and shows in three-dimensional space.


I have faced an issue related to the Capture function, the camera is denying access to processing to run the program and open the webcam.

BaseSrc: [avfvideosrc0] : Device video access permission has just been denied 
Could not run the sketch 
(Target VM failed to initialize).

Professor later explained that this has to do with the privacy and security settings of new macOS not letting processing open the camera due to strict security restrictions.



// daniel shiffman's library on mirror
// Size of each cell in the grid
int cellSize = 20;
// Number of columns and rows in our system
int cols, rows;
// Variable for capture device
Capture video;

void setup() {
  size(640, 480);
  cols = width / cellSize;
  rows = height / cellSize;
  colorMode(RGB, 255, 255, 255, 100);

  // This the default video input, see the GettingStartedCapture 
  // example if it creates an error
  video = new Capture(this, width, height);
  // Start capturing the images from the camera

void draw() { 
  if (video.available()) {;
    // Begin loop for columns
    for (int i = 0; i < cols; i++) {
      // Begin loop for rows
      for (int j = 0; j < rows; j++) {
        // Where are we, pixel-wise?
        int x = i*cellSize;
        int y = j*cellSize;
        int loc = (video.width - x - 1) + y*video.width; // Reversing x to mirror the image
        float r = red(video.pixels[loc]);
        float g = green(video.pixels[loc]);
        float b = blue(video.pixels[loc]);
        // Make a new color with an alpha component
        color c = color(r, g, b, 75);
        // Code for drawing a single rect
        // Using translate in order for rotation to work properly
        translate(x+cellSize/2, y+cellSize/2);
        // Rotation formula based on brightness
        rotate((2 * PI * brightness(c) / 255.0));
        // Rects are larger than the cell for some overlap
        ellipse(0, 0, 1, random (20,100));


One thought on “Progress in Final Project”

Leave a Reply