Generative Art + Coding with Kevin Maes 🤖 ========================================= by kirupa | Interviews with Creative People: https://www.kirupa.com/podcast/index.htm Kevin Maes (https://mazes.vercel.app/) explores creative coding as a place where abstract ideas suddenly become visible. He talks about generative art, print and Flash-era influences, state machines, and AI with a steady engineer’s eye, arguing that the best tools make complex systems easier to see, shape, and reason about instead of burying creativity under unnecessary complexity. Watch the interview: https://www.youtube.com/watch?v=Ojty3vBZzB0 A conversation with Kevin Maes | 47m ABOUT THIS CONVERSATION Kevin Maes makes generative art sound inviting in the best possible way. Instead of presenting it as an elite corner of creative coding, he describes it as a practical bridge between abstract ideas and visible results. Math, algorithms, and programming concepts often feel distant when they stay symbolic. Once they start producing movement, pattern, and surprise, they become easier to grasp and much more fun to revisit. That is one of the nicest things about this conversation: it treats visual output not as decoration, but as a way of thinking. Creative coding becomes a tool for understanding as much as for expression. Another strong thread is continuity. Kevin talks about books, print, layout, and Flash-era making with real affection, but not as nostalgia for its own sake. What he values is the directness those tools offered. They let people experiment visually, iterate quickly, and connect ideas to output without too much ceremony in between. That perspective carries into a broader point about what the industry lost when approachable visual interactive tooling faded from the center of web culture. For many people, especially those who think with their eyes first, the gap between visual intent and implementation still feels wider than it should. Kevin’s comments make a strong case for rebuilding better bridges there. The later discussion shifts toward systems thinking, especially through state machines and AI-assisted creation. Kevin is clear that structure is not the opposite of creativity. In complex applications, structure is what keeps creativity from collapsing under its own weight. State machines make behavior easier to inspect, plan, and maintain as a project grows. AI raises a similar question from the other direction: it can generate snippets, ideas, and scaffolding quickly, but coherent integration still takes judgment. That leaves the conversation in a very useful place. Good tools do not just help you make more things. They help you understand what you are making well enough to keep going. WHAT YOU'LL HEAR ABOUT - Generative art turns abstract math and code into something immediate and understandable. - Visual tools can make programming more approachable without making it less rigorous. - Flash-era workflows still have lessons about play, iteration, and direct manipulation. - State machines help complex applications stay inspectable as they grow. - AI can speed experimentation, but integration still depends on human judgment. JUMP TO A TOPIC - 0:00 - Why generative art clicks: Kevin introduces his background and explains why computational creativity remains such a compelling space. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=0s) - 5:00 - Making abstract ideas visible: He talks about using math and small programs to give tricky technical concepts immediate visual form. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=300s) - 13:00 - Print, books, and layout instincts: The conversation turns to early influences from print and desktop publishing on how he sees software. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=780s) - 21:00 - What Flash still got right: Kevin reflects on older visual tooling, porting work forward, and the speed those tools enabled. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1260s) - 29:00 - The missing bridge for visual makers: He looks at what was lost when accessible visual interactive tooling faded and why that gap still matters. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1740s) - 35:00 - State machines as creative structure: This section covers xState and the value of using explicit structure to manage complex applications. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2100s) - 43:00 - AI, experiments, and integration: Kevin closes on generated code, AI-assisted creative work, and the harder problem of fitting pieces into a coherent whole. (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2580s) TO LEARN MORE - Kevin's Maze Generator: https://mazes.vercel.app/ - Kevin's LinkedIn: https://www.linkedin.com/in/kevinmaes/ - Kevin's Twitter: https://twitter.com/kvmaes - Kevin's Stately: https://state.new TRANSCRIPT The automatically generated captions have been organized by speaker, lightly edited for clarity, and broken into paragraphs for readability. Names and wording may still contain errors. 0:00 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=0s) Hi everybody. Today I chat with Kevin Maes, someone who has been working on The Cutting Edge of many technologies for a very long time, especially as it pertains to generative computing and art, where you programmatically generate media such as animation, sounds, mazes and combinations of things and more. There's a fun conversation where we dive into a bunch of fun topics. So let's get started, right? Kevin, great to chat with you, so before we go further, can you please introduce yourself? 0:24 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=24s) Sure, my name is Kevin Maes and I'm software developer and I currently live in Philadelphia, right outside of Philadelphia. But I've actually been living for 15 years or so in New York City, up until the pandemic and right now I work for a company called Stately. It's a startup in the developer tooling space and a collaborative engineering space. But you know I've been doing a lot of different things over the years and you know I got started way back in, let's say, the Flash days or even earlier than that. So it's been a wild ride and I'm still going. Obviously I love it. 1:02 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=62s) Yeah, and one of the reasons why I really want to chat with you is that you've always done a lot of interesting, creative things, starting from the Flash days, but even continuing onward from that. So I definitely want to go deeper into that particular topic. But before we get there, how did you get started? Walk me through your earliest days, where you were like, this is going to be interesting. 1:24 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=84s) Sure, yeah, if I think back, I mean I guess I started in the internet really not as a developer, I was doing things like content creation. I guess my first internet job was actually as an educational writer on a team traveling around the world, writing for a website that was used by students. It was called The Odyssey World track for service and education, and so we were a five-person team and you know we traveled through Central America, South America, Africa, you know different places, but then that actually brought me to Israel and, for various reasons, I lived in Israel and I started working in startups. There's obviously a thriving startup culture, even back in the day, and so we're talking about the year 2000, for example- and, I started working in things like tech support and copywriting and I had a lot of time, you know, during some of those jobs and I actually just started teaching myself Flash from a book. I feel like the karate scene where he's like learning how to kick from a book. But yeah, I learned from one of those Peach Pit press books or whatever about Flash Forward, which was all just fun and games and timeline and animation and art and things like that. So I know you know all about that. So, yeah, I'm looking at all the books you have behind you, and a lot of it looks very familiar. Of course, the Flash 5 box from Macromedia, that's it. And I also believe I see the Macromedia Creativity book behind you as well. They made several editions of it, right? I don't remember which one it was or where it falls, but that's so fun. Did that introduce me to this whole world of you know, just like artwork and some of the generative art stuff and like fractals and all kinds of fun things? And I guess you know, as a, as a young kid, I was kind of a math geek. I mean, I don't really think of myself as particularly, proficient in math as an adult, but you know, I was always interested in math as a kid. And so it's interesting to see, like, which elements of those carried over into, you know, into the programming World. But mostly for fun and stuff like that, which is always an interesting tangent in some ways, because there's always this question about how much math do I need to know as a developer? And it always depends on which stack of the problem you're trying to solve, and I always- you know how this controversial view well, to myself, primarily that I think if you're a front-end developer doing more creative things, you probably need a little bit more math than you might actually anticipate. You know beyond just the simple arithmetic you might need to know about like trigonometry, like cosine science and all of these kind of things. Yeah, I'm glad. 4:06 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=246s) You mentioned that because, you know, really trigonometry was the only thing that I really needed to like dust off, you know, and kind of, you know, read up on again, and the funny thing is that, like, I only end up using it like every now and then. So I just always have to kind of go back and like blow it off and like, you know, kind of refresh myself. But yeah, other math, you know, I don't really use. I mean, the computer is really good at math, really good at calculating things like that. So, yeah, you know, one of the things that I found very interesting about math in general is that when I was studying math and like all these things you'd always hear about, like how it applies to the real world and how it applies to computers and things like that, yet it never quite resonated with me or made any sense. Like you see these symbols, you're like, okay, I get it when I read it for the exam, I'm gonna forget it immediately the day after. Recently I had to figure out, you know, I was just curious: calculating pi is a very complicated topic, and there was an article where, I believe, Google had computed it to the largest digit count so far at that point. And I'm like, okay, why is that such a hard problem? I went back and looked at the equations they used, which weren't really complicated in the grand scheme of things. They were the kind of integrals you see in school, and I was like, oh, I remember this from back in the day. It turns out you can actually plug that into VS Code and run a quick JavaScript program to calculate pi, not to that degree but to a small degree. But translating that into a for loop and things like that, I was like, wow, after almost 20 years I actually learned it. It finally clicked that a for loop can, in many ways, be used to approximate an integral, and then the starting and ending conditions are literally what I'm doing here to calculate the value of pi. This is one of the things where I don't know if I that click happened like 20 years ago, my path would have changed significantly, where I was like I just want to do product management stuff, not doing development. It's not what I want to do, but it's just one of those funny things that you know I keep thinking back to. Like in every couple of days. I'm like, wow, you know I wonder how many other things from my education that I just haven't applied in a meaningful way because it's never registered back then. 6:06 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=366s) Yeah, I don't find a lot of direct connections between those things, but there is definitely transferable knowledge. I think about that a lot. To tell you a little bit more about my background, I didn't study computer science at all. I studied music, actually, and I also studied opera. I wanted to be an opera singer back in the day, and so I studied foreign languages. And so to me there was always this kind of interest and passion and connection between things- like you know, study math, which is technical, to studying, like you know, music theory and foreign languages, and then those are just like languages, and then you can apply, like you know, language constructs and concepts to programming languages, clearly, and so there was always sort of that kind of continuity between those things, with the sort of background of like building and creating as well. That you know I'm gonna have to ask this then: do you think programming is an art or a science? Oh, gee, think I mean it's probably a bit of both, right? I mean, when you think about it, they're also, you know, programming or functioning as a working developer. I mean it's also so much more than either of those things, right, you know, I mean there really are a lot of you know skills that you need to communicate, to be a good communicator, to have empathy to, you know, be a good teammate. Most of the time, I mean, I've obviously different parts of my career have been like you know, developing by myself. In fact, that's largely how I feel, like I started but of course, at other times I've been totally a team member. I mean, I'm a team member today so, you know, you really kind of need to have a very well-rounded, I guess, approach towards programming that's artistic and scientific and also collaborative- cool. 7:57 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=477s) So let's head back to your interest in generative art and being able, or just generative designs and Creations. What was the earliest things you created where you were like? This is a lot of fun. 8:06 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=486s) Yeah, I mean. So back in the Flash days we did all kinds of gratuitous stuff, if you recall. You know we would. We would just anything that could follow the mouse would follow the mouse in a trail. You know that didn't end, you know, we would pack as many things onto the screen, and then, you know, actually we'd have to then worry about things like performance, and that was really interesting. You know that, like, let's say, having hundreds of thousands of objects and ways to optimize that, but you know, I guess, from the very beginning, when I was, like you know, teaching myself, I mean I would literally just stay up, until 4am, like night after night, just playing, and it was the most fun, satisfying way to learn. It was just experimenting. I mean, you know the Flash days, you would just hit like command, enter, and you would just like run. Whatever you did, you'd be like man, let's see it, let's see it move,. And so I, you know, I did a lot of things with, like, also with sound and you know, say, homemade vector graphics. That was also really fun in that you know IDE, or that you know authoring environment, because you could like import, you know images, and then you know like to break them out. We've got that trace bitmap or whatever it was, and you can create your own Vector r. That was a custom you could. You know, I didn't even use like more sophisticated tools, like you know from illustrator and freehand, you know, like the busy tool and things like that. I mean, I would just literally take like a line and I would just push it with my mouse to make a curve. You know, I push it the other way and I'd like make all these, you know like, totally, you know, new artwork. It was super fun and then you could just animate that stuff. But then, by the time, let's say, you know actionscript, well, you know, basically, when Flash five came out, which is you know that one over there, then you know it was like full on using code to make things move right and it was much more intuitive to actually use code, I mean even for someone who wasn't really a coder. So you know, it was easy to kind of just you know, and to animate things, and so I would, oh gosh, what do I make? I mean just, you know websites, different presentations, I did a lot of gaming, like all kinds of games, so, for example, educational gaming, even online games, card games, yeah, all kinds of things like that. So. 10:18 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=618s) A common theme I always hear is that you mentioned that you're not a coder but you're able to use Flash and make, you know, create code, like activities. And I always, going back to you, know I spend my entire career working on developer tools and Frameworks and languages and platforms and you know that entire area because I never grew out of that. You know, I love tooling in many ways, and I always wonder how much the tools actually play a role in making people comfortable with something brand new. I've spoken to people who are very much in the developer mindset, where the visual tools of Flash were secondary, like, I didn't know I could draw a shape very quickly and then do my coding work in it. And you're almost the opposite in many cases, where you started off using the vector drawing tools and then naturally gravitated toward the code side because the tools made it very easy. And of course you're working on tooling right now in some ways with stately it's. Sometimes we can talk a little bit more about that, but it's actually interesting in that the trace bitmap one is one I always remember because it was fun to play with it, because the output- you never know what it would ultimately look like and it always had. You know it was an image that could naturally be traced nicely. It would look pretty good. Otherwise it'd be a puddle of like various colors everywhere, and I didn't have the fastest computer back then. And so the more I tweak, click, number of corners and Edge- I forget the terminology at this point, but you had like some numbers you could tweak that would determine how fine-grained each of the dots of the approximation would be, and then if you cracked up a certain point, it was almost guaranteed your CPU would Spin and then Flash would become unresponsive. So to me, like it's always the most memorable moments of the trace, bitmap feature, yeah. 11:53 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=713s) It was really a balance between how detailed or granular you wanted the threshold to be set and how long it was going to take to actually do this thing. But yeah, it was really satisfying and, again, because you could just make art that didn't exist before, I really loved the immediacy of being able to hand draw. I actually, you know, had like a company for freelance work and I created my own logo and then, several years later, I actually saw that somebody like stole my logo and used it for a web development company in Sweden, like with the same name, and of course, I knew it was mine because, like, I moved every single Pixel of that logo by hand. It never existed, it wasn't a photo, so that's kind of funny that you know it's very personal to create this kind of art. How do they find that? You know, this is probably before the days of Google image search, correct, or like the reverse image search they had. Yeah, I mean, this was probably like when Google had just come out and that was probably just looking, you know, to see if there's any other company with. You know the name, and then I did find it and it was funny that it was actually a web development company as well. Just by chance, yeah. 13:09 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=789s) Which is always the irony of it, because if you do any kind of naming- especially today- for, like you know, in a corporate environment, for example, I was a trademark search- that needs to be done and they always check, you know, the name is okay if it's being used in the same way. But if it's the same company in the same style- like you know, you're being web design company called Kevin Maes, some of us doing a web design company called Kevin Maes- probably not going to be fine. But if it's like one is selling, like you know, paper goods and heavy industrial Solutions and the other ones like new web development, that's fine. No One's Gonna Get, You Know, complacent there. So you know, it was an interesting world back then where a lot of things you can get away with very easily. That's true, it was a wild west. I mean it was really, interesting to learn. I mean that's why, actually, you know, I came across your site. You know, Kirupa, it was so helpful back in the day. I mean, let's, let's face it, there was no, there was no stack Overflow. You know, there was obviously nothing like CodePen, CodeSandbox, or what sounded like code 10 box back then. But the resources were often hardcover or softcover books, which I always loved. Actually, I still like books. Sometimes I'll take one with me on vacation and just read it on a beach or wherever I am, and I really enjoy learning that way. So it's really fun to have something like that. Do you prefer books? Because there are no interruptions with a book. You can also get PDFs on iPads and so on, so I'm curious to know why you prefer books. 14:35 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=875s) Honest, I don't use the books as much now but, like I said, I guess it is kind of a way to focus, you know, because you're only going to carry like one of these things, you know whether it's like your cafe or whatever, and so it's sort of like this is the one I'm gonna get through. You know, on this trip, you know that type of thing. So I do like that. I also like being able to jump around and, you know, kind of like looking. You know, look at the you know the appendix, or look at the, you know the little tips and things like that. I like that style, I like the organization of the of the books in terms of like the little, you know boxes and little call outs and things like that. So there's something about print. I mean, some of the early stuff I ever did with computers was actually with like desktop publishing. You know, as, as a teenager, I mean I learned like QuarkXPress and I would actually design some print like brochures and things like that at random jobs that I was doing, just for fun. So that's kind of got into it from the graphic design perspective, albeit without any real training. So I don't, you know, I don't think I really stood up to the competition, but I did. 15:37 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=937s) My best in this month. You know, I always wondered this, right, you know, because a lot of people were very successful like yourself do not have like formal training and graphic design books, for example, but create an output, though it's really good. So I always wondered, you know, is a combination of having the ability to look at an output and say this is good, which is bad, and then the Curiosity to kind of just figure out things along the way, I wonder if that is actually probably, you know, more of a signal of being successful in that field than it is to have like the raw knowledge of something. 16:10 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=970s) Yeah, I don't know. I mean, I think that, you know, for example, sometimes, when I've worked with designers, I'm, you know, I never try to presume to be the designer, you know, but it is really fun to like see someone who has all those skills and all that experience to kind of, you know, see how they may, in some cases, maybe validate things that I had just like a hunch about. You know that I had a feeling that I don't know how to articulate it, and so it is interesting and I think also, from that I also learn and you also do get a little bit of a confidence of just like, you know, there are a lot of people's voices need to be part of the conversation. And sure, sometimes it's like the, you know, the client or whatever, and sometimes I know that there, you know, you had a talk with someone. You know you're talking about how, like, the people making decisions, you know, are sometimes, you know, like less knowledgeable even, than the people doing the work, but you know there's also just different kinds of users and you know so there's different perspectives from some users who the design is going to speak to them, you know. So I think just being part of the conversation is fun, and I and I love also being on teams where, we get to do things like participating, user interviews, and, you know, research, like even at the design phase or the ideation phase even, and just to kind of prove Out concepts before actually getting into engineering. So that's been really satisfying to work on projects like that. It seems like you've been through almost every stage of a software life cycle, everything from like ideation, decoding. 17:39 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1059s) To developing, to actually doing research? Which part do you enjoy the most? 17:44 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1064s) I mean, I think that I probably just like sitting down and Building Things, but I do feel that you know I've done a lot of the things that do sort of help, you know, bring other perspectives, and those include things like you know, even like a lot of Engineering Management, or, what else. Yeah, just like a lot of you know people in engineering, people as people related, you know things like that in my jobs, you know, and you know, working on things like, mentoring or education, you know, this is definitely helped me to be a better learner, obviously, if that's one of the things that I always found, like whenever I would like tutors, you know, in school, it was just really a way for me to learn and to feel like I kind of own that knowledge a little bit better, so I find that very helpful. Yeah, I think it's a triangle of like how well people retain knowledge, and I think teaching back to somebody something you know is some of the best ways to both prove that you know what you're doing and also stick it in like some form of long-term memory in your brain so you never really forget, and you know that's one of the motivations that I still have for like explaining things and talking about various topics is, in many ways, it helps me articulate my thoughts better and also helps me figure out what's important and what's actually not important for this particular situation and then have the right level of elevation to talk about. Like how high-level it could be or how much of the way it's going to need to be as well. Yeah. 19:12 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1152s) And so, you know, one of the things that I know what we're doing right is that you started, you know, doing generative kind of art and music and things like that. Back in the day it was a very crowded space. There were a lot of people doing very similar things, and I just want to just curious to know who are some of your favorite designers or developers who are doing really interesting generative art. [Music]. 19:33 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1173s) So if I think back to the people that I followed, I think Joshua Davis was one of those names that really stood out. I saw him speak at conferences. I definitely followed Jared Tarbell's work as well. A lot of this came from conferences, but nowadays, for example on Instagram, you can follow all kinds of people. To be honest, I don't know everyone's name, but I do know something exciting when I see it, so I like it and I follow it. And it's always interesting to think of, like, you know, they're using all kinds of tools. I mean, some some people use, you know, back in the day, Flash. Some people use processing. Some people, I don't know what else to use, but, you know, it's always interesting to think of, like, oh, can I apply that, you know, to whatever language or tooling that I'm using today, which is, you know, typically JavaScript? You know, some of the stuff that I've dabbled in has been with, like, p5. Js, you know. So, basically, I didn't really use processing, but it's kind of like processing inspired for, you know, to JavaScript and, that's. That's some of the stuff that I played around with. Of course, you know, there's a canvas which is kind of a successor to a lot of this stuff, you know, because it had the absolute positioning and all these things that you know we knew from Flash. So, yeah, in terms of people though, yeah, so I guess I continue to look for inspiration from different people, do you? 21:01 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1261s) Remember Yugo Nakamura? Yeah, I was. 21:02 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1262s) I was going to mention that too. Yeah, Yugo, right? 21:05 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1265s) Exactly. Yeah, I always wondered what happened to that, to Hugo P? But that stuff was amazing. It was inch. Like you know, I had like physics based- you know- motion and it was really, really cool and I always loved that stuff. And he also had like very trippy sounds as well. It wasn't like the kind of melodic, harmonious music, it was a very jarring kind of sounds, depending on what you were doing, which is very similar to like art installations you might see in real life. When you go like like a more modern art museum, for example, you often see things where, like you know, lines only come in here it can write a sound, but it was interactive, you could actually control it, and that, to me, was always the most fascinating thing about all this art that you mentioned. Oh, by the way, completely random tangent, do you know Jared Tarbell? Right, you know, I think all of us went to his website. We always thought it's like cool experiments and so on. Do you think was a co-founder of etsy? Yeah, I didn't know that. Actually, it did kind of look. It looked that up. Yeah, that's pretty. That was pretty cool because, before you know, we had podcasts and I could talk to people like you know, in real time. I did text-based interviews with people back then. So I talked to Jared, you know, when he was just a PhD student, I believe he was in, you know, New Mexico at the time doing all of his Contracting artwork. I'm sorry. I said like, hey, can I have some questions for the website? And so on. I was talking about all the cool stuff that he was doing and then, like you know, many years later, I'm like wonder what Jared is up to and I'm like, wow, he co-founded Etsy from, like you know, that level of things. It's always fun to kind of see, like, where people end up going and even now, every now, like you go Nakamura, for example, I just maybe, like once a month or so, I just go back and be like what are all the various people that used to do things doing? And you know what are they up to? Like do you remember Ultra shock? Yeah, sure, yeah. So Patrick Mikko, he's still doing like he does generative art and music now and type Kingdom on LinkedIn a while and said, hey, what are you up to these days? You know, it's been like decades. Actually, we never spoke, you know. So I'm like: what are you up to these days? I'm like it's just fun to like catch up. So if you ever like get the opportunity, Kevin, just find people that you might have known for like back then just reach. They're often like very excited to actually hear from people, because not too many of us from that time still talk fondly about like gender of art. You know day job things that get in the way oftentimes. 23:09 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1389s) Yeah, it's interesting. I mean I would definitely love to connect with some of those folks. But it's also interesting to think about, like how the downfall of Flash and where people went. I mean it was really kind of like a fall of an empire. Some people scattered and went to like Unity and some people just switched over to HTML, CSS, JavaScript; other people- they kind of just remained and worked in whatever ads and things that were still being done in Flash and yeah, it's interesting. I was part of a community in New York City, for Flash developers. It was like the Flash JS meetup or something like that, and we used to meet like every Wednesday in a cafe in Greenwich Village, and then, I guess a few years ago now, we had like a reunion and that was so interesting, to see everybody and see what they're doing. 24:02 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1442s) He still uses Flash today. He uses a version of Flash that's not the latest version because some things aren't officially supported properly anymore, but he uses Flash-oriented publishers to get games into stores and is still actively talking about how to make these things work in ActionScript and so on, which is really funny. Yeah, because when we used to, you know it was like: you know, control, enter, right, you can see the Flash Player up front of the window. You still have those kind of tools today. You know they don't run in the browser anymore, but they're running their own self-contained area and they can publish directly to the iOS store and the Google Play Store with really good performance. As it turns out, the name of those tools are escaping. Yeah, we actually you know, we actually you know, geeked out basically on like, what are all the tools that you can use today to make all this? You know Flash content compile into things that work more natively, but it turns out they've been doing this for a long time and the performance is extremely good, and it's been quite compelling to see, like, what can we do here now? That's cool. Yeah, over the years, I have ported some of the things over to you know, just things like CodePens and stuff like that, just to get them running, and something more modern, but yeah, I still have some of those old you know flas and things like that around. But you mentioned, though, that you know, when Flash died, like a lot of this scattered away. It is very true, because usually, when something comes in to replace it, you know it's often like with it as a natural progression of like okay, we flashed hand had its era. Now we're using the next set of things to work on, but I think, with the, with the Flash suddenly going away, there was no next set of things to really jump into. It's, basically, you can go back and do more static or animated visuals like an After Effects. That's always still there, but it was interactive anymore, and if you want to do things more programmatically, you didn't have too many options, especially if you cared about the reach, about Flash hat, where I can just send you a file and you could just view it. You know, I think WebGL was just about to get up and running, Mr. Doob, one of the other, you know, I think, people who did like generative art flashings back in the day. I think 3G- yes, he's the creator of Three. Js. I think it was just starting to do like the early version of Three. Js. Processing, of course, was huge and it was Java based, it was interactive, it was kind of cool, and I think that was that was Amit Pitaru, correct? Yeah, I'm not even sure about, yeah, if you had a really cool website as well. I don't remember this, but it was basically just like lots of dots would constantly keep moving to create shapes. That would be animating because, like people be moving and things like that. It also had like really interesting sounds behind it as well, so you can just see like all these, like many, many particles moving on the screen, creating it in an individual visual. They don't disappear and go and pick another visuals. It was like an entire sequence of events entirely done in real time in the browser, using Java at the time. So that's actually really fun to see all of that. Now. You, then you know one of the things I always remember you so you know you talked a lot about maze generation and I was talking more about that, like how did that come up? Yeah, I mean to be honest, that's just a really fun thing that I got into I guess a few years ago. 27:14 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1634s) The story was that I was actually in Barnes & Noble with my young daughter at the time, and she was reading a book, so I found some bargain book about mazes. I was looking through it and thought, oh, these are really pretty. Then I realized I had never really thought much about how mazes were made. So I tried out and that's where I kind of, I guess, first started working with the P5 JS, just kind of creating some of those things. And you know, the most common algorithm is just like sort of like a recursive backtrack, if it's like that first search algorithm. And so I just did that and but over the course of doing that I did realize that like, wow, there's so many other like algorithms and different ways to make messages where you end up with, you know, different visual results and different patterns. And that kind of just kind of got me, you know, my creative juices flowing, and so I started like just doing things like this on the side for fun, didn't have a lot of time to put into it, but I also, you know, ported things over to Canvas and then I kind of slapped on my React UI, because I've been working in React for several years, things like that, and now I'm yeah, I'm actually going to be. So I did give like a little lightning talk, back in sieges- I guess that was several years ago already, and I'm gonna be giving like another lightning talk about the same subjects, coming up in September also in Spain, in Alicante, and I guess you know what's different about that is, you know, some of the technology has changed, you know the stuff I'm using, but also, you know, I'd love to just kind of work on some other ideas that I have, and combine it with some of the work that I'm doing right now. So, for example, the talk is going to be about the algorithms, but the talk is also going to be about State charts, and state charts, you know, which is sort of an extension of finite State machines, is something that I'm working with every day, at my job at stately and you know. So this is going to be kind of like a fun talk about algorithms and visualizing those, and then actually turning those into working code, and, you know, hopefully supporting multiple algorithms, you know, to kind of demonstrate some of that. So we'll see what- what happens between now and September, but I'm really excited about. 29:39 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1779s) That. No, I think it's gonna be pretty exciting because May generation is one of those things I've always been fascinated with, because I had like a lot of books on this, mazes and like both from the historical point of view, like all the amazing to see naturally occurring, and then like like practical patterns and like corals, for example. In many ways it's kind of amazed where, if you are, you know, piece of Sam that gets stuck in one of the areas, you can navigate your way through to the currents, to the ultimate destination, all the way to, like the more modern games. We have mazes that are part of this, like your overall story, and the part that's always kind of, you know, confusing and also Difficult about Mission ration is- there are multiple parts to it- impressive on the algorithm of like being able to, you know, find a path that you can ultimately make it through. The other one's actually generating the maze itself, the visuals itself. So how do you do that? I mean so, basically you just come up with it. So the idea is to, it kind of comes from graph Theory and, you know, if you basically consider, you know, edges and vertices of graph, of a graph, and you apply them to what you looks like a grid. Now, this is presuming that you have, you know, let's say, a maze. It's all squares right which obviously you can have them be triangles or hexagons or whatever but essentially you have a grid and you can basically just keep on visiting different cells in the grid and you know you can break down walls and you basically, well, with the simpler algorithm which is the backtracker, you basically just keep on seeking, and breaking down walls until you hit the dead end and then, once you hit it, then you basically go back to the last place where you could have made another choice to visit a different neighbor, and you just keep on going until basically everything in the grid has filled out and so it's kind of It kind of really draws itself. Which is something that I always thought was mesmerizing. You know, when you're watching this thing, especially if it's very fast, because it just kind of goes and draws itself, and if you have a very large grid, I mean it just kind of speeds along and it's really, but it's always random, and that's another thing that I remember, you know, back in the Flash days, is that we had a lot of things that were random. You know, there was always, like: you know, make this random, make that random. You know, motion is random, and so this is kind of like a legitimate, use of that, because, you know, now we don't necessarily want all of our user experiences to be random, you know they is predictable and that kind of thing, but this is one area where, in arts, or mazes, you know, the randomness is well, yeah, the do you know, CSS is getting a random function? No, no, I didn't. I didn't know that. Yeah, I thought about it yesterday. Like yesterday afternoon, one of the people working on the Chrome team mentioned it on Twitter and said randomness was coming soon to CSS, and I retweeted it. I'm like, okay, I don't use Twitter much, but this is worth signaling. I think we're finally getting to the point now where technologies we used back in the Flash era are becoming more approachable to audiences who want to do something visually without writing JavaScript. I don't talk about Tooling in general. So do you always, have you always- been passionate about tools and things like that, or is it just one of those areas where you're like? You know I'm gonna try different things that have interest in many areas, but now I want to try pooling a bit. 32:59 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=1979s) Yeah, that's a great question. I don't think I've always been passionate about tooling, or creating tooling, but I have been a user of those things. And I think what happened with state machines and Stately is that probably five, six years ago, I don't know, 20, 27 to 2018, I came across some talks. I came across some talks, by David Khourshid, who's he's the founder of stately and he's also the creator of the XState library, which is the state machine library for JavaScript, and you know, the presentations were like so clear and so enticing in terms of like wow, this looks like a way, you know, to kind of create order from the chaos. That is like the sort of bottom-up programming where you just kind of like slap on, you know event handling here and you just handle things as you go. This was like a way to kind of step back and plan: what is this system going to do, what is the software feature, what are the things that are possible, what are the things that are prohibited? And, that really spoke to me, I guess because of the real life challenges that I face in the software that I was developing for many years prior- probably all the years prior- and it was kind of thing where, also when I think back to like the games and things that I made, I was like where was this back then? You know, this would have made things so much easier to manage and say, like this is what these you know characters can do, this is what's possible. So I got really interested in like kind of following you know, some of that stuff and learning about that and I gave like a little talk at a conference and then I started to kind of spread the word at my company. At the time I was working at a consultancy in New York City called Jack machines and I was super passionate about that and everyone you know they knew I was gonna, like you know, talk about this like State machine and like wanted to think about this. So it was kind of like spreading the word there and yeah, and then I found that it really was a great way to like think and plan out your application and then also to maintain it. Because you have this plan, and because you're using an actual JavaScript library like XState, then you're actually your plan is the code and it stays in sync because it can evolve with your application. So when the feature needs change, then you know the code is in sync with that too. So that's also pretty powerful. 35:24 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2124s) In many ways the state machine, I guess state. In many ways it's a keyframe which you hadn't flashed and it created a series of states and then you wire the logic between how they're tweening ultimately happens. Now, I've always been a big fan of this space. One of the things I started working when I first got out of college is I worked on product expression blend at Microsoft and one of the things we always thought about is: how do you make it possible for someone who's not very technical, who's more of a visual kind of a developer, who knows what they want to create, how can we help them actually create uis in a way that still translates into ultimately working applications? And the idea that is always inspired by was. If you look at music tools, a lot of music tools are cases where you look at the. You know the mixing boards and things like that. You often have like amplifiers and like visual things. You tie in between one to the other, like the output of one particular filter, for example, is the input for this particular amp, then it goes back another filter and you ultimately design the output, of course is the sound or the modification of the sound, but how you generated that was not by writing complex logic or doing all this, like you know, High Pass, low-pass filters individually. You know you were like, okay, here's what I think needs to happen to make the sound wave going the way I wanted to. So I'm going to do this visually. That means in the application. Development has always been like one of the things that so many companies have been exploring and trying it out and statements. What I'm very familiar with because of my interest in this space- I've always been like hacking- both the library that was going on and then also, of course, the company itself- is actually really exciting that enact- you're actually working with them on this exact same problem. Yeah, it's been really exciting. I've been there for about a year and you know what we're doing is basically taking, you know, application logic and we're, you know we're using the tooling to make it Visual and also collaborative, and I think this is again it's really interesting opportunity for me to kind, of, you know, dog food those tools and to use them, even while developing, let's say, stately Studio, which is the platform that we, that we have for developers and for also, you know, non-developers as well. So it's really great to be able to like learn about this and work with it and then actually help to produce the tools to help other Engineers? You know, because I imagine myself also consuming this stuff as well. Yeah, I know absolutely, because, based on what you describe like your hobbies and interests are, of course, you know, you seem like a perfect person to try out, like that, the look no code version of some of these tooling to make this work. So speak up, of course, no Code and low code and so on. We have to talk about this AI. You know, when I look at some of these things, right, look, we had professional, I got Pro code. You know, we had to get it code to get everything done. Then he had low code and no code tools which in many ways, you know, solved a lot of problems. But the problems were solved are often narrow in scope and you're often Limited in terms of like what the tools ultimately supported. You know, we saw this example when you opened up. You know, Flash and flex were great examples of this. You know, if I open up a Flash file, a flex file, in Flash things worked fine, but if I modified the MXML manually, even by one character, Flash would be like I don't recognized anymore. I can do the design surface, do everything in code, and that was always really awkwardness between, like, Adobe AIr and Flash, like a little bit different, like yeah, same technology, same underlying representation, but the workflow never quite, you know, went properly. Until the most successful low code and no code tools were ones that did not give you direct access to what was going on behind the scenes, because they knew that if you started modifying it in ways that the tool would understand- like you go from tabs to spaces, for example, you double comment something, for example, it was like I don't recognize this and I'd recreate the entire thing and it might blow away your changes as a part of it. With AI, I feel like there's one more area that's come up. In this case, you know just like what Midjourney was able to do for people creating graphics and visuals, where I'm not a talented designer or graphic user but I can type in things in a more natural way by, like using text or describing it, and then I'm going to qualify that measuring the output of kind of things, kind of we talked about earlier, about how you are, you know, doing some of these things and you didn't fully know like. No, you were like graphic developer, graphic designer, like publisher, by any means, but you were good at analyzing the output of gonna be like Yep, this is good and that was very successful in these areas. Where do you see AI playing a role in this world? Is it going to be, you know, one level of abstraction beyond what low code and no code tools bring? Or will no code tools ultimately just become AI agents in their own way? 39:43 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2383s) Yeah, I mean I'm just getting started in the space, so I'm really just kind of learning all the time. But, my feeling is that, like there's going to be a really great augmentation for the kinds of developer tooling that we're doing. You know, from AI, and I guess one way I look at it is, if you think about, you know, right now we have tooling that sinks, let's say, a visual editor, you know, with diagramming, with like live diagrams, with code that actually can run your application, but there's so many different ways to like input into that system or into that ecosystem, and so if AI can help us, you know, to, you know, let's say, when you want to create a system, maybe to find other systems that are very similar and you know, to be able to suggest things like that, or maybe to be able to generate, flesh out some of the details of the content, for you, also. These are very visual spaces. So anything in AI that's visual, whether it's creating images or augmenting diagrams, might also augment these tools. That's one thing I'm very curious about. I haven't had a chance to work with that directly yet, but I definitely look forward to doing that in the next year. 40:48 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2448s) In personal projects, have you used AI for, let's say, maze generation or any generative art? 40:55 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2455s) Art. Have you used AI for bits of it? I haven't really used it, but I've actually been very curious to get started. One of the questions I have, and I don't know if you know the answer, is this: if you ask a model to create a maze of a certain type, can it create one that is actually traversable, or is it just going to create a pattern that looks like a maze? You know that it has lines and has space and whatever, but it doesn't actually do the calculation because it's more like a, you know, visual processing of other data that it's seen. So I've actually tried this exact same thing and it depends on how you prompt it and how you do, like, the exact details. For it doesn't, you know. For it thinks of amazed purely in terms of a visual. It has no concept of like. There needs to be a path from beginning to end and so on. So oftentimes you'll see the maze but there's no solution to it because the walls aren't properly defined and if you aren't prominent correctly, the maze becomes three-dimensional like a hedge- May sort of things you might see in the real. 41:51 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2511s) World. Adobe's Firefly is another tool that's really compelling in this area. It does a better job on it, and I don't know exactly what is different about it, because I think what Adobe says is that all of its visuals are trained on images and assets that aren't copyright protected. So it's basically, you know, things that they've generated themselves from their own massive library, and so it seems like, in many ways, maybe a smaller data set, but the quality of it has been really, really good, and so it even can provide you a vector version of it, which means that it can generate a maze in Firefly, download it as like a vector kind of an art. Maybe you just kind of Trace bitmap in today's world to break it up, but I think you know the path from that to an SVG that you can now manipulate in any of the various JavaScript libraries. I think it's very doable. I never tried it, but I did play around with this like maybe a month or so ago and you know, and a month or so ago in the AI world right now, right might mean that it's all all the things I've been complaining about right now already. It's a funny you mentioned this sort of unsolvable maze because at one point. 42:55 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2575s) When I was using this recursive backtracker, I was like, well, if we're going to start the maze, you know, in this side, and we're going to end, you know, coming out the other end, what if I just generate this from both sides simultaneously to speed it up, you know. So I actually just took like two starting points and then just let it go and you end up with this gorgeous maze, but actually they don't meet because you know the rules of the algorithm are such that you know they don't necessarily have to meet, so then I was like, well, that's not a solvable maze, so you have to kind of like artificially go and like break down one wall so that you can actually get from one into the other. Another thing that I think would be really interesting, which you know could have to do with AI, but also just other technology, that's more, you know, modern, which would be like combining 3D, you know, with mazes, because you know, if you think about those games, where you would like- you don't remember the names of the games, but you know where- you're basically in a maze and you're navigating space- I think it could be really interesting to take like a two-dimensional, you know, gen generated space and then create like a three-dimensional generated space that you could actually even navigate through, almost like a game. I mean, it's basically? 44:00 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2640s) You're like a rat in a maze, but that could be really interesting and complex. So, and also, you know, totally random and Facebook, it's very much like I don't know if you're playing video games like back in the day in many ways, but the first version of Wolfenstein 3D for Wolfenstein- I wasn't through this- Wolfenstein by itself was very much seemed like a maze. You know we're just in, like in a blue building. You just go in, go to a door, turn left, turn right, turn left and so on, and it literally was just amazed in so many ways. You know it's basically like FPS is from back. Then. Yeah, I mean, I don't. I do remember playing something, that was like a maze and it was 3D and you would go, like you'd get into. You know you go up but you go down, you know things like that and you know that that's really fun, like I think, if a portal of culture comes to mind, sometimes in terms of like you know what can be like maze like, but also be three-dimensional. But I think it's very much doable because you know, if you use ChatGPT for like, generating code Snippets, for example, you can actually tell it: you know, generate me a 3D scene that needs to be able to represent rooms and things like that. The challenge, of course, is that you need a whole lot more. You need a lot of scaffolding to be able to make this work, and you might get an isolated snippet of something and then you're trying to figure out: okay, now how do I make the work? When I'm looking up, something else happens. That snippet might not be directly related to what you had earlier. The variable needs to be different, or the it might have a different, you know, idea of like what X, Y and Z might look like, and there's a little bit of translation that needs to be done as well. So I think it's going to be probably, you know, a short while away, where we can actually just be like: tell me, get generated maze for me that does all these cool things. But I think the technology exists out there. You just need someone to kind of put it together between Unity, between ChatGPT and then maybe visual to create in any tool of your choice. I think it's doable. 45:44 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2744s) Yeah, I'm excited to look into it more and to see what's possible. Like you said, it's changing so quickly that by the time I look into something, something else will happen. But it'll be very inspiring to see what's possible. I definitely think with WebGL getting a lot more investment and interest, and WebAssembly getting a lot more investment and interest from various parties around the world, it's very likely that we can eventually see these things working in a really performant way, just like what we might once have hoped to do with Shockwave or Flash. Yeah, yeah, chocolate, because I think of Hardware, accelerated or Flash, I think wasn't fully, hmm. 46:19 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2779s) So that's going to be a lot of fun. Well, Kevin, this has been great chatting with you on all these various topics, and I'm looking forward to your future talk on maze generation. At some point I want to share links to some of the mazes you create as well, because it's a fun topic to share with everybody. 46:38 - Kevin Maes (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2798s) Yeah, as I develop things further, I'd be happy to share things out. And Kirupa, thanks so much for having me. It's been a pleasure talking to you. 46:45 - Kirupa (https://www.youtube.com/watch?v=Ojty3vBZzB0&t=2805s) Great. I'll talk in a bit, okay? Browse all Interviews with Creative People: https://www.kirupa.com/podcast/index.htm