创意编码是一种计算机编程,其目标是创造表达而不是功能的东西。它用于创建实时视觉和VJing,以及创建视觉艺术和设计,娱乐,艺术装置,投影和投影映射,声音艺术,广告,产品原型等等。
在入门创意编程(Creative Coding)方面,国内大多数教程以Scratch为主,其次较少涉及乐高EV3机器人等。Python、Processing和openFrameworks作为创意编程的进阶语言,具有显著优势;而且Python还可以作为Processing的替代编程接口。
基于Python的创意编程多使用Turtle,如在以下项目Creative Coding in Python(https://www.creativecodinginpython.com/)中,并最终将创意项目使用micro:bit或Raspberry Pi将Python扩展到物理计算。
Creative Coding in Python: 30+ Programming Projects in Art, Games, and More
Python中的创意编码提供了30多个创意项目,可以教孩子如何使用简单直观的编程语言Python进行编码。网站creativecodinginpython.com提供示例课程。
Processing是一种基于Java的开源编程语言,支持JavaScript, python、Ruby等替代编程接口。专门为电子艺术和视觉交互设计而创建,其目的是通过可视化的方式辅助编程教学,并在此基础之上表达数字创意。Processing也指Processing语言的集成开发环境(IDE)。
2001年,MIT媒体实验室的 Casey Reas 和 Benjamin Fry 发起了此计划。其固定目标之一便是作为一个有效的工具,通过激励性的可视化反馈帮助非程序员进行编程的入门学习。Processing语言建立在Java语言的基础之上,但使用简化的语法和图形编程模型。http://www.processing.org/
AwardPuzzel是一个全国美展油画类获奖画作的数据视觉化作品,收录了美展第六届至第十二届的2276幅获奖作品,通过动态交互的方式呈现了中国油画30年间的艺术历程、形态、色彩、尺寸和地区之间的变化和关系以及中国油画大师们的艺术思路。
创意技术专家Raven Kwok建议的初学者学习资源Processing Text Tutorials (官网下的教程https://processing.org/tutorials/)和学习路线图(http://ravenkwok.com/getting-started-with-creative-programming/):
Getting Started → Processing Overview → Coordinate System and Shapes → Curves → Interactivity → Array (到Array of Objects 暂停) → Objects → Array (从Array of Objects 继续) → PVector → Print → Color → Two-dimensional Arrays → Image & Pixels → Video
This casual book is a concise introduction to Processing and interactive computer graphics. Written by the founders of Processing, it takes you through the learning process one step at a time to help you grasp core programming concepts. You'll learn how to sketch with code – creating a program with a few lines of code, observing the result, and then adding to it. It was written to help reader:
The second edition of the Handbook has been thoroughly updated, influenced by the seven years of Processing being taught in classrooms, computer labs, and studios since the first edition. Every chapter has been revised, and added chapters introduce new ways to work with data and geometry. New “synthesis” chapters offer discussion and worked examples of such topics as sketching with code, modularity, and algorithms. Interviews have been added that cover a wider range of projects and history. “Extension” chapters are now offered online so they can be updated to keep pace with technological developments in such fields as computer vision and electronics.
If you are an educator, you can request a desk/exam copy from the MIT Press website.
Processing: Creative Coding and Generative Art in Processing 2
本书汇集了数字艺术和计算机科学教室中一些最引人入胜和成功的方法。教您如何使用有趣且富有创意的方法进行编程。使用Processing 2.0语言。
基于 Java 的 Processing 语言的家谱中,还有对应 JavaScript 和 Python 版本,即:P5.js和Processing.py。随着包括JavaScript、 Python和Ruby在内的替代编程接口的逐步添加,越来越清楚的是,Processing不是一种语言,而是一种以艺术为导向的方法来学习,教学和使用代码制作事物。
p5.js(https://p5js.org/)这个JavaScript库设计之初就与Processing有着共同的目标:让艺术家、设计师、教育工作者和初学者等都能够进行编码,并且是为现代web重新打造。它有着完整的一套绘图功能,但并不意味着仅限于绘图画布。事实上,你可以把整个浏览器都当成你的“画布”,利用插件库你可以很方便地与其他html5元素(如文本,输入框,视频,摄像头和音频)进行交互。
下载p5.js库文件,并在页面中引入p5.js 文件即可:
<script src="../p5.js"></script>
如使用压缩版本,则引入
<script src="../p5.min.js"></script>
本书由领先的p5.js开发人员和Processing的创始人共同撰写,介绍了使用JavaScript和HTML的当今Web的创新可能性。
Processing.py项目于2014年4月独立实施,以实现在Python中编写Processing代码。目前可用资源较少。
在Processing中安装python模式:
菜单栏→工具→添加工具→Mode→PythonMode
另一门创意编程的主流工具是 openFrameworks。
openFrameworks(https://openframeworks.cc/)是由Zachary Lieberman、Theo Watson和Arturo Castro创建的,用于“创意编码”的开源工具包。 OpenFrameworks是C++为基准的简洁开发框架,并基于OpenGL构建,擅长开发图像和动画。支持五个操作系统(Windows,OSX,Linux,iOS,Android)和四个IDE(XCode,Code :: Blocks以及Visual Studio和Eclipse)。
主要有以下特征:
更多常用的库包括:
基于windows版本的of开发,可用两个IDE实现,分别是vision studio 和 code:block。
以下是针对希望在Windows上使用Visual Studio的用户的设置说明。
或者下载和安装Visual Studio后: