Source: https://ocw.mit.edu/courses/architecture/4-195-special-problems-in-architectural-design-spring-2005/projects/perduestone.pdf