Daniel Shiffman on The Nature of Code
I can’t imagine a world without Daniel Shiffman and my career would have been a different one if this sympathic and ingenious man wouldn’t have cultivated Creative Coding for such a long time. Without him and his important work, Processing and p5.js would not be as accessible. On his YouTube-channel The Coding Train, Daniel reaches millions of people.
Now the completely overhauled version of his influential book “The Nature of Code” has been released. In an hour-long conversation, we talked about his book, his teaching at NYU and many other exciting topics.
And here’s something really cool: You get a massive discount if you use the promo code TRCC when you buy the book directly from Dan’s website or from his publisher Nostarch Press.
Related Links
- https://timrodenbroeker.de/shiffman-copy/
- https://thecodingtrain.com/
- https://natureofcode.com/
- https://www.instagram.com/daniel.shiffman/
- Daniel Rozin: https://www.smoothware.com/danny/
- Magic Book Project: https://github.com/magicbookproject/magicbook
- Nature of Code: https://natureofcode.com/
- DemoFestival: https://demofestival.com/
- Wonderville: https://www.wonderville.nyc/
- Cognition https://www.cognition.ai/
- Nature of Code book launch party:
- Coding Train Youtube Channel: www.youtube.com/@TheCodingTrain
- Raphaël de Courville Twitch Channel: https://www.twitch.tv/sableraph
- Omid Nemalhabib Interview: https://timrodenbroeker.de/omid-nemalhabib/
AI generated Transcript
Alrighty. My goodness, I’m a bit nervous. Man, there’s Dan Schiffman in my computer, and it’s a little bit different, because normally when I see Dan Schiffman, he’s in a YouTube video, doing, explaining things. Now we can speak, I can speak to him, which is amazing. Dan, welcome!
I still am in a rectangular box. So that’s, that’s the usual format. Sometimes people see me and they’re like “Oh, you look at your legs.”
I saw a meme that somebody was saying, like, it could be that Dan Shiffman has, like, a horse legs, and nobody knows it, because it is always cut off here. So that was so funny. Great! Dan, awesome that we can do this. It’s really exciting. I was looking forward for this since quite long time. I really wanted to connect more with the people from the processing foundation and closer to the whole ecosystem of processing. It happened first when I interviewed Casey for a processing community day, which I organized myself two years ago, and I have you, which is fantastic, amazing. Thank you so much for joining.
It’s a thrill to be here. I’ve been following your work. I know we do a lot of similar things, coming from different angles and going into different places, but there’s a lot to chat about. So yeah, thanks for having me!
Awesome. Thank you. Great. Okay, well, how is it going for you? You are an NYU (New York University) now, and maybe you had a very tight teaching day today?!
Yeah, well, it’s the morning here, so my classes are Wednesday and Thursday. So I’m still a little fresh, but yeah, I’m sitting here at NYU. I’m in Brooklyn. There’s a campus. NYU has a campus in Brooklyn. There’s a building called at 370 J Street that is the old Mass Transit Authority Office building that NYU took over. And we still call it MTA, but now it’s called “Media, Technology, Art” – perhaps. We don’t have private offices here, but we have all these little rooms that people can do calls in or meet for office hours. So I just staked one out, and you can kind of see some studio space back there. And I don’t know what the strange sculptures they hear. I cleverly positioned the copy in my book here, like subtle product placement. Maybe it’ll subliminally go into everybody’s brains as they’re watching or listening to this. Maybe it’ll subliminally go into everybody’s brains as they’re watching or listening to this.
It was hidden by your beautiful shirt, so you didn’t see it. That’s amazing. Let’s talk about the book. So it’s out now. “The Nature of Code” – p5.js edition – as far as I understood it. And I mean, I know your book since maybe even eight years or something. It was something that I used a lot in my learning, even though at some point, I just felt like maybe this is a little bit too advanced for my students. I think we talked about this in the preparation for this call. I tried to keep everything, because I mostly teach very visually oriented graphic design students, like mostly very, very basics. And I just decided to stay under this radar, let’s say, under this threshold of object oriented programming, it changes a bit. I start to think about like, how could I make this interesting for this target group? But well. Tell us a bit about your book. What kind of role did it play in your life?
Sure. Yeah, so if people aren’t aware, the book is actually a project. I was trying to go back and find the date. I think you could consider that I was even working on it all the way back to 2006 in terms of when I started preparing the material to teach a class at NYU. Not to make this too long of a story, but I started teaching at NYU in 2004. So that’s about 20 years ago now, and I had been a student here, and I had taken a few different classes than in the introduction and the acknowledgements of the book. I talk about these different classes, but I had taken some classes around doing physics simulation. I’d taken a class on generative art algorithms. And all these classes I took without processing. So I don’t remember. I think I was trying to make things either in Macromedia Director with the Lingo programming language. I was also using just straight Java at the time, as well as C++. Danny Rosen, who some people might be familiar with, he makes these beautiful, physical mirrors. I remember I took a class from him called “pixel the world: pixel by pixel” and we did everything in C++ class. Anyway. So I was looking for something to propose a class for, and I had just been started teaching beginner programming with processing, and I had always been a little bit of a, you know, a math lover, amateur interest in math and physics, and so it just sort of like fit. The pieces fit well to me to be able to say, like “Okay, I love these topics, from math and physics. They’re somewhat scary, intimidating, somewhat impenetr.” I can actually learn them through the act of trying to make the algorithms appear in processing. So often I would pick something like “Oh, look at this formula for how friction works.” I don’t really understand it and all the symbols and all the details, but maybe if I just try, like, slowly coding it, that’ll be a way for me to wrap my brain around it. So that’s kind of where I started. And then over time I had taught this class, I had put together some written tutorials for it, and ended up doing a version of the book on Kickstarter. So that that version was like a self published book with all processing, starting with vectors and object oriented programming, as you mentioned, going through physics, simulation, fractals, seller automata, a few different generative algorithms, genetic algorithms and neural networks. So that was the whole book, 2012. So that was very exciting for me. It was like a big project. It was challenging to do it on Kickstarter, but I realize I’m giving you the long version of the story, but I’m gonna fast forward to today.
We have time!
And so when I had published that book, I actually had used a system. There was a lot of different people that contributed to it, but in particular, I was working with Rune Madsen, who I know, you know, from PCD (Processing Community Day) Copenhagen and other work, and Steve Kleiss, who is also a student and alumni here at ITP, and they developed something called the “Magic book project“. And the idea was, I wanted to have a website with the book, all for free, and I wanted to have a print version of the book that I did publish print on demand. So the system that they developed, that I collaborated on, the idea was we could write the book just as markdown files, and it would through, I think it was actually written in like Ruby at the time. It would both generate a PDF using CSS, paged media and this system called Prince XML, as well as, like, push the stuff to HTML. So because one of the things I had always been struggling with, and I don’t know if you know, I often would have a tutorial that I wrote, you know, in Microsoft Word, maybe in olden times, and then I wanted it to go on the processing website, so I had to convert it into HTML, and then maybe I wanted to put it in this WordPress. So I had to then, like, oh, there’s this other, like, WYSIWYG editor, and so I was always converting things back and forth between formats, and it was just very tedious and frustrating. Yeah, this project was the solution for that. And the whole thing about it that I was excited about was that once it’s done, it’s print on demand, it’s a website. I can update it and fix it and change it like every day, every week.
Oh my God.
Guess how often I did that?
That means, like, the printed version of this book, that’s what I didn’t notice, but it’s always up to date.
No! So this was the dream. The problem is, like the once I had finished it, it just kind of like life gets in the way and other projects take over. Sure, maybe I fixed a few things here and there, but I didn’t follow through on that dream. It still is fantastic as a build process for the book, but the book over, you know, it was just always in the back of my mind of, oh, I want to rewrite this chapter. Oh, this new thing. Oh, I learned because I was continuing to teach the class, and I realized, like, Oh, these examples, they confuse students in this way. And I had new ones. I want to fix the book up. So that had just been piling up over the years. You know, Lauren McCarthy started the p5.js project, and I would been porting the examples to p5. I started working on this machine learning library called ml5.js. I had developed new ideas about different examples. I had made video tutorials. So it just was time, really, 10 years later, to do instead. So in the end, the incremental updates never happened. But what this new version, the one sitting back over there, is a major overhaul. So in a way, it’s like, it’s not really true, but it feels like, to me, like it’s a brand new book. And some of that is also because I worked with. I used an updated version of the “Magic book project”. It’s all a node, no JS base now. I worked with an ITP alumni named Jason Gal and another alumni named Tuan Huang, who did a lot of the design. So there’s a whole new website. P5 allows all the examples to be interactive on the website in a different and more robust way. And I have a whole new, I have a brand new chapter added to it, rewritten, a lot of different chapters, everything updated. We can get some of these details if you’re interested, but so that’s kind of where it is. But just to circle back to where you started, I do think so the book is not … I’m trying to think of the best way to say this. It’s my goal, and I believe that the book is beginner friendly, but it is not a beginner book. So it is really, you know, I certainly have worked on many tutorials, mostly in video format, that are meant for, hey, all you’ve ever done is turned on your computer and you can follow me along and learn to make art with p5.js and learn to code. So that’s kind of a starting point for me, of like my teaching, but this book is kind of like, the thesis is, okay, you’ve done that now, and maybe you’re realizing that, oh, for this kind of piece of art that I want to make, or this type of typography experiment I want to do, or this type of interactive game I need to go back and look at trigonometry. So, you know, that’s just one example. This book is meant to be like, okay, you’ve learned to code, but you took a math class so many years ago, or it didn’t work for you. Didn’t click for you. And some of these algorithms, like what a neural network looks scary to you or a fractal recursion pattern. So the book is meant to be a very friendly, accessible, approachable, beginner’s guide to these more sophisticated algorithms and mathematical topics that come once you’ve learned the basics.
Exactly. That’s how I perceive it as well. I remember going into the forces chapter, and I actually had quite some difficulties, because I’m actually very bad in math. I’ve always been bad in math in school. I had problems there, so that was something I was struggling with. But I loved it really. I really loved it. And I was actually like, playing around with all the examples, of course, but I still have my issues when I have to write a forest, for example, apply it to an object, it’s something that I’m not focusing on. I think my curriculum more covers this thing that is more below that, right? So I definitely recommend it to anyone, because it’s such a fantastic. Yeah, it’s just narrowed down to these few hundered pages, and it’s beautiful. Yeah, it’s a great item to every creative coder. Everybody should buy it! So please buy the book!
I’m thrilled if people do, but here’s the thing. You also can read the whole thing online for free. That makes me just as happy as somebody buying it. Of course, you know, buying it helps, you know, support various things and the whole system of all the work that I do. But in my mind it’s really important. I sitting here at NYU, so I have the luxury of being able to work on a lot of things that are open education model, which is, it’s always been very important to me. You know, NYU is a very inaccessible place in terms of its location, its admissions, and the largest piece, it’s expense. Extreme levels of tuition to come here. And so for me, it feels if I’m going to choose to work here, which ultimately I do, it feels important to me to be able to do whatever I can, to export the knowledge and work that I do in a way that’s accessible to a wider audience, you know? So that’s, that’s sort of part of the ecosystem of the things that I, that I’m developing.
I think that’s amazing. That’s really honorable and, yeah, it’s fantastic. That’s super, super nice. And the new website, by the way, looks amazing as well. I love it. It’s really cool – such a great update. So nice!
Little teasers, you know, drop news about the website. It’s not, actually, I haven’t merged this pull request yet, but one of the things in the book are these fill in the blank exercises, which is something that I’ve always done. I don’t know if anybody actually goes into the book and tries to write in the answer. It’s like a prompt of like “here’s a try to update the algorithm to do this one more step”, and then you’ll see these, like the skeleton of the code with blanks in it. But on the website now it shows it as blanks, and you can click a button to reveal the answer. I didn’t verge this yet, but by the time this comes out, that’ll be a feature on the website. Go check that out. I’m curious if people liked it.
Yeah, that’s that sounds amazing. Maybe we can zoom out a little bit and speak about Creative Coding. That’s something I would love to discuss with you. So I would like to know what that means to you, like, how much also you identify with this term, and what kind of role it could play in education general.
It’s interesting. That is a great question. Actually, I’ve really loved the way that the term has come into the Zeitgeist, and it’s a sort of common term that people understand. I liken it. I think it was Jer Thorp who might have said this to me once, originally, I liken it to the way people talk about creative writing. And I think at the beginning when people would use the term Creative Coding, I remember having this discussion. There was this question, well, is it all coding creative or isn’t, is this pigeonholing what we’re doing into a certain box, or sort of saying that, if you work, you know in industry, it’s not creative. And I believe that all coding is creative, but I do think it’s this nice term that can help codify, pun intended, I guess, a certain community and a certain way of working. And for me, it boils down to the idea that when I’m, you know, in giant air quotes, now “Creative Coding”, I am writing code where that I don’t know where it’s going, necessarily. And again, this is not the only way to think about Creative Coding, and this is not, I’m not trying to say, I’m defining Creative Coding. I’m just saying, for me, this is a key difference, and it’s something that I try to infuse in all of the educational materials that I produce. This idea that you don’t have to be working on a software project with a known answer to make a piece of, let’s just say, art, for example, with code. You don’t have to write your spec sheet. This is the artwork. This is exactly what it’s going to do, and now I’m going to implement it. It can be this exploratory process of experimentation and play.
This is, this is a definition by Mitchell & Bown, I think. I love this. I think Creative Coding is a process of exploration, iteration, reflection, discovery and so on. I love this. I think taking out the result from the definition is great, because if you look it up on Wikipedia, it’s very frustrating. They say it’s like for building games and, you know, making things for advertisement and stuff. So I think this Wikipedia definition has to be changed at some point. But, yeah, I love that. That’s great.
Yeah, that’s interesting. I think it can be viewed and which is not, you know, which is also accurate in a way, as you know, making media with code. That’s actually one of the class, the beginner class we have here at NYU, is called “Introduction to computational media”, because it’s the idea of, “oh, I’m going to make sound, images, text, video”. But the origins of that is code. It’s algorithms generating that. I do think that also, but to me, that’s computational media. That’s different than Creative Coding.
Alright, it makes sense. Yeah, sure. Well, I like to emphasize that it’s all about the process, because the results for me, even though my students mostly want to create results, because they are designers, and I think, well, there are some weird things going on right now. I think social media and also easily accessible tools made it very easy to create an online identity – be a star designer on Instagram or something like this. And I feel like, even though many of my students would not really admit this, but there’s something like a force that puts them into this way of thinking, you know? And that’s why I always try to emphasize like, “hey, it’s all about the process”. You learn really valuable things. I think the most important thing for me is also the confrontation with computers as entities, you confront yourself with the inner workings, instead of just looking on a surface that is built to, I don’t know, be very accessible and very easy to use.
I also think this relates to, and I mean, I don’t mean to veer too far off course here, because this is a whole other can of worms and topic, but I do think so many questions now around this idea of language models and code assistance. There’s something to me, fundamental about the process of which of Creative Coding, which isn’t to say that it isn’t interesting to experiment with all these new technologies and possibilities there. But there’s something about Creative Coding to me that also is a slowness. So of like taking your time and like experimenting, as opposed to like, for example, just to like, take a, you know, if I say, if I put into a prompt into some language model, please write the code for a particle system. Sure, I’ll get there instantly, but there’s something about the process of building it up and trying that could lead you in directions that you couldn’t have imagined if you just got there instantly. So that’s somehow fundamental to me to like this concept of Creative Coding as well. I was joking when I worked on this very silly project called “shift bot”, but we were joking about this term, this idea of like, what is it that I do? I do artisanal, handcrafted code. And there’s something about that that is really lovely and important still. I really do enjoy the act of writing the code and thinking it through, like, why would I want to lose that person?
Exactly, you answer one of the, one of the most important question of this interview, amazing. Yeah, exactly. That’s the same. I was a curator of the “Demo Festival“. The “Demo Festival” is in Motion Design Festival organized by Studio Dumbar and DEPT, which is a huge agency network. And I was in Rotterdam now, we were there for the curational meeting, and there was something really interesting happening, because I was expecting, or as was really curious about, how do people now react to these AI esthetics that have been emerging in the last years. Because I’m super critical about this. I think, you know, it’s people seem to think that this is the solution for everything now. But the interesting thing that I’ve experienced is, that even in that context, I mean, it’s an agency, and, well, there were a few, you know, we were as artists and designers there, but as soon as there was something that smelled like AI, everybody was like, “No, let’s not take this.” This is terrible, you know. Very interesting. I expected the opposite. I was expecting that tech demos with a lot of AI just get a lot of attention. But the things that were clear and that were still tangible and understandable, were those that got the most points. And that is a little bit like a relief for me, honestly.
I have so many thoughts about this, not intelligent, not necessarily intelligent or well formed one. And you know, my mind changes every day, but it is interesting that you say this. I just had a book release party at a place called “Wonderville”. And if people want, we could link to it. There’s a video archive of the entire, like hours and hours long, because they’re all these different live coding performances which were fantastic. But as the opening to the performance, I made this little parody, like, I know, if people have heard about there’s a company called “Cognition“, which released something called “Devon”, which is, you know, the quote, unquote, world’s first autonomous software engineer. There’s a lot of fancy videos or promotional videos about it’s like, you know, an AI software engineer. Anyway, that aside, I made a parody of that, which was the world’s first autonomous creative coder. And it was me, and I even like silly animations and all this stuff. But what was fun about this, like, the audience sort of spontaneously, like what I would say, and now artificial intelligence, boom. And so it was, like, this fun, like, just, I mean, we were, we were, it was ingest, and it was just sort of for fun, but it was interesting also. So I do think I agree, like, I think we all inherently understand that there is something fundamental to the way that we create and communicate that is human, and we don’t want to lose that, which I would say, like to be nuanced about this. That doesn’t mean that tools that are powered by machine learning models and training data are not valuable and interesting and could lead to new, exciting possibilities. It’s just a matter of, kind of, like, finding the right balance and not losing our own humanity. And I’m not some purist, like, I’m I’m, like, personally, like, somewhat addicted to using copilot now code.
Yeah, I use it too.
And I think there’s, I think there’s sort of two, also two things here. One is, there’s the question around the training data for these models. So I think, like, you know, what does it mean for all of this? Just, let’s just take, you know, very complicated in the world of image generation and video generation, but just talking about code, for example. What does it mean for a large company to basically scrape all of GitHub, which potentially is all properly licensed, you know, maybe a company doing this is only scraping code that’s under, let’s say, MIT license, and they’re doing this all kind of like legally, but where’s the gray area in terms of, you know, all this code that’s being consumed and then being used to make something new, but we’ve lost the ability to cite the original source. So to me, that’s one big question that I wrestle with and I’m uncertain about, actually, have a don’t want to go too far off, but there are some interesting research projects going on about attribution, all that kind of thing. So that, to me, is a big question. And then the other side of that is, well, let’s say we could solve that question. What does it mean? What does it mean to be sort of like taking away to be changing our process. Are we losing something or regaining something? Well, how does that affect creativity? How does that affect learning? How does that affect collaboration between humans? All of those things. So it’s nice to be at a school because I can, sort of like, just say, well, I don’t have to solve any of this or come up with the answer. I could just be in a space to teach students about how to use these tools and hopefully ask the right questions, and I’m learning from watching them and what they do, and hopefully doing my best to guide in a thoughtful way. But that’s, that’s kind of where I am with this question.
Yeah, I think it’s a really big topic. And I also have to say, like, my mind changes all the time about this. Currently, I’m reading Harari’s new book “Nexus”.
Its on my list.
I started three days ago, and quite far already – I love this. You know, he’s really brilliant, honestly, like, he’s really brilliant. I quite kind of do stay scenarios that he puts out there with about AI. Well, I try to emphasize the thinking part of Creative Coding so much. I try to keep out the topic of AI for now from my platform, because I feel like, well, there’s already so much out there. People that are really interested in this can make their courses somewhere else, but I want to really pinpoint these small things, like functions, variables, loops, conditional statements, like, how do you build this pattern and this little system that where these little things interconnect with each other? And that’s something that interests me more than this higher level technologies right now. Even though I use it as well, not in Creative Coding, and never use it with processing or p5.js.
I’d have to, like, think back to where I use it the most is, like, when I’m working with, like, server side kind of code, no JS code, because there’s so much boilerplate that I used to, and this, again, is kind of a probably used to look it up. So I’d go to a particular node, packages, website or documentation. I would copy paste a sort of like skeleton example, and then I would go from there. Now I often, instead of finding the right place on the web to copy paste that skeleton, I’ll use Copilot to sort of generate it for me. I find it to be a good user experience, so I just question whether, you know, lots of questions about it.
I understand. I mean, I use it for PHP code, also for, like, on my website. It’s very easy to write a plugin for something, which is crazy. I just say way, I need a plugin to create a backend page which lists all users and stuff like, it’s crazy. That works super, super well. I’m using it as well. I also had another question in mind. I’m also zooming out again a bit. Well, I think John Maynard once said this, like we need to transform STEM into STEAM. We have to put art into this. What is it, again? Like STEAM is science, technology, engineering, art and mathematics, right? So how do you think can we get there? From my point of view, from European perspective, I think we are totally behind in Europe, especially because, like in terms of learning how technologies work, there’s still such a barrier, people seem to be very scared of technology, like learning to code still seems to be something that is connected to the nerds, to people that are not really, you know. That’s something that’s very different in the US, which I really which I really like.
Yeah, I’m probably in too much of a bubble to have a good perspective, because it does feel like being at a space in this program at NYU, for example, we’re just, you know, all steam all the time, and I also have a lot of contacts through the Processing Foundation other work that I’ve done who are in K-12 education, who are really innovating and doing exciting things with teaching about code through art and art through code. So I do see a lot of that. To me I think the thing that I think about and the thing that feels important to me is that, and I think I said this recently in a different another interview another context, but it’s not that everyone needs to learn how to code, but everyone should have the opportunity to learn to code. And I do think it is important in terms of literacy, like computational literacy is a sort of necessary skill as a being a citizen of our world. So there shouldn’t be any gatekeeping there. And for me, creative coding, or kind of like the idea of an art angle for learning to code, is a way in for a lot of people, yes, more comfortable and friendly and exciting. So I don’t necessarily think, like, okay, all of STEM needs to be STEAM. Like, I mean, we do need people to be like proper engineers, so that bridges don’t fall down and, and, you know, I do think there’s a lot of a lot of people, and I was kind of like kid like this as well, love, you know, the sort of science of science for science’s sake, and want to, like, solve theoretical math problems. And, you know, so it’s, I don’t know that we need to overload, or sort of put pressure on people who are learning about computer science and math that, and you also need to, like, think of what you’re doing as art, because that can also be very I can have a lot of weight to it. But for me, it is absolutely true, or my experience over so many years that you know, that means that people will say “I didn’t get it. I didn’t understand why math could be useful for me” or “why I should, why I might want to learn about coding. But then I saw this creative coding example”, or “I realized I encountered the p5.js community”. Or, you know, continue, there’s so many different examples of that. And then I realized, like, I could be included. There’s a place for me, I could learn this too. And to me, that is the, that is the fundamental value. I think also, like, games are a really good entry point as well. So like, for me, especially in working with doing some workshops. I’ve not done a lot of this, but I’ve done workshops teaching here in the US, anywhere like sixth grade all the way up through high school. And whenever I do like a beginner p5 kind of workshop, inevitably, there’s a population that’s just trying to make a p5 sketch that’s like a reproduction of one of their favorite games. This is also maybe a good definition for creative coding. So creative coding, or what I’m what you have to do is like what everybody has a passion, or, you know, or is seeking a passion. And how can understanding computation, logic rules, coding be something in service of that passion, whether it’s, you know, dance, art, biology, journalism, writing, or possibly computer science.
That is beautiful, like, you mean, like, Creative Coding can be something that exists in the in the intersections of other areas, right? And, yeah, that’s something that I thought, like my connection with Creative Coding. The first one was I was an electronic musician who was trying to build a live show, which is completely improvised – just with hardware, without a laptop. And then I met my friend Patrik Hübner, who created the live show with that. I mean, we bought this book to Generative Gestaltung, and we went crazy with that. So we had this projector, projecting onto us, and that was amazing. Like, was super, super nice. But my entry actually was through music. Before I was focusing 100% on producing and performing electronic music. And, yeah, that’s very, very interesting. I mean, people use that as well for data visualization and to enhance their writing and stuff. I love that. I think I learned so much from people that have nothing to do with the things that I’ve been exploring before. That’s the most beautiful thing also about the community. I love that people come together on the internet and in physical space, and I think the best contacts in the last 10 years I mean, through the Creative Coding Community. Fantastic!
And this idea, this, I mean, this is very new to me. I feel like an old fogy here. But this being able to see these, the performers at the “Nature of code” book release party, do these live coding performances. I mean, that I don’t think I could have imagined that 10 years ago, or, you know, 15 years ago, when I have 20 years ago, and I was starting to work on this stuff. You know, for me, live coding is the thing that I do on YouTube where I’m like, can I make the wave function collapse algorithm work? But this was, like, highly engaging, exciting performance. And, I mean, it was just the epitome, to me, of this idea of creative coding and infusing something like, you know, I don’t mean to I don’t know what, what everyone who’s performing is a live coder, or what their origins are, but to me, it was like this idea of, oh, maybe they were a musician, a DJ. Their passion is performing music and an audience and a club or some other kind of venue, and they’re able to apply coding and computation to that in this totally new way. And that, to me, was so what other fields like that, you know, have yet to be explored fully? So to me, that is, in many ways, the essence of what gets me excited to see, you know, hopefully, if people are, you know, going on that path, just from some of my tutorials and other things.
I think it would be amazing if there on your website, there would be a section, I mean, I do this sometimes, like doing interviews about projects with people. So that’s so nice, because some people connect ideas that I never thought about before and create amazing stuff. And I think that would be really nice for the “The Nature of Code” as well. Like to see how people use your content to their projects, you know?
Yeah. So I have for the coding train, which is the YouTube channel for that website, which is also kind of newish, speaking of Rune, but I worked with “Design Systems International“, which is a company started by Rune Madsen and Martin Bravo. So they built the new coding train website, and it has, this was very this was really key to me. So YouTube, which is a platform that has completely shaped my work in so many ways I’ve never done with that. You know, it is probably the single biggest reason I’ve been able to reach a larger global audience, people outside of NYU. But one of the things that YouTube as a platform, doesn’t do is what you’re talking about, which is to say it doesn’t have an easy way or a lot of like, hooks in for somebody to be like I watched this video. I took it and did this with it, and I made, I want to share back this creative project I made, and sort of like, see where, where, where all, where, draw all those lines between different things. So anyway, so for the website we built this thing called “A Passenger Showcase”, where people can submit creative projects that they made based on a particular video. When you go to the videos page, you see, here’s the video tutorial, here’s the code examples, a list of like other references, and then all of these other projects that people made. So I hadn’t really thought about how to do that. I love this idea of maybe doing that with the “Nature of Code”. I mean, it does, to some extent, happen organically on social media. Now, yeah, it’s really fun, kind of, you know, all of this is fraud and complicated as well. Like, how much do I want to be spending my time, like, you know, scrolling on these different feeds? But it is, you know, started trying to experiment with Instagram a little bit more, and that, to me, is a thrill to see. You know, people will post a reel of some interesting computational design they made, and they’ll tag me and say, like, based on Chapter Four or whatever. And like to be like that. You know, those, those moments are some are my favorite reasons to be on the internet.
Same for me. Yeah, of course. I understand this very well. Well. I was just scrolling on your website just a few moments ago, and while we were speaking, and I just thought, what I would love to see on this showcase page is maybe a little bit of background about the person who did it. You know, what kind of, what kind of person is it like? What is the the “Why” behind this idea? Yeah, that would be really inspiring. I think that also could, like, inspire quite a few people, but it’s also a lot of work. Actually, I do this since quite some time, and you know, it’s really a lot of work. I really enjoy this, but it became a fundamental part of my work. Like doing interviews like this one with you now, and, yeah, asking students, like, if they want to show their work, and, like, writing a text about it and answering questions.
So the this is great, like, so the show, I haven’t really followed through on all of the dreams of the showcase. I mean, the feature on the website is a very lightweight way for somebody just to fill out a quick form link to a p5 sketch, put a thumbnail image in, and then their thing is there. So the one nice thing about it is somebody can submit something, you know, in obviously make the thing, but if, assuming they’ve made it like it takes less than a minute to submit it. It’s also hooked into GitHub, so it’s a little bit of an entry point. You don’t have to, but it makes the form on the website, autocreates a pull request. So it’s also one of the reasons why I did it this way was like trying to give people a like, a way of stepping into and learning a little bit more about Git and GitHub, which also can be very intimidating. But you’re right. Like, one of the things was, one of my intentions with the showcase was to also then look at the showcase on live streams, so that I could be and Raphaël de Courville, who does weekly Twitch streams, does a really amazing job of doing this, like he has a weekly coding challenge and he has a streamer who review them, and it’s super fun and very like, it’s a really nice community. So I had sort of hoped to do something a bit more like that, like I would release a new video people submit to the Showcase. I would go live, and I would look through them and talk about them and maybe dig into it a bit more. I did do some of that on Instagram. Actually did a series of like, featuring different showcase projects a bit more on Instagram. So I think you’re right. Like the community aspect is so fundamental. But what I haven’t thought about, which is what you’re getting at, is it could be interesting to think about ways to, you know, just to do even more community interaction, or feature people in their body of work more. So I have to think about that. But I love this idea.
I mean, it even could be something like a form that people fill out. The problem with that is that you cannot really react to their answers. So that means, like, the interview is staying a little bit like, on a surface level, but yeah, I think this became, like people told me that this is one of the fundamental features of my project that I showed the faces behind, or some of the faces behind. Like, I’m struggling a lot with finding people that are not just from Europe. This is something that I’ve just realized. I’m trying to get more interviewees from other continents, which is something that I find super interesting. Like, how do people use creative coding in Africa, for example? Like what kind of tools do they use? Like, what kind of esthetics do they resonate with? And what kind of people are these? You know, this is something I would love to go deeper into. And, yeah, I am on this journey now to find out how that works.
We could talk about. Just as you were talking, I thought of a few people that connect you with in other parts of the world that are maybe less obvious, less traditional, and most of these names are people that I’ve either that are floating in my head, or some of them are certainly through the NYU community. We have a huge international population here. But also the Processing Foundation, I think especially if you look at the new board of directors for the Processing Foundation, and a lot of the new people have gotten involved in recent just in the last year or two, there is a strong intentionality towards diversity, but in particular, reaching the global audience of the processing and p5 communities, which I think is really important. And I, you know, I relate to this a lot, because I mentioned earlier, I often feel very much in a bubble. New York, ITP, NYU is a bubble. New York is a bubble. Yeah, US is a bubble. I’m like, inside of a bubble, inside of a bubble, inside of a bubble. It is nice to be able to me, it’s been the YouTube work has been especially special because it is a way that I’ve been able to connect and hear from people from all different backgrounds and parts of the world with different levels of experience and resources, and hear about their story and their life experience. And it really informs and changes the way that I think about how to communicate and make my materials more accessible to a wider audience.
One story that just pops up in my mind. It was, I think, two years ago, when I was also in Rotterdam for curating the demo festival. I made an Instagram story like, “Hey, I’m a Rotterdam. Is anybody there wants to hang out?” And then there was somebody writing me. His name is, Omid Nemalhabib. He’s from Tehran, now living in Rotterdam. He’s a really great graphic designer, creating amazing, like, quite contemporary graphic design, but always with influence from the like Islamic and oriental culture, which is amazing. Like he does a lot with calligraphy. And in this meeting, we had a fantastic day, spent, like, I don’t know, five hours and having coffee and eating together and stuff. And then he said, like, I want to learn processing. I think I want to learn it. Like, can you send you know how to do it? I gave him, like, credentials for the website. And what happened then was magic, because he was actually using calligraphy, combining it with ASCII, and created something so unique. I never saw something like this before. Yeah, and I was like, Oh, my God, that was like a like a culture clash in a positive way, like this guy just became, I don’t know, this inspired me so much. I made an interview with him. I will send it later to you, and also link it in this, in this blog post here, that was heartwarming. And these are the moments when I feel like, okay, that’s why I do it. You know, that’s why I love doing it. It’s so nice. So, that was cool. Like, you know, Tehran meets, great, like, his his background meeting, great recording. It was amazing.
Sometimes I love to, you know, I try not to obsess too, too much over my YouTube Analytics. But I have a lot of fun going into the geography. And I just try to see like, Oh, look at there’s people watching in this country, in this part of the world. And I’m trying to see like, you know, and that, that, to me, is always really just so exciting and fun.
That’s great. Cool. I have one more question in mind. I guess most people have something like a bucket list, things they want to do in their life. Is there something that you have on your list where you feel like, okay, that’s something I’m going to do? Like, in the best case, it’s a secret that you reveal in this video.
Wow, this is crazy. The funny thing is, like, I don’t know. I don’t have a good answer for this. Like, it’s like, oh, this is the thing. I feel like a lot of my things have nothing, nothing to do with coding. So you know what’s interesting about I would say, like, the thing that’s where my mind goes is like, as much as we’re talking about how I was like, which is all true, I was like, a math nerd growing up. I don’t know math nerds, right? I loved math. I majored in math in college. I’ve discovered coding through this program and, you know, like, so this sort of, like, math, science coding thing for me is, is, like, such a fundamental part of my personality, however, not however, what I actually really loved when I was growing up was, was and is musical theater. I was always doing. I was in plays in high school and college, and I was always going to shows on Broadway if I could. And I’m not saying I was like, had any talent for this stuff. So I guess my bucket list thing is, like, I’ve often thought about is to produce. I mean, I don’t know if I have the ability to do this, but to write or participate or produce some kind of Broadway musical that is all about, like, I don’t know the computer, like the people inside the computer. I don’t know. Code the musical. So that’s my thing, that I probably should it. The problem, you know, that I try to make some space for. I was gonna say I did check something off my list, which is, I mean, it wasn’t on my list till I did it. But really, so like things that are in the theater and perform it, performing world. I’m really interested. I think this is why I kind of ended up doing the YouTube thing. It’s kind of like letting me inhabit, both of these spaces a little bit. So I am kind of doing this in a way. I’ve discovered it through lots of accidental, you know, paths. But Matt Parker, who is runs a YouTube channel called “Stand Up Maths“, and he’s a British comedian. This incredible book that just came out called “Love Triangle”. Anyway, he’s one of my personal idols. I always was watching him on YouTube. And he’s like, the epitome of somebody who’s doing, like, who’s really entertaining and funny and like, a talented performer, who also, like, can explain stuff in math. He runs a show called “An evening of unnecessary detail”. It’s like a comedy night that he’s been doing in the UK for a while, and he did a couple shows in New York, and I got to perform in them. I really like somebody, anybody was happened to be at one of those who’s watching goes, when you could just give me, I need somebody to give me an anonymous note to tell me honestly how I did. But to me, that was like, I did like a 10 minute, you know, little set, like I did some live coding on an Apple II Plus for one, and I did this, like AI parody thing that I was talking about for another. So to me, that was kind of like it was terrifying and I stressed out about it for like, a month. So I don’t know if it was good for my health sanity, but like, to me, that was, like this idea of being able to find new pathways to like these weren’t tutorials, but hopefully they were entertaining and inspiring and help people to think about coding and computation in a different way. So to me that is, it’s not an exact answer your question, but I would like to do more opportunities like that.
Amazing. Yes, actually, I feel quite the same because I’m a musician. I was playing a lot live. I had bands, and I love being on stage. I really like it. I love giving talks as well. So I think that’s also one of the reasons why I do it, just like you, just also being in front of a camera and speaking about coding, which is, which is, yeah, cool. And this reminded me also to another community member, Nicolas, he is now creating. He started learning Creative Coding before he was a creative director for fashion brands, and now he’s creating a theater piece. He loves belly and now he’s creating kind of a creative coding show. It’s about the the birth of technology, the birth and the death of technology. Like, it’s kind of a really, really creative project where he’s writing the music, like the eye concept comes from him. He’s coding the visuals for for the whole show, which is really cool. Yeah, I will share with you when it’s done.
Yes, I would love to check that out. That sounds amazing.
All right, I think we touched on so many interesting topics. I really enjoyed this so far. Is there anything else you would like to say or ask or whatever? Is there something you would like to few last words?
Well, first, I just want to say thank you to you. First of all, all the work that you do is wonderful. I’ve enjoyed following it so much. And I particularly think, like, this angle of really focusing in on material that’s designed for graphic designers and like, that’s a really wonderful body of work that you’ve created. And I really enjoy having this conversation, I guess, not to be plugging the book, but I would love to give people at least, like, a discount code, so if you’re wanting to, so there, we can make it up right now. So the book is one thing I’ll say, especially because I know you have an audience in Europe, one of the things I’ve really been struggling is to help people find the book, if they’re not in the US. It is being internationally distributed through Penguin Random House, which does a distribution for no starch press, amazing. Should be able to find the book through, you know, any online book retailer, you know, obviously, there’s some that I could think of that are very huge. So, but you can order the book direct from “nature of code.com” as well as from “no starch press“. So I can put, we can put both of the links to that, and we, I’m able to create discount codes, a no starch can create one for their direct sales. I can create one for my direct sales. The issue is, don’t buy it for me if you’re like in Europe, you’re going to the shipping is going to be off the charts.
I still don’t have mine, by the way. It’s still in the way.
So, so, yeah. So what’s a good discount code for your community?
That’s a great question. Well, I call it often “trcc” for Tim Rodenbröker Creative Coding. Maybe that’s something.
Trcc. Well, do that I. 25% off with “trcc”. But I don’t want to end, I don’t want to end with the sales pitch, so I’ll just say I would love for anybody who’s watching this or enjoying the book, if you’re making something creative based on any my tutorials, please share them with me. We talked about this earlier, but that’s the thing that I love to see the most. You can find me on the various social medias in the ways that you might imagine and yeah, so that would be my that’s my final parting request from the audience. I love to hear from people who are making creative stuff with code.
Awesome. I can say this is valid for me as well. Sounds makes a lot of sense. Well, we maybe one last question from my side. I’m thinking about creating a course on object oriented programming, but I want to really stay, like very, very low level. I know that you would probably say that the Random Walk is the best way to explain it in a simple way. Do you agree? Is that the best entry to explain object oriented programming?
There’s two thoughts I have here. One is, yes, Random Walk is a great one. It’s what I use in the Nature of Code book. So certainly you could look at that material and see how that resonates with you, or how you might want to take your own spin off it. I recently rerecorded, so the original processing, beginner processing, tutorial videos that I made, I recorded in 2012 I believe. I recently, just last year or a year and a half ago now. I made a whole new it’s like, it’s on YouTube. It’s like five hours long. It’s one single long video. It’s a whole beginners. So anyway, the reason why I bring that up is that includes a section on object oriented programming for the beginner and the what I tend to use, it’s also related nature of codebook, but this idea of a particle system, I think, is a good entry point for object oriented programming. And I don’t mean particle system in the advanced like physics. It’s modeling physics way. I just mean this idea of, there’s a single dot. And so what I use is bubbles. So I have, I make this, like, example of, it’s just a circle, and it’s like floating up the canvas. And, you know, it kind of randomly shakes back and forth. It just, you know, very simple, like manipulating x, y, but this idea of a bubble that then can become an object. And then, you know, you could start to talk about, like, why would you have, how do you have more than one, and what if you want them in different colors, and all the sort of, like, bits and pieces. And then, how do you what if they intersect with each other? How do you have objects, like communicate, or, what if you want to like interact with objects with the mouse? So that’s, to me, where I start. And so those are just some thoughts, I think what’s interesting, and what I’m realizing about the “Nature of Code” book is the reason why it’s like this one level up, or it kind of has an extra added complexity to it, is because of the use of, well, now in the p5.js version p5 vector, or p vector in processing. So I think this is always a tricky question of, like, when do you introduce the concept of a vector and, and I know we were wrapping up, but now I’m just talking. And I think it’s really interesting thing about this in the case of, like beginners, especially if they’re, let’s say, coming from graphic design background, because on the one hand, when you’re learning to code in p5 or processing, and the fact that you have a variable called x and a variable called y, you’re essentially using a vector already. But when do you start saying the word vector and or when do you start using the vector object, which introduces like, do you already know about object oriented programming? And if you have a vector object, what does it mean to call functions on it? And then if you make another object that’s like a particle that has vectors in it, like it just it starts to, like, pile up really, really fast. But I wonder if there is a way to I just, I don’t know if this is a good idea. I’m just thinking out loud, there could be something, especially if some of your audience is coming from, I think they’re very experienced with working with tools like Illustrator. I’m sure there are other tools that aren’t made by large companies like Adobe, but essentially, like SVGs, this, this concept of a design being built out of vectors, maybe that would translate in some way to it doesn’t.
No, no, no. Unfortunately, not. The problem is, there’s a big confusion, because from my point of view, a vector, like a vector file, is something completely different than a PVector object. And there was something I was confused myself about, and I just realized, well, while we were talking about it. I just realized, yes, that was one of the reasons why I was a little bit, maybe overwhelmed. I mean, I was always focusing on teaching. That means I didn’t, I didn’t focus on becoming a super good, you know, to master all the physics and stuff. So for me, with always the question is like “Can I explain what I’m doing here?” And I think the combination of object oriented programming, which is already a concept, which can be a little bit overwhelming for some people, and especially if you have a different meaning for the word vector in mind, yeah, if you then also add the PVector object, which is kind of complex, you have all these mathematical operations in it, yeah, I think that’s something it could be overwhelming for some people.
Yeah. And it’s awkward to the syntax. Reasoning is, I want to say maybe it’s a little bit less in JavaScript. It’s just awkward syntax, because, you know, to do the vector math, you can’t just use the normal operators like plus minus. You have to call the add function or the so, you know, to me, it’s a little bit second nature now, having worked with p5 and PVector for so long. But that is, and I also agree with you in that, like, in the context of I’m thinking about like wanting to make, let’s say like, what somebody wants to do is make a design for, like, a movie poster or show poster or a book cover, through computational design, and they’re learning about for loops and colors and shapes and different algorithms like add there’s no reason to add object oriented programming to that. Inherently, there’s so much to learn and play with, just from this idea of learning to code and the basics of computational design. I think when object oriented programming, and a lot of people don’t even like obscurity programming at all. But like for me, where it really becomes important or helpful is for, honestly, like I was gonna say simulation and sort of like larger systems of like agents and, you know, bouncing balls and those. I think it’s that maybe there is, like, some, I mean, maybe just the “Nature of Code” book, but, and that’s the thing, like, the “Nature of Code” book, it’s 640 pages. It’s not meant to be like you’re learning. Let’s just do a Saturday afternoon workshop for a couple hours and go through all of, like, p5 vector and physics simulator. It’s something, you know, honestly, like for me, I would expect somebody to spend a year with. So I think that’s also the challenge, like you have. There’s different time and spaces and context for all the different things. But I think it makes sense. But I do think there is a way that there is for your, you know, again, I’m not as intimately knowledgeable as your audience and practice as you are, but to me, it feels like there probably is a way to introduce object oriented programming as a module that maybe, maybe there’s a particular kind of project or example that you want to demonstrate that it really would be conducive for, and it could sort of come into play, and you could leave the vector stuff out of it. I mean, that’s a whole other can of origins.
Exactly. And this is actuallythe challenge I see for my curriculum, is introducing this on a basic level, but explaining what the real benefit is. Because I think having a random walk is nice, but, I mean. You know what? I think the best thing I can do is, as soon as people start to get excited about this, and maybe I do a basic course on this thing, I will send them to you. Because, of course, I mean, this is I will build a channel between my platform and your platform and just lead the people to you and your teaching.
We all can’t do it all. So it’s need to be able to all make our things and find ways to send people back and forth. And also, you know, as much as I know that a lot of people like the kind of chaotic, energetic style of my videos, sometimes it doesn’t work for people, and they prefer something like a little milder from a different point of view. So I think “a rising tide lifts all boats” is the expression that I try to the more we all do, the more, the more options are for people. And that’s amazing.
Options end up in decision fatigue sometimes, right? Dan, it was a pleasure to have you. Thank you so much for joining. And I’m, yeah, looking forward to catch up at some point when there’s a new book or whatever. Or you have your Broadway theater out there.
Yes! I can’t believe, it’s somehow like it feels like, to me, like we must have met in person at one time or another, but we haven’t. So we’re gonna have to, we have to make that happen somewhere.
That would be amazing.
Anytime you’re passing through New York definitely let me know. But I love traveling, so hopefully I’ll make my way towards your neck of the woods sometime again, soon.
Awesome. That sounds amazing. Let’s do this then. Okay, wonderful. I’m going to end the recording now. Bye, people. Thank you for joining and see you.
Bye, everyone. Bye.
Enjoying the content?
I put a lot of love and effort into developing content on Creative Coding. Since 2018, I have published 209 interviews, case studies, and tutorials, along with over 272 lessons in 17 online courses – and there's more to come! If you'd like to support my work and help keep this platform evolving, please consider supporting me on Patreon. Thank you very much!
Related
Two thousand and twenty-four. At the “Barceloneta” metro station, a few hundred meters from the beach, stands an old dot-matrix […]
Sometimes it is so difficult to display the potencial of Creative Coding, since it mostly happens in the digital realm, […]
Please note: This is a interim state of this interview, I am currently working on the edit. Stay tuned! How […]
In an age of increasing digital consumption, Hannah, a recent visual communication graduate, explored “Permacomputing”—a sustainable approach to technology inspired […]
In this interview, Copenhagen-based creative director Tameem Sankari shares his journey into Creative Coding, combining Processing, Blender, and Adobe CC. […]
In this post I’d like to introduce you to Sam Griffith, a talented graphic designer based in Detroit, to discuss […]
In 2022, I spontaneously posted a story on Instagram: If anyone out there is also in Rotterdam, I’d love to […]
During OFFF Festival here in Barcelona, many interesting people come around! This interview with Talia Cotton came about almost by […]