Slide 1

Slide 1 text

A Means to Interact A Guided Tour of Arts Programming Platforms Becky Stewart [email protected] @theleadingzero @codasign_ http://codasign.com

Slide 2

Slide 2 text

Arts Programming Frameworks Example Mac OS Desktop Application in • Processing • openFrameworks • Cinder • processing.py

Slide 3

Slide 3 text

Slides at: http://speakerdeck.com/u/theleadingzero/p/a-means-to-interact Code at: https://github.com/Codasign/guided-tour

Slide 4

Slide 4 text

Arts Programming Frameworks

Slide 5

Slide 5 text

openFrameworks Cinder processing.py di!culty of framework community support Processing

Slide 6

Slide 6 text

openFrameworks Cinder processing.py di!culty of framework community support Processing Best place to start. Everything packaged together. Still very powerful!

Slide 7

Slide 7 text

openFrameworks Cinder processing.py di!culty of framework community support Processing Big jump in language. Stable platform with strong community. For when the power of C++ is needed.

Slide 8

Slide 8 text

openFrameworks Cinder processing.py di!culty of framework community support Processing Definitely need to be a confident coder. Fewer compromises than oF as it doesn’t try be fully cross-platform. Targeted at Mac OSes.

Slide 9

Slide 9 text

openFrameworks Cinder processing.py di!culty of framework community support Processing New kid on the block. Not really a community or a lot of support yet. Python is incredibly friendly to those just starting out.

Slide 10

Slide 10 text

How are these platforms similar?

Slide 11

Slide 11 text

Native window handling

Slide 12

Slide 12 text

Native graphics and image handling

Slide 13

Slide 13 text

Simple and direct access to mouse and keyboard input

Slide 14

Slide 14 text

void setup() void draw()

Slide 15

Slide 15 text

void setup() void draw() Do things that happen only once, when the program begins.

Slide 16

Slide 16 text

Do things that happen repeatedly, at the frame rate of the program. void setup() void draw()

Slide 17

Slide 17 text

Processing

Slide 18

Slide 18 text

Get it from: http://processing.org Language: Java OS: Mac, Windows, GNU/Linux, Android IDE: Own and Eclipse License: LGPL Since: 2001

Slide 19

Slide 19 text

Live coding demo https://github.com/Codasign/guided-tour/processingExample

Slide 20

Slide 20 text

openFrameworks

Slide 21

Slide 21 text

Get it from: http://openframeworks.cc Language: C++ OS: Mac, Windows, GNU/Linux, iOS, Android IDE: XCode, Eclipse, Code::Blocks, Visual Studio License: MIT License Since: April 2008 first commit on github

Slide 22

Slide 22 text

Live coding demo https://github.com/Codasign/guided-tour/oFExample

Slide 23

Slide 23 text

Cinder

Slide 24

Slide 24 text

Get it from: http://libcinder.org/ Language: C++ OS: Mac, Windows, iOS IDE: XCode, Visual Studio License: Simplified BSD Since: April 2010 first commit on github

Slide 25

Slide 25 text

Live coding demo https://github.com/Codasign/guided-tour/cinderExample

Slide 26

Slide 26 text

processing.py

Slide 27

Slide 27 text

Get it from: https://github.com/jdf/processing.py Language: Python (Jython) OS: Mac, Windows, iOS IDE: no specified IDE License: Apache 2.0 Since: July 2010 first commit on github

Slide 28

Slide 28 text

Live coding demo https://github.com/Codasign/guided-tour/processingpyExample

Slide 29

Slide 29 text

Wrap-Up

Slide 30

Slide 30 text

There are di"erences in the platforms and libraries! Full screen Color modes Background refreshing ...

Slide 31

Slide 31 text

Processing All the frustrations that come with Java Really stable, supportive community Works out of the box, with no nonsense IDE IDE becomes quickly limiting, but can move to Eclipse From an educational standpoint can be inhibiting as hides away a lot of programming concepts (that every Processing instance is an extension of a base class PApplet)

Slide 32

Slide 32 text

openFrameworks All the power and problems of C++ http://wiki.openframeworks.cc/index.php?title=OF_for_Processing_users Really stable, supportive community Have to deal with an IDE like XCode Nothing is binary means long compile times and that correct file structure is essential Pet peeve is calling everything testApp.cpp and testApp.h - descriptive class and file names are your friend!

Slide 33

Slide 33 text

Cinder Again, all the power and problems of C++ C++ in your face Much smaller community Less thorough documentation Great for Mac

Slide 34

Slide 34 text

processing.py Python <3 Basically no community No all-in-one IDE But it’s Python!

Slide 35

Slide 35 text

Arts programming platforms ...vary in noob-appeal. ...have similar functionality. ...intended for (cross-platform) interactive applications. Lots of options and resources available.

Slide 36

Slide 36 text

Becky Stewart [email protected] @theleadingzero @codasign_ http://codasign.com