《代码本色》作者Daniel Shiffman:艺术家也编程
非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/179855
Daniel Shiffman是紐約大學(xué)Tisch藝術(shù)學(xué)院助理藝術(shù)教授,“代碼本色”便是其主講課程之一。他在耶魯大學(xué)獲得了數(shù)學(xué)與哲學(xué)學(xué)士學(xué)位和交互通訊的碩士學(xué)位。多年來(lái),他一直用Processing這門藝術(shù)家友好型開源語(yǔ)言開發(fā)教程、教學(xué)示例和代碼庫(kù),擁有豐富的算法和應(yīng)用教學(xué)經(jīng)驗(yàn)。他以自己教授的一門名為“計(jì)算媒體導(dǎo)論”的課程內(nèi)容為基礎(chǔ),撰寫了Learning Processing,這本書廣受讀者好評(píng)。Daniel在Kickstarter上集資出版了他的第二本書《代碼本色:用編程模擬自然系統(tǒng)》,他集合了多年開發(fā)和教學(xué)經(jīng)驗(yàn),希望借由此書讓大家真正了解如何用代碼模擬自然現(xiàn)象。
問(wèn):為什么Processing被譽(yù)為是對(duì)藝術(shù)家最友好的語(yǔ)言?和其他語(yǔ)言相比它有什么特點(diǎn)?
Processing是由Casey Reas和Ben Fry創(chuàng)造的,他們因?yàn)楣ぷ骱徒虒W(xué)的原因想要?jiǎng)?chuàng)造這樣一個(gè)工具。Processing是我用著最舒服的編程語(yǔ)言和開發(fā)環(huán)境,我很喜歡用它來(lái)工作。
另外,Processing不僅有全面的繪圖API,也有詳盡的文檔、示例、以及學(xué)習(xí)資源。它是免費(fèi)開源的,并且非常適合初學(xué)者,它的開發(fā)者社區(qū)很活躍。Processing在互動(dòng)裝置和數(shù)據(jù)可視化方面都有很多應(yīng)用。線上展覽https://processing.org/exhibition/是一個(gè)能看到激動(dòng)人心的作品的地方。
對(duì)很多人來(lái)說(shuō),Processing或許是他們學(xué)習(xí)的第一門編程語(yǔ)言。我希望通過(guò)Processing用一種友好的方式闡述模擬自然系統(tǒng)的原理。
問(wèn):Processing似乎比其他模擬軟件要小很多,它的優(yōu)勢(shì)在哪里?Processing為什么可以成功模擬自然系統(tǒng)?
在仿真方面,Processing并沒有什么特別之處。我使用Processing是因?yàn)樗鼘?duì)初學(xué)者很友好,也支持繪圖和動(dòng)畫功能,而且它構(gòu)建在Java之上,可以為交互項(xiàng)目帶來(lái)更多的可擴(kuò)展性。
問(wèn):《代碼本色:用編程模擬自然系統(tǒng)》這本書是怎么來(lái)的?
我在ITP教授一門名為“計(jì)算媒體導(dǎo)論”的課。在這門課中,學(xué)生主要學(xué)習(xí)一些編程基礎(chǔ)知識(shí)(變量、條件語(yǔ)句、循環(huán)、對(duì)象和數(shù)組等)。除此之外,他們還學(xué)習(xí)如何使用基本元素(圖像、像素、計(jì)算機(jī)視覺、組網(wǎng)、數(shù)據(jù)和3D等)開發(fā)交互式應(yīng)用。課程內(nèi)容以我之前寫的入門書Learning Processing為主,而本書是Learning Processing的續(xù)篇。一旦你掌握了編程基礎(chǔ)并且接觸了形形色色的應(yīng)用場(chǎng)景,接下來(lái)很可能就是深入研究某個(gè)特定的方向。舉個(gè)例子,你可以專注于計(jì)算機(jī)視覺(比如閱讀Greg Borenstein寫的Making Things See等書)。當(dāng)然,本書的內(nèi)容只是眾多發(fā)展方向之一,它只是延續(xù)了Learning Processing,展示了Processing語(yǔ)言在算法和模擬方面的更高級(jí)編程技術(shù)。
問(wèn):當(dāng)你在KickStarter上為《代碼本色》募集資金的時(shí)候,有沒有發(fā)生什么有趣的事?
對(duì)于我來(lái)說(shuō),這是一次很好的體驗(yàn)。有觀眾在等待這本書并且愿意為早期草稿提供寶貴意見,我真是受寵若驚。這樣的過(guò)程也推進(jìn)了整個(gè)撰寫的進(jìn)程。
問(wèn):前面提到Processing是一種對(duì)藝術(shù)家很友好的語(yǔ)言,那么《代碼本色》是一本關(guān)于藝術(shù)和設(shè)計(jì)的書嗎?
不是。盡管我們的工作結(jié)果都是視覺上可見的事物(用Processing開發(fā)的演示動(dòng)畫),但也僅僅是用簡(jiǎn)單的圖形和色彩做出的演示,我們真正專注的是它們背后的算法和相關(guān)編程技術(shù)。然而,我還是希望藝術(shù)工作者和設(shè)計(jì)師們能將本書中的知識(shí)融入工作實(shí)踐,創(chuàng)造一些真正新穎有趣的作品。
問(wèn):自然系統(tǒng)設(shè)計(jì)是否可以為游戲設(shè)計(jì)提供靈感?這兩者之間有哪些共通之處?
最明顯的聯(lián)系就在于物理模擬。很多游戲創(chuàng)造的場(chǎng)景都是現(xiàn)實(shí)物理世界的反映,模擬技術(shù)的應(yīng)用很廣泛。
在《代碼本色》中我們會(huì)涉及物理學(xué)和生物學(xué)的個(gè)別話題,但不會(huì)從嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)層面進(jìn)行研究。相反,我們會(huì)簡(jiǎn)單探討某些科學(xué)原理,只攫取我們需要的那一部分內(nèi)容,并根據(jù)它們構(gòu)建相關(guān)的示例程序。
問(wèn):寫作《代碼本色》中的示例代碼是否需要數(shù)學(xué)知識(shí)?閱讀這本書之前需要掌握什么樣的基礎(chǔ)知識(shí)?
我盡力讓這本書對(duì)初學(xué)者更友好,盡可能減少對(duì)數(shù)學(xué)預(yù)備知識(shí)的要求。讀者只要對(duì)代數(shù)有一個(gè)基本的理解就足夠了。在這本書中,我從零開始講解了向量以及其他數(shù)學(xué)問(wèn)題。
讀懂本書的前提條件是:你上過(guò)一學(xué)期的Processing編程課(并且熟悉面向?qū)ο缶幊?#xff09;。這并不是說(shuō)如果你學(xué)的是其他語(yǔ)言和開發(fā)環(huán)境就讀不懂本書,關(guān)鍵是你必須學(xué)過(guò)編程。
問(wèn):越來(lái)越多的人開始對(duì)Processing感興趣,一些有編程經(jīng)驗(yàn)的人急切地想改變Processing的開發(fā)環(huán)境。對(duì)于他們你有什么樣的建議?
你可以在https://github.com/processing/processingand或http://forum.processing.org/two/上分享你的項(xiàng)目,答案,或者問(wèn)問(wèn)題,歡迎大家為Processing的開發(fā)出力!
問(wèn):計(jì)算機(jī)的創(chuàng)造力是獨(dú)立的嗎?計(jì)算機(jī)藝術(shù)作品的作者是程序員還是程序?
這是個(gè)很棒的問(wèn)題,這也是之所以程序生成藝術(shù)是一個(gè)有趣話題的重要原因。我認(rèn)為這個(gè)問(wèn)題最終不是關(guān)于計(jì)算機(jī)的。Sol LeWitt(美國(guó)藝術(shù)家,藝術(shù)研究上包括概念藝術(shù)和極少主義)的作品創(chuàng)作過(guò)程就是他寫下規(guī)則,然后由其他人動(dòng)手完成。這里面誰(shuí)是藝術(shù)家?什么是藝術(shù)?有獨(dú)特創(chuàng)造力的計(jì)算機(jī)還不存在,至少我沒有見過(guò),但是很多藝術(shù)家都在這個(gè)方向上努力。Heather Dewey Hagborg的作品“驚奇的記憶(Suprious Memories)”探討的就是這個(gè)問(wèn)題。http://www.deweyhagborg.com/spurious/
問(wèn):計(jì)算機(jī)真的為藝術(shù)帶來(lái)了新的聲音嗎?我們對(duì)于藝術(shù)和創(chuàng)造力的理解是否因?yàn)榭萍级淖?#xff1f;
我認(rèn)為計(jì)算機(jī)確實(shí)為藝術(shù)帶來(lái)了新的血液。最明顯的一點(diǎn)莫過(guò)于速度和自動(dòng)化。我相信如果有些藝術(shù)家不是因?yàn)樽约汉涂萍加兄鴺O其親密的關(guān)系,他們可能就不會(huì)在創(chuàng)造藝術(shù)作品上找到自己的熱情和天賦。一般來(lái)說(shuō),我們認(rèn)為編程是為了完成一個(gè)特定概念而執(zhí)行計(jì)劃的過(guò)程。但是我對(duì)“意識(shí)流”編程很感興趣——在你編程的時(shí)候讓精神游蕩,是否會(huì)發(fā)現(xiàn)嶄新的想法和算法呢?
更多精彩,加入圖靈訪談微信!
總結(jié)
以上是生活随笔為你收集整理的《代码本色》作者Daniel Shiffman:艺术家也编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ORACLE SEQUENCE 介绍
- 下一篇: proc_open 命令包含“有小问题