Continuing on my study of Le Corbusier’s Radiant City (Ville Radieuse), presented as a speculative design in 1924 as a solution to the modern problem of mass population in congested urban environments, from last module. Specifically, Corbu was very keen on ameliorating the problem of urban congestion. To that end, here I adapt the class's EvaluateDirectnessToObject node to multiple objects, specifically all the other building elements in my city. The "best" building form will minimise the directness of that building to all the others; people do not want to see so many other buildings, and should instead be given the impression that they are not in a congested environment! Like in the class example, the two parameters that are varied are building height and building element rotation; Le Corbusier would have had the former, but not the latter, to play with in his philosophical theoretical speculations.
Before optimisation: (building of interest is to the top left)
My second custom node attempts to quantify the cost of these spirals in Ville Radieuse (while elegant, it is likely more expensive to construct than simple vertical towers.) To that end, this node takes as input a building form, calculates the difference between top and bottom rotations, applies a cost function to each, and reports the result. Importantly, the cost function is nonlinear; that is, small rotations do not cost much, but larger rotations cost (exponentially) more.
The "best" design will be the one with both the minimum directed view towards other buildings, and the minimum rotational cost, i.e. that which minimizes the objective functions defined in my two custom nodes. I will not weight them the same, however. Instead, since Corbu was far more concerned with "liveability" than cost (his designs would've been prohibitively expensive; it's the idea that counts), I weight the minimising directed view function twice that of the rotational cost function. From my calculations, this is the optimal design: