SketchPad

Some web space to sketch, doodle and make notes. Made using these tools. See more of my work here.

Sketch 2015-08-18

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setup(50);
    gif.fadeInOut(2, 1, ofColor::red);
    gif.enableTextOverlay();

    layerIncrement = 0.01;
    maskIncrement = 0.0005;

    numLayers = 20;
    numMasksPerLayer = 1;
    masker.setup(numLayers);

    layer.setup("rust-tall2.png");
    for(int i = 0; i < numLayers; i++) {
        scale = ofMap(i, 0, numLayers-1, 0.25, 1);
        layer.setTextureScale(scale);
        layer.setTextureOffset(i % 2 == 0 ? TEXTURE_OFFSET_TOP_LEFT : TEXTURE_OFFSET_TOP_RIGHT);
        layer.setTextureOffsetY(ofRandom(2));
        layers.push_back(layer);

        maskLoader.clear();
        scale = ofMap(i, 0, numLayers-1, 0.5, 1.3);
        mask.setup("circle-feather.png", scale, TEXTURE_OFFSET_MIDDLE_CENTER);
        for(int j = 0; j < numMasksPerLayer; j++) {
            mask.setTextureOffsetY(ofRandom(2));
            maskLoader.push_back(mask);
        }
        masks.push_back(maskLoader);
    }

    ofSetWindowShape(1000, 1200);
    masker.toggleOverlay();
}

void ofApp::update(){
    for(int i = 0; i < numLayers; i++) {
        masker.beginLayer(i);
        {
            gif.rotateAroundCenter(i * 90);
            ofSetColor(ofColor(ofColor::red));
            increment = ofMap(i, 0, numLayers-1, layerIncrement, -layerIncrement);
            layers.at(i).incrementTextureScale(i % 2 == 0 ? increment : -increment * 8 );
            layers.at(i).incrementTextureOffsetX((i % 2 == 0 ? increment : -increment) * ofRandom(-2, 27));
            layers.at(i).incrementTextureOffsetY((i % 2 == 0 ? -increment : increment) * ofRandom(-2, 27));
            layers.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofSetColor(ofColor::white);
            ofBackground(ofColor::white);
            for(int j = 0; j < numMasksPerLayer; j++) {
                increment = (j+1) * ofMap(i, 0, numLayers-1, maskIncrement, -maskIncrement);
                masks.at(i).at(j).incrementTextureOffsetY(increment);
                i % 2 == 0 ? masks.at(i).at(j).draw() : masker.drawLayer(i - 1, false);
            }
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        gif.rotateAroundCenter(45);
        layers.at(0).draw();
        masker.drawLayer(13);
        masker.drawLayer(16);
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Uncertain agenda.

Daily sketch

Sketch 2015-08-17

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setup(ofGetTimestampString("out/%Y-%m-%d"), 50);
    gif.fadeInOut(2, 1, ofColor::red);
    gif.enableTextOverlay();

    layerIncrement = 0.01;
    maskIncrement = 0.0005;

    numLayers = 4;
    numMasksPerLayer = 1;
    masker.setup(numLayers);

    layer.setup("rust-tall2.png");
    for(int i = 0; i < numLayers; i++) {
        scale = ofMap(i, 0, numLayers-1, 2, 1);
        layer.setTextureScale(scale);
        layer.setTextureOffset(i % 2 == 0 ? TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER : TEXTURE_OFFSET__MIDDLE__RIGHT_TO_CENTER);
        layer.setTextureOffsetY(ofRandom(2));
        layers.push_back(layer);

        maskLoader.clear();
        scale = ofMap(i, 0, numLayers-1, 3, 0.33);
        mask.setup("rust-tall4.png", scale, TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER);
        for(int j = 0; j < numMasksPerLayer; j++) {
            mask.setTextureOffsetY(ofRandom(2));
            maskLoader.push_back(mask);
        }
        masks.push_back(maskLoader);
    }

    ofSetWindowShape(1000, 1200);
    masker.toggleOverlay();
}

void ofApp::update(){
    for(int i = 0; i < numLayers; i++) {
        masker.beginLayer(i);
        {
            ofSetColor(ofColor(ofColor::red));
            increment = ofMap(i, 0, numLayers-1, layerIncrement, -layerIncrement);
            layers.at(i).incrementTextureOffsetY(increment);
            layers.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofSetColor(ofColor::white);
            ofBackground(ofColor::white);
            for(int j = 0; j < numMasksPerLayer; j++) {
                increment = (j+1) * ofMap(i, 0, numLayers-1, maskIncrement, -maskIncrement);
                masks.at(i).at(j).incrementTextureOffsetY(increment);
                masks.at(i).at(j).draw();
            }
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofSetColor(ofColor(ofColor::red));
        layers.at(0).draw();
        masker.draw();
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Two perspectives.

Daily sketch

Sketch 2015-08-16

        void ofApp::setup(){
    numLayers = 50;
    ofSetWindowShape(500, 500);
    gif.setup(100);
    masker.setup(numLayers, ISOLATE_LAYERS);
    masker.toggleOverlay();
    ofEnableSmoothing();
    ofSetWindowShape(1000, 1200);
}

void ofApp::update(){
    for(int i = 0; i < numLayers; i++) {
        masker.beginMask(i);
        {
            color = ofRandom(1) > 0.5 ? ofColor::white : ofColor::black;
            ofBackground(color);
        }
        masker.endMask(i);
        
        masker.beginLayer(i);
        {
            ofBackground(ofColor(ofColor::white, 0));
            size = ofMap(i, 0, numLayers, gif.doubleWidth, 330);
            if(i % 2 == 0) {
                ofSetColor(ofColor(ofColor::red, 100));
                size *= 0.8;
            } else {
                ofSetColor(ofColor::black);
            }
            gif.rotateAroundCenter(ofRandom(360));
            ofSetRectMode(OF_RECTMODE_CENTER);
            ofRect(gif.halfWidth, gif.halfHeight, size, size);
            ofSetRectMode(OF_RECTMODE_CORNER);
            
        }
        masker.endLayer(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofSetColor(ofColor(ofColor::white, 100));
        ofRect(0, 0, gif.width, gif.height);
        masker.draw();

        ofSetRectMode(OF_RECTMODE_CENTER);
        ofSetColor(ofColor(ofColor::black, 210));
        ofRect(gif.halfWidth, gif.halfHeight, 360, 360);
        ofSetColor(ofColor::white);
        ofRect(gif.halfWidth, gif.halfHeight, 20, 20);
        ofSetRectMode(OF_RECTMODE_CORNER);
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Negative space.

Daily sketch

Sketch 2015-08-15

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setup(ofGetTimestampString("out/%Y-%m-%d"), 50);
    gif.fadeInOut(2, 1, ofColor::red);
    gif.enableTextOverlay();

    layerIncrement = 0.005;
    maskIncrement = 0.0002;

    numLayers = 32;
    numMasksPerLayer = 6;
    masker.setup(numLayers);

    layer.setup("glass3.png");
    for(int i = 0; i < numLayers; i++) {
        scale = ofMap(i, 0, numLayers-1, 4, 2.5);
        layer.setTextureScale(scale);
        layer.setTextureOffset(i % 2 == 0 ? TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER : TEXTURE_OFFSET__MIDDLE__RIGHT_TO_CENTER);
        layer.setTextureOffsetY(ofRandom(2));
        layers.push_back(layer);

        maskLoader.clear();
        scale = ofMap(i, 0, numLayers-1, 6, 0.33);
        mask.setup("tissue.png", scale, TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER);
        for(int j = 0; j < numMasksPerLayer; j++) {
            mask.setTextureOffsetY(ofRandom(2));
            maskLoader.push_back(mask);
        }
        masks.push_back(maskLoader);
    }

    ofSetWindowShape(1000, 1200);
    masker.toggleOverlay();
}

void ofApp::update(){
    for(int i = 0; i < numLayers; i++) {
        masker.beginLayer(i);
        {
            ofSetColor(ofColor(ofColor::red));
            increment = ofMap(i, 0, numLayers-1, layerIncrement, -layerIncrement);
            layers.at(i).incrementTextureOffsetY(increment);
            layers.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofSetColor(ofColor::white);
            ofBackground(ofColor::white);
            for(int j = 0; j < numMasksPerLayer; j++) {
                increment = (j+1) * ofMap(i, 0, numLayers-1, maskIncrement, -maskIncrement);
                masks.at(i).at(j).incrementTextureOffsetY(increment);
                masks.at(i).at(j).draw();
            }
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofSetColor(ofColor(ofColor::red));
        layers.at(0).draw();
        masker.draw();
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Blood work.

Daily sketch

Sketch 2015-08-14

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setup(ofGetTimestampString("out/%Y-%m-%d"), 47);
    gif.fadeInOut(3, 6, ofColor::white);
    gif.enableTextOverlay();
    numRoads = 7;
    increment = 0.01;
    masker.setup(numRoads);
    
    texture.setup("face-full.png", 1.0, TEXTURE_OFFSET_TOP_LEFT);
    for(int i = 0; i < numRoads; i++) {
        scale = ofMap(i, 0, numRoads-1, 0.7, 1.1);
        texture.setTextureScale(scale);
        texture.setTextureOffsetY(ofRandom(2));
        layers.push_back(texture);
    }
    
    texture.setup("tissue.png", 1.0, TEXTURE_OFFSET__MIDDLE__RIGHT_TO_CENTER);
    for(int i = 0; i < numRoads; i++) {
        scale = ofMap(i, 0, numRoads-1, 0.3, 0.5);
        texture.setTextureScale(scale);
        texture.setTextureOffsetY(ofRandom(2));
        masks.push_back(texture);
    }
}

void ofApp::update(){
    for(int i = 0; i < numRoads; i++) {
        masker.beginLayer(i);
        {
            ofSetColor(ofColor(ofColor::white, 240));
            layers.at(i).incrementTextureOffsetY(ofMap(i, 0, numRoads-1, -(increment*0.25), increment));
            layers.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofBackground(ofColor::white);
            masks.at(i).incrementTextureOffsetY(ofMap(i, 0, numRoads-1, increment, -(increment*0.25)));
            masks.at(i).draw();
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofSetColor(ofColor(ofColor::red, 180));
        layers.at(0).draw();
        masker.draw();
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Cutting to the core.

Daily sketch

Sketch 2015-08-13

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setupPaused(ofGetTimestampString("out/%Y-%m-%d"), 30, 80);
    gif.fadeInOut(3, 6, ofColor::white);
    gif.enableTextOverlay();
    numTissues = 16;
    numRoads = 4;
    masker.setup(numRoads);

    road.setup("tissue.png");
    for(int i = 0; i < numRoads; i++) {
        scale = ofMap(i, 0, numRoads-1, 4, 2.5);
        road.setTextureScale(scale);
        road.setTextureOffset(TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER);
        road.setTextureOffsetY(ofRandom(2));
        roads.push_back(road);

        tissuesLoader.clear();
        scale = ofMap(i, 0, numRoads-1, 64, 1.5);
        tissue.setup("glass3.png", scale, i % 2 == 0 ? TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER : TEXTURE_OFFSET__MIDDLE__RIGHT_TO_CENTER);
        for(int j = 0; j < numTissues; j++) {
            tissue.setTextureOffsetY(ofRandom(2));
            tissuesLoader.push_back(tissue);
        }
        tissues.push_back(tissuesLoader);
    }
}

void ofApp::update(){
    for(int i = 0; i < numRoads; i++) {
        masker.beginLayer(i);
        {
            float others = ofMap(i, 0, numRoads-1, 100, 255);
            ofSetColor(ofColor(others, others, others, others));
            roads.at(i).incrementTextureOffsetY(ofMap(i, 0, numRoads-1, -0.001, 0.001));
            roads.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofSetColor(ofColor::white);
            ofBackground(ofColor::white);
            for(int j = 0; j < tissues.size(); j++) {
                tissues.at(i).at(j).incrementTextureOffsetY((j+1) * ofMap(i, 0, numRoads-1, 0.0002, -0.0002));
                tissues.at(i).at(j).draw();
            }
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofBackground(ofColor::white);
        masker.draw();
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

Writing your own history.

Daily sketch

Sketch 2015-08-12

        void ofApp::setup(){
    ofSetWindowShape(500, 500);
    gif.setup(ofGetTimestampString("out/%Y-%m-%d"), 50);
    gif.fadeInOut(3, 6, ofColor::white);
    gif.enableTextOverlay();
    numTissues = 16;
    numRoads = 16;
    masker.setup(numRoads);

    road.setup("glass3.png");
    for(int i = 0; i < numRoads; i++) {
        scale = ofMap(i, 0, numRoads-1, 4, 2.5);
        road.setTextureScale(scale);
        road.setTextureOffset(i % 2 == 0 ? TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER : TEXTURE_OFFSET__MIDDLE__RIGHT_TO_CENTER);
        road.setTextureOffsetY(ofRandom(2));
        roads.push_back(road);

        tissuesLoader.clear();
        scale = ofMap(i, 0, numRoads-1, 8, 1.5);
        tissue.setup("tissue.png", scale, TEXTURE_OFFSET__MIDDLE__LEFT_TO_CENTER);
        for(int j = 0; j < numTissues; j++) {
            tissue.setTextureOffsetY(ofRandom(2));
            tissuesLoader.push_back(tissue);
        }
        tissues.push_back(tissuesLoader);
    }
}

void ofApp::update(){
    for(int i = 0; i < numRoads; i++) {
        masker.beginLayer(i);
        {
            float others = ofMap(i, 0, numRoads-1, 100, 255);
            ofSetColor(ofColor(others, others, others, others));
            roads.at(i).incrementTextureOffsetY(ofMap(i, 0, numRoads-1, -0.001, 0.001));
            roads.at(i).draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofSetColor(ofColor::white);
            ofBackground(ofColor::white);
            for(int j = 0; j < tissues.size(); j++) {
                tissues.at(i).at(j).incrementTextureOffsetY((j+1) * ofMap(i, 0, numRoads-1, 0.0002, -0.0002));
                tissues.at(i).at(j).draw();
            }
        }
        masker.endMask(i);
    }
}

void ofApp::draw(){
    gif.begin();
    {
        ofBackground(ofColor::white);
        masker.draw();
    }
    gif.endCaptureDraw();
    masker.drawOverlay();
}
    

The center of your body.

Daily sketch