The Anchorage Museum – Summer 2011

This past Summer I went to the Anchorage Museum while visiting friends and family in Anchorage, AK and took quite a few photos while touring the exhibits.  If you visit the museum (and I recommend you do), make sure to check out the Smithsonian Arctic Studies Expansion.  The current exhibit, Living Our Cultures Sharing Our Heritage is the most in depth experience of an exhibit I’ve been to, combining the works with video installations and various presentation technologies. Many images below!

Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Bran Muffin Recipe

My Mom sent me this recipe recently. I’m placing it here to share and may upload photos if/when I try it out:

Grandma Babe’s Bran Muffins

1 1/2 cups sugar
2 1/2 cups flour
1/2 cup salad oil
2 1/2 teaspoons baking soda
2 eggs
1/2 teaspoon salt
2 cups buttermilk*
1/2 pound raisins
2 cups All Bran
1 cup Nabisco 100% Bran or Bran Buds
1 cup boiling water

* Substitute: 2 Tablespoons lemon juice or vinegar and add
sweet milk to equal 2 cups (let stand 5 minutes)

Pour boiling water over Nabisco Bran and set aside to cool. Cream sugar and oil,
add eggs – beat well. Add buttermilk, sifted dry ingredients, dry All Bran, soaked
Nabisco Bran, and raisins. Mix well. Store in a well covered container in refrigerator
until ready to use. It will keep 3 – 4 weeks. Bake in muffin tin at 325 – 350 degrees F
for 15 – 20 minutes. Just dip out as much as you need for each time. It does not need
to be stirred.

Tagged , , | Leave a comment

rembrandt_claudius_civilis_dimensions.pde

rembrandt_claudius_civilis_dimensions

rembrandt_claudius_civilis_dimensions


rembrandt_claudius_civilis_dimensions.pde



// width = 1024px
// height = 568px

/** painting and frame
*
*  original painting size : 309cm * 196cm
*  original digital image size : 1024px * 658px
*
*  1cm = 3.33px
*  ratio = 3.33;
*
*  total width w/ frame = 36cm + 309cm + 36cm = 381cm
*      381cm * ratio = 1268.73px
*  total height w/ frame = 36cm + 196cm + 36cm = 268cm
*      268cm * ratio = 892.44px
*  total depth w/ frame = 18cm
*      18cm * ratio = 59.94px
*
*  The numbers below representing the ratio of cm : original digital image ratio are off by several pixels!
*  This may still be somewhat accurate considering the digital image contains elements of the frame surrounding it.
*  painting width = 309cm
*      309cm * ratio = 1028.97px ( 1024 - 1028.97 = off by +4.97px )
*  painting height = 196cm
*      196cm * ratio = 652.68px ( 658 - 652.68 = off by -5.32px )
*
*/

PFont font;
PImage a;

// ratio of pixels to centimeters ( 1:3.33 )
float ratio = 3.33;
// ratio of image outline to window
float sizeRatio = 0.5;

float frameWidth = 1268.73;
float frameHeight = 892.44;
float frameDepth = 59.94;
float paintingWidth = 1028.97;
float paintingHeight = 652.68;

