《代码本色》做者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/

问:计算机真的为艺术带来了新的声音吗?咱们对于艺术和创造力的理解是否由于科技而改变?

我认为计算机确实为艺术带来了新的血液。最明显的一点莫过于速度和自动化。我相信若是有些艺术家不是由于本身和科技有着极其亲密的关系,他们可能就不会在创造艺术做品上找到本身的热情和天赋。通常来讲,咱们认为编程是为了完成一个特定概念而执行计划的过程。可是我对“意识流”编程很感兴趣——在你编程的时候让精神游荡,是否会发现崭新的想法和算法呢?


更多精彩,加入图灵访谈微信!

图片描述

相关文章
相关标签/搜索