用户工具

站点工具


侧边栏

arts:creative_design:creative_coding

创意编程

创意编码是一种计算机编程,其目标是创造表达而不是功能的东西。它用于创建实时视觉和VJing,以及创建视觉艺术和设计,娱乐,艺术装置,投影和投影映射,声音艺术,广告,产品原型等等。

在入门创意编程(Creative Coding)方面,国内大多数教程以Scratch为主,其次较少涉及乐高EV3机器人等。Python、Processing和openFrameworks作为创意编程的进阶语言,具有显著优势;而且Python还可以作为Processing的替代编程接口。

Python

基于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

  • Publisher: Quarry Books
  • Creative Coding in Python: 30+ Programming Projects in Art, Games, and More
  • ISBN-13: 978-1631595813

Python中的创意编码提供了30多个创意项目,可以教孩子如何使用简单直观的编程语言Python进行编码。网站creativecodinginpython.com提供示例课程。

Processing

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

关键代码

利用carbon.now.sh中显示,.pde是Processing的源文件。

官方图书推荐

Processing入门 - Make: Getting Started with Processing, Second Edition

  • by Casey Reas and Ben Fry.
  • Published September 2015, Maker Media. 238 pages. Paperback.
  • Order Print/EBook from O'Reilly or Amazon.com

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:

  • Quickly learn programming basics, from variables to objects
  • Understand the fundamentals of computer graphics
  • Get acquainted with the Processing software development environment
  • Create interactive graphics with easy-to-follow projects
  • Use the Arduino open source prototyping platform to control your Processing graphics

Processing: A Programming Handbook for Visual Designers,Second Edition

  • by Casey Reas and Ben Fry.
  • Published December 2014, The MIT Press. 720 pages. Hardcover.
  • Order from MIT Press or Amazon

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

  • by Ira Greenberg
  • ISBN-13: 978-1430244646
  • Publisher: Apress; 2nd ed. edition (April 2, 2013)

本书汇集了数字艺术和计算机科学教室中一些最引人入胜和成功的方法。教您如何使用有趣且富有创意的方法进行编程。使用Processing 2.0语言。

基于 Java 的 Processing 语言的家谱中,还有对应 JavaScript 和 Python 版本,即:P5.js和Processing.py。随着包括JavaScript、 Python和Ruby在内的替代编程接口的逐步添加,越来越清楚的是,Processing不是一种语言,而是一种以艺术为导向的方法来学习,教学和使用代码制作事物。

P5.js

p5.js(https://p5js.org/)这个JavaScript库设计之初就与Processing有着共同的目标:让艺术家、设计师、教育工作者和初学者等都能够进行编码,并且是为现代web重新打造。它有着完整的一套绘图功能,但并不意味着仅限于绘图画布。事实上,你可以把整个浏览器都当成你的“画布”,利用插件库你可以很方便地与其他html5元素(如文本,输入框,视频,摄像头和音频)进行交互。

P5.js的使用

下载p5.js库文件,并在页面中引入p5.js 文件即可:

<script src="../p5.js"></script>

如使用压缩版本,则引入

<script src="../p5.min.js"></script>

p5.js学习资源

  • Getting Started with p5.js
  • Lauren McCarthy, Casey Reas, and Ben Fry
  • Published October 2015, Maker Media. 246 pages.

本书由领先的p5.js开发人员和Processing的创始人共同撰写,介绍了使用JavaScript和HTML的当今Web的创新可能性。

Processing.py

Processing.py项目于2014年4月独立实施,以实现在Python中编写Processing代码。目前可用资源较少。

在Processing中安装python模式:

菜单栏→工具→添加工具→Mode→PythonMode

openFrameworks

另一门创意编程的主流工具是 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)。

特征

主要有以下特征:

  • 通过编码来制作图像和动画。
  • 免费使用
  • 以C++为基准的语法,但即使没有高深的 C++ 知识也能写出有难度的代码。
  • 包含 openGL(图形)、rtAudio(声音)、freeType(字体)、freeImage(图像)、quicktime(动画播放)和 sequence grabbing等库。

更多常用的库包括:

  • OpenGL、GLEW、GLUT、libtess2和cairo用于图形
  • rtAudio、PortAudio、OpenAL和Kiss FFT或FMOD用于音频输入,输出和分析
  • FreeType字体
  • FreeImage用于图像保存和加载
  • Quicktime、GStreamer和videoInput用于视频播放和抓取
  • Poco适用于各种公用事业
  • OpenCV用于计算机视觉
  • Assimp用于3D模型加载

IDE

基于windows版本的of开发,可用两个IDE实现,分别是vision studio 和 code:block。

以下是针对希望在Windows上使用Visual Studio的用户的设置说明。

  • 下载Visual Studio
  • 安装Visual Studio
  • 安装适用于Visual C ++的通用工具:在“文件”>“新建”>“项目”中“已安装的模板”部分中选择“ Visual C ++”。
  • 安装openFrameworks插件:在“工具”>“扩展和更新”中选择在线搜索openFrameworks并安装插件。

或者下载和安装Visual Studio后:

  • 直接下载openFrameworks:https://openframeworks.cc/download/
  • 在Visual Studio中打开openFrameworks > example下的任何一个工程,开户后缀名 worksapce的文件。
arts/creative_design/creative_coding.txt · 最后更改: 2019/11/18 11:26 (外部编辑)