Sketch of Artificial Lake in the Middle Neighbourhood
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:

Rules of the plan:
- Draw a square park in the center of the frame
- Draw a round artificial lake in the middle of the central park
- Draw four triangle rest areas at four corners of the park
- Draw four square blocks at four corners of the frame
- Draw two narrow blocks at upper middle and lower middle part of the frame
- Draw four regular houses in each block along the street
- Draw one big house in each corner block
Processing Gif Recording My Neighbourhood:

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 = 4def 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
