Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Processing contents-070603

924 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Processing contents-070603

  1. 1. Processing:a programminghandbook forvisual designersand artistsCasey ReasBen FryThe MIT PressCambridge, MassachusettsLondon, England
  2. 2. © 2007 Massachusetts Institute of TechnologyAll rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means(including photocopying, recording, or information storage and retrieval) without permission in writing fromthe publisher.MIT Press books may be purchased at special quantity discounts for business or sales promotional use. Forinformation, please email special_sales@mitpress.mit.edu or write to Special Sales Department, The MIT Press,55 Hayward Street, Cambridge, MA 02142.Printed and bound in the United States of America.Library of Congress Cataloging-in-Publication DataReas, Casey. Processing : a programming handbook for visual designers and artists / Casey Reas & Ben Fry ; foreword by John Maeda. p. cm. Includes bibliographical references and index. ISBN 978-0-262-18262-1 (hardcover : alk. paper) 1. Computer programming. 2. Computer graphics—Computer programs. 3. Digital art—Computer programs. 4. Art—Data processing. 5. Art and technology. I. Fry, Ben. II. Title.QA76.6.R4138 2007005.1—dc22 200603476810 9 8 7 6 5 4 3 2 1
  3. 3. 29 34 45 57 67 72 8491 99 113 121 131 141 189192 204 208 221 225 233 244247 289 297 307 320 324 331336 344 352 354 359 409 415447 451 472 493 530 535 551
  4. 4. Contentsxix Foreword 279 Motion 1: Lines, Curvesxxi Preface 291 Motion 2: Machine, Organism 301 Data 4: Arrays 1 Processing . . . 315 Image 2: Animation 9 Using Processing 321 Image 3: Pixels 327 Typography 2: Motion 17 Structure 1: Code Elements 333 Typography 3: Response 23 Shape 1: Coordinates, Primitives 337 Color 2: Components 37 Data 1: Variables 347 Image 4: Filter, Blend, Copy, Mask 43 Math 1: Arithmetic, Functions 355 Image 5: Image Processing 51 Control 1: Decisions 367 Output 1: Images 61 Control 2: Repetition 371 Synthesis 3: Motion and Arrays 69 Shape 2: Vertices 377 Interviews 3: Animation, Video 79 Math 2: Curves 85 Color 1: Color by Numbers 395 Structure 4: Objects I 95 Image 1: Display, Tint 413 Drawing 2: Kinetic Forms101 Data 2: Text 421 Output 2: File Export105 Data 3: Conversion, Objects 427 Input 6: File Import111 Typography 1: Display 435 Input 7: Interface117 Math 3: Trigonometry 453 Structure 5: Objects II127 Math 4: Random 461 Simulate 1: Biology133 Transform 1: Translate, Matrices 477 Simulate 2: Physics137 Transform 2: Rotate, Scale 495 Synthesis 4: Structure, Interface145 Development 1: Sketching, Techniques 501 Interviews 4: Performance, Installation149 Synthesis 1: Form and Code155 Interviews 1: Print 519 Extension 1: Continuing . . . 525 Extension 2: 3D173 Structure 2: Continuous 547 Extension 3: Vision181 Structure 3: Functions 563 Extension 4: Network197 Shape 3: Parameters, Recursion 579 Extension 5: Sound205 Input 1: Mouse I 603 Extension 6: Print217 Drawing 1: Static Forms 617 Extension 7: Mobile223 Input 2: Keyboard 633 Extension 8: Electronics229 Input 3: Events237 Input 4: Mouse II 661 Appendixes245 Input 5: Time, Date 693 Related Media251 Development 2: Iteration, Debugging 699 Glossary255 Synthesis 2: Input and Response 703 Code Index261 Interviews 2: Software, Web 705 Indexvii
  5. 5. 88 342 55 65 305 220 41598 319 323 351 353 359 207225 232 240 247 444 44 83124 129 288 296 29 32 75202 470 488 184 190 407 455141 113 329 335 530 535 551viii
  6. 6. Contents by categoryxix Foreword 23 Shape 1: Coordinates, Primitivesxxi Preface 69 Shape 2: Vertices 197 Shape 3: Parameters, Recursion 1 Processing . . . 461 Simulate 1: Biology 9 Using Processing 477 Simulate 2: Physics 17 Structure 1: Code Elements 85 Color 1: Color by Numbers 173 Structure 2: Continuous337 Color 2: Components 181 Structure 3: Functions 51 Control 1: Decisions 395 Structure 4: Objects I 61 Control 2: Repetition 453 Structure 5: Objects II 37 Data 1: Variables 149 Synthesis 1: Form and Code101 Data 2: Text 255 Synthesis 2: Input and Response105 Data 3: Conversion, Objects 371 Synthesis 3: Motion and Arrays301 Data 4: Arrays 495 Synthesis 4: Structure, Interface145 Development 1: Sketching, Techniques 133 Transform 1: Translate, Matrices251 Development 2: Iteration, Debugging 137 Transform 2: Rotate, Scale217 Drawing 1: Static Forms 111 Typography 1: Display413 Drawing 2: Kinetic Forms 327 Typography 2: Motion 95 Image 1: Display, Tint 333 Typography 3: Response315 Image 2: Animation321 Image 3: Pixels 155 Interviews 1: Print347 Image 4: Filter, Blend, Copy, Mask 261 Interviews 2: Software, Web355 Image 5: Image Processing 377 Interviews 3: Animation, Video205 Input 1: Mouse I 501 Interviews 4: Performance, Installation223 Input 2: Keyboard229 Input 3: Events 519 Extension 1: Continuing . . .237 Input 4: Mouse II 525 Extension 2: 3D245 Input 5: Time, Date 547 Extension 3: Vision427 Input 6: File Import 563 Extension 4: Network435 Input 7: Interface 579 Extension 5: Sound 43 Math 1: Arithmetic, Functions 603 Extension 6: Print 79 Math 2: Curves 617 Extension 7: Mobile117 Math 3: Trigonometry 633 Extension 8: Electronics127 Math 4: Random279 Motion 1: Lines, Curves 661 Appendixes291 Motion 2: Machine, Organism 693 Related Media367 Output 1: Images 699 Glossary421 Output 2: File Export 703 Code Index 705 Indexix
  7. 7. 29 30 44 55 63 70 8388 97 113 124 128 137 174186 200 206 219 225 231 239246 281 293 306 316 322 329334 340 349 353 356 406 414441 458 464 484 530 535 551x
  8. 8. Extended contents xix Foreword by John Maeda 23 Shape 1: Coordinates, Primitives 23 Coordinates xxi Preface size() xxi Contents 25 Primitive shapesxxii How to read this book point(), line(),xxiii Casey’s introduction triangle(), quad(), rect(),xxiv Ben’s introduction ellipse(), bezier()xxv Acknowledgments 31 Drawing order 31 Gray values 1 Processing . . . background(), 1 Software fill(),stroke(), 3 Literacy noFill(), noStroke() 4 Open 33 Drawing attributes 4 Education smooth(), noSmooth(), 6 Network strokeWeight(), strokeCap(), 7 Context strokeJoin() 34 Drawing modes 9 Using Processing ellipseMode(), rectMode() 9 Download, Install 9 Environment 37 Data 1: Variables 10 Export 37 Data types 11 Example walk-through int, float, boolean, 16 Reference true, false 38 Variables 17 Structure 1: Code Elements = 17 Comments 40 Processing variables //, /* */ width, height 18 Functions 18 Expressions, Statements 43 Math 1: Arithmetic, Functions “;”, “,” 43 Arithmetic 20 Case sensitivity +, -, *, /, % 20 Whitespace 47 Operator precedence, Grouping 20 Console () print(), println() 48 Shortcuts ++, --, +=, -=, *=, /=, - 49 Constraining numbers ceil(), floor(), round(), min(), max()xi
  9. 9. 51 Control 1: Decisions 101 Data 2: Text 51 Relational expressions 102 Characters >, <, >=, <=, ==, != char 53 Conditionals 103 Words, Sentences if, else, {} String 57 Logical operators ||, &&, ! 105 Data 3: Conversion, Objects 105 Data conversion 61 Control 2: Repetition boolean(), byte(), char(), 61 Iteration int(), float(), str() for 107 Objects 65 Nested iteration “.”, 67 Formatting code blocks PImage.width, PImage.height, String.length, 69 Shape 2: Vertices String.startsWith(), 69 Vertex String.endsWith(); beginShape(), endShape(), String.charAt(), vertex() String.toCharArray(), 71 Points, Lines String.subString(), 72 Shapes String.toLowerCase(), 74 Curves String.toUpperCase(), curveVertex(), bezierVertex() String.equals() 79 Math 2: Curves 111 Typography 1: Display 79 Exponents, Roots 112 Loading fonts, Drawing text sq(), sqrt(), pow() PFont, loadFont(), 80 Normalizing, Mapping textFont(), text() norm(), lerp(), map() 114 Text attributes 83 Simple curves textSize(), textLeading(), textAlign(), textWidth() 85 Color 1: Color by Numbers 86 Setting colors 117 Math 3: Trigonometry 89 Color data 117 Angles, Waves color, color() PI, QUARTER_PI, HALF_PI, 89 RGB, HSB TWO_PI, sin(), cos(), colorMode() radians(), degrees() 93 Hexadecimal 123 Circles, Arcs, Spirals arc() 95 Image 1: Display, Tint 96 Display 127 Math 4: Random PImage, loadImage(), image() 127 Unexpected numbers 97 Image color, Transparency random(), randomSeed() tint(), noTint() 130 Noise noise(), noiseSeed()xii
  10. 10. 133 Transform 1: Translate, Matrices 181 Structure 3: Functions133 Translation 182 Abstraction translate() 183 Creating functions134 Controlling transformations void pushMatrix(), popMatrix() 193 Function overloading 194 Calculating and returning values137 Transform 2: Rotate, Scale return137 Rotation, Scaling rotate(), scale() 197 Shape 3: Parameters, Recursion139 Combining transformations 197 Parameterized form142 New coordinates 201 Recursion145 Development 1: Sketching, Techniques 205 Input 1: Mouse I145 Sketching software 205 Mouse data146 Programming techniques mouseX, mouseY, pmouseX, pmouseY149 Synthesis 1: Form and Code 212 Mouse buttons150 Collage Engine mousePressed, mouseButton151 Riley Waves 213 Cursor icon152 Wilson Grids cursor(), noCursor()153 Mandelbrot Set 217 Drawing 1: Static Forms155 Interviews 1: Print 218 Simple tools157 Jared Tarbell. 221 Drawing with images Fractal.Invaders, Substrate161 Martin Wattenberg. 223 Input 2: Keyboard Shape of Song 224 Keyboard data165 James Paterson. keyPressed, key The Objectivity Engine 227 Coded keys169 LettError. keyCode RandomFont Beowolf 229 Input 3: Events173 Structure 2: Continuous 229 Mouse events173 Continuous evaluation mousePressed(), draw(), frameRate(), mouseReleased(), frameCount mouseMoved(), mouseDragged()177 Controlling the flow 232 Key events setup(), noLoop(), keyPressed(), keyReleased()178 Variable scope 235 Controlling the flow loop(), redraw()xiii
  11. 11. 237 Input 4: Mouse II 301 Data 4: Arrays237 Constrain 303 Using arrays constrain() Array, [], new, Array.length238 Distance 306 Storing mouse data dist() 309 Array functions239 Easing append(), shorten(), abs() expand(), arraycopy()242 Speed 312 Two-dimensional arrays243 Orientation atan2() 315 Image 2: Animation 316 Sequential images245 Input 5: Time, Date 319 Images in motion245 Seconds, Minutes, Hours second(), minute(), hour(), 321 Image 3: Pixels millis() 321 Reading pixels249 Date get() day(), month(), year() 324 Writing pixels set()251 Development 2: Iteration, Debugging251 Iteration 327 Typography 2: Motion252 Debugging 327 Words in motion 331 Letters in motion255 Synthesis 2: Input and Response256 Tennis 333 Typography 3: Response257 Cursor. Peter Cho 333 Responsive words258 Typing 335 Responsive letters259 Banded Clock. Golan Levin 337 Color 2: Components261 Interviews 2: Software, Web 337 Extracting color263 Ed Burton. Sodaconstructor red(), blue(), green(),267 Josh On. They Rule alpha(), hue(), saturation(),271 Jürg Lehni. Hektor and Scriptographer brightness(),275 Auriea Harvey and Michaël Samyn. 341 Dynamic color palettes The Endless Forest 347 Image 4: Filter, Blend, Copy, Mask279 Motion 1: Lines, Curves 347 Filtering, Blending279 Controlling motion filter(), blend(),284 Moving along curves blendColor()287 Motion through transformation 353 Copying pixels copy()291 Motion 2: Machine, Organism 354 Masking291 Mechanical motion mask()295 Organic motionxiv
  12. 12. 355 Image 5: Image Processing 421 Output 2: File Export356 Pixels 421 Formatting data pixels[], loadPixels(), nf() updatePixels(), createImage() 422 Exporting files359 Pixel components saveStrings(), PrintWriter,360 Convolution createWriter(),364 Image as data PrintWriter.flush(), PrintWriter.close(), exit()367 Output 1: Images368 Saving images 427 Input 6: File Import save() 428 Loading numbers369 Saving sequential images loadStrings(), saveFrame() split(), splitTokens() 431 Loading characters371 Synthesis 3: Motion and Arrays WHITESPACE372 Centipede. Ariel Malka373 Chronodraw. Andreas Gysin 435 Input 7: Interface374 AmoebaAbstract_03. Marius Watz 436 Rollover, Button, Dragging375 Mr. Roboto. Leon Hong 442 Check boxes, Radio buttons 448 Scrollbar377 Interviews 3: Animation, Video379 Motion Theory. R.E.M. “Animal” 453 Structure 5: Objects II383 Bob Sabiston. Waking Life 453 Multiple constructors387 Jennifer Steinkamp. Eye Catching 454 Composite objects391 Semiconductor. The Mini-Epoch Series 456 Inheritance extends, super395 Structure 4: Objects I395 Object-oriented programming 461 Simulate 1: Biology398 Using classes and objects 461 Cellular automata class, Object 469 Autonomous agents406 Arrays of objects409 Multiple files 477 Simulate 2: Physics 477 Motion simulation413 Drawing 2: Kinetic Forms 481 Particle systems414 Active tools 487 Springs416 Active drawings 495 Synthesis 4: Structure, Interface 496 WithoutTitle. Lia 497 Pond. William Ngan 498 Swingtree. ART+COM, Andreas Schlegel 499 SodaProcessing. Ed Burtonxv
  13. 13. 501 Interviews 4: Performance, Installation 579 Extension 5: Sound. R. Luke DuBois503 SUE.C. Mini Movies 579 Music and sound programming507 Chris Csikszentmihályi. in the arts DJ I, Robot Sound System 582 Sound and musical informatics511 Golan Levin, Zachary Lieberman. 584 Digital representation of sound Messa di Voce and music515 Marc Hansen. Listening Post 588 Music as information 591 Tools for sound programming519 Extension 1: Continuing . . . 592 Conclusion519 Extending Processing 593 Code521 Processing and Java 599 Resources522 Other programming languages 603 Extension 6: Print. Casey Reas525 Extension 2: 3D. Simon Greenwold 603 Print and computers525 A short history of 3D software 606 High-resolution file export526 3D form 608 Production531 Camera 612 Conclusion532 Material and lights 613 Code536 Tools for 3D 615 Resources538 Conclusion539 Code 617 Extension 7: Mobile. Francis Li545 Resources 617 Mobile software applications 619 The mobile platform547 Extension 3: Vision. Golan Levin 622 Programming for mobile phones547 Computer vision in interactive art 624 Mobile programming platforms549 Elementary computer vision 625 Conclusion techniques 626 Code552 Computer vision in the physical world 631 Resources554 Tools for computer vision555 Conclusion 633 Extension 8: Electronics.556 Code Hernando Barragán and Casey Reas561 Resources 633 Electronics in the arts 635 Electricity563 Extension 4: Network. 637 Components Alexander R. Galloway 638 Circuits563 The Internet and the arts 639 Microcontrollers and I/O boards565 Internet protocols and concepts 642 Sensors and communication569 Network tools 646 Controlling physical media571 Conclusion 648 Conclusion572 Code 649 Code576 Resources 658 Resourcesxvi
  14. 14. 661 Appendix A: Order of Operations663 Appendix B: Reserved Words664 Appendix C: ASCII, Unicode669 Appendix D: Bit, Binary, Hex673 Appendix E: Optimization679 Appendix F: Programming Languages686 Appendix G: Code Comparison693 Related Media699 Glossary703 Code Index705 Indexxvii
  15. 15. Code IndexThis index contains all of abs(), 241 ellipse(), 30 alpha(), 338 ellipseMode(), 34the Processing language ambient(), 533 else, 55elements introduced ambientLight(), 533 else if, 56within this book. The append(), 309 endRaw(), 531page numbers refer to arc(), 124 endRecord(), 607 arraycopy, 310 endShape(), 69the first use. Array, 301 exit(), 422 length, 304 expand(), 309! (logical NOT), 57 atan2(), 243 extends, 456!= (inequality), 52% (modulo), 45 background(), 31 false, 38&& (logical AND), 57 beginRaw(), 531 fill(), 32() (parentheses) beginRecord(), 607 filter(), 347 for functions, 18 beginShape(), 69 float, 37 for precedence, 47 bezier(), 30 float(), 106* (multiply), 44 bezierVertex(), 75 floor(), 49*= (multiply assign), 49 blend(), 351 for, 61+ (addition), 43 blendColor(), 352 frameCount, 173++ (increment), 48 blue(), 337 frameRate(), 173+= (add assign), 48 boolean, 38, (comma), 18 boolean(), 106 get(), 321- (minus), 44 brightness(), 338 green(), 337-- (decrement), 48 byte, 38-= (subtract assign), 48 byte(), 106 HALF_PI, 117. (dot), 107 height, 40/ (divide), 44 camera(), 531 hour(), 245/= (divide assign), 49 Capture, 556 HSB, 89/* */ (comment), 18 ceil(), 49 hue(), 338// (comment), 17 char, 38, 102; (semicolon), 19 char(), 106 if, 53< (less than), 51 class, 395 image(), 96<= (less than or Client, 567 int, 37 equal to), 52 color, 38, 89 int(), 107= (assign), 38 color(), 89 key, 225== (equality), 52 colorMode(), 91 keyCode, 227 for String objects, 109 constrain(), 237 keyPressed, 224> (greater than), 51 copy(), 353 keyPressed(), 232>= (greater than cos(), 118 keyReleased(), 232 or equal to), 52 createGraphics(), 614[] (array access), 301 createImage(), 362 lerp(), 81 2D arrays, 312 createWriter(), 423 lightSpecular(), 536 arrays of objects, 406 cursor(), 213 line(), 27{} (braces), 53 curveVertex(), 74 loadFont(), 112 and variable scope, 178 loadImage(), 96|| (logical OR), 57 day(), 249 loadPixels(), 356# (hex color), 93 degrees(), 117 loadStrings(), 428 directionalLight(), 536 loop(), 235 dist(), 238 draw(), 173703
  16. 16. map(), 81 quad(), 29 text(), 112mask(), 354 QUARTER_PI, 117 textAlign(), 115max(), 50 textFont(), 112millis(), 248 radians(), 117 textLeading(), 115min(), 50 random(), 127 textSize(), 114minute(), 245 randomSeed(), 129 texture(), 536month(), 249 rect(), 29 textWidth(), 116mouseButton, 212 rectMode(), 34 tint(), 97mouseDragged(), 229 red(), 337 translate(), 133mouseMoved(), 229 redraw(), 235 triangle(), 27mousePressed, 212 return, 194 true, 38mousePressed(), 229 RGB, 89 TWO_PI, 117mouseReleased(), 229 rotate(), 137mouseX, 205 round(), 50 updatePixels(), 356mouseY, 205 saturation(), 338 vertex(), 69new save(), 368 void, 187 for arrays, 303 saveFrame(), 369 for objects, 399 saveStrings(), 422 width, 40nf(), 422 scale(), 138noCursor(), 213 second(), 245 year(), 249noFill(), 33 Server, 567noise(), 130 set(), 324noiseSeed(), 131 setup(), 177noLoop(), 178 shorten(), 309norm(), 80 sin(), 118noSmooth(), 33 size(), 24noStroke(), 33 with P3D, 528noTint(), 97 with OPENGL, 528 with PDF, 607Object, 107, 395 smooth(), 33 specular(), 536PFont, 112 split(), 429PI, 117 splitTokens(), 430PImage, 96 spotLight(), 536pixels[], 356 sq(), 79pmouseX, 208 sqrt(), 79pmouseY, 208 str(), 107point(), 25 String, 103pointLight(), 536 length(), 108popMatrix(), 134 endsWith(), 108pow(), 80 equals(), 109print(), 20 startsWith(), 108println(), 20 substring(), 109PrintWriter, 423 toCharArray(), 108 close(), 423 toLowerCase(), 109 flush(), 423 toUpperCase(), 109 println(), 424 stroke(), 32pushMatrix(), 134 strokeCap(), 33 strokeJoin(), 33 strokeWeight(), 33 super, 456704 Code Index
  17. 17. IndexThis index contains mostly Apple Computer, 3, 111, 537, Bass, Saul, 327 585, 699 Baumgärtel, Tilman, 564people, software, artwork, Apple Logic Audio, 503, 591 Bauhaus, 149and programming Apple Mac G3, 383 BBC Acorn Archimedes, 264languages. For topics, Apple Mac G4, 383 Beach Culture, 605see the table of contents Apple Macintosh (Mac), 9–11, 95, Beethoven, Ludwig van, 581 111–112, 169, 205, 227, 367, 383, BEFLIX, 315, 681(pp. vii–xvii); for code, see 521, 568–569, 574, 604, 639, 665, Bell Laboratories, 315, 580–581, 604the Code Index. 682, 685 Bentley Systems Apple Mac Mini, 639 GenerativeComponents, 5371:1 (Jevbratt), 566 Apple Mac OS, 264, 435, 665–666, Berliner, Emile, 5793M Corporation, 553 681 Berlow, David, 1703 Stoppages Étalon (Duchamp), 127 Apple Mac OS X, 16, 170, 435, 645, Bernard (a k a Flip 1), 5087–11 Email list, 563 649, 684 BIAS Peak, 591 Apple QuickTime, 367, 383–384, BigEye, 554AARON, 218 387–388 Binary Runtime Environment forAesthetics and Computation AppleScript, 681 Wireless (BREW), 625 Group (ACG), xxiii, 682 Arduino, 521, 633, 640, 641, 645–646, Binary space partition (BSP), 527Achituv, Romy, 549 648–649, 681, 685 Binder, Maurice, 327ActionScript, 158, 166, 522–523, 565, Arp, Jean, 127 bitforms gallery, 164, 166–167, 525, 680–681, 686–687, 689, 691 Ars Electronica Festival, 618 547, 603, 633Adair, Sandra, 384 ART+COM, 498 Bittorent, 571Adobe, 4, 169, 683 ASCII (American Standard Code for Blackwell, Lewis, 605Adobe After Effects, 166, 327, Information Interchange), 102–103, Blender, 276, 576 379, 387 226–227, 549, 565, 664–668, 670, Blinkenlights (Chaos ComputerAdobe Flash, 157–158, 165–166, 691, 699 Club), 618 267–268, 275, 278, 327, 436, Athena, 387 Blonk, Jaap, 511 564–565, 624, 629, 642, ATI, 537 Bluetooth, 619, 621–622, 624, 641, 680–681, 683, 686, 701 AT&T/Bell , 564 645, 683Adobe Flash Lite, 624, 681 Audacity, 591 Blyth, Steven, 512Adobe Garamond (font), 112 AutoCAD, 217, 529, 537 Boids (Reynolds), 295, 473,Adobe Illustrator, xxiii, 30, 77, 166, Autodesk 3ds Max, 268, 276, 475, 497 143, 217, 271, 273, 607–608, 683 391–392, 537 Boole, George, 38, 61, 669Adobe Photoshop, xxiii, 95, 166, AutoDesk Revit, 537 Boolean algebra, 38 268, 276, 347, 355, 360, 384, AutoLISP, 522, 681 Boulez, Pierre, 581 387–388, 391–392, 607–608, Autonomedia, 564 Braitenberg, Valentino, 473–474 611, 683 Avid/Digidesign Pro Tools, 591 Brakhage, Stan, 413Adobe Premiere, 391–392 AVR (Atmel), 640 Brecht, Bertolt, 564Adobe Streamline, 166 awk, 517, 684 Brooklyn Academy of MusicAAC (Advanced Audio Coding), (BAM), 515–516 585 Babbitt, Milton, 580–581 Brown, Robert, 295AIFF (Audio Interchange File Bach, J. S., 581 Brownian motion, 295 Format), 585–586, 699 Bailey, Chris, 581 Brunelleschi, Filippo, 525Aldus PageMaker, 605 Balkin, Amy, 267 Bunting, Heath, 563–564Alexander, Ryan, 380 Baran, Paul, 564 Bureau of Inverse Technology,Alias Maya, 379, 387–388, 537, 680 Barr, Alfred, 291 548, 634AltSys, 170 Barragán, Hernando, 633 Burke, Phil, 592Andrade, Laura Hernandez, 4 BASIC, xxiii, xxiv, 152, 264, 522, Burton, Ed, 263–264, 413, 499Apple IIe, xxiii 604–605, 640, 642, 681 Byrne, David, 581Apple Audio Units (AU), 591 BASIC Stamp 2 (Parallax), 640 BasicX–24 (NetMedia), 642705
  18. 18. C, 7, 264, 515–517, 522–523, 592, 640, Cosic, Vic 563–564 Electronic Arts, 585 642, 682–685, 693, 697 Costabile, Sue (SUE.C), 503–504 ELIZA, 101C++, 264, 271, 383, 507–508, 511–512, Craighead, Alison, 618 Emacs, 516 515–516, 522–523, 555, 592, 599, Crawford, David, 316 Emigre, 605 640, 679, 681–682 Crystal Castle, 525 End of Print, The (Blackwell), 605CAD (computer–aided drawing Csikszentmihályi, Chris, 507–508, Endless Forest, The (Tale of Tales), software), 217, 526, 537–538 634 274–277Cage, John, 127, 579 CSIRAC, 580 Engelbart, Douglas, 205CalArts School of Art, 564 Csuri, Charles, 217 Eno, Brian, 581California Institute of Technology Cuba, Larry, 1, 315 Enron, 268 (Caltech), 388, 549 Cullen, Mathew, 379–380 Enzensberger, Hans Magnus, 564Cameron, Dan, 387 CV.Jit, 554 EPS, 606Campbell, Jim, 549 Cybernetic Serendipity, 101, 603 Euler’s method, 7, 494Carmack, John ,525 Cycling ’74, 554, 592 Every Icon (Simon), 565Carnegie Mellon University, xxi Cyclops, 554 Evolved Virtual Creatures (Sims),Carnivore, 566, 568–569 295Carson, David, 605 Dada, 149–150 Experiments in Art andCascading Style Sheets (CSS), 93 Davies, Char, 526 Technology (E.A.T.), 633CCRMA Synthesis ToolKit (STK), Davis, Joshua, 564–565 Extend Script, 683 592 Deck, Barry, 112 Eye magazine, 605Chang, Zai, 6 Deleuze and Guattari, 564 Eye Catching (Steinkamp),Cheese (Möller), 549 Delvoye, Wim, 461 386–389Cho, Peter, 257, 327 De Mol, Gerry, 275 EyesWeb, 554–555CIA World Fact Book, 267 Design By Numbers (DBN), xxiv, EZIO (NIQ), 642Citron, Jack, 315 552–523, 682CityPoems, 617, 624 Designers Republic, The, 605 Feingold, Ken, 633ChucK, 592, 682 Dextro, 316 Ferro, Pablo, 327Cloaca (Delvoye), 461 Dialtones (Levin et al.), 617–618 Final Cut Pro (FCP), 383, 503Clash of the Titans, 387 Digidesign, 587, 591 Final Scratch, 507Close, Chuck, 606 Dine, Jim, 606 Fischinger, Oskar, 413CODE (Petzold), 648 DJ I, Robot Sound System, 506–509 Fisher, Robert, 552Cohen, Harold, 218 Dodgeball, 617, 624 Flake, Gary William, 469Columbia–Princeton Electronic Domain Name System (DNS), 566 Flight404.com, 6 Music Center, 580 DrawBot, 169, 682, 684 Flight Simulator, 525Commodore C–64, 272 Drawing with Computers (Wilson), Foldes, Peter, 315Commodore VC–20, 272 152, 217, 604 FontLab, 170Common Lisp, 592 Drawn (Lieberman), 413 Fontographer, 170Complexification.net, 6, 157 DuBois, R. Luke, 579 Fortran, 522Computational Beauty of Nature, Duchamp, Marcel, 127, 633 Fractal.Invaders (Tarbell), 156–159 The (Flake), 469 Dunne, Tony, 634 Franceschini, Amy, 267Computers and Automation, 603 Dürer, Albrecht 525, 612 Franke, Uli, 260, 271Computer Clubhouse, 680 DXF, 520, 529–531 Free Radicals, 413Computer Lib / Dream Machines Dynabook, 3 Friendster, 617 (Nelson), 3 Fourier, Jean-Baptiste-Joseph, 584Computer Vision Homepage Eagle, 272 Fourier transform, 585, 588, 590 (Huber), 552 écal (école cantonale d’art de Futurist, 279, 579Coniglio, Mark, 512 Lausanne), 271“Constituents for a Theory of the Eclipse, 571, 625 Gabo, Nam, 633 Media” (Enzensberger), 564 ECMAScript, 681, 683 Galloway, Alexander R., 563Conway, John, 461, 463, 467–468, Edelweiss Series (Maywa Denki), Game of Life, 461, 463, 465–466, 475 634 468, 475Cook, Perry, 592 Edgerton, Harold, 295 Gardner, Martin, 461, 463Cooper, Muriel , 327 Edison, Thomas, 579 Garton, Brad, 581Cope, David, 581 Eighth Istanbul Biennial, 387 Gerhardt, Joseph, 391–392CorelDRAW, 608 Eimart, Herbert, 580 Gestalt psychology, 584706 Index
  19. 19. GIF, 95–96, 98–99, 421, 700–701 Huber, Daniel, 552 JavaScript, 268, 271, 522, 624, 680,Girroir, Jonathan, 506–509 Huff, Kenneth A., 606 681, 683Google, 568, 617 Hypermedia Image Processing Java Virtual Machine (JVM), 680GPS (Global positioning system), Reference (HIPR), 552 Jeremijenko, Natalie, 548 619, 621 HyperTalk, 522 Jevbratt, Lisa, 566Graffiti, 223 jMax, 592GRASS, 681 IANA, 569 Jodi, 563–566Groeneveld, Dirk, 333 IBM, 315, 537, 580, 585, 604, Jones, Crispin, 634GNU Image Manipulation 620, 702 Jones, Ronald, 275 Program (GIMP), 95, 347, 355, IC (integrated circuit), 639, 647 Jonzun Crew, 508 607–608 I–Cube X (Infusion Systems), 642 JPEG, 95–96, 162, 421, 606, 611,GNU Public License (GPL), 271 IEEE 1394 camera, 556 620, 701Gnutella, 566, 571 If/Then (Feingold), 633 JSyn (Java Synthesis), 592GPU (graphics processing unit), Igarashi, Takeo, 538 Julesz, Bela, 603 536–537 Igoe, Tom, 635, 648Graphomat Z64 (Zuse), 603 Ikarus M, 170 Kay, Alan, 3Greenwold, Simon, 525 Incredibles, The, 315 Kim, Tai-kyung, 5Greie, Antye (AGF), 503–504 Internet Explorer, 565 Kimura, Mari, 582Grzinic, Marina, 563 Internet Protocol (IP), 566–567, King’s Quest, 525GUI (Graphical user interface), 569, 589, 645 Klee, Paul, 217 435–436, 448, 450, 499, 604, Impressionist, 279 Knowlton, Kenneth C., 315, 604 634, 679–680, 683, 685, 700 Inaudible Cities: Part One Krueger, Myron, 255, 512, 547Gutenberg, Johannes, 111 (Semiconductor), 392 Kusaite, Lina, 275Gutenberg archive, 433 InDesign, 683 Kuwakubo, Ryota, 634Guttmann, Newmann, 580 Infrared, 553, 621Gysin, Andreas, 373 Inge, Leif, 581 La Barbara, Joan, 511 Inkscape, 77, 607–608 Langton, Chris, 469, 471Hall, Grady, 379 Installation (Greenwold), 526 Putto8 2.2.2.2 (Rees), 524, 526Handel, George Frideric, 581 Institute of Contemporary Arts LaserWriter, 111, 604Hansen, Mark, 515–516, 634 (ICA), 101, 522 Lee, Soo-jeong, 5Harmon, Leon, 604 Intel Integrated Performance Led Zeppelin, 161Harvard University, xxi Primitives (IPP), 512, 555 Legible City, The (Shaw,Harvey, Auriea, 275 Interaction Design Institute Ivrea Groeneveld), 333Hewlett-Packard (HP), 604, 610 (IDII), xxi, 634 Lehni, Jürg, 260, 271–273Hawkinson, Tim, 633 i|o 360°, 565 Leibniz, Gottfried Wilhelm, 61Hawtin, Richie, 507 I/O/D 4 (“The Webstalker”), 566 Letterscapes (Cho), 327Hébert, Jean-Pierre, 217, 606 IRCAM, 554, 581, 592 LettError, 111, 168–170, 605Hektor (Lehni, Franke), 260, Ishii, Hiroshi, 634 Levin, Golan, 259, 333, 511–512, 270–273 Ishizaki, Suguru, 327 547, 617–618Henry, John, 507 ISO 216 standard, 611 Lewis, George, 582Henry, Pierre, 580 Iwai, Toshio, 512, 549 LeWitt, Sol, 217Hiller, Lejaren , 581 Li, Francis, 617Hoefler, Jonathan, 112 James, Richard (Aphex Twin), 582 Lia, 316, 496Hodgin, Robert, 6, 692 Jarman, Ruth, 391–392 Lialina, Olia, 563–564Hokusai, 612 Java, 7, 9–11, 146, 161–162, 263–264, Licko, Zuzana, 112, 605Hongik University, 5 271, 499, 521–523, 528, 555, 564– Lieberman, Zachary, 413,Hong, Leon, 5, 375 565, 571, 574, 592, 622, 625– 626, 512–512, 547Hooke’s law, 263, 487 642, 663, 673, 677, 679–683, Lifestreams, 425–426Howard Wise gallery, 603 686–690, 699–700 Limewire, 571HTML (HyperText Markup Java 2 Micro Edition (J2ME), 625 Lingo, 522–523, 555, 565, 683,Language), 9–11, 93, 268, 427, 549, Java applet, 9–11, 264, 521, 656, 657, 686–687, 689, 691 564–565, 568–569, 621, 624, 675, 699 Linklater, Richard, 383 665–666, 684 Java Archive (JAR), 10–11, 700 Linotype, 111HTTP (Hypertext Transfer Java Core API, 271 Linux, 4, 9–11, 508, 521, 568–569, Protocol), 567–569, 623 625, 645, 649707 Index
  20. 20. Listening Post (Rubin, Hansen), Metrowerks Codewarrior, 512 NetBeans, 625 514–517 Microsoft, 4, 111, 169, 436, 508, Netscape Navigator, 565, 683LISP, 101 525, 537, 585, 702 Newton, Isaac, 477, 488LiveScript, 683 Microsoft Direct3D, 537 New York University (NYU), 6, 634Local area network (LAN), Microsoft Visual Basic, 436 New York Times, The, 150 568–569 Microsoft Windows, 9, 11, 264, 367, Ngan, William, 497Logo, xxiii, 2, 217, 522, 681 421, 435–436, 511, 521, 568, 625, Nimoy, Josh, 512Lovink, Geert, 564 645, 649, 665–666, 685 Noll, A. Michael , 217, 603Lozano-Hemmer, Rafael, 546, 548 MIDI (Musical Instrument Digital Nokia, 517, 618–619, 625Lucent Technologies, 515 Interface) 162, 554, 588–589, Nmap, 569Lucier, Alvin, 590 591–592, 618, 621, 623, 642, 645, NSA (National Security Agency),Luening, Otto, 580 683, 685 268Lüsebrink, Dirk, 549 Mignonneau, Laurent, 549 NTNTNT (Cal Arts), 564Lye, Len, 413 MIME, 623 NTSC, 367 Mims, Forest M., III, 648 NTT DoCoMo’s i–Mode, 624Machine Art exhibition, 291, 633 Mini-Epoch Series, The Nuendo, Steinberg, 591Machine Perception Laboratories, (Semiconductor), 390–393 null, 40, 701 549 Mini Movies (AGF+SUE.C), 500, NURBS (Non-uniform RationalMacMurtrie, Chico, 549 502–505 B-splines), 526Macromedia Director, 166, Minitasking (Schoenerwissen/ nVidia, 537 387–388, 554–555, 642, 683, 686 OfCD), 562, 566 Nyquist theorem, 585Maeda, John, xix, xxiii, xxiv, 3, 5, Minsky, Marvin, 547 158, 333, 564, 606, 682 MIT Media Laboratory, xxiii, 327, OBJ, 529–531Malka, Ariel, 372 634, 680, 682, 702 Objectivity Engine, The (Paterson),Makela, P. Scott, 605 MixViews, 591 164–167Mandelbrot, Benoit, 153 MP3, 162, 421, 585, 621, 623 Oliveros, Pauline, 582Manovich, Lev, 565 MPEG–7, 549 Olsson, Krister, 589Marble Madness, 525 Mobile Processing, 521, 622–626, Once-Upon-A-Forest (Davis), 564Marconi, Guglielmo, 579 683 On, Josh, 267–268Marey, Étienne-Jules, 295 Mohr, Manfred, 217, 602, 606 oN-Line System (NLS), 205Mark of the Unicorn Digital Möller, Christian, 549 OpenCV, 512, 555 Performer, 591 Moore, F. Richard, 592 OpenGL, 512, 520, 528, 531, 537,Markov chain, 581 Mophun, 625 554, 684Marx, Karl, 267–268 Morisawa, 605 Open source, 4, 268, 271, 512, 521,Massachusetts Institute of Motion Theory, 378–381 555, 591, 625–626, 640, 684 Technology (MIT), xix, xxiii, MTV, 384 OpenType, 111, 169 xxiv, 327, 634, 680, 682, 693, 695 [murmur], 618 Oracle database, 264Masterman, Margaret, 101 Museum of Modern Art, The OSC (Open Sound Control),Mathews, Max, 580, 586, 591, 683 (MOMA), 291, 633 516–517, 571, 589MATLAB, 522 MUSIC, 580, 591 oscP5 (Schlegel), 571Max/MSP/Jitter, 2, 503–504, Musique concrète, 580–581 Osmose (Davies), 526 515–517, 522, 554–555, 571, 580, Muybridge, Eadweard, 295, 373 O’Sullivan, Dan, 635, 648 592, 642, 683–685 Myron, 555 Oswald, John, 581Maya Embedded Language (MEL), MySQL, 267–268 Owens, Matt, 565 680, 683 Myst, 525Maywa Denki, 634 Pad, 435McCarthy, John, 101 Nakamura, Yugo, 565 Paik, Nam June, 633McCartney, James, 592 Nake, Frieder, 217, 603 PAL, 367McCay, Winsor, 315 Napier, Mark, 566 Palm Pilot, 223, 625McLaren, Norman, 413 Napster, 507, 571 Palm OS, 625Medusa, 387 Nees, Georg, 217, 603 Panasonic, 625MEL, 680, 683 Nelson, Ted, 3 Papert, Seymour, 2, 217Mendel, Lucy, 507 “net.art”, 563–564 Parallax, 640Messa di Voce (Tmema et al.), net.art (Baumgärtel), 564 Parallel Development, 516 510–513, 547 net.art 2.0 (Baumgärtel), 564 Pascal, 522708 Index
  21. 21. Paterson, James, 165–166, 316, Q*bert, 525 Schlegel, Andreas, 498, 571 565, 606 Quartz Composer, 684 Schmidt, Karsten (a k a toxi), 4, 518Paul, Les, 580 Qualcomm, 625 Schoenerwissen/OfCD, 562PBASIC, 642, 681 Quest3D, 275–276 Schöffer, Nicolas, 633PC, 10, 227, 388, 625, 665, 682 Schumacher, Michael, 582PCB (printed circuit board), R, 515, 517 Schwartz, Lillian, 315 639, 640 Raby, Fiona, 634 Scientific American, 461, 463PCM (pulse–code modulation), Radial, 503–504 Scratch, 680 585–586, 699, 702 RAM, 701 Screen Series (Snibbe), 549PDF, 520, 606–608, 682 RandomFont Beowolf (LettError), Scriptographer (Lehni, Franke),Pelletier, Jean-Marc, 554 111, 168–170, 605 270–273, 683Penny, Simon, 549 Rauschenberg, Robert, 606 Seawright, James, 633Perl, 146, 515–517, 522–523, 565, 571, Ray Gun, 605 sed, 684 681, 684 Razorfish, 565 Semiconductor, 390–393, 646Perlin, Ken, 130 RCA Mark II Sound Synthesizer, Sessions, Roger 580Personal area network (PAN), 580 Sester, Marie, 549 621–622 Readme!, 563 Shannon, Claude, 669Petzold, Charles, 648 Real-Time Cmix, 592 Shape of Song (Wattenberg),Phidgets, 642 Rees, Michael, 526 160–163Philips, 634 Reeves, Alec 585 Shaw, Jeffrey, 333PHP, 267–268, 522–523, 565, Reich, Steve, 293 Shiffman, Daniel, 6 682, 684 Reichardt, Jasia, 522 Shockwave Flash (SWF), 158, 565PHPMyAdmin, 268 Reiniger, Lotte, 315 Short Messaging Service (SMS),Physical Computing (O’Sullivan, RenderMan, 315 617, 619, 621 Igoe), 648 R.E.M. “Animal” (Motion Theory), SHRDLU, 101Piano Phases (Reich), 293 378–381 sh/tcsh, 515, 684PIC (Microchip), 272, 640 ResEdit, 170 Shulgin, Alexi, 563–564PIC Assembler, 271–272 Resnick, Mitchel, 471, 680 Silicon Graphics, 529, 537PIC BASIC, 681 Reynolds, Craig, 295, 473, 497 Simon, John F. Jr., 413, 565Pickard, Galen, 507 Rhino, 271, 537 SimpleTEXT, 618Pickering, Will, 516 Rich, Kate, 548 Sims, Karl, 295Pixar, 315 Riley, Bridget, 151 Sinclair Spectrum, 264Pixillation (Schwartz), 315 Ringtail Studios, 275 Singer, Eric, 554PNG (Portable Network Graphics), Risset, Jean-Claude, 581 Sketchpad, 217 95–96, 98–99, 606, 622, 701 RoboFog, 170 SketchUp, 538Pocket PC, 625 Rokeby, David, 548, 554 Slacker, 383PoemPoints, 617 Rotoshop, 383–384, 413 Slimbach, Robert, 112Pong, 256, 590, 618 Royal Academy of Arts, 169 Smalltalk, 685PortAudio, 512 Royal College of Art, 634 Smith, Laura, 275PostScript, 111, 143, 169–170, 522, Rozin, Danny, 549 Snake, 618 604–605, 681 RS-232, 639, 554, 640, 645 Snibbe, Scott, 413, 549Poynor, Rick, 605 Rubin, Ben, 515, 634 Social Mobiles (SoMo), 634Practical Electronics for Inventors Ruby, 681, 684 Sodaconstructor (Burton), (Scherz), 648 Ruby on Rails, 684 262–265, 413, 499Practice of Programming,The Runge-Kutta method 7, 494 Soda Creative Ltd., 263–264 (Kernighan, Pike), 252 Russolo, Luigi, 579 SoftVNS, 554Praystation (Davis), 564 Solidworks, 537Public Enemy, 581 Sabiston, Bob, 383–384, 413 Sommerer, Christa, 549Puckette, Miller, 2, 592, 684 Saito, Tatsuya, 198, 529, 568 Sonami, Laetitia, 582Pulse–code modulation (PCM), Samyn, Michaël, 275 Sonic Inc., 392 585–586, 699, 702 Sauter, Joachim, 549 Sony, 634Pure Data (Pd), 592, 684–685 Schaeffer, Pierre, 580 Sony Ericsson, 625Python, 146, 170, 517, 522–523, Scheme, 522 Sorenson, 388 681–682, 684 Scherz, Paul, 648 Sorting Daemon (Rokeby), 548, 554 Schiele, Egon, 217 Sound Films, 392709 Index
  22. 22. Spark Fun Electronics, 640 Toy Story, 315 von Neumann, John, 461SQL (Structured Query Language), Tmema, 510–513 Vorbis codec, 585 685 Transmission Control Protocol Voxel, 527Srivastava, Muskan, 5 (TCP), 569 vvvv, 685Standards and Double Standards Tron, 315 (Lozano-Hemmer), 547–548 Truax, Barry, 581 Wacom, 383Star Wars, 315 TrueType, 111 Waking Life, 382–385, 413Strausfeld, Lisa, 327 Tsai, Wen–Ying, 633 Walt Disney, 315, 379Stedelijk Museum, 218 TurboGears, 684 Wang, Ge, 592Stehura, John, 315 Turkle, Sherry, 5 Warner Bros. Records, 379STEIM (Studio for Electro- Turux (Lia, Dextro), 316 Wattenberg, Martin, 161–162, 606 Instrumental Music), 554 Type, Tap, Write (Maeda), 333 Watz, Marius, 374Steinkamp, Jennifer, 387–388 Tzara, Tristan, 150 WAV, 585–586, 621, 623, 702Stipe, Michael, 379–380 Wayfinder Systems, 619Stockhausen, Karlheinz, 580 Überorgan (Hawkinson), 633 Wegman, William 606Stone, Carl, 582 Unicode, 432, 665–668 Weizenbaum, Joseph, 101Stop Motion Studies (Crawford), University of California Whitney, James, 315 316 Berkeley, 589 Whitney, John, 315Studies in Perception I, (Knowlton, Los Angeles (UCLA), xxi, 4, 5, 574 Whitney Museum of American Harmon), 604 San Diego (UCSD), 549 Art, 516Substrate (Tarbell), 6, 154, 156–159 University of Cincinnati (UC), xxiii Wilhelm Imaging Research, 610Sudol, Jeremi, 507 University of Genoa, 554 Wilson, Mark, 152, 217, 604Suicide Box, 548, 554 UNIX, 227, 435, 517, 569, 645 Winograd, Terry, 101Sun Java Wireless Toolkit, 625 U.S. Army Ballistic Missile Wiring, 521, 633, 640, 641, 645–646,Sun Microsystems, 521, 537, Research Laboratories, 603 648–649, 685 625, 682 USB, 556, 640–645, 701 Wright, Frank Lloyd, 333SuperCollider, 571, 592, 685 User Datagram Protocol (UDP), Wrongbrowser (Jodi), 566Sutherland, Ivan, 217 554, 569, 589 Wolfram, Steven, 461, 463–464,SVG (Scalable Vector Graphics), Ussachevsky, Vladimir, 580 467, 475 77, 520, 606, 624 UTF-8, 665 Wolfenstein 3D, 525Symbian, 625 Utterback, Camille, 549 Wong, Andy, 507Synergenix, 625 Wong, Yin Yin, 327 Valicenti, Rick, 605Tale of Tales, 274–277 van Blokland, Erik, 169–170 Xenakis, Iannis, 581Talmud Project (Small), 327 van Blokland, Petr, 170 Xerox Palo Alto Research CenterTakeluma (Cho), 327 VanDerBeek, Stan, 315 (PARC), 3, 205Takis, 633 Vanderlans, Rudy, 605 Xerox, 507Tarbell, Jared, 6, 155–156, 606 van Rossum, Just, 169 xHTML Mobile, 624Tangible Media Group (TMG), 634 Vaucanson’s Duck, 461 XML, 421, 427–428, 520, 549, 621,TARGA, 368, 606, 702 Vehicles: Experiments in Synthetic 624, 702Tate Gallery, 218 Psychology (Braitenberg), 473T|C Electronics Powercore, 587 Venice Biennale, 391 Yamaha Digital Mixing Enginetcpdump, 568–569 Verschoren, Jan, 275 (DME), 516TCP/IP, 554, 569, 589 “Video Games and Computer Yellow Arrow, 618Technics, 507 Holding Power” (Turkle), 5 Youngblood, Gene, 388Teddy (Igarashi), 538 Videoplace (Krueger), 547Telephony (Thompson, Visual Language Workshop (VLW), Ziggurat (font), 112 Craighead), 618 327, 702 Zooming user interface (ZUI), 435TeleNav, 619 Visual programming languagesTeleo (Making Things), 642 (VPL or VL) , 679–680Tesla, Nikola, 579 Vitiello, Stephen, 582Text-to-speech (TTS), 516–517 VLW font format, 112, 702They Rule (On et al.), 266–269 Vogel, Peter, 632, 633Thomson, Jon, 618 Von Ehr, Jim, 170TIFF, 368, 507, 606, 608, 611, 702 Vonnegut, Kurt, 507710 Index

×