import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;

import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;

public class layer_size_velocity_opacity extends PApplet {

int num = 24; 
float s = 3;
float reflex = 0.3f; 
float aperture = 64; 

int bg = color(255, 0, 0); 
int fg1 = color(255, 0, 0);
int fg2 = color(255, 0, 0);

 public void setup() {

  /* size commented out by preprocessor */;
  noStroke();
  frameRate(25);

  aa = new float[8];
  bb = new float[aa.length];
  reset();
}

 public void mouseClicked() {
  reset();
}


float t = 0; 

float[] aa; // great naming conventions, I know...
float[] bb;
float transition = 0;

 public void reset() {
  for (int i = 0; i<bb.length; i++) {
    float v = random(1, 8);
    bb[i] = aa[i];
    aa[i] = random(2)<1?v:-v;
  }
  transition = 1;
}
 public void draw() {
  t+=0.0008f;
  background(0);

  transition*=(1-reflex);


  for (float v = 0; v<num; v++) {
    for (float u = 0; u<num; u++) {
      float h = 42
        *sin((aa[0]*u-aa[1]*v)/num+4.2f*aa[4]*t+aa[6])
        *cos((aa[2]*v+aa[3]*u )/num+aa[5]*t+aa[7]);

      float h2 = 42
        *sin((bb[0]*u-bb[1]*v)/num+4.2f*bb[4]*t+bb[6])
        *cos((bb[2]*v+bb[3]*u )/num+bb[5]*t+bb[7]);
      h = lerp(h, h2, transition);

      float u1 = u/num*2-1;
      float v1 = v/num*2-1;

      float u2 = cos(t)*u1 + sin(t)*v1;
      float v2 = sin(t)*u1 - cos(t)*v1; 
      // transformation after transformation, I'm not entirely sure what's going on here anymore. #dontTouchItItWorks

      float u3 = u2/2+0.5f;
      float v3 = v2/2+0.5f;

      float x = u3*min(width, height);
      float y = v3*min(width, height);

      float a = x-y;
      float b = x+y;

      pushMatrix();
      translate(0, 0);
      translate(width/2, 0);
      float dist = 1.5f-b/2/height-h/500;
      scale(atan(1/dist)*3.4f);  // a little math, but mostly magic
      translate(-width/2, -height/3.5f);

      float blur = (1-dist)*aperture;
      fill(lerpColor(fg1, fg2, constrain(map(blur, -aperture/3, aperture/2, 0, 1), 0, 1)), // blend the colors
        min(s*255/max(sq(blur/2)*2, 1), 255)); // add transparency

      translate(0, -h); // creates the waves
      ellipse(a/4+width/2, b/42+height/2, max(abs(blur), s), max(abs(blur), s));
      popMatrix();
    }
  }
}


  public void settings() { size(1200, 640); }

  static public void main(String[] passedArgs) {
    String[] appletArgs = new String[] { "layer_size_velocity_opacity" };
    if (passedArgs != null) {
      PApplet.main(concat(appletArgs, passedArgs));
    } else {
      PApplet.main(appletArgs);
    }
  }
}

Introduction to Architecture

Architecture is defined as the art and science of designing buildings and structures. A wider definition would include within this scope the design of any built environment, structure or object, from town planning, urban design, and landscape architecture to furniture and objects. It could also be defined as the manipulation of shapes, forms, space and light to change our environment.

Doing architecture requires strong technical knowledge in the fields of engineering, logistics, geometry, building techniques, functional design and ergonomics. It also requires a certain sensibility to arts and aesthetics. Finally, it also requires a preoccupation for human questions and society's problems. Architecture is a very broad and humanistic field that is at the same time technical, artistic and social. Traditionally, architecture courses are always found at the crossing of those domains. The profession of architect demands a certain ability to synthesize information coming from very different areas, and architects often assume the position of leader, mediator or centralizer in groups made of very different specialists.