Free Shipping on Orders of $40 or More
Coding Art: The Four Steps to Creative Programming with the Processing Language

Coding Art: The Four Steps to Creative Programming with the Processing Language

by Yu Zhang, Mathias Funk
Coding Art: The Four Steps to Creative Programming with the Processing Language

Coding Art: The Four Steps to Creative Programming with the Processing Language

by Yu Zhang, Mathias Funk

Paperback(1st ed.)

Usually ships within 6 days


Finally, a book on creative programming, written directly for artists and designers! Rather than following a computer science curriculum, this book is aimed at creatives who are working in the intersection of design, art, and education.

In this book you'll learn to apply computation into the creative process by following a four-step process, and through this, land in the cross section of coding and art, with a focus on practical examples and relevant work structures. You'll follow a real-world use case of computation art and see how it relates back to the four key pillars, and addresses potential pitfalls and challenges in the creative process. All code examples are presented in a fully integrated Processing example library, making it easy for readers to get started.

This unique and finely balanced approach between skill acquisition and the creative process and development makes Coding Art a functional reference book for both creative programming and the creative process for professors and students alike.

What You’ll Learn

• Review ideas and approaches from creative programming to different professional domains

• Work with computational tools like the Processing language
• Understand the skills needed to move from static elements to animation to interaction
• Use interactivity as input to bring creative concepts closer to refinement and depth
• Simplify and extend the design of aesthetics, rhythms, and smoothness with data structures
• Leverage the diversity of art code on other platforms like the web or mobile applications
• Understand the end-to-end process of computation art through real world use cases
• Study best practices, common pitfalls, and challenges of the creative process

Who This Book Is For

Those looking to see what computation and data can do for their creative expression; learners who want to integrate computation and data into their practices in different perspectives; and those who already know how to program, seeking creativity and inspiration in the context of computation and data.

Related collections and offers

Product Details

ISBN-13: 9781484262634
Publisher: Apress
Publication date: 01/07/2021
Series: Design Thinking
Edition description: 1st ed.
Pages: 280
Product dimensions: 6.10(w) x 9.25(h) x (d)

About the Author

An artist by training, Yu Zhang finished her PhD in 2017 on the theory and artistic practice of interactive technologies for public, large-scale installations. She approaches visual art with mixed reality installations and projections, sensor-based interactives, and computational arts. She roots her artistic intent in the symbolism of Asian traditions and transforms the artistic unpacking of drama and cultural signifiers into experiences of interactivity and connectivity that ultimately bridge artistic expression and audience experience. She uses systems design toolkit, to realize a complex multifaceted experience playing with the spatiotemporal context of the audience's interaction with the installations when digital and physical converge. Starting from interactivity, she constructs layers of different connections between artist, artwork, audience, and the environment to express how far such connectivity can impact and reshape the structure and relations of objects, space, and time within a dynamic audience experience. Apart from her artistic research and practice, Yu’s teaching experiences cover over ten years and a board space including traditional classrooms and design-led project-based learning activities.

Mathias Funk is Associate Professor in the Future Everyday group in the Department of Industrial Design at the Eindhoven University of Technology (TU/e). He has a background in Computer Science and a PhD in Electrical Engineering (from Eindhoven University of Technology). His research interests include complex systems design, remote data collection, systems for musical expression, and design tools such as domain-specific languages and integrated development environments. In the past he has worked in research positions at ATR Japan, RWTH Aachen and he has been Visiting Researcher at Philips Consumer Lifestyle, The Netherlands. He is also the co-founder of UXsuite, a high-tech spin-off from Eindhoven University of Technology. He has years of experience in software architecture and design, engineering of distributed systems, and web technologies. Further areas of interest and practice are domain-specific languages and code generation, sound and video processing systems, and data and information visualization approaches. He has been involved extensively in the business side of innovation, the transfer of research to commercial products, and he loves to think about a design’s real world impact. As a teacher, he teaches various technology-oriented courses in the Industrial Design curriculum about designing with data and visualization approaches, systems design and technologies for connected products and systems. He is regularly invited to give international workshops on large-scale interactive systems, group music improvisation interfaces and expressive (musical) interaction. He has been an active musician for years, and is very interested in the intersection of music, art, and design in particular. Mathias Funk is a senior member of the ACM.

Table of Contents

About the Authors xi

About the Technical Reviewer xiii

Acknowledgments xv

Chapter 1 Introduction 1

1.1 Coding art 3

1.2 Motivation 4

1.2.1 How to talk with a "machine" 4

1.2.2 Practice a practice 5

1.2.3 Do it and own it 6

1.3 How to read this book 7

1.3.1 Calling all creatives 7

1.3.2 Four steps, one example, one zoom 8

1.3.3 Getting ready 11

Part I Creative 13

Chapter 2 Idea to visuals 15

