胡廣梽
(華東建筑設計研究院有限公司,上海 200002)
分形(Fractal)原本是一個數學概念,是由芒德勃羅(Mandelbrot.B.B.)在1975 年所著《大自然的分形幾何學》中明確提出,用于描述許多非線性的自然事物,自此之后開始影響和指導其他學科包括建筑學。簡單來說,分形最顯著的特征便是事物局部與整體的自相似性。
雖然芒德勃羅從大自然中發現了分形,但對于分形理論的運用離不開對分形幾何形的生成,分形迭代便是生成分形幾何形態的重要方法。將初始分形元按照一定的迭代規則進行幾何變形,再將得到的結果重復上述迭代過程,便是分形迭代。以此生成的幾何形便具有了分形的特點,即局部與整體自相似的特征[1]。以數學公式來表達此過程,便是F(n+1)=F(Fn)。
算法是任何良性定義的計算過程,該過程取某個值或者值的集合作為輸入并產生某個值或者值的集合作為輸出。簡單地說,算法是為了使操作者依靠一定的條件和規則來解決問題并得到所求的結果而制定的一系列明確的解題指令,是一種策略機制[2]。分形迭代過程本質上就是運用特定的算法規則,進行迭代生形,上文提到的F(n+1)=F(Fn)便是分形迭代過程之中蘊含的算法邏輯,不同的分形迭代算法決定了初始值和迭代規則以什么樣的方式被串聯起來,建立關聯關系也就是分形迭代的模型[3]。關于分形的算法有許多:擴散限制凝聚[4]、元胞自動機、林氏系統等。
以分形為特征的典型算法之一便是元胞自動機,全稱Cellular Automaton,由馮·諾依曼最早明確提出,緊接著康威提出的“生命游戲”帶來了一股研究元胞自動機的熱潮。在康威的研究中,元胞自動機是一個迭代系統,以單元格為基本單位組成,每個元格只有兩個狀態,例如“黑”與“白”,“生”與“死”。每個格的狀態變化與否,要根據相鄰幾個格的狀態和迭代規則,每一個單元格之間隨著迭代過程而產生互動和動態演進。元胞自動機的初始狀態大多是簡單的單元格構成,單元格之間隨著迭代過程的推進而相互影響,并以一定的既定規則生長、擴散[5]。

