生成式藝術(shù)和算法創(chuàng)作07 L-system

Lindenmayer system焕济,簡稱 L-system臊旭,是由荷蘭烏特勒支大學(xué)的生物學(xué)和植物學(xué)家,匈牙利裔的 Aristid Lindenmayer 于 1968 年提出的有關(guān)生長發(fā)展中的細(xì)胞交互作用的數(shù)學(xué)模型湿滓,被廣泛應(yīng)用于植物生長過程的研究和建模锥惋,也常用于模擬各種生物體的形態(tài)做鹰。

使用 L-system 生成的 3D 雜草

L-system 語法

L-system 是一系列不同形式的語法規(guī)則僧鲁,它的自然遞歸規(guī)則產(chǎn)生自相似性伤柄,也能用于生成自相似的分形并扇,例如迭代函數(shù)系統(tǒng)去团,因此也是一種形態(tài)發(fā)生(morphogenesis)算法。

L-system 一般可以這樣定義:

?G ={V,S,ω,P},

V: 變量符號集合

S: 常量符號集合

ω: 初始狀態(tài)串(i.e. seed or axiom)

P: 生成式規(guī)則(production)

例如穷蛹,Lindenmayer 研究海藻生長模式時(shí)提出的最早的 L-system:

變量 : A B

常量 : 無

**公理 **(axiom) : A

規(guī)則 : (A → AB), (B → A)

迭代過程:

n = 0 : A
n = 1 : AB
n = 2 : ABA
n = 3 : ABAAB
n = 4 : ABAABABA
n = 5 : ABAABABAABAAB
n = 6 : ABAABABAABAABABAABABA
n = 7 : ABAABABAABAABABAABABAABAABABAABAAB

用樹狀分枝表示迭代過程會更容易理解:

n=0:         A           開始 (公理/起始點(diǎn))
            / \
n=1:       A   B         根據(jù)規(guī)則(A → AB)起始點(diǎn)A拓展成AB土陪,由于起始點(diǎn)沒有B,規(guī)則(B → A)沒有被用到
          /|    \
n=2:     A B     A       AB中的A拓展成AB肴熏,B變成A鬼雀,于是得到了ABA
        /| |     |\
n=3:   A B A     A B     可以看到每個(gè)A都是一個(gè)新的子樹的根,由此引發(fā)出和整體結(jié)構(gòu)同構(gòu)的子結(jié)構(gòu)蛙吏。
      /| | |\    |\ \
n=4: A B A A B   A B A   

下面我們來看看著名的 Koch snowflake(科赫曲線)是如何用 L-system 生成迭代過程的:

image

L-system 規(guī)則是:F→F+F--F+F源哩。想象一下有一只烏龜??,當(dāng)它接收到指令 F 時(shí)向前走鸦做,接收到指令 + 號就左轉(zhuǎn) 60°励烦,- 號右轉(zhuǎn) 60°:

image

F→F+F--F+F 的意思就是:把每一個(gè)線段 F,用 F' 右轉(zhuǎn) F' 左轉(zhuǎn)再左轉(zhuǎn) F' 右轉(zhuǎn) F' 替代……暈了吧泼诱?00 為你準(zhǔn)備了分解動作示意圖:

使用 L-system 生成圖形圖像時(shí)坛掠,模型中的符號要能引用計(jì)算機(jī)屏幕上的圖形元素。例如,F(xiàn)ractint 程序使用 Turtle graphics(類似于 Logo 編程語言中的圖形)來生成屏幕圖像屉栓。它將 L-system 模型中的每個(gè)常量解釋為海龜命令舷蒲。

在 L-system 的語法中,常用的符號及其含義:

Character        Meaning
   F             Move forward by line length drawing a line
   f             Move forward by line length without drawing a line
   +             Turn left by turning angle
   -             Turn right by turning angle
   |             Reverse direction (ie: turn by 180 degrees)
   [             Push current drawing state onto stack
   ]             Pop current drawing state from the stack
   #             Increment the line width by line width increment
   !             Decrement the line width by line width increment
   @             Draw a dot with line width radius
   {             Open a polygon
   }             Close a polygon and fill it with fill colour
   >             Multiply the line length by the line length scale factor
   <             Divide the line length by the line length scale factor
   &             Swap the meaning of + and -
   (             Decrement turning angle by turning angle increment
   )             Increment turning angle by turning angle increment

