Sketch of Artificial Lake in the Middle Neighbourhood

Simon Li
Simon Li
Sep 8, 2018 · 4 min read

This story will show the work of designing a new neighbourhood called “Artificial Lake in the Middle Neighbourhood”.

Original sketch of my neighbourhood:

Original Sketch

Rules of the plan:

  1. Draw a square park in the center of the frame
  2. Draw a round artificial lake in the middle of the central park
  3. Draw four triangle rest areas at four corners of the park
  4. Draw four square blocks at four corners of the frame
  5. Draw two narrow blocks at upper middle and lower middle part of the frame
  6. Draw four regular houses in each block along the street
  7. Draw one big house in each corner block

Processing Gif Recording My Neighbourhood:

Processing Screen Record

The Codes:

def setup():
size (960, 630)

global roadW, blockLC, blockWC, blockWN, blockLN, houseWN, houseLN, houseWB, houseLB, houseI, houseNum
#roadW for road width, L for length, W for width, C for Corner, N for Normal, B for big, I for interval
roadW = 30
blockLC = blockWC = blockWN = 300
blockLN = (630 - blockLC - 2*roadW)/2
houseWN = houseLN = houseLB= 50
houseWB = 2*houseLB
houseI = 20
houseNum = 4
def draw():
background(255)

#make the central park
stroke (100)
strokeWeight (2)
fill (0, 255, 50)
rect (blockWC + roadW, blockLN + roadW, blockWC, blockLC)

#make the lake in the park
stroke (100)
fill (0, 100, 255)
ellipse (blockWC*1.5 + roadW, blockLN + blockWC*0.5 + roadW, blockWC - 40, blockLC - 40)

#make rest areas around the lake
stroke (100)
fill (200, 200, 200)
triangle (blockWC + roadW + 10, blockLN + roadW + 10, blockWC + roadW + 90, blockLN + roadW + 10, blockWC + roadW + 10, blockLN + roadW + 90)
triangle (blockWC + roadW + 10, blockLN + roadW + blockLC - 10, blockWC + roadW + 90, blockLN + roadW + blockLC - 10, blockWC + roadW + 10, blockLN + roadW + blockWC - 90)
triangle (blockWC + roadW + blockLC - 10, blockLN + roadW + 10, blockWC + roadW + blockWC - 90, blockLN + roadW + 10, blockWC + roadW + blockLC - 10, blockLN + roadW + 90)
triangle (blockWC + roadW + blockLC - 10, blockLN + roadW + blockLC - 10, blockWC + roadW + blockWC - 90, blockLN + roadW + blockLC - 10, blockWC + roadW + blockLC - 10, blockLN + roadW + blockWC - 90)

#make the blocks
stroke (100)
fill (0, 200, 100)
rect (0, 0, blockWC, blockLC)
rect (0, blockLC + roadW, blockWC, blockLC)
rect (blockWC + roadW, 0, blockWN, blockLN)
rect (blockWC + roadW, blockLN + roadW*2 + blockLC, blockWN, blockLN)
rect (blockWC + roadW*2 + blockWN, 0, blockWC, blockLC)
rect (blockWC + blockWN + roadW*2, blockLC + roadW, blockWC, blockLC)

#make normal houses
houseX = blockWC - houseLN - houseI
houseY = houseI
n = 0
def drawHouse(x,y):
rect (x, y, houseWN, houseLN)
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseY = houseY + houseLN + houseI
n += 1

houseX = blockWC - houseLN - houseI
houseY = blockLC + roadW + houseI
n = 0
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseY = houseY + houseLN + houseI
n += 1

houseX = blockWC + blockWN + roadW*2 + houseI
houseY = houseI
n = 0
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseY = houseY + houseLN + houseI
n += 1

houseX = blockWC + blockWN + roadW*2 + houseI
houseY = blockLC + roadW + houseI
n = 0
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseY = houseY + houseLN + houseI
n += 1

houseX = blockWC + roadW + houseI
houseY = blockLN - houseI - houseLN
n = 0
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseX = houseX + houseLN + houseI
n += 1

houseX = blockWC + roadW + houseI
houseY = blockLN + blockLC + roadW*2 + houseI
n = 0
while n < houseNum:
stroke (100)
fill (0)
drawHouse(houseX, houseY)
houseX = houseX + houseLN + houseI
n += 1

#make luxury houses
stroke (100)
fill (0)
rect (65, blockLC - houseI - houseLB - 10, houseWB, houseLB + 10)

stroke (100)
fill (0)
rect (50, blockLC + roadW + houseI, houseWB+30, houseLB)

stroke (100)
fill (0)
rect (960 - houseWB - 80, blockLC - houseI - houseLB, houseWB+30, houseLB)

stroke (100)
fill (0)
rect (960 - houseWB - 65, blockLC + roadW + houseI, houseWB, houseLB + 20)

#name the roads
textSize (12)
text ("Main St.", 100, 630/2+5)
text ("First Av.", 290, 200)
text ("Second Av.", 615, 200)
text ("Main St.", 700, 630/2+5)

The End

Lingyu Li

Columbia University, GSAPP

September 7, 2018

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade