Processing是一款专为设计师和艺术家使用的编程语言,由美国麻省理工学院媒体实验室美学与运算小组的Casey Reas与Ben Fry创立。它的出现被视为艺术设计创作的一场革命,利用Processing,艺术家可以将抽象的数据呈现为生动的视觉形象,不仅可以生成唯美的图形,还能编写出功能强大的互动艺术作品。
功能

提供编程环境:Processing是一门开源编程语言,提供了对图片、动画和声音进行编程的环境,学生、艺术家、设计师、建筑师、研究人员和业余爱好者可以使用它进行学习、制作原型以及作为生产工具。可以通过视觉化的界面学习计算机编程的基础知识,或者作为软件速写本以及专业化的生产工具。
支持多种语言:支持JAVA、JavaScript、Python等语言。
擅长算法动画和即时交互反馈:在交互动画、复杂数据可视化、视觉设计、原型开发和制作方向有广泛应用。
特色

用数字来设计(Design By Numbers):独创的程序设计方法,简单地写一行代码,就会在屏幕上生成一个图形,再增加一些代码,图形就能根据鼠标的动作发生变化。这些代码称之为草稿(Sketch),草稿化(Sketching)是一种思维方式,有趣而便捷,可以让人在短时间内探索出很多想法。
代码简洁但功能强大:是Java语言的延伸,支持许多现有的Java语言架构,不过在语法上简易许多,并具有许多贴心及人性化的设计。无需太高深的编程技术,便可创作出漂亮的图形以及媒体交互作品。支持3D图形,有P3D和OpenGL两种渲染模式,默认运行在2D模式,使用3D模式需要在size函数中的第3个参数指定渲染模式,形如size(w, h, P3D)或size(w, h, OPENGL),其中P3D是Processing内置的,而OpenGL则以库的形式存在。采用“库”的形式实现功能方面的拓展,除了核心库外,还有上百个非官方的库在Processing网站上,这些库拓展了在音频、视频、网络和串口等方面的功能,甚至进入了计算机视觉处理、虚拟现实和电子装配(Fabrication)等领域,能够任意读写很多种类的信息。
与物理世界的互动:Arduino是其姐妹项目,拥有共同的编程环境和类似的语法。Processing的范例中提供了一些和Arduino通讯的互动作品,可以读取Arduino的传感器数据,然后把这些数据呈现在屏幕上,这种通信是相互的,也可以用Processing程序作为操作界面,控制电机、扬声器、灯光和相机等设备,其他支持串行通讯的设备也都可以和Processing互动。
跨平台:项目是Java开发的,天生具有跨平台的特点,同时支持Linux、Windows以及Mac OSX三大平台,并且支持将图像导出成各种格式。
支持安卓系统:同样的代码可以输出不同格式的文件,在不同设备和环境中使用。并且因为开源而拥有大量资源。
同类软件对比
| 软件名称 | 优点 | 缺点 |
| Processing | 上手快,适合抽象小体量二三维视觉,适合简单交互;第三方函数库(功能扩展包)特别多;有大量教程和资源支持,适合初学者入门 | 执行效率低(因为底层是Java虚拟机),比如同样的Processing代码(没有GLSL和JOGL代码插入混用的情况下),Macbook Pro上和Mac Pro上跑起来没什么大区别 |
| OPENRNDR | 相比较Processing,性能提升犹如翻身农奴当家做主,有种CPU摸了润滑油的错觉 | 第三方库比较少,想要用Processing那些库,就得折腾一番了 |
| P5js | 适合Processing背景的人平滑过度 | 性能低下,不方便和其他前端框架协作,对于找工作没帮助。不像Processing有大量第三方函数库,对于做艺术,也很鸡肋 |
| Openframeworks | 执行效率很高,第三方addon(of的函数库)特别多 | 文档不全要靠阅读源代码或者靠猜,效率虽高但是具象视觉也很麻烦,源代码写的很烂,用起来很多时候还要操心C++指针问题,容易晕头转向 |
| Cinder | 硬核版Openframeworks,源代码写的挺优美 | 第三方函数库少,文档更加不全 |
| GLSL | 面向过程的着色器编程语言,效率是很高 | 从创作角度说,是田园诗人的浪漫,但是没什么创作效率可言 |
| vvvv | 一个德国公司为了做交互展览展示项目而开发的内部工具,后来索性免费开放给业界使用 | 无明显缺点,但在国内使用较少,相关资料也较少 |
使用说明
编写代码:Processing提供了一个桌面应用程序,用户可以通过这个应用程序编写、测试和运行Processing代码。这个环境是跨平台的,支持Windows、Mac OS X和Linux操作系统。Processing的开发环境相对简单,它包含了一个代码编辑器、一个消息窗口和一个用于显示输出的画布。
运行程序:与传统软件不同,Processing不需要安装。下载的是一个压缩包,解压之后,便可直接运行文件夹中的“processing”程序运行它。对于Processing,输出程序命令将按你的选择创建Mac、Windows和/或Linux的应用。这是创建工程的能窗口或者全屏运行、自我打包、可双击运行程序版本的简单方法。
安装步骤
1. 下载:在官网下载适合自己操作系统版本的Processing软件。
2. 安装(以Windows为例):
下载完成后,得到一个压缩包,解压该压缩包。
进入解压后的文件夹,找到“processing.exe”文件,双击打开软件,即可开始使用。
3. 安装(以Mac为例):
下载完成后,得到一个压缩包,解压该压缩包。
将“Processing”图标拖到“Applications”文件夹中。
双击“Applications”文件夹中的“Processing”图标,打开软件,即可开始使用。
相关应用
数据可视化:被广泛用于数据可视化,因为它可以轻松地生成各种图表和图形。通过使用Processing,可以将数据转化为有意义的视觉形式,从而更好地理解和分析数据。
交互式艺术:也被广泛应用于交互式艺术的创作。使用Processing,艺术家可以创建各种动态、交互式的艺术作品,让观众能够与作品进行互动,带来全新的艺术体验。
动态设计:在设计和创意领域,可以帮助设计师创建动态、交互式的设计原型。通过Processing,设计师可以快速地测试和迭代不同的设计方案,从而更好地实现创意。
创意编程教育:被广泛应用于创意编程教育领域。它的语法简单易懂,适合初学者入门,同时也有丰富的教程和资源支持,可以帮助人们更好地学习和掌握编程技能。
实时图像处理:还可以用于实时图像处理。通过使用Processing,开发者可以轻松地对图像进行各种变换和处理,例如滤镜、色彩调整等,从而创造出独特的视觉效果。
跨平台部署:Processing应用程序可以在多个操作系统上运行,包括Windows、Mac OS和Linux等。这意味着开发者可以编写一次代码,然后在多个平台上部署应用程序,提高了开发效率和灵活性。
强大的社区支持:有一个非常活跃的社区,提供了大量的教程、示例和资源支持。这意味着开发者可以轻松地找到解决问题的方法和灵感,同时也能够与其他开发者进行交流和学习。