Buying Options
Programming Interactivity
Print $49.99
Add to Cart
Print+Ebook $54.99
Add to Cart
Ebook $39.99
Add to Cart
Safari Books Online
Add to Cart
What is this?
Print £38.50
Add to Cart
What is this?
Description
Make cool stuff. If you're a designer or artist without a lot of programming experience, this book will teach you to work with 2D and 3D graphics, sound, physical interaction, and electronic circuitry to create all sorts of interesting and compelling experiences -- online and off. Programming Interactivity explains programming and electrical engineering basics, and introduces three freely available tools created specifically for artists and designers: Processing, Arduino, and OpenFrameworks.
Full Description
Table of Contents
  1. Introductions

    1. Chapter 1 Introducing Interaction Design

      1. What This Book Is for
      2. Programming for Interactivity
      3. Design and Interaction
      4. Art and Interaction
      5. Data Exchange and Exploration
      6. Working Process
    2. Chapter 2 Programming Basics

      1. Why You’ll Read This Chapter More Than Once
      2. The Nature of Code
      3. Variables
      4. Control Statements
      5. Functions
      6. Objects and Properties
      7. Scope
      8. Review
    3. Chapter 3 Processing

      1. Downloading and Installing Processing
      2. Exploring the Processing IDE
      3. The Basics of a Processing Application
      4. The Basics of Drawing with Processing
      5. Capturing Simple User Interaction
      6. Importing Libraries
      7. Loading Things into Processing
      8. Running and Debugging Applications
      9. Exporting Processing Applications
      10. Conclusion
      11. Review
    4. Chapter 4 Arduino

      1. Starting with Arduino
      2. Touring Two Arduino Boards
      3. Touring the Arduino IDE
      4. The Basics of an Arduino Application
      5. Features of the Arduino Language
      6. How to Connect Things to Your Board
      7. Hello World
      8. Debugging Your Application
      9. Importing Libraries
      10. Running Your Code
      11. Review
    5. Chapter 5 Programming Revisited

      1. Object-Oriented Programming
      2. Classes
      3. Public and Private Properties
      4. Inheritance
      5. Processing: Classes and Files
      6. C++: Classes and Files
      7. Pointers and References
      8. Review
    6. Chapter 6 openFrameworks

      1. Your IDE and Computer
      2. Taking Another Quick Tour of C++
      3. Getting Started with oF
      4. Touring an oF Application
      5. Creating “Hello, World”
      6. Drawing in 2D
      7. Displaying Video Files and Images
      8. Importing Libraries
      9. Compiling an oF Program
      10. Debugging an oF Application
      11. Review
  2. Themes

    1. Chapter 7 Sound and Audio

      1. Sound As Feedback
      2. Sound and Interaction
      3. How Sound Works on a Computer
      4. Audio in Processing
      5. Sound in openFrameworks
      6. openFrameworks and the FMOD Ex Library
      7. The Sound Object Library
      8. The Magic of the Fast Fourier Transform
      9. Physical Manipulation of Sound with Arduino
      10. A Quick Note on PWM
      11. Creating Interactions with Sound
      12. Further Resources
      13. Review
    2. Chapter 8 Physical Input

      1. Interacting with Physical Controls
      2. Thinking About Kinetics
      3. Getting Gear for This Chapter
      4. Controlling Controls
      5. Turning Knobs
      6. Using Lights
      7. Detecting Touch and Vibration
      8. Communicating with Other Applications
      9. Sending Messages from the Arduino
      10. Detecting Motion
      11. Reading Distance
      12. Understanding Binary Numbers
      13. Detecting Forces and Tilt
      14. Introducing I2C
      15. What Is a Physical Interface?
      16. What’s Next
      17. Review
    3. Chapter 9 Programming Graphics

      1. The Screen and Graphics
      2. Seeing Is Thinking, Looking Is Reading
      3. Math, Graphics, and Coordinate Systems
      4. Drawing Strategies
      5. Processing and Transformation Matrices
      6. Creating Motion
      7. Using Vectors
      8. Using Graphical Controls
      9. Importing and Exporting Graphics
      10. What’s Next
      11. Review
    4. Chapter 10 Bitmaps and Pixels

      1. Using Pixels As Data
      2. Using Pixels and Bitmaps As Input
      3. Providing Feedback with Bitmaps
      4. Looping Through Pixels
      5. Manipulating Bitmaps
      6. Analyzing Bitmaps in oF
      7. Using Pixel Data
      8. Using Textures
      9. Saving a Bitmap
      10. What’s Next
      11. Review
    5. Chapter 11 Physical Feedback

      1. Using Motors
      2. Using Servos
      3. Using Household Currents
      4. Working with Appliances
      5. Introducing the LilyPad Board
      6. Using Vibration
      7. Using an LED Matrix
      8. Using LCDs
      9. Using Solenoids for Movement
      10. What’s Next
      11. Review
    6. Chapter 12 Protocols and Communication

      1. Communicating Over Networks
      2. Using XML
      3. Understanding Networks and the Internet
      4. Handling Network Communication in Processing
      5. Understanding Protocols in Networking
      6. Using ofxNetwork
      7. Creating Networks with the Arduino
      8. Using Carnivore to Communicate
      9. Communicating with Bluetooth
      10. Communicating Using MIDI
      11. Review
  3. Explorations

    1. Chapter 13 Graphics and OpenGL

      1. What Does 3D Have to Do with Interaction?
      2. Understanding 3D
      3. Working with 3D in Processing
      4. Making Custom Shapes in Processing
      5. Using Coordinates and Transforms in Processing
      6. Working with 3D in OpenGL
      7. Using Matrices and Transformations in OpenGL
      8. Using Vertices in OpenGL
      9. Drawing with Textures in oF
      10. Lighting in OpenGL
      11. Blending Modes in OpenGL
      12. Using Textures and Shading in Processing
      13. Using Another Way of Shading
      14. Using an ofShader Addon
      15. What to Do Next
      16. Review
    2. Chapter 14 Detection and Gestures

      1. Computer Vision
      2. OpenCV
      3. Using Blobs and Tracking
      4. Using OpenCV in Processing
      5. Detecting Gestures
      6. Implementing Face Recognition
      7. Exploring Touch Devices with oF
      8. What’s Next
      9. Review
    3. Chapter 15 Movement and Location

      1. Using Movement As and in Interaction
      2. Using Software-Based Serial Ports
      3. Understanding and Using GPS
      4. Storing Data
      5. Logging GPS Data to an Arduino
      6. Sending GPS Data
      7. Determining Location by IP Address
      8. What to Do Next
      9. Review
    4. Chapter 16 Interfaces and Controls

      1. Examining Tools, Affordances, and Aesthetics
      2. Reexamining Tilt
      3. Exploring InputShield
      4. Understanding Touch
      5. Exploring Open Source Touch Hardware
      6. Communicating Using OSC
      7. Using the Wiimote
      8. What’s Next
      9. Review
    5. Chapter 17 Spaces and Environments

      1. Using Architecture and Space
      2. Sensing Environmental Data
      3. Using an XBee with Arduino
      4. Placing Objects in 2D
      5. Using the X10 Protocol
      6. Setting Up an RFID Sensor
      7. Reading Heat and Humidity
      8. What’s Next
      9. Review
    6. Chapter 18 Further Resources

      1. What’s Next?
      2. Bibliography
      3. Conclusion
  1. Appendix Circuit Diagram Symbols

  2. Programming Glossary

  3. Colophon

