Daniel Shiffman on The Nature of Code

Published by Tim on Thursday October 3, 2024

YouTube

By loading the video, you agree to YouTube’s privacy policy.
Learn more

Load video

Video edit: Chaery Yoon

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.

https://natureofcode.com

Related Links

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.”

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!

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.

“The Nature of Code”

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.

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.

Guess how often I did that?

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.

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.

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.

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.

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.

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?

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.

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.

Its on my list.

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.

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.

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.

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.

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.

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.

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.

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.

Yes, I would love to check that out. That sounds amazing.

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.

So, so, yeah. So what’s a good discount code for your community?

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.

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.

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.

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.

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.

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.

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 208 interviews, case studies, and tutorials, along with over 267 lessons in 16 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!

Speaking Image

Monthly Newsletter

Stay up to date and get new content circling around Creative Coding and Design within Limits, every 5th of the month, directly to your inbox.

Related

Kiel Danger Mutschelknaus on building Design Tools with Code

Please note: This is a interim state of this interview, I am currently working on the edit. Stay tuned! How […]

Hannah Gmeiner on Permacomputing in Graphic Design

In an age of increasing digital consumption, Hannah, a recent visual communication graduate, explored “Permacomputing”—a sustainable approach to technology inspired […]

Tameem Sankari on Creative Coding for Large Media Corporations

In this interview, Copenhagen-based creative director Tameem Sankari shares his journey into Creative Coding, combining Processing, Blender, and Adobe CC. […]

Sam Griffith connects Creative Coding with Enviromentalism

In this post I’d like to introduce you to Sam Griffith, a talented graphic designer based in Detroit, to discuss […]

Omid Nemalhabib explores the intersection of Creative Coding and Perso-Arabic Typography

In 2022, I spontaneously posted a story on Instagram: If anyone out there is also in Rotterdam, I’d love to […]

A conversation with Talia Cotton

During OFFF Festival here in Barcelona, many interesting people come around! This interview with Talia Cotton came about almost by […]

Lena Weber about her collaboration with A. G. Cook

Lena: This 10-minute visualiser for A. G. Cooks album teaser featuring my python archive generator, is one of my favourite […]

A conversation with Anna Shams Ili

Hi Anna! It was super nice to meet you at the PCD CPH, I really liked your talk in which […]