2.1 Visual elements 15

2.1.1 Shapes 16

2.1.2 Shaping up in Processing 20

2.1.3 Colors, transparency, and filters 23

2.1.4 Working with form and texture 27

2.2 Canvas secrets 31

2.2.1 Scaling visual elements 32

2.2.2 Resetting or restoring the canvas 34

2.2.3 Rotation and translation 36

2.3 Animation: From frames to motion 41

2.3.1 Animation basics 41

2.3.2 Simple movement 43

2.3.3 Rhythm in motion 45

2.4 Interaction as input for animation 50

2.4.1 Combining mouse presses and movement 52

2.5 Summary 53

Chapter 3 Composition and structure 55

3.1 Data and code structure 56

3.1.1 Creating many things 56

3.1.2 Controlling many things 66

3.2 Visual structure 70

3.2.1 Composition and alignment 71

3.2.2 Composing with layers 75

3.2.3 Controlling layers 80

3.3 Summary 85

Chapter 4 Refinement and depth 87

4.1 Randomness and noise 87

4.1.1 Working with randomness 88

4.1.2 Controlling randomness 93

4.1.3 Selecting and making choices with randomness 100

4.1.4 Working with noise 104

4.2 MemoryDot 108

4.2.1 Smoothing 109

4.2.2 Smoothly working with many things 116

4.3 Using computed values 119

4.3.1 Computing values with functions 120

4.3.2 Interpolation 125

4.3.3 Interpolation with functions 128

4.4 Interactivity 133

4.4.1 Mouse interaction 133

4.4.2 Keyboard interaction 137

4.4.3 Other input 145

4.5 Summary 147

Chapter 5 Completion and production 149

5.1 Making things big for print 149

5.1.1 High-resolution rendering 151

5.1.2 Migrating to scalable version 153

5.1.3 Rendering snapshots of dynamic work 155

5.2 A backstage for control 161

5.2.1 Tweak mode in Processing 162

5.2.2 Centralizing control with variables 163

5.2.3 "Backstaging" with the keyboard 165

5.3 More stable and less risky code 169

5.3.1 The right things in the right place 169

5.3.2 Avoiding resource bloat 172

5.3.3 Code structure 173

5.3.4 Don't reinvent the wheel 176

5.4 Testing before deployment 179

5.4.1 Depending on dependencies 180

5.4.2 Anticipating differences 181

5.4.3 Preparing for unattended operation 182

5.5 Moving to mobile 183

5.5.1 Structure of mobile Processing content 184

5.5.2 From Processing to p5.js 187

5.5.3 Fine-tuning the presentation 188

5.5.4 How to spot errors? 190

5.5.5 Deploying for mobile use 190

5.6 Summary 191

Part II An example: Mountrothko 193

Chapter 6 Inspiration 195

6.1 Context and starting point 198

6.2 Concept and artwork 199

Chapter 7 From idea to completion 201

7.1 Idea to visuals 201

7.2 Composition and structure 205

7.2.1 Composition: The fog 205

7.2.2 Composition: Creating the mountains 207

7.2.3 Structure: Creating the particles 209

7.3 Refinement and depth 212

7.3.1 Refinement: Reshaping the particles 213

7.3.2 Depth: Adding interaction 218

7.4 Completion and production 221

7.4.1 Completion: Installation in space 221

7.4.2 Production in print 222

7.5 Summary 223

Part III Coding practice 229

Chapter 8 Dealing with problems 231

8.1 Helping yourself 232

8.1.1 Error messages or nothing happens 232

8.1.2 Working with copy-paste 233

8.1.3 Reference documentation 235

8.1.4 Searching for symptoms 235

8.2 Getting help from others 237

8.2.1 Finding help 238

8.2.2 Asking the right questions right 238

8.2.3 Minimal working example 239

8.3 Working with experts 240

8.3.1 How can experts help you? 241

8.3.2 How to manage a project with experts? 241

Chapter 9 Learning path 245

9.1 Going deeper into Processing 245

9.1.1 Challenges to pick 246

9.1.2 Building your own tool set 247

9.1.3 Sharing your tool set with others 248

9.2 Different technologies 248

9.2.1 Enhancing Processing 248

9.2.2 Assessing feasibility 249

9.2.3 Moving away from Processing 250

Chapter 10 Creative processes 253

10.1 Two types of ideation 253

10.1.1 Concept-based ideation 254

10.1.2 Material-based ideation 254

10.2 Using abstraction layers 255

10.2.1 First loop: Behavior to output 256

10.2.2 Second loop: Adding data 257

10.2.3 Third loop: Adding input and interaction 258

10.2.4 Fourth loop: Adding a backstage 261

10.2.5 Creative processes with layers 262

Conclusion 265

Epilogue 267

References 271

Index 275

Customer Reviews