View Full Table of Contents
Product Details
Title:
Programming Interactivity
By:
Joshua Noble
Publisher:
O'Reilly Media
Formats:
  • Print
  • Ebook
  • Safari Books Online
Print Release:
July 2009
Ebook Release:
July 2009
Pages:
736
Print ISBN:
978-0-596-15414-1
| ISBN 10:
0-596-15414-3
Ebook ISBN:
978-0-596-80520-3
| ISBN 10:
0-596-80520-9
Customer Reviews
About the Author
  1. Joshua Noble

    Josh Noble is a consultant, freelance developer and Rich Internet Application designer, based in Brooklyn, New York. He's the lead author of O'Reilly's Flex 3 Cookbook (released May 2008).

    As a graduate student, Joshua Noble studied interactive art, teaching himself programming and electronics using available resources on the internet. After school, he began teaching coding to art and design students interested in interactive design at the School of the Museum of Fine Arts in Boston. He found an acute need for a book that taught the technical aspects of programming and computing for interactive art and design as well as some of the theoretical and conceptual aspects of design interaction. He's worked extensively with each of the tools discussed in this book and has taught the subject at workshops, colleges, and to friends.

    View Joshua Noble's full profile page.

Colophon

The animals on the cover of Programming Interactivity are guinea fowl (family Phasianidae, subfamily Numindinae). Sometimes known as guinea hen, wild guinea fowl originally hail from western Africa. Featherless heads with black crests and dark gray or deep blue plumage distinguish guinea fowl from other birds.

Domesticated guinea fowl (descended from Numida meleagris) make popular additions to farms, as farmers value the birds for their ability to control insects (guinea fowl dine on insects, leafy greens, and seeds). Farmers and other guinea fowl owners also appreciate the birds' paranoid natures; guinea fowl will cry out at provocations as slight as the bark of a dog, the beep of a horn, or a stranger's footsteps.

Their distinctive cries provide an easy way to distinguish the gender of the birds. While females and males both make a piercing "ah, ah, ah" sound when provoked, only the female can produce a two-syllable call that sounds as if she is saying "come back, come back, come back" or "buckwheat, buckwheat, buckwheat."

Gourmands prize cooked guinea fowl for their lean, tender flesh, which possesses a less gamy flavor than pheasant, while others say the prepared bird tastes like chicken (and also a little bit like turkey).

The cover image is from The Riverside Natural History. The cover font is Adobe ITC Garamond. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSansMonoCondensed.

  • Book cover of Programming Interactivity