Preface; What Is--and Isn''t--in This Book; Conventions Used in This Book; Companion Website; Using Code Examples; SafariĀ® Books Online; How to Contact Us; Acknowledgments;Chapter 1: Introducing Interaction Design; 1.1 What This Book Is For; 1.2 Programming for Interactivity; 1.3 Design and Interaction; 1.4 Art and Interaction; 1.5 Data Exchange and Exploration; 1.6 Working Process;Chapter 2: Programming Basics; 2.1 Why You''ll Read This Chapter More Than Once; 2.
2 The Nature of Code; 2.3 Variables; 2.4 Control Statements; 2.5 Functions; 2.6 Objects and Properties; 2.7 Scope; 2.8 Review;Chapter 3: Processing; 3.1 Downloading and Installing Processing; 3.
2 Exploring the Processing IDE; 3.3 The Basics of a Processing Application; 3.4 The Basics of Drawing with Processing; 3.5 Capturing Simple User Interaction; 3.6 Importing Libraries; 3.7 Loading External Data into Processing; 3.8 Running and Debugging Applications; 3.9 Exporting Processing Applications; 3.
10 Conclusion; 3.11 Review;Chapter 4: Arduino; 4.1 Starting with Arduino; 4.2 Touring an Arduino Board; 4.3 Touring the Arduino IDE; 4.4 The Basics of an Arduino Application; 4.5 Features of the Arduino Language; 4.6 How to Connect Things to Your Board; 4.
7 Hello World; 4.8 Debugging Your Application; 4.9 Importing Libraries; 4.10 Running Your Code; 4.11 Review;Chapter 5: Programming Revisited; 5.1 Object-Oriented Programming; 5.2 Classes; 5.3 Public and Private Properties; 5.
4 Inheritance; 5.5 Processing: Classes and Files; 5.6 C++: Classes and Files; 5.7 Pointers and References; 5.8 Review;Chapter 6: openFrameworks; 6.1 Your IDE and Computer; 6.2 Taking Another Quick Tour of C++; 6.3 Getting Started with oF; 6.
4 Touring an oF Application; 6.5 Creating "Hello, World"; 6.6 Drawing in 2-D; 6.7 Displaying Video Files and Images; 6.8 Compiling an oF Program; 6.9 Debugging an oF Application; 6.10 Importing Libraries; 6.11 Review;Chapter 7: Physical Input; 7.
1 Interacting with Physical Controls; 7.2 Thinking About Kinetics; 7.3 Getting Gear for This Chapter; 7.4 Controlling Controls; 7.5 Turning Knobs; 7.6 Using Lights; 7.7 Detecting Touch and Vibration; 7.8 Detecting Proximity; 7.
9 Detecting Motion; 7.10 Reading Distance; 7.11 Understanding Binary Numbers; 7.12 Communicating with Other Applications; 7.13 Sending Messages from the Arduino; 7.14 Detecting Forces and Tilt; 7.15 Introducing I2C; 7.16 What''s Next; 7.
17 Review;Chapter 8: Programming Graphics; 8.1 The Screen and Graphics; 8.2 Seeing Is Thinking, Looking Is Reading; 8.3 Math, Graphics, and Coordinate Systems; 8.4 Drawing Strategies; 8.5 Transformation Matrices; 8.6 Creating Motion; 8.7 Using Vectors; 8.
8 Using Graphical Controls; 8.9 Importing and Exporting Graphics; 8.10 What''s Next; 8.11 Review;Chapter 9: Bitmaps and Pixels; 9.1 Using Pixels As Data; 9.2 Using Pixels and Bitmaps As Input; 9.3 Providing Feedback with Bitmaps; 9.4 Looping Through Pixels; 9.
5 Manipulating Bitmaps; 9.6 Analyzing Bitmaps in oF; 9.7 Using Edge Detection; 9.8 Using Pixel Data; 9.9 Using Textures; 9.10 Saving a Bitmap; 9.11 What''s Next; 9.12 Review;Chapter 10: Sound and Audio; 10.
1 Sound As Feedback; 10.2 Sound and Interaction; 10.3 How Sound Works on a Computer; 10.4 Audio in Processing; 10.5 Sound in openFrameworks; 10.6 openFrameworks and the FMOD Ex Library; 10.7 Maximilian; 10.8 Physical Manipulation of Sound with Arduino; 10.
9 A Quick Note on PWM; 10.10 Creating Interactions with Sound; 10.11 Further Resources; 10.12 Review;Chapter 11: Arduino and Feedback; 11.1 Using Motors; 11.2 Smart Feedback; 11.3 Using Servos; 11.4 Using Household Currents; 11.
5 Working with Appliances; 11.6 Introducing the LilyPad Board; 11.7 Using Vibration; 11.8 Using an LED Matrix; 11.9 Using the SPI Protocol; 11.10 Serial LED Matrix; 11.11 Using LCDs; 11.12 Using Solenoids for Movement; 11.
13 What''s Next; 11.14 Review;Chapter 12: Protocols and Communication; 12.1 Communicating over Networks; 12.2 Using XML; 12.3 Understanding Networks and the Internet; 12.4 Handling Network Communication in Processing; 12.5 Understanding Protocols in Networking; 12.6 Using the ofxNetwork Add-on; 12.
7 Creating Networks with the Arduino; 12.8 Wireless Internet on the Arduino; 12.9 Communicating with Bluetooth; 12.10 Communicating Using MIDI; 12.11 Review;Chapter 13: Graphics and OpenGL; 13.1 What Does 3-D Have to Do with Interaction?; 13.2 Understanding 3-D; 13.3 What Is OpenGL?; 13.
4 Working with 3-D in Processing; 13.5 Making Custom Shapes in Processing; 13.6 Using Coordinates and Transforms in Processing; 13.7 3-D in openFrameworks; 13.8 Lighting in OpenGL; 13.9 Blending Modes in OpenGL; 13.10 Creating 3-D Objects in oF; 13.11 Using Textures and Shading in Processing; 13.
12 Using Another Way of Shading; 13.13 Using ofShader; 13.14 Using Shaders in Processing; 13.15 What to Do Next; 13.16 Review;Chapter 14: Motion and Gestures; 14.1 Computer Vision; 14.2 OpenCV; 14.3 Using Blobs and Tracking; 14.
4 Detecting Features with oF; 14.5 Using OpenCV in Processing; 14.6 Feature Tracking in Processing; 14.7 Using Blob Tracking with Physics; 14.8 Exploring Further in OpenCV; 14.9 Detecting Gestures; 14.10 Capturing iOS gestures with oF; 14.11 Touch with oF; 14.
12 What''s Next; 14.13 Using the Microsoft Kinect; 14.14 Review;Chapter 15: Movement and Location; 15.1 Using Movement As and In Interaction; 15.2 Using Software-Based Serial Ports; 15.3 Understanding and Using GPS; 15.4 Storing Data; 15.5 Logging GPS Data to an Arduino; 15.
6 Sending GPS Data; 15.7 Getting Location on a Mobile Device; 15.8 What to Do Next; 15.9 Review;Chapter 16: Spaces and Environments; 16.1 Using Architecture and Space; 16.2 Sensing Environmental Data; 16.3 Using an XBee with Arduino; 16.4 Placing Objects in 2-D; 16.
5 Using the X10 Protocol; 16.6 Setting Up an RFID Sensor; 16.7 Reading Heat and Humidity; 16.8 Determine Position of an Object; 16.9 What''s Next; 16.10 Review;Chapter 17: Further Resources; 17.1 What''s Next?; 17.2 Bibliography; 17.
3 Conclusion;Colophon;.