Book Image

Mastering openFrameworks: Creative Coding Demystified

By : Denis Perevalov
Book Image

Mastering openFrameworks: Creative Coding Demystified

By: Denis Perevalov

Overview of this book

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.
Table of Contents (22 chapters)
Mastering openFrameworks: Creative Coding Demystified
About the Author
About the Reviewers

List of selected addons

Here we will list some of the most useful addons (selected just by our opinion). Remember, there are many more great addons adding functionality in the various areas of multimedia and interactivity, so search and explore them.

Some of the core addons are:

  • ofxXmlSettings: It reads and writes data from and to XML files. It's very useful for storing project settings such as screen size, frame rate, number of camera, and physics constants.

  • ofxGui: It contains a number of interface elements for creating a number of buttons and sliders on the screen.

  • ofxOsc: It lets you send and receive short amount of data with OSC protocol messages via the network. It is a way of communicating with other applications written in openFrameworks, Processing, Max/MSP, and other software such as VDMX and TouchOSC. See details of it in Chapter 11, Networking.

  • ofxNetwork: It lets you send and receive TCP protocol messages, and it can send huge amount of data such as images via the network. See details of it in Chapter 11, Networking.

  • ofxOpenCv: It is the wrapper for the computer vision library, OpenCV. See details of it in Chapter 9, Computer Vision with OpenCV.

  • ofxKinect: It is addon for working with Microsoft Kinect depth camera. See its details in Chapter 10, Using Depth Cameras.

  • ofxSvg: It loads and renders vector graphics from the SVG file format. This addon is useful when you need to draw vector-based graphics.

  • ofxVectorGraphics: It creates PS files with your drawings. These are vector files used for high-quality printing.

  • ofx3DModelLoader: It loads and renders 3D models in the 3DS file format. It is an easy way to work with static 3D objects in your project. However, the addon is too simple for serious use so for advanced 3D models rendering, you need other addons such as ofxAssimpModelLoader.

  • ofxAssimpModelLoader: It loads and renders 3D models, including animated models.

  • ofxThreadedImageLoader: It loads and renders images from files or the Web in a separate thread so your application will not pause while the image is loading.

Some of the non-core addons are:

  • ofxOpenNI: It is the wrapper for the OpenNI library, working with depth cameras. See its details in Chapter 10, Using Depth Cameras.

  • ofxMarchingCubes: It implements the Marching Cubes algorithm for rendering isosurfaces in 3D. This addon needs the ofxSTL addon to work.

  • ofxSyphon: Currently this addon is only for Mac OS X. It is a wrapper on the Syphon protocol for interchanging images among applications on the same computer. We often use this addon by sending screen from openFrameworks project to VDMX.