《代碼本色》做者Daniel Shiffman:藝術家也編程

非商業轉載請註明做譯者、出處,並保留本文的原始連接:http://www.ituring.com.cn/article/179855git

Daniel Shiffman是紐約大學Tisch藝術學院助理藝術教授,「代碼本色」即是其主講課程之一。他在耶魯大學得到了數學與哲學學士學位和交互通信的碩士學位。多年來,他一直用Processing這門藝術家友好型開源語言開發教程、教學示例和代碼庫,擁有豐富的算法和應用教學經驗。他以本身教授的一門名爲「計算媒體導論」的課程內容爲基礎,撰寫了Learning Processing,這本書廣受讀者好評。Daniel在Kickstarter上集資出版了他的第二本書《代碼本色:用編程模擬天然系統》,他集合了多年開發和教學經驗,但願藉由此書讓你們真正瞭解如何用代碼模擬天然現象。程序員

圖片描述

問:爲何Processing被譽爲是對藝術家最友好的語言?和其餘語言相比它有什麼特色?github

Processing是由Casey Reas和Ben Fry創造的,他們由於工做和教學的緣由想要創造這樣一個工具。Processing是我用着最舒服的編程語言和開發環境,我很喜歡用它來工做。算法

另外,Processing不只有全面的繪圖API,也有詳盡的文檔、示例、以及學習資源。它是免費開源的,而且很是適合初學者,它的開發者社區很活躍。Processing在互動裝置和數據可視化方面都有不少應用。線上展覽https://processing.org/exhibition/是一個能看到激動人心的做品的地方。編程

對不少人來講,Processing或許是他們學習的第一門編程語言。我但願經過Processing用一種友好的方式闡述模擬天然系統的原理。數組

問:Processing彷佛比其餘模擬軟件要小不少,它的優點在哪裏?Processing爲何能夠成功模擬天然系統?微信

在仿真方面,Processing並無什麼特別之處。我使用Processing是由於它對初學者很友好,也支持繪圖和動畫功能,並且它構建在Java之上,能夠爲交互項目帶來更多的可擴展性。編程語言

問:《代碼本色:用編程模擬天然系統》這本書是怎麼來的?工具

我在ITP教授一門名爲「計算媒體導論」的課。在這門課中,學生主要學習一些編程基礎知識(變量、條件語句、循環、對象和數組等)。除此以外,他們還學習如何使用基本元素(圖像、像素、計算機視覺、組網、數據和3D等)開發交互式應用。課程內容以我以前寫的入門書Learning Processing爲主,而本書是Learning Processing的續篇。一旦你掌握了編程基礎而且接觸了形形色色的應用場景,接下來極可能就是深刻研究某個特定的方向。舉個例子,你能夠專一於計算機視覺(好比閱讀Greg Borenstein寫的Making Things See等書)。固然,本書的內容只是衆多發展方向之一,它只是延續了Learning Processing,展現了Processing語言在算法和模擬方面的更高級編程技術。學習

問:當你在KickStarter上爲《代碼本色》募集資金的時候,有沒有發生什麼有趣的事?

對於我來講,這是一次很好的體驗。有觀衆在等待這本書而且願意爲早期草稿提供寶貴意見,我真是受寵若驚。這樣的過程也推動了整個撰寫的進程。

問:前面提到Processing是一種對藝術家很友好的語言,那麼《代碼本色》是一本關於藝術和設計的書嗎?

不是。儘管咱們的工做結果都是視覺上可見的事物(用Processing開發的演示動畫),但也僅僅是用簡單的圖形和色彩作出的演示,咱們真正專一的是它們背後的算法和相關編程技術。然而,我仍是但願藝術工做者和設計師們能將本書中的知識融入工做實踐,創造一些真正新穎有趣的做品。

問:天然系統設計是否能夠爲遊戲設計提供靈感?這二者之間有哪些共通之處?

最明顯的聯繫就在於物理模擬。不少遊戲創造的場景都是現實物理世界的反映,模擬技術的應用很普遍。

《代碼本色》中咱們會涉及物理學和生物學的個別話題,但不會從嚴謹的學術層面進行研究。相反,咱們會簡單探討某些科學原理,只攫取咱們須要的那一部份內容,並根據它們構建相關的示例程序。

問:寫做《代碼本色》中的示例代碼是否須要數學知識?閱讀這本書以前須要掌握什麼樣的基礎知識?

我盡力讓這本書對初學者更友好,儘量減小對數學預備知識的要求。讀者只要對代數有一個基本的理解就足夠了。在這本書中,我從零開始講解了向量以及其餘數學問題。

讀懂本書的前提條件是:你上過一學期的Processing編程課(而且熟悉面向對象編程)。這並非說若是你學的是其餘語言和開發環境就讀不懂本書,關鍵是你必須學過編程。

問:愈來愈多的人開始對Processing感興趣,一些有編程經驗的人急切地想改變Processing的開發環境。對於他們你有什麼樣的建議?

你能夠在https://github.com/processing/processingandhttp://forum.processing.org/two/上分享你的項目,答案,或者問問題,歡迎你們爲Processing的開發出力!

問:計算機的創造力是獨立的嗎?計算機藝術做品的做者是程序員仍是程序?

這是個很棒的問題,這也是之因此程序生成藝術是一個有趣話題的重要緣由。我認爲這個問題最終不是關於計算機的。Sol LeWitt(美國藝術家,藝術研究上包括概念藝術和極少主義)的做品創做過程就是他寫下規則,而後由其餘人動手完成。這裏面誰是藝術家?什麼是藝術?有獨特創造力的計算機還不存在,至少我沒有見過,可是不少藝術家都在這個方向上努力。Heather Dewey Hagborg的做品「驚奇的記憶(Suprious Memories)」探討的就是這個問題。http://www.deweyhagborg.com/spurious/

問:計算機真的爲藝術帶來了新的聲音嗎?咱們對於藝術和創造力的理解是否由於科技而改變?

我認爲計算機確實爲藝術帶來了新的血液。最明顯的一點莫過於速度和自動化。我相信若是有些藝術家不是由於本身和科技有着極其親密的關係,他們可能就不會在創造藝術做品上找到本身的熱情和天賦。通常來講,咱們認爲編程是爲了完成一個特定概念而執行計劃的過程。可是我對「意識流」編程很感興趣——在你編程的時候讓精神遊蕩,是否會發現嶄新的想法和算法呢?


更多精彩,加入圖靈訪談微信!

圖片描述

相關文章
相關標籤/搜索