L-system 在生成式藝術(shù)中的應(yīng)用

L-system 常被藝術(shù)家用于生成植物形態(tài)或者模擬植物的生長過程友多。

例如牲平,下面的規(guī)則可以生成一株 Fractal plant:

變量 : X F
常量 : + ? [ ]
起始狀態(tài) : X
規(guī)則 : (X → F+[[X]-X]-F[-FX]+X), (F → FF)
角度 : 25°
image

如果 L-system 語法中每個(gè)規(guī)則僅涉及單個(gè)符號而不涉及鄰近符號,則屬于 context-free夷陋。如果規(guī)則不僅取決于單個(gè)符號而且還取決于鄰近符號欠拾,則屬于 context-sensitive L-system。這樣骗绕,不同的規(guī)則可以在不同的上下文中運(yùn)用藐窄。

如果每個(gè)符號對應(yīng)多個(gè) production,并且在每次迭代時(shí)以一定概率隨機(jī)選擇酬土,則它是隨機(jī) L-system(Stochastic L-systems)荆忍。

L-system weed:

axiom = F
F -> FF-[XY]+[XY]
X -> +FY
Y -> -FX
angle = 22.5
image

L-system 已經(jīng)是很成熟的算法,組合不同的規(guī)則撤缴、尺寸刹枉、角度和迭代次數(shù),可以生成變化多樣屈呕、富有美感的生成式圖形微宝。

Christa Sommerer 和 Laurent Mignonneau 研究互動式植物生成過程,采集人在環(huán)境中的移動等數(shù)據(jù)作為參數(shù)虎眨,加入到生成式算法中蟋软。

Interactive Plant Growing - YouTube

image

Jon McCormack 是莫納什大學(xué)的一名藝術(shù)家兼計(jì)算機(jī)科學(xué)教授,他的工作包含了算法創(chuàng)作嗽桩。

他創(chuàng)作的 Fifty Sisters (2012)系列的特色是「未來的植物」岳守,這些植物用代碼通過算法生成。在另一部名為 Eden 的作品中碌冶,他創(chuàng)作了一個(gè)以虛擬生物為主題的裝置作品湿痢。

Bloom 是昆士蘭州 QUT 創(chuàng)意產(chǎn)業(yè)區(qū)委托他制作的一幅 43米 x 9.7米 的數(shù)字圖像。

image

「我認(rèn)為自己是藝術(shù)家」扑庞,McCormack 在談到他的作品時(shí)說譬重。

電腦仍然非常原始——它沒有人類的創(chuàng)造力,但它有能力做一些我們無法做到的事情罐氨。人工智能目前只能給藝術(shù)實(shí)踐帶來有限的視角害幅,它們只能利用所學(xué)到的知識以现,而人類的現(xiàn)實(shí)情況則是非常廣闊的狠怨,并且能夠給藝術(shù)帶來了更深刻的視角佣赖。

McCormack 指出,人工智能本身就可以創(chuàng)造出看起來像藝術(shù)的東西憎蛤,但是能否把它看作藝術(shù)是一個(gè)更難的問題×┟剩「我們對藝術(shù)的看法,很大程度上是人類之間的交流棚辽。一旦把一臺電腦帶進(jìn)這個(gè)情境冰肴,你就會突然發(fā)現(xiàn)一個(gè)非人類的實(shí)體正在努力實(shí)現(xiàn)這個(gè)角色,而這個(gè)角色過去是由人類主導(dǎo)的熙尉×撸」

我們不僅把機(jī)器當(dāng)成一個(gè)工具,更是一個(gè)合作伙伴或合作者检痰,它擁有自己創(chuàng)造的能力包归。McCormack 說:

