SlideShare a Scribd company logo
1 of 17
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

Similar to Intro to openFrameworks

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation pptArt Scott
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinFormRaffaele Garofalo
 
Tech breakfast 18
Tech breakfast 18Tech breakfast 18
Tech breakfast 18James Leone
 
Ti1220 Lecture 1: Programming Linguistics
Ti1220 Lecture 1: Programming LinguisticsTi1220 Lecture 1: Programming Linguistics
Ti1220 Lecture 1: Programming LinguisticsEelco Visser
 
refORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETrefORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETJames Hughes
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyglefur
 
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerFrom TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerAlexandro Colorado
 
Evolve Your Code
Evolve Your CodeEvolve Your Code
Evolve Your CodeRookieOne
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
 
Docker DevTools: Docker as part of your development toolset
Docker DevTools: Docker as part of your development toolsetDocker DevTools: Docker as part of your development toolset
Docker DevTools: Docker as part of your development toolsetWill Hall
 
ITB2019 Real World Scenarios for Modern CFML - Nolan Erck
ITB2019 Real World Scenarios for Modern CFML - Nolan ErckITB2019 Real World Scenarios for Modern CFML - Nolan Erck
ITB2019 Real World Scenarios for Modern CFML - Nolan ErckOrtus Solutions, Corp
 
OO and Rails...
OO and Rails... OO and Rails...
OO and Rails... adzdavies
 
Squeak & Pharo @ NYC Smalltalk
Squeak & Pharo @ NYC SmalltalkSqueak & Pharo @ NYC Smalltalk
Squeak & Pharo @ NYC SmalltalkSeanDeNigris
 

Similar to Intro to openFrameworks (20)

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation ppt
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
Tech breakfast 18
Tech breakfast 18Tech breakfast 18
Tech breakfast 18
 
Squeak
SqueakSqueak
Squeak
 
Ti1220 Lecture 1: Programming Linguistics
Ti1220 Lecture 1: Programming LinguisticsTi1220 Lecture 1: Programming Linguistics
Ti1220 Lecture 1: Programming Linguistics
 
refORM: Death to ORMs in .NET
refORM: Death to ORMs in .NETrefORM: Death to ORMs in .NET
refORM: Death to ORMs in .NET
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxy
 
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developerFrom TrainedMonkey to Google SoC mentor – How to become an OOo developer
From TrainedMonkey to Google SoC mentor – How to become an OOo developer
 
Evolve Your Code
Evolve Your CodeEvolve Your Code
Evolve Your Code
 
T4 presentation
T4 presentationT4 presentation
T4 presentation
 
REPL-driven development with pry
REPL-driven development with pry  REPL-driven development with pry
REPL-driven development with pry
 
LVPHP.org
LVPHP.orgLVPHP.org
LVPHP.org
 
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
Docker DevTools: Docker as part of your development toolset
Docker DevTools: Docker as part of your development toolsetDocker DevTools: Docker as part of your development toolset
Docker DevTools: Docker as part of your development toolset
 
How to code
How to codeHow to code
How to code
 
ITB2019 Real World Scenarios for Modern CFML - Nolan Erck
ITB2019 Real World Scenarios for Modern CFML - Nolan ErckITB2019 Real World Scenarios for Modern CFML - Nolan Erck
ITB2019 Real World Scenarios for Modern CFML - Nolan Erck
 
OO and Rails...
OO and Rails... OO and Rails...
OO and Rails...
 
Squeak & Pharo @ NYC Smalltalk
Squeak & Pharo @ NYC SmalltalkSqueak & Pharo @ NYC Smalltalk
Squeak & Pharo @ NYC Smalltalk
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

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.