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

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 

Recently uploaded (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

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.