void setup( ) {

	size( 1024, 658, P3D );
	background( #000000 );

	font = loadFont( "Monospaced-18.vlw" );
	textFont( font, 18 );

	a = loadImage( "ccc.jpg" );

}

void draw( ) {

	//smooth( );

	noFill( );
	stroke( #FFFFFF );
	strokeWeight( 1 );

	rectMode( CENTER );
	rect( width / 2, height / 2, paintingWidth * sizeRatio, paintingHeight * sizeRatio );

	// to display the dimensions
	// painting width
	fill( #FFFFFF );
	beginShape( TRIANGLES );
	vertex( width / 2 - paintingWidth / 2 * sizeRatio, height / 3 );
	vertex( width / 2 - paintingWidth / 2 * sizeRatio + 10, height / 3 - 5 );
	vertex( width / 2 - paintingWidth / 2 * sizeRatio + 10, height / 3 + 5 );
	endShape( );

	beginShape( TRIANGLES );
	vertex( width / 2 + paintingWidth / 2 * sizeRatio, height / 3 );
	vertex( width / 2 + paintingWidth / 2 * sizeRatio - 10, height / 3 - 5 );
	vertex( width / 2 + paintingWidth / 2 * sizeRatio - 10, height / 3 + 5 );
	endShape( );

	line( width / 2 - paintingWidth / 2 * sizeRatio, height / 3, width / 2 + paintingWidth / 2 * sizeRatio, height / 3 );
	text( "309cm", width / 2, height / 3 - 5 );

	// painting height
	beginShape( TRIANGLES );
	vertex( width / 3, height / 2 - paintingHeight / 2 * sizeRatio );
	vertex( width / 3 - 5, height / 2 - paintingHeight / 2 * sizeRatio + 10 );
	vertex( width / 3 + 5, height / 2 - paintingHeight / 2 * sizeRatio + 10 );
	endShape( );

	beginShape( TRIANGLES );
	vertex( width / 3, height / 2 + paintingHeight / 2 * sizeRatio );
	vertex( width / 3 - 5, height / 2 + paintingHeight / 2 * sizeRatio - 10 );
	vertex( width / 3 + 5, height / 2 + paintingHeight / 2 * sizeRatio - 10 );
	endShape( );

	line( width / 3, height / 2 - paintingHeight / 2 * sizeRatio, width / 3, height / 2 + paintingHeight / 2 * sizeRatio );
	text( "196cm", width / 3 + 5, height / 2 );

	// frame height
	beginShape( TRIANGLES );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25, height / 2 - frameHeight / 2 * sizeRatio );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25 - 5, height / 2 - frameHeight / 2 * sizeRatio + 10 );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25 + 5, height / 2 - frameHeight / 2 * sizeRatio + 10 );
	endShape( );

	beginShape( TRIANGLES );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25, height / 2 + frameHeight / 2 * sizeRatio );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25 - 5, height / 2 + frameHeight / 2 * sizeRatio - 10 );
	vertex( width / 2 - frameWidth / 2 * sizeRatio - 25 + 5, height / 2 + frameHeight / 2 * sizeRatio - 10 );
	endShape( );

	line( width / 2 - frameWidth / 2 * sizeRatio - 25, height / 2 - frameHeight / 2 * sizeRatio, width / 2 - frameWidth / 2 * sizeRatio - 25, height / 2 + frameHeight / 2 * sizeRatio );
	text( "268cm", width / 2 - frameWidth / 2 * sizeRatio - 100, height / 2 );

	// frame width
	beginShape( TRIANGLES );
	vertex( width / 2 - frameWidth / 2 * sizeRatio, height / 2 + frameHeight / 2 * sizeRatio + 25 );
	vertex( width / 2 - frameWidth / 2 * sizeRatio + 10, height / 2 + frameHeight / 2 * sizeRatio + 25 - 5 );
	vertex( width / 2 - frameWidth / 2 * sizeRatio + 10, height / 2 + frameHeight / 2 * sizeRatio + 25 + 5 );
	endShape( );

	beginShape( TRIANGLES );
	vertex( width / 2 + frameWidth / 2 * sizeRatio, height / 2 + frameHeight / 2 * sizeRatio + 25 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio - 10, height / 2 + frameHeight / 2 * sizeRatio + 25 - 5 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio - 10, height / 2 + frameHeight / 2 * sizeRatio + 25 + 5 );
	endShape( );

	line( width / 2 - frameWidth / 2 * sizeRatio, height / 2 + frameHeight / 2 * sizeRatio + 25, width / 2 + frameWidth / 2 * sizeRatio, height / 2 + frameHeight / 2 * sizeRatio + 25 );
	text( "381cm", width / 2, height / 2 + frameHeight / 2 * sizeRatio + 50 );

	// frame depth
	beginShape( TRIANGLES );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50, height / 2 - frameHeight / 2 * sizeRatio, -1 * frameDepth / 2 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50 + 10, height / 2 - frameHeight / 2 * sizeRatio, -1 * frameDepth / 2 + 10 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50 - 10, height / 2 - frameHeight / 2 * sizeRatio, -1 * frameDepth / 2 + 10 );
	endShape( );

	beginShape( TRIANGLES );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50, height / 2 - frameHeight / 2 * sizeRatio, 1 * frameDepth / 2 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50 + 10, height / 2 - frameHeight / 2 * sizeRatio, 1 * frameDepth / 2 - 10 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50 - 10, height / 2 - frameHeight / 2 * sizeRatio, 1 * frameDepth / 2 - 10 );
	endShape( );

	beginShape( LINES );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50, height / 2 - frameHeight / 2 * sizeRatio, 1 * frameDepth / 2 );
	vertex( width / 2 + frameWidth / 2 * sizeRatio + 50, height / 2 - frameHeight / 2 * sizeRatio, -1 * frameDepth / 2 );
	endShape( );
	text( "18cm", width / 2 + frameWidth / 2 * sizeRatio + 25, height / 2 - frameHeight / 2 * sizeRatio + 50 );

	noFill( );
	strokeWeight( 1 );
	// a box representing the width, height, and depth of the entire museum object
	translate( width / 2, height / 2 );
	box( frameWidth * sizeRatio, frameHeight * sizeRatio, frameDepth * sizeRatio );

}


