A Means to Interact

A Means to Interact

A guided (brief) tour of the arts programming platforms Processing, openFrameworks, Cinder, and processing.py. Accompanying code at https://github.com/Codasign/guided-tour

Ec736feda4fde63cc72673f64f44406e?s=128

Becky Stewart

April 28, 2012
Tweet

Transcript

  1. A Means to Interact A Guided Tour of Arts Programming

    Platforms Becky Stewart becky@codasign.com @theleadingzero @codasign_ http://codasign.com
  2. Arts Programming Frameworks Example Mac OS Desktop Application in •

    Processing • openFrameworks • Cinder • processing.py
  3. Slides at: http://speakerdeck.com/u/theleadingzero/p/a-means-to-interact Code at: https://github.com/Codasign/guided-tour

  4. Arts Programming Frameworks

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

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

    place to start. Everything packaged together. Still very powerful!
  7. 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.
  8. 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.
  9. 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.
  10. How are these platforms similar?

  11. Native window handling

  12. Native graphics and image handling

  13. Simple and direct access to mouse and keyboard input

  14. void setup() void draw()

  15. void setup() void draw() Do things that happen only once,

    when the program begins.
  16. Do things that happen repeatedly, at the frame rate of

    the program. void setup() void draw()
  17. Processing

  18. Get it from: http://processing.org Language: Java OS: Mac, Windows, GNU/Linux,

    Android IDE: Own and Eclipse License: LGPL Since: 2001
  19. Live coding demo https://github.com/Codasign/guided-tour/processingExample

  20. openFrameworks

  21. 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
  22. Live coding demo https://github.com/Codasign/guided-tour/oFExample

  23. Cinder

  24. 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
  25. Live coding demo https://github.com/Codasign/guided-tour/cinderExample

  26. processing.py

  27. 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
  28. Live coding demo https://github.com/Codasign/guided-tour/processingpyExample

  29. Wrap-Up

  30. There are di"erences in the platforms and libraries! Full screen

    Color modes Background refreshing ...
  31. 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)
  32. 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!
  33. Cinder Again, all the power and problems of C++ C++

    in your face Much smaller community Less thorough documentation Great for Mac
  34. processing.py Python <3 Basically no community No all-in-one IDE But

    it’s Python!
  35. Arts programming platforms ...vary in noob-appeal. ...have similar functionality. ...intended

    for (cross-platform) interactive applications. Lots of options and resources available.
  36. Becky Stewart becky@codasign.com @theleadingzero @codasign_ http://codasign.com