圖1 元胞自動機的擴散過程
元胞自動機分為一維、兩維和三維。一維的元胞自動機的初始單元格是橫向排列的,呈一條直線分布,按照每個單元格周圍的狀態和既定的規則進行運算,迭代形成第二行的單元格(singles)。依次由上往下迭代,這樣每次迭代形成的單元格也是一字型的,所以叫一維元胞自動機。二維的元胞自動機是以二維平面的形式排布初始單元格,以康威的“生命游戲”為例:每個單元格在二維的單元格矩陣中有且只有“生”或“死”兩種狀態。把3×3 個單元格看成一個整體,另外8 個相鄰的單元格圍繞其中間的單元格而存在,根據周圍8 個相鄰單元格的狀態而決定矩陣中每一個單元格的狀態。每個單元格的狀態都有可能根據初始格的排布狀態和迭代規則進行運算迭代而改變,整體單元格的排布會處于一個動態的變化過程中,但不管經過多少次迭代,都會滿足既定的迭代規則,即單元格的數量和密度都會控制在一定范圍內。以此類推,三維元胞自動機是將若干個三維的單元排列組合在三維空間中,每個單元都有“生”與“死”兩種狀態,“生”與實際體積的立方體相對應,“死”與空白空間相對應。每個單元體的“生”與“死”是由相鄰單元體的狀態和迭代規律決定的。
元胞自動機之于城市以及建筑設計中已有較為廣泛的應用,在聚落繁衍擴張的過程中,以當地的人文自然脈絡為基礎進行擴張,包括氣候地質特征、人文風俗、歷史文化等元素,按照相似的原理,每一次擴張的過程都是這樣的,而且是迭代生長的,可以用元胞自動機的模型進行模擬和預測[6]。在建筑設計中,以色列裔加拿大建筑師Moshe Safdie 設計的“habitat 67”住宅中體現了元胞自動機對建筑體量生成的指導作用。該建筑由若干居住單元構成,每個居住單元作為元胞自動機中“生存”的單元格,其居住單元配套的戶外平臺則作為“死亡”的單元格。建筑師希望每一個居住單元都能配有一個戶外平臺,而戶外平臺下方則是下一層的居住單元的屋頂。整個建筑體量是由二維的元胞自動機將每次的迭代結果豎向疊加形成三維的體量,而通過建筑師的設計理念,可以總結出迭代規則:每一次迭代,新產生的單元體不能與上次迭代的單元體完全重合,以便產生屋頂平臺,但也需要與上次迭代的單元體存在重疊區域以便獲得支撐。將若干次迭代結果豎向疊加,便形成了錯落有致的建筑體量。這樣一種依靠秩序生成的復雜建筑體量,一方面為建筑的復雜性提供了更多的實現手段,另一方面也賦予了建筑一定的自然特性,建筑體量之間以聚集和擴散的特征聚合在一起,從首層到頂層,逐漸生長,形成具有自然特征的聚合體,使得建筑與自然環境更好地契合。
建筑形態的生成取決于多種因素的作用,運用元胞自動機進行建筑生形時,要將城市空間、交通、功能、環境地物等等因素納入算法設計中,讓算法的建筑設計體現其在地性,而不是計算機批量生產的產物。
例如筆者在鄭州高新區商業綜合體的方案設計,通過運用元胞自動機算法,引入城市交通因素,進行具體的建筑形態設計,并體現“建筑生長”的主題理念。
項目整體定位為總建筑面積約18 萬m2的中型商業綜合體,位于鄭州市高新區城市主干道科學大道北側。該綜合體規模較大,需求功能復雜,且作為商業綜合體,其規模已經上升到城市層面,既要與城市界面相呼應,又要與場地環境相協調。經過對場地環境和場地周邊城市設施的考察,確定綜合體以“建筑生長”為設計理念,旨在將建筑從場地中“生長”出來,依據現有業態、場地、環境、以及一定的建筑生成規律,使建筑與現有場地條件更加契合,并賦予建筑一定的“生命力”。所以選擇元胞自動機分形迭代算法,根據場地環境,將建筑逐步成長、擴散,變成一個巨構的聚合體。
把“生命游戲”和元胞自動機中的成長法則結合起來。二維元胞自動機通過將不同迭代次數的生形結果豎向疊加,根據一定的初始單元格布局和狀態,以及迭代規律進行迭代生形,由下往上形成疊合而成的立體體量,就像是由下往上依次生長的最終形態。于是選擇二維元胞自動機算法作為參數化算法模型,在反映參數化設計內涵的同時,生成綜合體的建筑體量。
在Rhino 中的Rabbit 平臺上建立了元胞自動機的分形迭代算法模型后,首先需要確定約束條件:根據地塊周邊的現狀確定地塊內的交通流線組織,即將場地內部的交通情況作為形態生成的約束條件。
由于元胞自動機的初始單元格需要呈點狀布局(過度擁擠會使單元格“死亡”),因此在輪廓中選取一個點隨機減少其中一部分,這部分點可以大致代表布局情境,而不會為了迭代而過度擁擠,這些點按照第一層場地設計后的大致建筑輪廓來選擇,如圖2 所示。

圖2 將場地首層交通流線作為約束條件
隨后設置一定的目標控制條件,以此控制分形迭代的過程:將初始的元胞在由一層到高層的迭代過程中相互融合,形成整體的建筑體量,這樣做的目的是為了保證前幾層的建筑能夠實現場地流線的初始約束條件,又能保證上層建筑形態相對整體。
設定一定的迭代法則來進行迭代生形的嘗試:已經處于“生存”狀態的格子,在周圍存在2 個或3 個或4 個生存格子的情況下,元格會繼續生存下去,反之則會死亡;在“死亡”狀態下的元格,死亡格子會復生,而這個格子恰好在周圍有三個存活的格子。這樣,只有在相鄰單元格較多或極少的狀態下,生存單元格的周圍才會死亡,而在特定的3 個數量的相鄰單元格中,新生單元格“誕生”的條件更為苛刻,才會復生。這樣的迭代條件代表著現有的存活單位會保持一定的密度,不會出現明顯的消失,新長出來的單位也不會出現過度的急劇增長,呈現緩慢增長的狀態。這種迭代規律與建筑“生長”的生長邏輯相對應,則代表著后續幾層建筑的體量會穩定地維持第一層的布局,并且伴隨著迭代的過程,根據現有的布局態勢,后續生長的建筑體量也會慢慢發展,新的建筑體量慢慢產生,彼此融合在一起。而且新“出生”的建筑體量的位置會因為迭代規則中“出生條件正好是相鄰3 個存活單元”的特點而產生一定的隨機性和不確定性,也會帶來一些建筑空間的隨機性和趣味性,這種隨機性也會隨著出生條件的寬松而減弱(比如相鄰3 個以上存活單元)。為了產生前5 層的建筑體量,按照既定的初始值和迭代規律進行分形迭代操作。從圖3 可以看出,建筑按照原有第一層的布局,逐漸“生長”,并體現出一定的建筑組團和空間體量:西側大致分為三個組團,組團大小不一,在第三次迭代時產生環環相扣之勢,建筑東側也分成3 個組團,2 個比較大,也產生了互相貫通的局面。而東西兩側的組團,也出現了上期迭代時的局面,如圖3 所示。隨之加入進一步的目標控制條件:雖然整體體量和組團布局相對符合預期要求,但就生成迭代的結果來看,建筑的塊體過于零碎,對于北方的建筑來說,可能需要更整體的體量來降低形體系數以滿足寒冷地區氣候的要求。

