SlideShare a Scribd company logo
Intro to openFrameworks
Overview

    Intros from me, and you

    OF history and inspiration

    OF structure and syntax

    Running and modifying the examples

    Using addons and contributed code

    Getting started on a project you want to make
Intros

    Me
    −   http://kylemcdonald.net/
    −   https://twitter.com/#!/kcimc

    You
    −   Name
    −   Experience level
    −   What you want to make with OF
Let's go!
aka                        or ks
                      am ew
                  nF r
              o pe
      ur de
T o
aka


                   me


openFrameworks safari
A (Rough) History of OF
−   Pre-2003: ACU library at MIT
    
        Inspired Processing via Ben Fry and Casey Reas
    
        Golan Levin also studies at MIT, uses ACU to teach
−   Zach Lieberman studies under Golan
    
        Zach can't teach ACU, develops OF
−   Theo Watson studies under Zach (2004+)
    
        Theo does OSX, Zach does Windows
−   Arturo Castro meets Zach + Theo (2007/8?)
    
        Arturo ports to Linux, joins the OF core team
−   OF lab (Ars Electronica 2008)
−   OF dev conferences (2011 Pittsburgh, 2012
    Detroit)
OF Inspiration

    Let's check out some awesome OF work!

    openFrameworks on Vimeo

    openFrameworks on Flickr

    openFrameworks on Creative Applications
OF Structure

    OF is a bunch of classes and functions that
    simplify things by reducing the amount of code
    you have to write

    The “core” of OF is in libs/openFrameworks/

    A good way to see everything in one place is
    the OF reference

    Some more notes on folder structure
OF Syntax

    It's just C++ syntax, except for the “of” prefixes
    and some other minor conventions

    Some great resources for learning C++ at the
    bottom of the about page

    So...
C++ Syntax

    <> are for templates, called “generics” in java

    . (dot operator) is for accessing children of
    objects, :: (colon colon) is for classes and
    namespace access

    You don't normally use an “int[] arr;” like in
    Processing, you have to use a “vector<int>
    arr;”

    Operator overloading means you can use
    complex types with mathematical notation: for
    example, ofVec2f
Comparison to other Environments

    Cinder has a steeper learning curve, but was
    created by “real” programmers

    Pocode is more like Flash in having a scene
    graph, where everything is drawn implicitly

    Processing is most similar, but the community
    is more focused on sketches than addons.
Running and Modifying Examples

    007 and before, everything is in
    apps/examples/ and apps/addonsExamples

    0071 and after, everything is in examples/

    There are a lot more examples online, we're
    continually working to bring in more.
Running and Modifying Examples

    imageSequenceExample

    noiseField2dExample

    videoGrabberExample

    asciiVideo

    pointPickerExample

    ...
Using Addons and Contributed
                 Code

    Sometimes people share their entire project!

    rise and fall

    perfume-global

    face++ and feedrdio

    ...
Using Addons and Contributed
                   Code

    Q: Why is openFrameworks amazing?

    A: ofxAddons
    −   ofxBox2D
    −   ofxKinect
    −   ofxFft
    −   ofxCv
    −   ...
Getting Started on a Project /
            Hacking Together

    What project do you want to make? Let's
    brainstorm about what you need to make it
    happen.

    What techniques do you want to play with?
    Let's see if there's something out there that
    you can wrap or use.

More Related Content

PPTX
4 days of openframeworks
PPT
Cocoa for Web Developers
PDF
Introduction to Creative Coding and OpenFrameworks
PPTX
The Nature of Code via Cinder - Modeling the Natural World in C++
PDF
A Gentle Introduction to openFrameworks
PDF
Open frameworks 101_fitc
PDF
Hacking the Kinect with GAFFTA Day 1
PDF
COMP 4026 Lecture 5 OpenFrameworks and Soli
4 days of openframeworks
Cocoa for Web Developers
Introduction to Creative Coding and OpenFrameworks
The Nature of Code via Cinder - Modeling the Natural World in C++
A Gentle Introduction to openFrameworks
Open frameworks 101_fitc
Hacking the Kinect with GAFFTA Day 1
COMP 4026 Lecture 5 OpenFrameworks and Soli

Similar to Intro to openFrameworks (20)

