Book "Mastering openFrameworks: Creative Coding Demystified"

My book on openFrameworks is published by Packt Publishing:
“Mastering openFrameworks: Creative Coding Demystified”. Foreword by Igor (Sodazot) Tatarnikov.

The book covers capabilities of openFrameworks 0.8.0 for Windows, Mac OS X and Linux. It is devoted to low-level data processing with images, videos, sounds, 3D, shaders, ofxOpenCV and depth cameras.

Book’s official page:

The book’s code examples and its audio/video content are free for download, at “Support” tab of the book’s page.

See book’s examples videos at

Sample chapter 7 - Drawing in 3D:

What the book covers

Chapter 1, openFrameworks Basics, covers installing openFrameworks, the structure of
openFrameworks projects, and creating the pendulum-simulation project.

Chapter 2, Drawing in 2D, explains the basics of two-dimensional graphics,
including drawing geometric primitives, working with colors and drawing in
the offscreen buffer. It also contains a generative art example of using numerical
instability for drawing.

Chapter 3, Building a Simple Particle System, teaches the basics of particle system
modeling and drawing. By the end of this chapter, you will build a fully featured
project that can be used as a sketch for further experiments with particles.

Chapter 4, Images and Textures, covers the principles of working with images,
including loading images from file; rendering it on the screen with different sizes,
color, and transparency; creating new images; and modifying existing images. It
also touches the basics of image warping and video mapping.

Chapter 5, Working with Videos, covers basic and advanced topics on playing, layering,
and processing videos, including playing video files, processing live video grabbed
from a camera, and working with image sequences. This chapter contains an
implementation of the slit-scan effect and a simple video synthesizer, which uses a
screen-to-camera feedback loop to create vivid effects on prerecorded videos.

Chapter 6, Working with Sounds, explains how to play sound samples, synthesize
new sounds, and get sounds from the microphone. It includes the project wherein
we generate music using bouncing-ball simulation, the PWM synthesizer, and the
image-to-sound transcoding. Finally, it teaches us how to use spectrum analysis for
creating an audio-reactive visual project.

Chapter 7, Drawing in 3D, covers representing, modifying, and drawing 3D objects.
It includes examples of drawing a sphere-shaped cloud of triangles, an oscillating
surface, and a twisting 3D knot.

Chapter 8, Using Shaders, explains how to use fragment, vertex, and geometry shaders
for creating 2D video effects and 3D object deformations.

Chapter 9, Computer Vision with OpenCV, teaches the basics of computer vision using
the OpenCV library. It explains how to perform filtering and correct perspective
distortions in images and how to look for motion areas and detect bright objects in the
videos. It includes an advanced example of using optical flow for video morphing.

Chapter 10, Using Depth Cameras, covers using depth cameras in openFrameworks
projects using the ofxOpenNI addon. It includes an example of the projector-camera
interactive system, which lets us draw abstract images on the wall. The example can
be used as a sketch for creating interactive walls, tables, and floors.

Chapter 11, Networking, covers how to use OSC and TCP protocols in your
openFrameworks projects for creating distributed projects that run on several
computers. It includes an image-streaming example.

Appendix A, Working with Addons, teaches the basic principles of addons, explains
how to link add-ons to your projects, and discusses some of the most useful addons.

Appendix B, Perlin Noise, explains the principles of using Perlin noise, which is
employed in many of the examples in the book.

Thanks to the openFrameworks’ creators and openFrameworks community for
developing this amazing toolkit.

The TOC looks quite interesting, but i am wondering, what happened to Chris Yank[1], who originally wanted to write this book and Paulo Barcelos, who announced the book here at the forum[2] a couple of month ago?


Chris Yanc begin working on the book, but stopped it.
Then Packt Publishing proposed to continue writing to me, as co-author.
When I finished my part of the book, it become apparent that chapters written by Chris are not appropriate to be used in the book. So they were completely rewritten, without reference to original Chris texts.

Thanks for the clarification. Was just browsing through the eBook and, as said looks interesting and i will have a closer look, when the printed version arrives.

Excellent thanks. Just purchased.

Thanks you very much!

Just bought the ebook.

I just wanted to say thanks for writing it! I’ve wanted a book on openframeworks for awhile. What I like most are your discussions about performance and alternate means (with respect to speed) to solve the same problem. Because you go a bit more into the depth about what’s happening, e.g., ofImage storing both a pixel array and a texture (which I guess is obvious now that I think about it, but I didn’t think about it in THAT way before), and the discussion about how that relates to graphics cards is a great little insight for me. I’m looking forward to going through the rest of the book and the examples.

Thanks for speeding up my openframeworks learning process. The fact you even talk about a bug in the ofxOpenCv code and provide a fix for it is so good.

Thanks you so much! I’m happy that the in-depth explanations and performance tips are useful for you!

  • It was my dream to write the book which goes beyond “just tutorial” and “toolkit functions explanations”.

I just picked up the Kindle version of this and I’m enjoying working through it. I really enjoy that you assume previous programming knowledge and don’t try to handhold the reader through the basics of c++. So often, I feel like programming books assume the lowest common denominator – that the reader is stupid. It’s nice to read a book with a baseline assumption that the reader is capable.

Thanks you very much! Yes, exactly, my intention was to write the book for experienced programmers so that they were not boring when reading it :slight_smile:
But I also hope the book will be useful for beginners too, because I tried to keep examples’ codes maximally clean and compact.

great book. ordered both the ebook version and printed one. i cant live without the paper, better for flicking and taking notes i think.
but standing up against amazon as well and ordered through the packtpub site, better deal :wink:

thanks again

1 Like