Mastering openFrameworks: Creative Coding Demystified

Mastering openFrameworks: Creative Coding Demystified
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create cutting edge audio-visual interactive projects, interactive installations, and sound art projects with ease
  • Unleash the power of low-level data processing methods using C++ and shaders
  • Make use of the next generation technologies and techniques in your projects involving OpenCV, Microsoft Kinect, and so on

Book Details

Language : English
Paperback : 364 pages [ 235mm x 191mm ]
Release Date : September 2013
ISBN : 1849518041
ISBN 13 : 9781849518048
Author(s) : Denis Perevalov
Topics and Technologies : All Books, Open Source, Web Graphics & Video

Table of Contents

Chapter 1: openFrameworks Basics
Chapter 2: Drawing in 2D
Chapter 3: Building a Simple Particle System
Chapter 4: Images and Textures
Chapter 5: Working with Videos
Chapter 6: Working with Sounds
Chapter 7: Drawing in 3D
Chapter 8: Using Shaders
Chapter 9: Computer Vision with OpenCV
Chapter 10: Using Depth Cameras
Chapter 11: Networking
Appendix A: Working with Addons
Appendix B: Perlin Noise
  • Chapter 1: openFrameworks Basics
    • About openFrameworks
      • Use cases
    • Installing openFrameworks and running your first example
      • Installing on Windows
        • Microsoft Visual Studio
        • Code::Blocks (Windows)
    • Installing on Mac OS with Xcode
    • Installing on Linux with Code::Blocks
    • openFrameworks' folders
      • The examples folder
      • The apps folder
      • The addons folder
    • File structure of a project
    • Code structure of a project
      • main.cpp
      • testApp.h
      • testApp.cpp
        • setup()
        • update()
        • draw()
        • Other functions
    • Creating a new project
      • Creating a project from an existing example
      • Creating a project using Project Generator
    • Creating your first project – the Pendulum example
    • Running the book's examples
    • Basic utility functions
    • Summary
    • Chapter 2: Drawing in 2D
      • Drawing basics
      • The background color of the screen
        • Pulsating background example
      • Geometric primitives
        • The simplest example of a flower
        • Controlling the drawing of primitives
      • Using ofPoint
        • Operations with points
        • Using control points example
      • Coordinate system transformations
        • Flower with petals example
      • Colors
        • Operations with colors
        • Color modifications example
      • Drawing with an uncleared background
      • Using FBO for offscreen drawings
        • Spirals example
          • Playing with numerical instability
      • Screen grabbing
      • Additional topics
      • Summary
      • Chapter 3: Building a Simple Particle System
        • The basics of particle systems
          • Interaction types
          • Computing particles' physics
          • Rendering particles
          • Creating a particle system – summary
        • A single particle
          • Control parameters
          • Defining the particle functions
          • Implementing a particle in the project
        • An emitter
        • The attraction, repulsion, and spinning forces
        • Graphical user interface
        • Additional topics
        • Summary
        • Chapter 4: Images and Textures
          • Raster and vector images
          • Loading and drawing an image
          • Rotating images
          • Color modulation
          • Transparency
          • Creating and modifying images
            • Creating images
            • Modifying images
              • Working with the color of a single pixel
              • The functions for manipulating the image as a whole
          • Using ofTexture for memory optimization
          • Image warping and video mapping
          • Using images for internal calculations
            • An image as a mask
            • An image as a palette
          • Summary
          • Chapter 5: Working with Videos
            • Video basics
            • Playing a video file
            • Controlling the video playback
            • Processing a single video frame
              • The vertical lines image example
              • The replacing colors example
            • Processing multiple frames
              • Radial slit-scan example
                • Horizontal slit-scan
                • Discussing color interpolation
            • Processing a live video from the camera
              • The video synthesizer example
            • Using image sequence
              • Using image sequence example
            • Summary
            • Chapter 6: Working with Sounds
              • Sound basics
              • Playing sound samples
                • The bouncing ball example
                • The singing voices example
              • Generating sounds
                • The PWM synthesis example
                • Image-to-sound transcoder example
              • Using a microphone
                • The loop sampler example
                  • Saving a recorded sample to the file
              • Getting spectral data from sound
                • Dancing cloud example
              • Summary
              • Chapter 7: Drawing in 3D
                • 3D basics
                  • Representation of 3D objects
                  • 3D scene rendering
                • Simple 3D drawing
                  • The triangles cloud example
                • Using ofMesh
                  • Enabling lighting and setting normals
                    • Computing normals using the setNormals() function
                • Drawing sharp edges
                • Drawing line segments and points
                  • Drawing line segments
                  • Drawing points
                • Coloring the vertices
                • Texturing
                • Working with vertices
                • The oscillating plane example
                  • The twisting knot example
                • Additional topics
                • Summary
                • Chapter 8: Using Shaders
                  • Basics of shaders
                    • Types of shaders
                    • When to use shaders
                  • Structure of a shader's code
                  • A simple fragment shader example
                    • Creating the fragment shader
                    • The vertex shader
                    • Embedding shaders in our project
                    • Debugging shaders
                  • Creating video effects with fragment shaders
                    • Passing a float parameter to a shader
                      • A simple geometrical distortion example
                    • Passing the float array to the shader
                    • Using Perlin noise in shaders
                      • A liquify distortion example
                    • Processing several images
                      • A masking example
                    • An audio-reactive project example
                  • Deforming objects with a vertex shader
                    • Vertex shader
                    • Fragment shader
                  • Using vertex shader in our project
                  • Using a geometry shader
                    • The furry carpet example
                  • Additional topics
                  • Summary
                  • Chapter 9: Computer Vision with OpenCV
                    • Understanding computer vision and OpenCV
                    • Using ofxOpenCv
                    • Working with ofxCv images
                      • Image initializing
                      • Algebraic operations with images
                      • Drawing functions
                      • Access to pixels
                      • Working with color planes and color spaces conversion
                      • Motion detection from movies
                      • Discussing the algorithm's parameters
                      • Motion detection from live video
                    • Image filtering
                      • The image filtering example
                    • Geometrical transformations of images
                      • Perspective distortion removing example
                    • Searching for objects in an image
                      • Using the ofxCvContourFinder class for finding contours
                      • An example for searching bright objects in video
                    • Using OpenCV functions
                      • Optical flow
                        • Video morphing example
                    • Summary
                    • Chapter 10: Using Depth Cameras
                      • Depth camera basics
                        • Active infrared stereo cameras
                      • Installing the ofxOpenNI addon
                      • ofxOpenNI examples
                        • Working with examples of depth images
                        • Hand-tracking examples
                        • User tracking examples
                      • Creating interactive surface
                        • Running the project
                      • Additional topics
                      • Summary
                      • Chapter 11: Networking
                        • Networking basics
                        • Using OSC protocol
                          • Sending data
                          • Receiving data
                          • Typical schemes of OSC usage
                        • Using TCP protocol for streaming images
                          • The streaming images example
                        • Summary
                        • Appendix A: Working with Addons
                          • Addons basics
                            • Addons in openFrameworks
                            • Installing a non-core addon
                          • Linking addons to a new project
                            • Using Project Generator
                          • Linking an addon to an existing project
                          • List of selected addons
                          • Summary

                            Denis Perevalov

                            Denis Perevalov is a computer vision research scientist. He works at the Institute of Mathematics and Mechanics of the Ural Branch of the Russian Academy of Sciences (Ekaterinburg, Russia). He is the co-author of two Russian patents on robotics computer vision systems and an US patent on voxel graphics. Since 2010 he has taught openFrameworks in the Ural Federal University. From 2011 he has been developing software for art and commercial interactive installations at using openFrameworks. He is the co-founder of interactive technologies laboratory (opened in 2012).

                            Code Downloads

                            Download the code and support files for this book.

                            Submit Errata

                            Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                            Sample chapters

                            You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                            Frequently bought together

                            Mastering openFrameworks: Creative Coding Demystified +    Haskell Data Analysis Cookbook =
                            50% Off
                            the second eBook
                            Price for both: £26.35

                            Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                            What you will learn from this book

                            • Install openFrameworks in Windows, Mac OS X, and Linux
                            • Load images and videos from files, and learn rendering and low-level processing
                            • Learn to use sound samples, sound synthesizing, and how to record sounds from a microphone
                            • Work with 3D graphics, including shaders
                            • Extend your project with additional graphics, sound, networking, and computer vision functionality with the help of numerous openFrameworks addons
                            • Create distributed projects, which work on a several computers by synchronizing via OSC protocol
                            • Leverage computer vision basics, including optical flow, and perspective transformations
                            • Use depth cameras, like Microsoft Kinect, for creating interactive walls.

                            In Detail

                            openFrameworks is a powerful programming toolkit and library designed to assist the creative process through simplicity and intuitiveness. It's a very handy software library written in C++ to reduce the software development process, helping you to kick-start creative coding. With the help of C++ and shaders support, openFrameworks allows for the processing of all kinds of media information with your custom-developed algorithms at the lowest possible level, with the fastest speed.

                            "Mastering openFrameworks: Creative Coding Demystified" will introduce you to a world of creative coding projects, including interactive installations, audio-visual, and sound art projects. You will learn how to make your own projects using openFrameworks. This book focuses on low-level data processing, which allows you to create really unique and cutting-edge installations and projects.

                            "Mastering openFrameworks: Creative Coding Demystified" provides a complete introduction to openFrameworks, including installation, core capabilities, and addons. Advanced topics like shaders, computer vision, and depth cameras are also covered.

                            We start off by discussing the basic topics such as image and video loading, rendering and processing, playing sound samples, and synthesizing new sounds. We then move on to cover 3D graphics, computer vision, and depth cameras. You will also learn a number of advanced topics such as video mapping, interactive floors and walls, video morphing, networking, and using geometry shaders.

                            You will learn everything you need to know in order to create your own projects; create projects of all levels, ranging from simple creative-code experiments, to big interactive systems consisting of a number of computers, depth cameras, and projectors.


                            Stuffed with practical examples, this book gives clear and effective instructions to build your own fun, stunning, and highly-interactive openFrameworks applications. Each chapter is focused on one topic and has a new theme to it.

                            Who this book is for

                            If you are a visual artist, designer, or programmer interested in creative coding with openFrameworks then this book is for you. Basic knowledge of object-oriented programming, such as C++, Java, Python, and ActionScript 3, would be helpful.

                            Code Download and Errata
                            Packt Anytime, Anywhere
                            Register Books
                            Print Upgrades
                            eBook Downloads
                            Video Support
                            Contact Us
                            Awards Voting Nominations Previous Winners
                            Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                            Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software