PDF
Getting Started with Wonder
PDF
OpenStack Extensions
PDF
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
PDF
Open Source: Beyond the Code
PDF
Open Innovation means Open Source
KEY
Erlang/OTP for Rubyists
PPTX
API Documentation Workshop tcworld India 2015
PDF
Open Source At Facebook and Beyond
PDF
I broke what? Taking over maintenance on existing (well loved) projects, by B...
PDF
I broke what?!??!? Taking over maintenance on well loved projects
PDF
ooc - OSDC 2010 - Amos Wenger
PPT
Oop lec 2
PDF
Why we (Day) open source most of our code
PDF
Open Innovation means Open Source
PDF
Apereo OAE - Bootcamp
PDF
How to Run a Successful Open Source Java EE Project
PDF
Open innovation in software means Open Source (2011 remix)
PPS
I can has API? A Love Story
PDF
Free Libre Open Source Software - Business Aspects of Software Industry
PPTX
API Documentation presentation to East Bay STC Chapter
Getting Started with Wonder
OpenStack Extensions
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
Open Source: Beyond the Code
Open Innovation means Open Source
Erlang/OTP for Rubyists
API Documentation Workshop tcworld India 2015
Open Source At Facebook and Beyond
I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what?!??!? Taking over maintenance on well loved projects
ooc - OSDC 2010 - Amos Wenger
Oop lec 2
Why we (Day) open source most of our code
Open Innovation means Open Source
Apereo OAE - Bootcamp
How to Run a Successful Open Source Java EE Project
Open innovation in software means Open Source (2011 remix)
I can has API? A Love Story
Free Libre Open Source Software - Business Aspects of Software Industry
API Documentation presentation to East Bay STC Chapter
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
sap open course for s4hana steps from ECC to s4
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
MYSQL Presentation for SQL database connectivity
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Machine Learning_overview_presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
sap open course for s4hana steps from ECC to s4
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MYSQL Presentation for SQL database connectivity
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Encapsulation_ Review paper, used for researhc scholars
Programs and apps: productivity, graphics, security and other tools
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
Empathic Computing: Creating Shared Understanding
Digital-Transformation-Roadmap-for-Companies.pptx
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Ad

Intro to openFrameworks

  • 2. Overview  Intros from me, and you  OF history and inspiration  OF structure and syntax  Running and modifying the examples  Using addons and contributed code  Getting started on a project you want to make
  • 3. Intros  Me − http://kylemcdonald.net/ − https://twitter.com/#!/kcimc  You − Name − Experience level − What you want to make with OF
  • 5. aka or ks am ew nF r o pe ur de T o
  • 6. aka me openFrameworks safari
  • 7. A (Rough) History of OF − Pre-2003: ACU library at MIT  Inspired Processing via Ben Fry and Casey Reas  Golan Levin also studies at MIT, uses ACU to teach − Zach Lieberman studies under Golan  Zach can't teach ACU, develops OF − Theo Watson studies under Zach (2004+)  Theo does OSX, Zach does Windows − Arturo Castro meets Zach + Theo (2007/8?)  Arturo ports to Linux, joins the OF core team − OF lab (Ars Electronica 2008) − OF dev conferences (2011 Pittsburgh, 2012 Detroit)
  • 8. OF Inspiration  Let's check out some awesome OF work!  openFrameworks on Vimeo  openFrameworks on Flickr  openFrameworks on Creative Applications
  • 9. OF Structure  OF is a bunch of classes and functions that simplify things by reducing the amount of code you have to write  The “core” of OF is in libs/openFrameworks/  A good way to see everything in one place is the OF reference  Some more notes on folder structure
  • 10. OF Syntax  It's just C++ syntax, except for the “of” prefixes and some other minor conventions  Some great resources for learning C++ at the bottom of the about page  So...
  • 11. C++ Syntax  <> are for templates, called “generics” in java  . (dot operator) is for accessing children of objects, :: (colon colon) is for classes and namespace access  You don't normally use an “int[] arr;” like in Processing, you have to use a “vector<int> arr;”  Operator overloading means you can use complex types with mathematical notation: for example, ofVec2f
  • 12. Comparison to other Environments  Cinder has a steeper learning curve, but was created by “real” programmers  Pocode is more like Flash in having a scene graph, where everything is drawn implicitly  Processing is most similar, but the community is more focused on sketches than addons.
  • 13. Running and Modifying Examples  007 and before, everything is in apps/examples/ and apps/addonsExamples  0071 and after, everything is in examples/  There are a lot more examples online, we're continually working to bring in more.
  • 14. Running and Modifying Examples  imageSequenceExample  noiseField2dExample  videoGrabberExample  asciiVideo  pointPickerExample  ...
  • 15. Using Addons and Contributed Code  Sometimes people share their entire project!  rise and fall  perfume-global  face++ and feedrdio  ...
  • 16. Using Addons and Contributed Code  Q: Why is openFrameworks amazing?  A: ofxAddons − ofxBox2D − ofxKinect − ofxFft − ofxCv − ...
  • 17. Getting Started on a Project / Hacking Together  What project do you want to make? Let's brainstorm about what you need to make it happen.  What techniques do you want to play with? Let's see if there's something out there that you can wrap or use.