我們一直認(rèn)為列儂和麥卡特尼是偉大的音樂創(chuàng)作伙伴。我們最終是否會看到一個(gè)轉(zhuǎn)折點(diǎn)铅歼,這個(gè)轉(zhuǎn)折點(diǎn)讓我們承認(rèn)箫踩,人類和計(jì)算機(jī)的伙伴關(guān)系不僅僅是其各部分的總和。

L-system 在建筑設(shè)計(jì)中的應(yīng)用

建筑一直都離不開技術(shù)的影響谭贪。如今電腦技術(shù)已經(jīng)為建筑界帶來了許多改變,但它依然潛力無限锦担,甚至可能徹底動搖建筑界的基礎(chǔ)規(guī)則俭识。

Michael Hansmeyer 是一位建筑師和程序員,他探索使用算法和計(jì)算來生成建筑形式洞渔。受到了細(xì)胞分裂的啟發(fā)套媚,Michael Hansmeyer 寫下了擁有驚人艷麗的造型和無數(shù)刻面的設(shè)計(jì)運(yùn)算法則。沒人能將他們手繪出來磁椒,但它們確實(shí)可以被做出來——它們也可以向常規(guī)的建筑形態(tài)掀起思想狂潮堤瘤。

下面是 Michael Hansmeyer 在 TED 2012 年會上的演講 Building unimaginable shapes:

Michael Hansmeyer:塑造不可思議

L-systems 在音樂中的應(yīng)用

使用 L-system 輔助生成音樂片段的研究由來已久。

Przemyslaw Prusinkiewicz 在 1986 年的論文 Score generation with L-system 中探討了用算法生成樂譜的方法:用 L-system 生成字符符號浆熔,再講符號解析成一系列的音符

The score associated with the Hilbert curv in the common musical notation

隨著技術(shù)的演進(jìn)本辐,生成式音樂、算法作曲越來越成熟,架構(gòu)也越來越復(fù)雜慎皱,L-system 依然被用作規(guī)則和語法生成的方式:

via: Improving L-System Music Rendering Using a Hybrid of Stochastic and Context-Sensitive Grammars in a Visual Language Framework.

Ref


00 的文集

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末老虫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茫多,更是在濱河造成了極大的恐慌祈匙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件天揖,死亡現(xiàn)場離奇詭異夺欲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)今膊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門万细,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腰素,你說我怎么就攤上這事弓千∠灼穑” “怎么了谴餐?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵岂嗓,是天一觀的道長厌殉。 經(jīng)常有香客問我公罕,道長,這世上最難降的妖魔是什么铲汪? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任桥状,我火速辦了婚禮,結(jié)果婚禮上转晰,老公的妹妹穿的比我還像新娘查邢。我一直安慰自己扰藕,他們只是感情好芳撒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布笔刹。 她就那樣靜靜地躺著舌菜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袱瓮。 梳的紋絲不亂的頭發(fā)上尺借,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天燎斩,我揣著相機(jī)與錄音,去河邊找鬼实蔽。 笑死局装,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拨脉。 我是一名探鬼主播玫膀,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼箕昭,長吁一口氣:“原來是場噩夢啊……” “哼落竹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起述召,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锈津,沒想到半個(gè)月后琼梆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茎杂,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年倾哺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了羞海。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片却邓。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腊徙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出螟蝙,到底是詐尸還是另有隱情胰默,我是刑警寧澤初坠,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布碟刺,位于F島的核電站半沽,受9級特大地震影響者填,放射性物質(zhì)發(fā)生泄漏占哟。R本人自食惡果不足惜榨乎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一蜜暑、第九天 我趴在偏房一處隱蔽的房頂上張望肛捍。 院中可真熱鬧之众,春花似錦棺禾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肆良。三九已至逸绎,卻和暖如春棺牧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颊乘。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工浙值, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留开呐,地道東北人筐付。 一個(gè)月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓家妆,卻偏偏與公主長得像伤极,于是被迫代替她去往敵國和親哨坪。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容