Fractal Cities

Fractals

Euclidean Geometry

Recursion

n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2 x 1
n! = n x (n−1)!
n! = n x (n−1)! 
n! = n x (n−1) x (n−2)!
n! = n x (n−1) x (n−2) x (n−3)!


n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3!
n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2!
n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2 x 1!

Applying recursion with geometry

Sierpinski Gasket

  • Change the color?
  • Change the shape?
  • Change the global geometry?
  • Vary the color?
  • Use an image?
size(1000, 1000)
background(0)
def circleDraw(x,y,radius):
stroke(255,0,0)
fill(0)
ellipse(x, y, radius, radius)
if radius > 2:
circleDraw(x + radius/2, y, radius/2)
circleDraw(x - radius/2, y, radius/2)
circleDraw(x, y + radius/2, radius/2)
circleDraw(400,400,1000)
"""
Recursive Tree
by Daniel Shiffman.
Renders a simple tree-like structure via recursion.
The branching angle is calculated as a function of
the horizontal mouse location. Move the mouse left
and right to change the angle.
"""
def setup():
size(640, 360)
def draw():
background(0)
frameRate(30)
stroke(255)

a = (mouseX / float(width)) * 90
# Convert it to radians
# Start the tree from the bottom of the screen
translate(width / 2, height)
# Draw a line 120 pixels
line(0, 0, 0, -120)
# Move to the end of that line
translate(0, -120)
# Start the recursive branching!
branch(120, radians(a))
def branch(h, theta):
# Each branch will be 2/3rds the size of the previous one
h *= 0.66
# All recursive functions must have an exit condition!!!!
# Here, ours is when the length of the branch is 2 pixels or less
if h > 2:
# Save the current state of transformation
pushMatrix()
rotate(theta) # Rotate by theta
line(0, 0, 0, -h) # Draw the branch
translate(0, -h) # Move to the end of the branch
branch(h, theta) # call myself to draw two branches
# "pop" in order to restore the previous
# matrix state
popMatrix()
# Repeat the same thing, only branch off to the "left"
with pushMatrix():
rotate(-theta)
line(0, 0, 0, -h)
translate(0, -h)
branch(h, theta)

The Mandelbrot Set

Cellular Automata and the Game of Life

Fractal Cities

a

Recursion in Video and Elsewhere

In Economics

Science and Complexity

  • Self Organization — within complex models, self organization emerges through local rules applied across many instances. The result is the emergence of a new order of a system stemming from the local level but appearing at the system level. This new behavior is referred to as emergent behavior.
  • problem of simplicity
  • problems of disorganized complexity — laws of temp and pressure from millions of disorganized air molecules
  • problems of organized complexity — disorganized agents create a complex organic whole

Micro vs Macro states

--

--

Graduate course at Columbia University GSAPP, taught by Violet Whitney and TA Zeid Ghawi

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Violet Whitney

Spatial tech, design computation, organizational behavior, equity, and gifs. Adjunct Assist Professor @ColumbiaGSAPP. Director of Product, @SidewalkLabs.