圖3 建筑體量“生長”過程
所以,回歸迭代規則,放寬新生單元格“出生”的條件,減少新生體量的隨意性,增強整體感:當周圍有3 個或4 個存活單元格時,死亡單元格就會獲得新生,如圖4 所示。

圖4 加入新的目標控制條件即整合體量
方案一:接下來是進一步的建筑化處理:雖然生成的體量被整合了,但其外圍凸凹的方塊作為建筑物來說,過于細碎,而且方塊的尺度與需要一定體量的建筑物尺度也不相符。
因此,結合分形自相似統一的策略,提取各層的迭代結果,將細碎的方塊按照其平面的形體以平滑曲線擬合,擬合出的各層曲線經過自相似的優化處理,作為建筑的樓板,將曲線向內偏移,作為建筑的實體部分,留出外廊作為灰空間,這樣,不僅能盡可能還原變化結果的單元格布局,還能在符合建筑形態和尺度的迭代結果上,將體量整合起來,進行建筑化處理。樓前5 層裙房部分如圖5 所示形成。

圖5 用曲線擬合單元格,形成裙房的板片和體量
由于高層塔樓部分規整,需要較少的元胞自動機來產生建筑體量,因此高層塔樓部分形態的設計采用前五層擬合曲線的分形同構曲線形態,結合成一個建筑整體,按照建筑形態自近似統一的設計策略和方法進行設計。然后再對外立面進行細化設計,外立面外掛裝飾條的形態設計按照分形的自相似同構的樓板形態進行設計:將塔樓、裙房各層的樓板曲線形態作為自相似迭代的分形元,形成與樓板曲線形態相對應、異質同構關系的外立面裝飾線條。由此產生的符合各層原有曲線形態,又具有一定豎向律動感的立面裝飾構件,符合分形美學特征,在保持大形態的基礎上,在一定細節上增加了尺度層次的視覺美學。最后是建筑功能布置,根據布置對建筑體量進行微調,對建筑外立面進行提升,提升流線感,形成最終的成果如圖6 所示。
建筑首層的大致布局是由場地流線等條件產生的,以元胞自動機根據首層布局產生由單元格構成的建筑體量,再以單元格布局歸納、擬合建筑化,最終形成流線型建筑體量。在建筑設計中應用的分形迭代算法的重要方法和途徑是將分形迭代算法產生的對象建筑化,使其更符合建筑尺度、形狀、構件等的要求。
元胞自動機作為一種分形迭代算法,可以通過建立參數模型,控制迭代規則,不斷迭代生成復雜多樣的建筑體量,從而使建筑形態設計具有更多可能性,為非線性建筑的設計注入新鮮活力。在設計過程中,綜合考慮建筑實際需求和分形生形之間的平衡點,根據城市空間、交通、功能、環境地物等等要求動態調整生形結果,能夠使最終的生形結果更加符合建筑設計的需要。
算法代表著理性的數學邏輯,而建筑設計是一個復雜的理性與感性交織的過程[7]。分形迭代算法的建筑設計機制實質上就是在分形與建筑設計兩種學科之間建立一座方法的橋梁,歸納兩者的共性,求同存異,使得算法能夠以一種恰當的建筑化的方式指導建筑設計。