Tagged , , | Leave a comment

sacred_geometry_002.pde

sacred_geometry_002

sacred_geometry_002


sacred_geometry_002.pde



Flower a = new Flower( );
Flower b = new Flower( );
Flower c = new Flower( );
Flower d = new Flower( );
Flower e = new Flower( );
Flower f = new Flower( );
Flower g = new Flower( );
Flower h = new Flower( );
Flower i = new Flower( );
Flower j = new Flower( );
Flower k = new Flower( );
Flower l = new Flower( );

float rad = 0.0;
float x = 0.0;
float grow_rate = 0.0;

void setup() {

	size( 800, 800 );

	background( 0 );
	stroke( #FFFFFF );
	strokeWeight( 0.5 );

	frameRate( 10 );

}

void draw( ) {

	background( 0 );

	smooth( );
	noFill( );
	strokeWeight( 0.5 );

	if( x <= width * 4 ) {

		a.flower( width - x, height / 2, rad );
		b.flower( width - x / 2, height / 2, rad / 2 );
		c.flower( width - x / 4, height / 2, rad / 4 );
		d.flower( width - x / 8, height / 2, rad / 8 );
		e.flower( width - x / 16, height / 2, rad / 16 );
		f.flower( width - x / 32, height / 2, rad / 32 );
		g.flower( width - x / 64, height / 2, rad / 64 );
		h.flower( width - x / 128, height / 2, rad / 128 );
		i.flower( width - x / 256, height / 2, rad / 256 );
		j.flower( width - x / 512, height / 2, rad / 512 );
		k.flower( width - x / 1024, height / 2, rad / 1024 );
		l.flower( width - x / 2048, height / 2, rad / 2048 );

		grow_rate += 1;
		rad += 0.1 * grow_rate;
		x += 0.1 / 4 * grow_rate;

	} else {

		a.flower( width - x, height / 2, rad );
		b.flower( width - x / 2, height / 2, rad / 2 );
		c.flower( width - x / 4, height / 2, rad / 4 );
		d.flower( width - x / 8, height / 2, rad / 8 );
		e.flower( width - x / 16, height / 2, rad / 16 );
		f.flower( width - x / 32, height / 2, rad / 32 );
		g.flower( width - x / 64, height / 2, rad / 64 );
		h.flower( width - x / 128, height / 2, rad / 128 );
		i.flower( width - x / 256, height / 2, rad / 256 );
		j.flower( width - x / 512, height / 2, rad / 512 );
		k.flower( width - x / 1024, height / 2, rad / 1024 );
		l.flower( width - x / 2048, height / 2, rad / 2048 );

	}

/*
	if( x >= width * 4 ) {

		grow_rate = 0.0;
		rad = 0.0;
		x = 0.0;

	}
*/

}

public class Circle {

	float xPos, yPos, radius;

	Circle( ) {

	}

	void drawCircle( float x, float y, float r ) {
		ellipse( x, y, r, r );
	}

}

class Flower {

	float radius = 0.0;
	float inner_radius = 0.0;
	float petal_radius = 0.0;

	Circle inner = new Circle( );
	Circle outer = new Circle( );
	Circle a = new Circle( );
	Circle b = new Circle( );
	Circle c = new Circle( );
	Circle d = new Circle( );
	Circle e = new Circle( );
	Circle f = new Circle( );

	Flower( ) {

	}

	void flower( float x, float y, float diameter ) {

		//  radius of the main circle
		radius = diameter / 2;
		//  inner circle radius
		inner_radius = radius / 2;
		//  radius of the petals
		petal_radius = inner_radius / 2;

		outer.drawCircle( x, y, radius );
		inner.drawCircle( x, y, inner_radius );
		a.drawCircle( x + cos( PI / 3.0 * 0 ) * petal_radius, y + sin( PI / 3.0 * 0 ) * petal_radius, inner_radius );
		b.drawCircle( x + cos( PI / 3.0 * 1 ) * petal_radius, y + sin( PI / 3.0 * 1 ) * petal_radius, inner_radius );
		c.drawCircle( x + cos( PI / 3.0 * 2 ) * petal_radius, y + sin( PI / 3.0 * 2 ) * petal_radius, inner_radius );
		d.drawCircle( x + cos( PI / 3.0 * 3 ) * petal_radius, y + sin( PI / 3.0 * 3 ) * petal_radius, inner_radius );
		e.drawCircle( x + cos( PI / 3.0 * 4 ) * petal_radius, y + sin( PI / 3.0 * 4 ) * petal_radius, inner_radius );
		f.drawCircle( x + cos( PI / 3.0 * 5 ) * petal_radius, y + sin( PI / 3.0 * 5 ) * petal_radius, inner_radius );

	}

}


Tagged , | Leave a comment

sacred_geometry_001.pde

sacred_geometry_001

sacred_geometry_001


sacred_geometry_001.pde



float CENTER_X = 225.0;
float CENTER_Y = 225.0;
float CENTER_X_2 = 325.0;
float CENTER_Y_2 = 225.0;
float CENTER_X_3 = 375.0;
float CENTER_Y_3 = 225.0;
float CENTER_X_4 = 375.0 + 25;

float RAD = 100.0;
float RAD_2 = 50.0;
float RAD_3 = 25.0;
float RAD_4 = 25.0 / 2;

float radian_measure = 0.0;

SlowCircle a = new SlowCircle( );
SlowCircle a1 = new SlowCircle( );
SlowCircle a2 = new SlowCircle( );
SlowCircle a3 = new SlowCircle( );
SlowCircle a4 = new SlowCircle( );
SlowCircle a5 = new SlowCircle( );
SlowCircle a6 = new SlowCircle( );
SlowCircle b = new SlowCircle( );
SlowCircle b1 = new SlowCircle( );
SlowCircle b2 = new SlowCircle( );
SlowCircle b3 = new SlowCircle( );
SlowCircle b4 = new SlowCircle( );
SlowCircle b5 = new SlowCircle( );
SlowCircle b6 = new SlowCircle( );
SlowCircle c = new SlowCircle( );
SlowCircle d = new SlowCircle( );
SlowCircle d1 = new SlowCircle( );
SlowCircle d2 = new SlowCircle( );
SlowCircle d3 = new SlowCircle( );
SlowCircle d4 = new SlowCircle( );
SlowCircle d5 = new SlowCircle( );
SlowCircle d6 = new SlowCircle( );
SlowCircle e = new SlowCircle( );
SlowCircle e1 = new SlowCircle( );
SlowCircle e2 = new SlowCircle( );
SlowCircle e3 = new SlowCircle( );
SlowCircle e4 = new SlowCircle( );
SlowCircle e5 = new SlowCircle( );
SlowCircle e6 = new SlowCircle( );

void setup() {

	size( 450, 450 );

	background( 0 );
	stroke( #FFFFFF );
	strokeWeight( 1 );

}

void draw( ) {

	smooth( );

	a.drawCircle( CENTER_X, CENTER_Y, RAD, 360.0 );

	c.drawCircle( CENTER_X, CENTER_Y, RAD * 2, 720.0 );

	if( radian_measure > 0 ) {
		a1.drawCircle( CENTER_X + RAD, CENTER_Y, RAD, 360.0 );
	}
	if( radian_measure > PI / 3.0 ) {
		a2.drawCircle( CENTER_X + cos( PI / 3.0 ) * RAD, CENTER_Y + sin( PI / 3.0 ) * RAD, RAD, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 2 ) {
		a3.drawCircle( CENTER_X + cos( PI / 3.0 * 2 ) * RAD, CENTER_Y + sin( PI / 3.0 * 2 ) * RAD, RAD, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 3 ) {
		a4.drawCircle( CENTER_X + cos( PI / 3.0 * 3 ) * RAD, CENTER_Y + sin( PI / 3.0 * 3 ) * RAD, RAD, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 4 ) {
		a5.drawCircle( CENTER_X + cos( PI / 3.0 * 4 ) * RAD, CENTER_Y + sin( PI / 3.0 * 4 ) * RAD, RAD, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 5 ) {
		a6.drawCircle( CENTER_X + cos( PI / 3.0 * 5 ) * RAD, CENTER_Y + sin( PI / 3.0 * 5 ) * RAD, RAD, 360.0 );
	}

	b.drawCircle( CENTER_X_2, CENTER_Y_2, RAD_2, 360.0 );

	if( radian_measure > 0 ) {
		b1.drawCircle( CENTER_X_2 + RAD_2, CENTER_Y_2, RAD_2, 360.0 );
	}
	if( radian_measure > PI / 3.0 ) {
		b2.drawCircle( CENTER_X_2 + cos( PI / 3.0 ) * RAD_2, CENTER_Y_2 + sin( PI / 3.0 ) * RAD_2, RAD_2, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 2 ) {
		b3.drawCircle( CENTER_X_2 + cos( PI / 3.0 * 2 ) * RAD_2, CENTER_Y_2 + sin( PI / 3.0 * 2 ) * RAD_2, RAD_2, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 3 ) {
		b4.drawCircle( CENTER_X_2 + cos( PI / 3.0 * 3 ) * RAD_2, CENTER_Y_2 + sin( PI / 3.0 * 3 ) * RAD_2, RAD_2, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 4 ) {
		b5.drawCircle( CENTER_X_2 + cos( PI / 3.0 * 4 ) * RAD_2, CENTER_Y_2 + sin( PI / 3.0 * 4 ) * RAD_2, RAD_2, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 5 ) {
		b6.drawCircle( CENTER_X_2 + cos( PI / 3.0 * 5 ) * RAD_2, CENTER_Y_2 + sin( PI / 3.0 * 5 ) * RAD_2, RAD_2, 360.0 );
	}

	d.drawCircle( CENTER_X_3, CENTER_Y_3, RAD_3, 360.0 );

	if( radian_measure > 0 ) {
		d1.drawCircle( CENTER_X_3 + RAD_3, CENTER_Y_3, RAD_3, 360.0 );
	}
	if( radian_measure > PI / 3.0 ) {
		d2.drawCircle( CENTER_X_3 + cos( PI / 3.0 ) * RAD_3, CENTER_Y_3 + sin( PI / 3.0 ) * RAD_3, RAD_3, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 2 ) {
		d3.drawCircle( CENTER_X_3 + cos( PI / 3.0 * 2 ) * RAD_3, CENTER_Y_3 + sin( PI / 3.0 * 2 ) * RAD_3, RAD_3, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 3 ) {
		d4.drawCircle( CENTER_X_3 + cos( PI / 3.0 * 3 ) * RAD_3, CENTER_Y_3 + sin( PI / 3.0 * 3 ) * RAD_3, RAD_3, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 4 ) {
		d5.drawCircle( CENTER_X_3 + cos( PI / 3.0 * 4 ) * RAD_3, CENTER_Y_3 + sin( PI / 3.0 * 4 ) * RAD_3, RAD_3, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 5 ) {
		d6.drawCircle( CENTER_X_3 + cos( PI / 3.0 * 5 ) * RAD_3, CENTER_Y_3 + sin( PI / 3.0 * 5 ) * RAD_3, RAD_3, 360.0 );
	}

	e.drawCircle( CENTER_X_4 + RAD_4, CENTER_Y_3, RAD_4, 360.0 );

	if( radian_measure > 0 ) {
		e1.drawCircle( CENTER_X_4 + RAD_4, CENTER_Y_3, RAD_4, 360.0 );
	}
	if( radian_measure > PI / 3.0 ) {
		e2.drawCircle( CENTER_X_4 + cos( PI / 3.0 ) * RAD_4, CENTER_Y_3 + sin( PI / 3.0 ) * RAD_4, RAD_4, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 2 ) {
		e3.drawCircle( CENTER_X_4 + cos( PI / 3.0 * 2 ) * RAD_4, CENTER_Y_3 + sin( PI / 3.0 * 2 ) * RAD_4, RAD_4, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 3 ) {
		e4.drawCircle( CENTER_X_4 + cos( PI / 3.0 * 3 ) * RAD_4, CENTER_Y_3 + sin( PI / 3.0 * 3 ) * RAD_4, RAD_4, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 4 ) {
		e5.drawCircle( CENTER_X_4 + cos( PI / 3.0 * 4 ) * RAD_4, CENTER_Y_3 + sin( PI / 3.0 * 4 ) * RAD_4, RAD_4, 360.0 );
	}
	if( radian_measure > PI / 3.0 * 5 ) {
		e6.drawCircle( CENTER_X_4 + cos( PI / 3.0 * 5 ) * RAD_4, CENTER_Y_3 + sin( PI / 3.0 * 5 ) * RAD_4, RAD_4, 360.0 );
	}

	radian_measure += PI / 360.0;

}

class SlowCircle {

	float f, center_x, center_y, radius;

	SlowCircle ( ) {

	}

	void drawCircle( float x, float y, float r, float resolution ) {

		center_x = x;
		center_y = y;
		radius = r;
		if( f < 2 * PI ) {
			point( center_x + cos( f ) * radius, center_y + sin( f ) * radius );
		}
		f += PI / resolution;
	}

}


Tagged , | Leave a comment

directional_image_fields_draft.pde

directional_image_fields_draft

directional_image_fields_draft


directional_image_fields_draft.pde



int numFrames = 5;  // The number of frames in the animation
int frame = 0;
PImage[] imagesWest = new PImage[numFrames];
PImage[] imagesEast = new PImage[numFrames];
PImage[] imagesIn = new PImage[numFrames];
PImage[] imagesOut = new PImage[numFrames];

void setup() {

	size(500, 375);
	frameRate(5); 

	// If you don't want to load each image separately
	// and you know how many frames you have, you
	// can create the filenames as the program runs.
	// The nf() command does number formatting, which will
	// ensure that the number is (in this case) 4 digits.

	// WEST FACING
	for( int i = 0; i < numFrames; i++ ) {
		String imageName = "west" + ( i + 1 ) + ".png";
		imagesWest[ i ] = loadImage( imageName );
	}

	// EAST FACING
	for( int i = 0; i < numFrames; i++ ) {
		String imageName = "east" + ( i + 1 ) + ".png";
		imagesEast[ i ] = loadImage( imageName );
	}

	// IN FACING
	for( int i = 0; i < numFrames; i++ ) {
		String imageName = "in" + ( i + 1 ) + ".png";
		imagesIn[ i ] = loadImage( imageName );
	}

	// OUT FACING
	for( int i = 0; i < numFrames; i++ ) {
		String imageName = "out" + ( i + 1 ) + ".png";
		imagesOut[ i ] = loadImage( imageName );
	}

} 

void draw() {

	frame = (frame+1) % numFrames;  // Use % to cycle through frames
	image(imagesOut[frame], 0, 0);
	image(imagesIn[frame], 167, 125);
	image(imagesWest[frame], 0, 125);
	image(imagesEast[frame], 334, 125);

}


Tagged , | Leave a comment

side_by_side_timelapse.pde

side_by_side_timelapse

side_by_side_timelapse


side_by_side_timelapse.pde



int numFrames = 120;  // The number of frames in the animation
int frame = 0;
PImage[] imagesWest = new PImage[numFrames];
PImage[] imagesEast = new PImage[numFrames];

void setup(){

	size(1000, 375);
	frameRate(15); 

	// If you don't want to load each image separately
	// and you know how many frames you have, you
	// can create the filenames as the program runs.
	// The nf() command does number formatting, which will
	// ensure that the number is (in this case) 4 digits.

	// WEST FACING
	for( int i = 0; i < numFrames; i++ ) {
		String imageName = "west" + ( i + 1 ) + ".png";
		imagesWest[ i ] = loadImage( imageName );
	}

	// EAST FACING
	for( int i = 0; i < numFrames; i++ ){
		String imageName = "east" + ( i + 1 ) + ".png";
		imagesEast[ i ] = loadImage( imageName );
	}
} 

void draw() {
	frame = (frame+1) % numFrames;  // Use % to cycle through frames
	image(imagesWest[frame], 0, 0);
	image(imagesEast[frame], 500, 0);
}


The data folder of images can be found here (84MB), or you can create your own.

Tagged , | Leave a comment

creating_a_heptagram.pde

creating_a_heptagram

creating_a_heptagram


creating_a_heptagram.pde



/**
* Matthew Lord : 2009/05.01
* I created this to find a way in creating a heptagon.  I used the following
*   construction methods found on the website:
*   http://home.hiwaay.net/~jalison/hepta.html
*   While doing so, I used an alternative method by dividing 2 * PI by 7
*   and creating a point at each division of a circle.  The construction method
*   on the above website is not completed in this rendition.
*/
PVector a, b, c, d, e, f, g;
PFont font;

float seventhOfPI = PI / 7;
int diameter = 40;
int radius = diameter / 2;
float a_1, b_1, c_1, d_1, e_1, f_1, g_1;

void setup( ) {
	size( 1240, 720 );

	font = loadFont( "AmericanTypewriter-12.vlw");

	a_1 = 0.8975979 + seventhOfPI;
	b_1 = 1.7951958 + seventhOfPI;
	c_1 = 2.6927938 + seventhOfPI;
	d_1 = 3.5903916 + seventhOfPI;
	e_1 = 4.4879894 + seventhOfPI;
	f_1 = 5.385587 + seventhOfPI;
	g_1 = 6.283185 + seventhOfPI;

	a = new PVector( sin( a_1 ) * 200, cos( a_1 ) * 200 );
	b = new PVector( sin( b_1 ) * 200, cos( b_1 ) * 200 );
	c = new PVector( sin( c_1 ) * 200, cos( c_1 ) * 200 );
	d = new PVector( sin( d_1 ) * 200, cos( d_1 ) * 200 );
	e = new PVector( sin( e_1 ) * 200, cos( e_1 ) * 200 );
	f = new PVector( sin( f_1 ) * 200, cos( f_1 ) * 200 );
	g = new PVector( sin( g_1 ) * 200, cos( g_1 ) * 200 );

	noLoop( );
}

void draw( ) {

	translate( width / 2, height / 2 ); // bring zero point to the center
	background( #FFFFFF );
	textFont( font );
	stroke( 5 );
	noFill( );

	line( - width / 2, 0, width, 0 );
	line( 0, - height / 2, 0, height );

	for( int i = 0; i < 11; i++ ) {
		noFill( );
		ellipse( 0, 0 - ( i * radius ), diameter, diameter );
		if( i == 0 ) {
			fill( 0 );
			text( "A", 0, 0 - ( i * radius ) );
		} else if( i == 1 ) {
			fill( 0 );
			text( "B", 0, 0 - ( i * radius ) );
		} else if( i == 7 ) {
			fill( 0 );
			text( "C", 0, 0 - ( i * radius ) );
			line( 0, 0 - ( i * radius ), width, 0 - ( i * radius ) );
		} else if( i == 10 ) {
			fill( 0 );
			text( "D", 0, 0 - ( i * radius ) );
			text( "E", 0, 0 - ( ( i + 1 ) * radius ) );
			noFill( );
			// diameter of circle A -> D
			float largeDiameter = dist( 0, 0, 0, 0 - ( i * diameter ) );
			float largeRadius = largeDiameter / 2;
			ellipse( 0, 0, largeDiameter, largeDiameter );
			arc( 0, 0, largeDiameter + diameter, largeDiameter + diameter, TWO_PI - PI / 2, TWO_PI );
			fill( 0 );
			text( "F", 0 + ( largeDiameter + diameter ) / 2, 0 );
			float pointG = dist( 0, 0, ( largeDiameter + diameter ) / 2, 0 ) / 2;
			text( "G", pointG, 0 );
			text( "H", pointG, 0 - 7 * radius );
			noFill( );
			triangle( 0, 0, pointG, 0 - 7 * radius, ( largeDiameter + diameter ) / 2, 0 );
			line( pointG, 0, pointG, 0 - 7 * radius );
			// construct the midpoint of distance A -> H ( "I" )
			float a_H = dist( 0, 0, pointG, 0 - 7 * radius );
			float a_Ihyp = a_H / 2;
			// height of a_I
			float a_Iheight = sin( radians( 51.85145318 ) ) * a_Ihyp;
			// base of a_I
			float a_Ibase = sqrt( sq( a_Ihyp ) - sq( a_Iheight ) );
			fill( 0 );
			text( "I", a_Ibase, 0 - a_Iheight );
			// construct the midpoint of distance A -> H ( "J" )
			float a_J = a_Ihyp / 2;
			// height of a_J
			float a_Jheight = sin( radians( 51.85145318 ) ) * a_J;
			// base of a_J
			float a_Jbase = sqrt( sq( a_J ) - sq( a_Jheight ) );
			text( "J", a_Jbase, 0 - a_Jheight );
			// make arc J -> K
			float arcRadiusJ_K = dist( 0, 0, a_Jbase, 0 - a_Jheight );
			noFill( );
			ellipse( 0, 0, arcRadiusJ_K * 2, arcRadiusJ_K * 2 );
			text( "K", 0, arcRadiusJ_K );
			// line( 0 - width / 2, arcRadiusJ_K, width, arcRadiusJ_K );

			strokeWeight( 1 );
			arc( 0, 0, a_J * 2, a_J * 2, TWO_PI - PI / 2, TWO_PI );
			float angleA_J = asin( a_Jheight / a_J );
			//println( angleA_J );

			strokeWeight( 1 );
			// refine the line above
			float dist3_6Segment = sqrt( sq( largeDiameter / 2 ) - sq( arcRadiusJ_K ) );
			text( "6", 0 - dist3_6Segment, arcRadiusJ_K );
			text( "3", dist3_6Segment, arcRadiusJ_K );
			line( 0 - dist3_6Segment, arcRadiusJ_K, dist3_6Segment, arcRadiusJ_K );

			// vesica pisces
			// v_p diameter
			float vesicaDiameter = dist( 0 - dist3_6Segment, arcRadiusJ_K, dist3_6Segment, arcRadiusJ_K ) * 2;
			ellipse( 0 - dist3_6Segment, arcRadiusJ_K, vesicaDiameter, vesicaDiameter );
			ellipse( dist3_6Segment, arcRadiusJ_K, vesicaDiameter, vesicaDiameter );
		}
		line( a.x, a.y, d.x, d.y );
		line( d.x, d.y, g.x, g.y );
		line( g.x, g.y, c.x, c.y );
		line( c.x, c.y, f.x, f.y );
		line( f.x, f.y, b.x, b.y );
		line( b.x, b.y, e.x, e.y );
		line( e.x, e.y, a.x, a.y );
	}
}


Tagged , | Leave a comment

heptagram.pde

heptagram.pde

heptagram.pde


heptagram.pde



/**
* Matthew Lord : 2009/06.10
*
* Creates a heptagram enclosed in a circle.
* Includes three models of a heptagram
*/
PVector center, a, b, c, d, e, f, g;
float x, a_1, b_1, c_1, d_1, e_1, f_1, g_1;

void setup( ) {

	size( 450, 450 );

	a_1 = 0.8975979;
	b_1 = 1.7951958;
	c_1 = 2.6927938;
	d_1 = 3.5903916;
	e_1 = 4.4879894;
	f_1 = 5.385587;
	g_1 = 6.283185;

}

void draw( ) {

	translate( width / 2, height / 2 );// bring zero point to the center
	stroke( 0 );
	strokeWeight( 1 );

	// make points
	center = new PVector( 0, 0 );

	a = new PVector( sin( a_1 ) * 200, cos( a_1 ) * 200 );
	b = new PVector( sin( b_1 ) * 200, cos( b_1 ) * 200 );
	c = new PVector( sin( c_1 ) * 200, cos( c_1 ) * 200 );
	d = new PVector( sin( d_1 ) * 200, cos( d_1 ) * 200 );
	e = new PVector( sin( e_1 ) * 200, cos( e_1 ) * 200 );
	f = new PVector( sin( f_1 ) * 200, cos( f_1 ) * 200 );
	g = new PVector( sin( g_1 ) * 200, cos( g_1 ) * 200 );

	noFill( );
	smooth( );

	line( a.x, a.y, d.x, d.y );
	line( d.x, d.y, g.x, g.y );
	line( g.x, g.y, c.x, c.y );
	line( c.x, c.y, f.x, f.y );
	line( f.x, f.y, b.x, b.y );
	line( b.x, b.y, e.x, e.y );
	line( e.x, e.y, a.x, a.y );

	line( a.x, a.y, c.x, c.y );
	line( c.x, c.y, e.x, e.y );
	line( e.x, e.y, g.x, g.y );
	line( g.x, g.y, b.x, b.y );
	line( b.x, b.y, d.x, d.y );
	line( d.x, d.y, f.x, f.y );
	line( f.x, f.y, a.x, a.y );

	line( a.x, a.y, b.x, b.y );
	line( b.x, b.y, c.x, c.y );
	line( c.x, c.y, d.x, d.y );
	line( d.x, d.y, e.x, e.y );
	line( e.x, e.y, f.x, f.y );
	line( f.x, f.y, g.x, g.y );
	line( g.x, g.y, a.x, a.y );

	ellipse( 0, 0, 400, 400 );

	stroke( #FFFFFF );

	line( center.x, center.y, a.x, a.y );

	float acuteAngle = ( ( 180.0 / 7.0 ) * 2.5 );
	float baseLine = sin( radians( acuteAngle ) ) * 200.0;
	float edge = sqrt( sq( 200 ) - sq( baseLine ) );
	float acuteAngleTwo = ( ( 180.0 / 7.0 ) * 2.0 );
	float opposite = tan( acuteAngleTwo ) * edge;
}


Tagged , | Leave a comment

End of Spring Stereo Videos

These two videos are the result of a year long study of creating stereoscopic video.  Both videos use horizontal motion, either linear or rotational, as a way to create stereo pairs by offsetting the frames.

Tagged , , , | Leave a comment

de Face of de Face…

Here is an image of what I was referring to in a previous post (Restroom Creativity) about another abstraction of content:

balloons painted over a tag

balloons painted over a tag

Basically this window was etched with some type of acid, rendering the tag permanent.  There are two options I’m aware of for removing these types of tags which include replacing the glass and buffing/grinding the glass.  These are expensive options, especially for an independent business such as this one (Espresso Express).  So, instead of these expensive options, someone decided to fill in the letters with balloons which is dope.  It is the best deface of a deface I have ever seen short of “the buf” which used to cover the I-5 noise barrier on 5th Ave NE near NE 130th St.  At any rate, I love the simplicity of the abstraction.

Tagged , | Leave a comment