Mastering Openframeworks: Creative Coding Demystified

Total Page:16

File Type:pdf, Size:1020Kb

Mastering Openframeworks: Creative Coding Demystified Mastering openFrameworks: Creative Coding Demystified A practical guide to creating audiovisual interactive projects with low-level data processing using openFrameworks Denis Perevalov BIRMINGHAM - MUMBAI Mastering openFrameworks: Creative Coding Demystified Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2013 Production Reference: 1160913 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-84951-804-8 www.packtpub.com Cover Image by Asher Wishkerman ([email protected]) Credits Author Project Coordinators Denis Perevalov Shiksha Chaturvedi Hardik Patel Reviewers Mathias Paumgarten Proofreader Tim Pulver Mario Cecere Acquisition Editor Indexer Nikhil Karkal Priya Subramani Lead Technical Editor Production Coordinator Sweny M. Sukumaran Arvindkumar Gupta Technical Editors Cover Work Sharvari Baet Arvindkumar Gupta Aparna Kumari Hardik B. Soni Copy Editors Aditya Nair Brandt D'Mello Gladson Monteiro Adithi Shetty Foreword Confuсius said, "Choose a job you love, and you will never have to work a day in your life". Probably this piece of wisdom is meant right for you. Maybe you have already found your vocation. Maybe you are just looking for it. Anyway there's something that made you take this book. If so, let me tell you a little story. My name is Igor Tatarnikov, also known as Sodazot. I'm an artist, although not by my education, but rather by my way of life. I keep on looking for a new and interesting occupation to take up. I've had different hobbies. I've tried a lot of jobs. Three years ago I didn't even think about the interactive video, although my major occupation at that time was making video clips. I used to employ the stop-motion technique combined with computer animation. I also did some filming. By the by I grew more and more interested in the live VJ performances and generative video. I began experimenting with different techniques and posted my clips on the Internet. At the same time there appeared the first available depth camera - Microsoft Kinect on offer. After it, things went crazy. Hundreds of video clips with reviews and tests of this camera's possibilities appeared every day on the Net. I took an interest in it all and kept track of the news. Watching the possibilities displayed I got a lot of new creative ideas. And finally my friends presented me the gadget. Of course I was happy, but at first I lost my head and didn't know what to do with it. Also, it was not long since one person had written me an e-mail asking for permission to use my experimental video clip in his lecture for the students. I gladly agreed and since then we've been communicating by e-mail. It happened that this man lived in Ekaterinburg and we were thousands of kilometers apart. As we communicated, we found a lot of common interests and decided to do something together. My head was boiling with ideas. I drew lots of sketches, shared them all with my friend, and he knew how to put them to life using the openFrameworks toolkit. We took counsel and the discussions brought us even more new ideas. So we created our first commercial project for a special event at one of the Moscow cinemas. It was a funny video installation, where the picture responded to the visitor's movements. Coming up to the screen, a visitor saw himself as a funny character. The visitors of the event liked it very much and our big customers were happy—they played before the screen of the installation like children. We enjoyed the result of the work and it inspired us to create something new. We've been working together for two years since and we've made several interesting and successful projects, using openFrameworks as our main tool. This is how our visual laboratory Kuflex was created. Our projects now grow more complicated and interesting, and our team became more and more numerous. We also work with musicians, artists, dancers, architects, and we have recently created a project with a real symphony orchestra. If you still haven't guessed, I'll tell you that the friend with whom everything started is the author of this book Denis Perevalov. The content of the book is based on our experience of creating interactive installations and performances. It teaches you the openFrameworks' multimedia capabilities and the principles of their usage for building interactive projects, which work with video, 3D graphics, sound, and cameras. The core of the book consists of the real working examples of projects for openFrameworks. Some of them are based on our works, the others were designed exclusively for this book. Besides, across the text you will find hints that will help you avoid many pitfalls in the practical use of openFrameworks. Study openFrameworks, invent, and create your own projects and soon you'll realize that you can implement practically everything you can imagine using it. Igor (Sodazot) Tatarnikov, Artist About the Author Denis Perevalov is a computer vision research scientist. He works at the Institute of Mathematics and Mechanics of the Ural Branch of the Russian Academy of Sciences (Ekaterinburg, Russia). He is the co-author of two Russian patents on robotics computer vision systems and an US patent on voxel graphics. Since 2010 he has taught openFrameworks in the Ural Federal University. From 2011 he has been developing software for art and commercial interactive installations at kuflex.com using openFrameworks. He is the co-founder of interactive technologies laboratory expo32.ru (opened in 2012). Acknowledgement I would like to thank my family—wife Svetlana and son Timofey for their patience and suggestions. And many thanks to my parents and grandparents for great pirozhki, which was a necessary part of the book-writing process. My creative coding experience and the desire to write the book appeared, thankfully, to artist Igor Sodazot, who invented and designed most of the interactive installations, which I program for him using openFrameworks. He is the coauthor of most of the book's examples and its video/audio contents. Thanks to my scientific supervisor Victor Borisovich Kostousov for expending so many efforts to shape my scientific style of thinking and writing. I would like to thank my colleagues working at interactive media art, experimental music, and dance fields—Prof. Yoichi Nagashima, Tatyana Komarova, Ekaterina Zharinova, and my first curator Ksenia Fedorova, for their teaching and influence. And big thanks to my friends and scientific colleagues for supporting me and helping me with ideas: Nikolay Mikhalev, Sergey Samuraev, Kirill Kostousov, Fedor Kornilov, Elizaveta Sayfutdinova, and Prof. Pavel Konstantinovich Kuznetzov. This book would be impossible without hard work on proof-reading by Angelina Poptzova, and technical reviewing by Mathias Paumgarten and Tim Pulver. Thanks to Packt Publishing, who made this book possible. Thanks to the openFrameworks' creators and openFrameworks community for developing this amazing toolkit. All the book's examples were developed together with Igor Sodazot, except the Dancing cloud example, which is based on the idea of nCode installation by Andrey Krel, Igor Sodazot, Denis Perevalov, and Pavel Tikhonenko (2011, Moscow). All the video and audio content for the examples were made by/with Igor Sodazot, except: Image sunflower.png, which was contributed by ©iStockphoto.com/Andrew Johnson Music track surface.wav, which was contributed by Ilya Orange (soundcloud.com/ilyaorange) About the Reviewers Mathias Paumgarten is a creative developer from Austria. He is currently living and working in Santa Monica, California. Starting with a background in Flash development, Mathias found his passion for code-driven animation at a very young age. Over the years while working for and at several agencies he has broadened his skillset by leaving the web platform and working on installations using low-level languages such as C/C++. After graduating with a Bachelor's degree at the University of Applied Sciences, Salzburg, Austria, he decided to leave Austria while focusing on modern web technologies such as HTML5 and JavaScript, currently working as a frontend JavaScript developer. Mathias has worked for several renowned agencies such as B-Reel, Soap Creative, and Firstborn working on projects for Sony, Fox Entertainment, Pepsi Co., and many more. After receiving recognitions such as FWA and other awards, Mathias has also contributed to publications such as HTML5 Games Most Wanted. Tim Pulver is an interaction design student from Potsdam, Germany. As a teenager he was fascinated by the demo scene and how people were able to transform code into something beautiful. He now uses Processing, openFrameworks, and Arduino to create interactive installations, data-visualizations, and user-interface prototypes. One of his recent projects is interactive fulldome data visualization, where users can playfully explore global crop production. In another project, Tim wrote a program that translated an image of an eye based on its structure into unique jewelry, which was printed out using a 3D printer.
Recommended publications
  • Try Coding with These Fun Books!
    Try Coding with These Fun Books! www.mywpl.ca Coding From Scratch Code like a Girl By Rachel Ziter By Miriam Peskowitz Learn to create your own Get started on the games, animations or adventure of coding with other projects in no time! cool projects and step by Whether you’re just step tips. learning to code or need a refresher, this visual guide Find in library: will cover all of the basics J 005.13082 PES of Scratch programming. Find in library: J 005.133 ZIT A Beginner’s Guide to How to Code Coding By Max Wainewright By Marc Scott Teaches you all the basic An easy-to-follow guide to concepts like Loops, basics of coding, using free Variables and Selections programs like Scratch and and make your own Python. Includes step by website. Learn how to use step instructions to make Lego, build games in your own chatbot or video Scratch or experiment with game. HTML. Find in library: J 005.1 SCO Find in library: J 000.1 WAI Creative Coding in Coding Onstage By Kristin Fontichiaro Python By Sheena Vaidyanathan Presents early learners Kids will learn the with a theatre story fundamentals of challenge they can solve computer programming in using Scratch 3. Book is 30+ fun projects with the aligned to curriculum standards and includes intuitive programming language of Python extension activities. Find as a Hoopla eBook. Find in library: J 005.133 VAI Algorithms with Frozen Coding Basics By Allyssa Loya By George Anthony Kulz An easy to understand Explains how coding is used introduction to looping for today, key concepts include young readers.
    [Show full text]
  • The Uses of Animation 1
    The Uses of Animation 1 1 The Uses of Animation ANIMATION Animation is the process of making the illusion of motion and change by means of the rapid display of a sequence of static images that minimally differ from each other. The illusion—as in motion pictures in general—is thought to rely on the phi phenomenon. Animators are artists who specialize in the creation of animation. Animation can be recorded with either analogue media, a flip book, motion picture film, video tape,digital media, including formats with animated GIF, Flash animation and digital video. To display animation, a digital camera, computer, or projector are used along with new technologies that are produced. Animation creation methods include the traditional animation creation method and those involving stop motion animation of two and three-dimensional objects, paper cutouts, puppets and clay figures. Images are displayed in a rapid succession, usually 24, 25, 30, or 60 frames per second. THE MOST COMMON USES OF ANIMATION Cartoons The most common use of animation, and perhaps the origin of it, is cartoons. Cartoons appear all the time on television and the cinema and can be used for entertainment, advertising, 2 Aspects of Animation: Steps to Learn Animated Cartoons presentations and many more applications that are only limited by the imagination of the designer. The most important factor about making cartoons on a computer is reusability and flexibility. The system that will actually do the animation needs to be such that all the actions that are going to be performed can be repeated easily, without much fuss from the side of the animator.
    [Show full text]
  • Getting Started
    4620rlin.fm Page 1 Thursday, April 8, 1999 5:42 PM Getting Started &UHDWLYH6RXQG%ODVWHU/LYH &UHDWLYH$XGLR6RIWZDUH Information in this document is subject to change without notice and does not represent a commitment on the part of Creative Technology Ltd. No part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the written permission of Creative Technology Ltd. The software described in this document is furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. It is against the law to copy the software on any other medium except as specifically allowed in the license agreement. The licensee may make one copy of the software for backup purposes. Copyright © 1998-1999 by Creative Technology Ltd. All rights reserved. Version 2.00 April 1999 Sound Blaster and Blaster are registered trademarks, and the Sound Blaster Live! logo, the Sound Blaster PCI logo, EMU10K1, Environmental Audio, and Creative Multi Speaker Surround are trademarks of Creative Technology Ltd. in the United States and/or other countries. E-Mu and SoundFont are registered trademarks of E-mu Systems, Inc.. SoundWorks is a registered trademark, and MicroWorks, PCWorks and FourPointSurround are trademarks of Cambridge SoundWorks, Inc.. Microsoft, MS-DOS, and Windows are registered trademarks of Microsoft Corporation. All other products are trademarks or registered trademarks of their respective owners. This product is covered by one or more of the following U.S. patents: 4,506,579; 4,699,038; 4,987,600; 5,013,105; 5,072,645; 5,111,727; 5,144,676; 5,170,369; 5,248,845; 5,298,671; 5,303,309; 5,317,104; 5,342,990; 5,430,244; 5,524,074; 5,698,803; 5,698,807; 5,748,747; 5,763,800; 5,790,837.
    [Show full text]
  • Multimedia Systems DCAP303
    Multimedia Systems DCAP303 MULTIMEDIA SYSTEMS Copyright © 2013 Rajneesh Agrawal All rights reserved Produced & Printed by EXCEL BOOKS PRIVATE LIMITED A-45, Naraina, Phase-I, New Delhi-110028 for Lovely Professional University Phagwara CONTENTS Unit 1: Multimedia 1 Unit 2: Text 15 Unit 3: Sound 38 Unit 4: Image 60 Unit 5: Video 102 Unit 6: Hardware 130 Unit 7: Multimedia Software Tools 165 Unit 8: Fundamental of Animations 178 Unit 9: Working with Animation 197 Unit 10: 3D Modelling and Animation Tools 213 Unit 11: Compression 233 Unit 12: Image Format 247 Unit 13: Multimedia Tools for WWW 266 Unit 14: Designing for World Wide Web 279 SYLLABUS Multimedia Systems Objectives: To impart the skills needed to develop multimedia applications. Students will learn: z how to combine different media on a web application, z various audio and video formats, z multimedia software tools that helps in developing multimedia application. Sr. No. Topics 1. Multimedia: Meaning and its usage, Stages of a Multimedia Project & Multimedia Skills required in a team 2. Text: Fonts & Faces, Using Text in Multimedia, Font Editing & Design Tools, Hypermedia & Hypertext. 3. Sound: Multimedia System Sounds, Digital Audio, MIDI Audio, Audio File Formats, MIDI vs Digital Audio, Audio CD Playback. Audio Recording. Voice Recognition & Response. 4. Images: Still Images – Bitmaps, Vector Drawing, 3D Drawing & rendering, Natural Light & Colors, Computerized Colors, Color Palletes, Image File Formats, Macintosh & Windows Formats, Cross – Platform format. 5. Animation: Principle of Animations. Animation Techniques, Animation File Formats. 6. Video: How Video Works, Broadcast Video Standards: NTSC, PAL, SECAM, ATSC DTV, Analog Video, Digital Video, Digital Video Standards – ATSC, DVB, ISDB, Video recording & Shooting Videos, Video Editing, Optimizing Video files for CD-ROM, Digital display standards.
    [Show full text]
  • Vector Synthesis: a Media Archaeological Investigation Into Sound-Modulated Light
    VECTOR SYNTHESIS: A MEDIA ARCHAEOLOGICAL INVESTIGATION INTO SOUND-MODULATED LIGHT Submitted for the qualification Master of Arts in Sound in New Media, Department of Media, Aalto University, Helsinki FI April, 2019 Supervisor: Antti Ikonen Advisor: Marco Donnarumma DEREK HOLZER [BLANK PAGE] Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Master of Arts thesis abstract Author Derek Holzer Title of thesis Vector Synthesis: a Media-Archaeological Investigation into Sound-Modulated Light Department Department of Media Degree programme Sound in New Media Year 2019 Number of pages 121 Language English Abstract Vector Synthesis is a computational art project inspired by theories of media archaeology, by the history of computer and video art, and by the use of discarded and obsolete technologies such as the Cathode Ray Tube monitor. This text explores the military and techno-scientific legacies at the birth of modern computing, and charts attempts by artists of the subsequent two decades to decouple these tools from their destructive origins. Using this history as a basis, the author then describes a media archaeological, real time performance system using audio synthesis and vector graphics display techniques to investigate direct, synesthetic relationships between sound and image. Key to this system, realized in the Pure Data programming environment, is a didactic, open source approach which encourages reuse and modification by other artists within the experimental audiovisual arts community. Keywords media art, media-archaeology, audiovisual performance, open source code, cathode- ray tubes, obsolete technology, synesthesia, vector graphics, audio synthesis, video art [BLANK PAGE] O22 ABSTRACT Vector Synthesis is a computational art project inspired by theories of media archaeology, by the history of computer and video art, and by the use of discarded and obsolete technologies such as the Cathode Ray Tube monitor.
    [Show full text]
  • Procedural Generation of a 3D Terrain Model Based on a Predefined
    Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Bachelor of Science Thesis in Applied Information Technology Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström Department of Applied Information Technology Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2017 Bachelor of Science Thesis Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström Department of Applied Information Technology Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2017 The Authors grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Procedural Generation of a 3D Terrain Model Based on a Predefined Road Mesh Matilda Andersson Kim Berger Fredrik Burhöi Bengtsson Bjarne Gelotte Jonas Graul Sagdahl Sebastian Kvarnström © Matilda Andersson, 2017.
    [Show full text]
  • Nuke Survival Toolkit Documentation
    Nuke Survival Toolkit Documentation Release v1.0.0 Tony Lyons | 2020 1 About The Nuke Survival Toolkit is a portable tool menu for the Foundry’s Nuke with a hand-picked selection of nuke gizmos collected from all over the web, organized into 1 easy-to-install toolbar. Installation Here’s how to install and use the Nuke Survival Toolkit: 1.) Download the .zip folder from the Nuke Survival Toolkit github website. https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease This github will have all of the up to date changes, bug fixes, tweaks, additions, etc. So feel free to watch or star the github, and check back regularly if you’d like to stay up to date. 2.) Copy or move the NukeSurvivalToolkit Folder either in your User/.nuke/ folder for personal use, or for use in a pipeline or to share with multiple artists, place the folder in any shared and accessible network folder. 3.) Open your init.py file in your /.nuke/ folder into any text editor (or create a new init.py in your User/.nuke/ directory if one doesn’t already exist) 4.) Copy the following code into your init.py file: nuke.pluginAddPath( "Your/NukeSurvivalToolkit/FolderPath/Here") 5.) Copy the file path location of where you placed your NukeSurvivalToolkit. Replace the Your/NukeSurvivalToolkit/FolderPath/Here text with your NukeSurvivalToolkit filepath location, making sure to keep quotation marks around the filepath. 6.) Save your init.py file, and restart your Nuke session 7.) That’s it! Congrats, you will now see a little red multi-tool in your nuke toolbar.
    [Show full text]
  • Fast, High Quality Noise
    The Importance of Being Noisy: Fast, High Quality Noise Natalya Tatarchuk 3D Application Research Group AMD Graphics Products Group Outline Introduction: procedural techniques and noise Properties of ideal noise primitive Lattice Noise Types Noise Summation Techniques Reducing artifacts General strategies Antialiasing Snow accumulation and terrain generation Conclusion Outline Introduction: procedural techniques and noise Properties of ideal noise primitive Noise in real-time using Direct3D API Lattice Noise Types Noise Summation Techniques Reducing artifacts General strategies Antialiasing Snow accumulation and terrain generation Conclusion The Importance of Being Noisy Almost all procedural generation uses some form of noise If image is food, then noise is salt – adds distinct “flavor” Break the monotony of patterns!! Natural scenes and textures Terrain / Clouds / fire / marble / wood / fluids Noise is often used for not-so-obvious textures to vary the resulting image Even for such structured textures as bricks, we often add noise to make the patterns less distinguishable Ех: ToyShop brick walls and cobblestones Why Do We Care About Procedural Generation? Recent and upcoming games display giant, rich, complex worlds Varied art assets (images and geometry) are difficult and time-consuming to generate Procedural generation allows creation of many such assets with subtle tweaks of parameters Memory-limited systems can benefit greatly from procedural texturing Smaller distribution size Lots of variation
    [Show full text]
  • IWCE 2015 PTIG-P25 Foundations Part 2
    Sponsored by: Project 25 College of Technology Security Services Update & Vocoder & Range Improvements Bill Janky Director, System Design IWCE 2015, Las Vegas, Nevada March 16, 2015 Presented by: PTIG - The Project 25 Technology Interest Group www.project25.org – Booth 1853 © 2015 PTIG Agenda • Overview of P25 Security Services - Confidentiality - Integrity - Key Management • Current status of P25 security standards - Updates to existing services - New services 2 © 2015 PTIG PTIG - Project 25 Technology Interest Group IWCE 2015 I tell Fearless Leader we broke code. Moose and Squirrel are finished! 3 © 2015 PTIG PTIG - Project 25 Technology Interest Group IWCE 2015 Why do we need security? • Protecting information from security threats has become a vital function within LMR systems • What’s a threat? Threats are actions that a hypothetical adversary might take to affect some aspect of your system. Examples: – Message interception – Message replay – Spoofing – Misdirection – Jamming / Denial of Service – Traffic analysis – Subscriber duplication – Theft of service 4 © 2015 PTIG PTIG - Project 25 Technology Interest Group IWCE 2015 What P25 has for you… • The TIA-102 standard provides several standardized security services that have been adopted for implementation in P25 systems. • These security services may be used to provide security of information transferred across FDMA or TDMA P25 radio systems. Note: Most of the security services are optional and users must consider that when making procurements 5 © 2015 PTIG PTIG - Project 25 Technology
    [Show full text]
  • Code-Bending: a New Creative Coding Practice
    Code-bending: a new creative coding practice Ilias Bergstrom1, R. Beau Lotto2 1EventLAB, Universitat de Barcelona, Campus de Mundet - Edifici Teatre, Passeig de la Vall d'Hebron 171, 08035 Barcelona, Spain. Email: [email protected], [email protected] 2Lottolab Studio, University College London, 11-43 Bath Street, University College London, London, EC1V 9EL. Email: [email protected] Key-words: creative coding, programming as art, new media, parameter mapping. Abstract Creative coding, artistic creation through the medium of program instructions, is constantly gaining traction, a steady stream of new resources emerging to support it. The question of how creative coding is carried out however still deserves increased attention: in what ways may the act of program development be rendered conducive to artistic creativity? As one possible answer to this question, we here present and discuss a new creative coding practice, that of Code-Bending, alongside examples and considerations regarding its application. Introduction With the creative coding movement, artists’ have transcended the dependence on using only pre-existing software for creating computer art. In this ever-expanding body of work, the medium is programming itself, where the piece of Software Art is not made using a program; instead it is the program [1]. Its composing material is not paint on paper or collections of pixels, but program instructions. From being an uncommon practice, creative coding is today increasingly gaining traction. Schools of visual art, music, design and architecture teach courses on creatively harnessing the medium. The number of programming environments designed to make creative coding approachable by practitioners without formal software engineering training has expanded, reflecting creative coding’s widened user base.
    [Show full text]
  • Prioritizing Pull Requests
    Prioritizing pull requests Version of June 17, 2015 Erik van der Veen Prioritizing pull requests THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in COMPUTER SCIENCE by Erik van der Veen born in Voorburg, the Netherlands Software Engineering Research Group Q42 Department of Software Technology Waldorpstraat 17F Faculty EEMCS, Delft University of Technology 2521 CA Delft, the Netherlands The Hague, the Netherlands www.ewi.tudelft.nl www.q42.com c 2014 Erik van der Veen. Cover picture: Finding the pull request that needs the most attention. Prioritizing pull requests Author: Erik van der Veen Student id: 1509381 Email: [email protected] Abstract Previous work showed that in the pull-based development model integrators face challenges with regard to prioritizing work in the face of multiple concurrent pull requests. We identified the manual prioritization heuristics applied by integrators and ex- tracted features from these heuristics. The features are used to train a machine learning model, which is capable of predicting a pull request’s importance. The importance is then used to create a prioritized order of the pull requests. Our main contribution is the design and initial implementation of a prototype service, called PRioritizer, which automatically prioritizes pull requests. The service works like a priority inbox for pull requests, recommending the top pull requests the project owner should focus on. It keeps the pull request list up-to-date when pull requests are merged or closed. In addition, the service provides functionality that GitHub is currently lacking. We implemented pairwise pull request conflict detection and several new filter and sorting options e.g.
    [Show full text]
  • JOSH MILLER [email protected]
    CREATING VISUALS IN PROCESSING JOSH MILLER [email protected] www.josh-miller.com WHAT IS PROCESSING? • Free software: processing.org • Old... 2001 old, but constantly updated • Started at MIT • Created to teach Comp Sci, embraced by artist nerds WHAT IS PROCESSING? • Free software: processing.org • Old... 2001 old, but constantly updated • Started at MIT • Created to teach Comp Sci, embraced by artist nerds WHAT IS IT? • A java-like programming language that makes Java apps... JAVA??!? • Isn’t that just for malware and exploits? PROCESSING 2.0 • Android • “Javascript” HTML5 canvas tag • processingjs.org WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO Text feltron report WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO http://tweetping.net/ WHAT DOES IT DO joshuadavis.com GENERATIVE ART • Art created by a set of rules. • Algorithmic art? CONNECTIONS • libraries • sound, video, animation, visualization, 3d, interface • http://processing.org/reference/libraries/ • hardware • kinect, arduino, sensors, cameras, serial devices, network, tablets, many screens, COMPETITORS • openFrameworks - www.openframeworks.cc • cinder - http://libcinder.org/ • max/msp - http://cycling74.com/ • vvvv - http://vvvv.org/ LEARNING PROCESSING • http://processing.org/learning/ • http://processing.org/reference/ • Books: • Learning Processing & The Nature of Code, Dan Shiffman • Processing: A Programming Handbook for Visual Designers and Artists, Reas & Fry INTRO void setup() { // runs once } void draw() { // runs 30fps... unless you tell it not to } DEMOS! • get excited. WHAT ELSE? • Anything you can do in Java you can do in Processing • libraries • syntax (oop, inheritance, etc) LEARN MORE • THE EXAMPLES MENU! • processing.org • creativeapplications.net PLUG • Teaching a processing course (“Creative Coding”) @ Kutztown this summer • M-T 1-5pm for all of June.
    [Show full text]