 Herzlich willkommen zum letzten Talk heute schon an Tag 1 im Hextestream. Dieser Talk wird von Vinry und BleabTrack gehalten, und zwar, dass es auf der Operation MeinPak bereits zum fünften Mal in dieser Formation. Hier ist besonders, dass das Q&A zum Talk leichtzeitig stattfindet in unserem Raum, der gerade eingewendet ist, also auf events.txt.org.slashasemanderstich.ada, aber das Q&A startet erst in ein paar Minuten. Der nächste Talk ist auf Englisch, da hat es gleich nochmal für unsere Englischen Zuhörer. Willkommen zurück zu der Hexen-Channel, und das ist der letzte Talk für heute, Operation MeinPak, Vol. 5, von Vinry und BleabTrack. Der Q&A zu dieser Session wird bei der gleichen Zeit als der Talk, so du kannst die Talk sehen und Fragen schon in unserem Big Blue Button. Der Link zu dem Big Blue Button ist hier unten, und du hast auch ein QR-Code, in dem du kannst folgen und auf den Link gehen kannst. Es ist events.txt.org.slashasemanderstich.ada.html und die Session wird starten in ein paar Minuten. Natürlich kannst du auch Fragen auf Twitter und Basterdon auf den usualen Hexen-Channels und jetzt Spaß mit dem Talk. Wir sind zurück. Wir sind BleabTrack und Blindry und wir sind super exzited, um einen neuen Talk zu geben von unseren Serien-Operation MeinPak, in dem wir uns ein bisschen nirgendschnipen wollen. Wir zeigen dir viele verschiedene Dinge aus Computer-Science, Mathematics, Art-Kultur, alles, was kommt zu uns, und das ist auf unserer Interesse-Liste, die wir über das letzte Jahr übergelegt haben. Und das wird, ja, ich weiß nicht, vielleicht 40 Minuten bis eine Stunde, vielleicht, und nachdem wir die Chance haben, ein bisschen Q&A zu machen. Und das ist ein Rekord, also kannst du auch das Link, das Big Blue Button, dass du dich irgendwo in der Schedule finden kannst, und wir werden da auch live in einem Rekordplatz sein. Und du kannst auch Fragen fragen, da, wenn du willst. Und ich würde sagen, dass wir jetzt starten, oder? Mhm. All right. Das erste Thema, das wir für dich bereit haben, ist über Fantasie-Konsulte, die Konsulte, die ein bisschen Retrocharme haben, sie haben eine hohe Resolution und ein paar seriöse Hardware-Restrictionen, aber sie sind nicht eigentlich in Hardware implementiert. Es gibt nur ein Stück Software, das fühlt sich wie ein Retro-Konsulte. Und eine Fantasie-Konsulte, die ich wirklich mag, ist die Tick 80. Wenn du es aufbaut, sieht es so aus, es wird hier mit einer kleinen Color Message und eine Command-Line, und du kannst da Dinge machen, wie die Sitzung und die Spiele, und du kannst es schon sehen, dass wir in terms of resolutions quite limited, the font is quite pixel-y. And if we type help spec, we can get the specification of this Fantasie-Konsult. It has like this resolution, it has a limited amount of space for storing graphics. It has four channel sound. And this is for me a really nice playground to make games in, because if you have this limitation, it sometimes makes it easier to come up with ideas, because you cannot do everything and you have to work instead of these restrictions. And Tick 80 is nice, because it has some built-in tools for making games. If you press escape, you can get to some of these editors, like the code editor, where you can program in scripting languages like Lua or Ruby or JavaScript. You have a built-in sprite editor, so you can make little pixel graphics. You can also see the default 16-color palette down there. You have a built-in map editor. You can make sound effects, like setting the waveform in this area here and then saying that the volume should decrease over time, and then you can play on the keyboard and make some jumping sounds. And especially you can combine these sounds in the music editor by clicking on these buttons to have some notes and then it will play top-down. And yeah, I think this is neat that this is also integrated in Tick 80, so you don't have to leave this environment and go somewhere else to do some external tools to make the assets, but you can just stay in this fantasy world and work inside of its constraints. If you want to dive a little bit deeper, like closer to the hardware, the virtual hardware of this console, you can look at the RAM layout. Similar like old hardware, things like Commodore 64. It's very well-defined where things go in the game. So, you exactly know when the game loads where the sprites are stored, for example. You have access to the video RAM, so you can directly put some information there to put things on screen if you want. That's like a bit of a trick sometimes. And what's really fun is to just load the game and then add a little bit of code that fills all of this memory with random bits and then your game kind of glitches over time. And it's really nice. In the beginning of this month, I took a little challenge to make 50 little programs in Tick 80. Let's see if we can play this. Yeah, it's like a little fireworks animation for the last program, because I was so exhausted and happy that I made it too. And these showcase some of the things you can do with Tick 80. If you're interested in checking that out, you can find the link here. And if you want to learn more about Tick 80, you can go to the website. It has some documentation. Yeah, I really recommend checking it out. At this point, a shout out to another fantasy console, which is to my knowledge, the console that coined the term. Fantasy console. It's called Pico 8. And it's even more constrained. So, like, you can see the specs here. It has a display of 128 by 128 pixels. And it's also really cute and fun, but in comparison to Tick 80, this is not open source, so you cannot do pull requests for it. So, yeah. Yeah. Over to you, Gina. Yeah, thanks. And oh man, I liked your Twitter thread with your 50 little coding experiments so much. Yeah, I was enjoying it so much, watching this over this whole weekend, grow piece by piece. And everything, every new thing you tried out was so fun. Yeah, like everyone checked us right out. It's so cool. All right. I think, the thing I'd like to talk about is differential growth. So I do a lot of generative art stuff. Now I can do it. Now I can say not only my free time, but now also as a freelance person. Yeah. And this year I had some spare time where I wanted to try out some very typical or very well-known generative art algorithms that for some reason I never touched because I thought they were too complex, too funky for me, or maybe not fitting my knowledge and two of them I'd like to show you today. And the first one is differential growth. And you can find differential growth structures in nature a lot. For example, in certain types of, especially in plants, in certain types of flowers, like in sea and then, how do you say anemone? Anemone? Anemone? I don't know. Like where the clownfishes live, everything is fine. And these structures usually emerge from certain growing patterns or growing constraints. And this is a very nice collage. I took from nervous systems. Please check out their work and website. They do great stuff and I will also show you a video from them afterwards. And this is where you can find it in nature. So to code this usually it's a rather complex process. So you can find it in nature. So to code this usually, it's a rather complex system that consists of several steps. So you can imagine, like the structure or like that wavy structure consists of several points that are somehow connected through straight lines or through best year curves, for example. And each of these points, they are in some way attracted to each other. They are also, they also, you need to do some sort of alignment. So if every point moves in a certain direction around point X, this point has to align to the movement of the other points. And also you have a sort of repulsion. So you don't want to get the, you don't want to let the points grow too narrow. So these three, like attraction repulsion, yeah, constraints need to work together in a very, yeah, certain nice specific way that this growth pattern emerges. And the last thing you usually do is a sort of subdivision. So when two points get too far away from each other, you will insert a new node and you point there. And then on this point, you, yeah, you put the same rule set. But I found a very nice write down from Casper Ravel and sadly it's not online anymore. I'm not sure if you will put it online. Again, if you for some reason watch this talk, please put your write up, write up again online. And I think you can maybe find it in the Google cache or wayback machine or something. It is amazing. And he has a very reduced version of differential growth, which only uses two things. The subdivision basically stays the same. So with two points, yeah, travel away too far, you will insert a new point. And then all the other rules, he condenses down to the repulsion part. So when two points will, like, or every point will repulse other points, but in an exponential way. And this is very, this is a very, very clever way to do it. Because now you have, because of the exponential way he describes the repulsion only is constrained to a rather fixed, sort of fixed area. And in an, yeah, in an indirect way, you have the attraction still going through that exponential function. That's quite nifty. And when you code this, it looks something like this. I put this into like few lines of paper.js code. And it looks very interesting if you let that grow. So I started like with five points. And now we can see it's grow in the beginning. It looks like it's growing a lot. And then it sort of gets lower, because it, yeah, like it will never find a stable, it will never be a stable system. It will always grow in some sort, but it's getting a lot slower. But it's very fascinating to look at. And that's the video I wanted to show you. It's also from nervous systems. And they apply basically the same rules to a 3D system. And yeah, it's so exciting to see. They will also show a lot of different versions with different parameters or different constraints. To me, you can hear the silence. It's mesmerizing too much. And I think it's also, yeah, it's such a nice way to have a very organic structure. And the thing you just saw is also a fun thing to do for 3D printing objects. In 3D space. And for every iteration, you give it a new layer in 3D space. And this also emerges very interesting and lets emerge very interesting 3D sculptures to print. Very fun. So, yeah, that's the video. Yeah, please check out nervous systems. They are doing amazing work. They make great write-ups of the stuff they do. And they, I think they use it often to sell like a jewelry or they 3D print it's really cool to watch. All right. Let's go to the next topic. I think they even do 3D printed clothing. Yeah, they do. That's a whole different game. That's exciting. Yeah, I could talk about that. One thing maybe on that, they have a cool video where they 3D printed a dress. And the dress was too big to 3D printed so a single piece late flat. So they made or computed the dress in a way that it fits. It's folded and fits in a little box. And then they take the dress out of the printer and like shake it up and then this cool dress falls out from the hands. Yeah, so cool. Yeah, search for that video. It's really amazing. You mentioned that the 2D version of what you just showed which kind of plays into our next topic which is size coding which is kind of the art of making interesting creative stuff happen in little code. You might have heard of the demo scene which is this subculture of computer artists I would say who really like to create programs that make some nice graphics and music a few minutes of music video basically but created by a program. And sometimes people from the demo scene meet and places called demo parties where they basically show off and show stuff to each other and also have competitions around these things. And one competition format is restriction to have a program that is not larger than 4KB which is like basically 15 Tweets of code and then these programs can do really amazing things at this point. I have an example from 2 years ago. It's a demo called Eisen Erz by LG and Virgil and like it starts with a slow fade in. You have some fog and fires and there's this river of lava flowing down there and oh, we have this structure and some chains and this logo on the wall and walks the sides and you float through this by the camera and oh, you also have a music track which sounds really nice and yeah, a lot of this is done in 4KB and this is really black magic for me. You can see this goes for two and a half minutes. Yeah It's really, really neat. There are a lot of tricks to squeeze stuff into this size. Some automated tools that help with this but also just some, it's a matter of technique quite. You cannot store any of this geometry in the program. You have to generate it on the fly as the program runs. If you find this as fascinating as me, definitely check out the demo scene. Okay Let's go down a bit further to one tweet. I found a few weeks ago a really neat game jam where the task is to code a game where the source code fits into 280 bytes. It's called the tweet-tweet jam. It has been repeated a few times over the years. You can also take a look at these submissions and for me this is a really entertaining format because 280 characters of code basically you cannot do a lot. You have to really think about what you want to convey and what you want to happen on screen. And then people take this challenge and come up with programs that are basically a Tetris Implementation or a little grid-based puzzle game. And I think that's pretty amazing. This is also a format I think where the fantasy consoles from the last section really shine. For example, I made a tick80 program that looks like this. It fits in a tweet. And because this is Lua, you can use some tricks to omit line breaks if you don't need them. The Lua parser works in a way where it knows that this year cannot be a variable and cannot start with numbers. So it knows a new command must start at this position. And you can do tricks like setting aliases like this Z here that is basically an alias for this circle function now and we can call it a bunch of times. And if you run this in tick80 you get this animation. Let's see if I can maybe play this. Have these little colored balls and they are very happy and look at your mousecars and jump excitedly as you stroke them. It was really fun to make. Even further down and back to the demo scene there's a popular format of 256 bytes and people in the demo scene seem really to like MS-DOS executables for this format because there I think it's really easy to poke a graphical environment like set a graphics mode and then start pushing some pixels on the screen. Here's a demo in that size from last year by Helmut and it just shows you like a sequence of I think seven or eight different animations which start to blend into each other. You have this geometric patterns you have 3D scenes like this one here some fractals we fly through a tunnel and for me this is again really amazing. Helmut did a really nice write up on how they came up with this and how this works. So check this out. This also has a music track. I think on DOS you somehow can play MIDI notes like they use to to make a little with Michael music in the background. This is a demo party specific to like size coding on the small formats called love byte. The next one is in February of next year. So check it out if you're interested in this. If we go down to half a tweet there's a site called dritter where the talent is to code like really small JavaScript programs like this one down here and this is neat because it gives you some predefined variables like X is an HTML canvas context and then you can use it to draw geometric things. People do amazing stuff there you have like some social media features like liking and taking something else and remixing it. And finally if we go to 32 bytes there's a website called tixi.land it works a bit similarly you have this canvas of circles and the way it works is that you have a JavaScript function that is evaluated for each of these circles and you have as an input t is the time in seconds I think I is the index of the circle and X and Y are its coordinate so for each circle you evaluate this if it outputs a one you have a really big white circle and if you like make it smaller the circle shrinks down to zero and if you have one you get a red circle and using this and now try to make patterns if you take the X coordinate and divide it by 16 because it's the number of circles in a line you get this gradient and then you can start doing things like doing something with the time so it shifts or maybe using some of the other components to make little animation tixi.land if you visit that site it has a lot of examples and yeah for me it's also a really fun format to play with size counting if you find any formats that are even less than 32 bytes please let me know I would be really interested and see what you can do with that the next little thing I like to show you it's a really quick thing it's also yeah more of cool tool that I found and it's about I swapped it already away about neural cellular automata it's a very interesting concept that I stumbled upon I think on twitter last year or this year and yeah it's basically it's a neural net that is trained on certain images but not like as you can imagine it with again but more in a way that each pixel represents a cell and each cells or like connected cells talk to each other and do some information swapping and these cells try to recreate the image but the fun part is that each cell doesn't know a lot about the whole image but more about its surroundings and you can do a lot of fun stuff with that and the authors made this cool yeah let's say generator of some sort so you can choose some of these textures to start with and the cells will then try to recreate this image and you can see it's not like a one to one recreation but it's more like it grasps the sort of the concept of the texture and recreates that so let's try that out and you can see that depending on the texture there's a lot of shifting in time so some of these versions don't really get into a stable final image but instead they will start or they will keep floating around and keep moving and it's super fun to watch and you can play around with that a lot let's try another one maybe this one is also very cool to look looks a bit like the leaf veneation pattern thing that I showed some years ago and this is one of the examples where you can see that the concept of the initial image this cobweb down here is not really caught so it loses like this cobweb structure and only has the yeah the more local information represented in here yeah but let's fiddle a bit more with that one, you can also change the way the cells are connected like currently the selection I have a straight line collection but you can also put this into like this circle arrangement and then you can see that the structure changes towards the middle and you can also have a version where you have more of these wheels and this I think there was a nice there was a nice pattern we could even see this better I think it was this one yeah, that's a nice one where you can see like the centers where the where the cells move towards to or are connected from and you can also like play around with the speed a bit yeah, the iterations are going faster or slower and you can also do fun things with the rotation so let's go back to this single center one and then you can introduce some sort of rotation and then you get very funky swirls super cool to grow and these are the segment of textures and inception I am when I'm right is a different way to introduce the picture so inception basically uses another neural net to introduce the picture to the neural net to the cellular neural net yeah, so it's really fun to play with that the grid type I will show you a different example and if you want to know more on how this works this is basically just a playable version of the paper and very luckily they put just a whole paper below that so you can like very deep type into the whole concept of this nice generator a lot of cool examples also and a lot of fun so I have to quickly jump back because I didn't put it in a nice way in our slides but also there's this the second one here basically the same thing with grid cells so you don't have regular grid pixels but you have like hex cells so they are connected in a hexagonal structure and you can also see the hexagons have different sizes so it's like not a uniform world it's more like it's shifting to smaller hexagons on one side now this is very interactive you can now introduce noise into this world you can also see that it wraps so when I move my mouse here and insert the noise you can see that the same noise bubble will emerge in different spots and when you introduce noise and remove your mouse you will see the cells reconstruct the structure so it's very fun to just doodle in and see what new shapes emerge and if you get tired of that pattern just do a swipe left or right and it will swap over to a different template pattern that's fun to draw and I haven't I don't think I flip through all of the patterns they are in there but it's very fun and you can, if you want to try that out yourself because the links are not that very nice rememberable maybe you can find it on our slides we will give you a link to our slides at the end of the talk and then you can go ahead and paint your own fun neural cellular doodles so mesmerizing haven't said that in a long time but I would really like to have this as a screen saver or something man, yeah that would be good not sure if I would go back to work sit in front of this screen saver and say yeah, that's fine, I'm done next up I want to talk about the mirror paradox and like the three phases I went through when I looked into this topic the mirror paradox is usually stated as why do mirrors swap left and right but not up and down and like intuitively this seems like a strange situation but like back when I first heard this paradox this was like phase one for me I heard it resolved in the following mirrors don't really swap left and right they don't really care about any axis in particular they swap front and back let's look at an example we have this little robot in front of a mirror and if we think about this front and back swapping it's true because each point on its body is just opposite in the reflection the head is still up just opposite on the other side of this mirror plane basically if you look at the hand it's also just on the other side opposite each point works like that so for me it seemed pretty clear that this was a nice resolution of this paradox and I didn't think about it much much more but then I got thinking if this robot would look at a photograph of itself and then compare that with the image it sees in the mirror there is something weird going on there because the head in the photograph is up and in the mirror it's up but the raised hand in the photograph it always has that hand raised and the photograph it would be on the right side and looking in the mirror so there is some difference in axis there and this is for me phase 2 the confusion phase before I did some research and tried to find what's the trick behind that what's going on why does this mirror work that way in reality it's not really about the mirror it's about the way the robot we as people turn towards mirrors if we imagine looking at this robot from the front just as observers we would see the hand on the right side raised and then the thing that happens is that the robot turns towards the mirror on its vertical axis on the up down axis and now these sides are flipped like both looking at the reflection in the mirror and then the other side looks at this cat like this version A of it and it sees okay this hand on the one side is raised but then like the cat turns towards the mirror on the up down axis and now these sides are flipped like both looking at the reflection in the mirror and looking at the cat that has just turned the raised paw is now on the other side while the head is still up and the feet are still down and that's basically because of the way like our physics work we have gravity going down and because of that it's very easy for us to turn on that axis so this is a special axis for us and that's usually the way we would turn towards something like a mirror and turn away from an observer if this was a very artistic cat maybe for example and it would do like from this position do a backflip and then look in the mirror upside down it would be different in that case like the paw would stay on that side if it would flip on its head but now the up and down things would be swapped in the flipped version of the cat the head would now be at the floor yeah, just wanted to share these three phases with you I really hope that I will get to a fourth confusion phase and I can think about this some more yeah, flow fields are the second very well known thing in the generative art scene that I never touched before for some reason and to be honest they are very fun to play with and they let emerge I mean the name already gives away a bit how it works so you have like very smooth flowing lines and they are generated from a field actually from a vector field so you have like a grid of vectors at point in a certain direction and you start you can see my mouse follow along basically these vectors and if you connect them you will get very nice lines very smooth, curvy movements so it is actually quite simple and the easiest way for example to fill these vector fields is with Perlin noise which already is a very nice organic noise or if you don't want to use Perlin there is also Simplex noise also very similar and then you can just grab and decide on a rotation of the vector depending on the noise so that is a very easy quick thing to fill in such vector fields and so this is my very first test that I did with that so it is a Simplex noise vector field and if you just start on a random position and draw as long as you can until you reach the end of the image that is the pattern that emerges here but one thing to note maybe is that it looks like I am drawing basically from the inside to the outside the lines but that is from the outside to the inside but that is actually not true so all I am doing is I take random points in the image and they basically flow out and it is fun to see for example on the left side the stream forms and the lines start to grow together and find that same path and I think that is very nice to do maybe procedural generation if you want to do something like riverbeds where different streams from mountains will come together in the same riverbed and then start to flow together and what you can also do is take this algorithm but also not draw in the direction the vectors are pointing in the different direction 180 degrees different direction so you get like longer connected lines that don't stop in the way they do here this is something that looks like that and this is even more like riverbeddy looking I'd say and these are only the forms you can easily achieve with a Perlin or Simplex noise but of course you can get crazy on how you fill these vector fields or how you create these vector fields and I will show you some examples of that that was another very quick experiment and if you say you don't start on random points on your canvas and instead take a light as starting points you can for example get these shapes and they look a bit more fancy and distinguished maybe and it's also fun to experiment with different ways to start and Tyler Hopps does a lot of work with vector fields and he has a very great write up and comparison website where he tries different parameters on different versions and documents how the outcomes look like and for example here the only difference is that he changes the length of the strokes that he draws so on the left side is small has a bit of a texture quality a bit of short fur looking and the right side is already very wavy looks a bit like maybe more like long hair or like could also be like a grass bed or something very interesting so this is just changed the line length basically and there is also a little comparison on where you start with your strokes so the things that I did all started on random points but on a grid and then you get these very synthetic looking images or I'm not exactly sure how he did the circle packing actually but yeah that's maybe a thing to look up at his write up but yeah go crazy and experiment with starting points has also seen very nice examples where people like take certain shapes where they start off and you can still see the shapes where it comes from so he started a bit also very cool and then this is my very big favorite from Hello Hops where he does some artificial distortion on the noise and then you get these like crooked looking shapes that are a bit between I don't know for me it looks a bit like if you have tree roots that grow on pavewalks for example and they have to like the form that emerges here it's a weird mixture from organic shapes and very artificial edgey shapes very fun to do that and the last slide here is where I try to implement it in a 3D way so the line like the wave lines you can see are also flow fields but in a 3D space and sorry it's so choppy because my laptop was a bit too weak in a smooth way but also in the library I'm using here is Blurry, that's a very nice JavaScript add on for 3.js that does a nice rendering which gives you the look of like macro photography where we have a lot of nice blurred background, it's a lot of fun to use and 3D flow fields can also be a lot of fun so go for it, experiment with it because it's like literally two lines of code to make cool wavy stuff and then you can have days of fun experimenting with that I know that usually the things you showed were properly done on purpose people had some idea in mind and then maybe tried to run a bit but then more or less the programs did what they wanted to I guess in this section I went to go into some pieces of art where there was some unexpected accidental glitch basically many years ago when I was in university I was working with a friend on an assignment in a computer graphics course and we had this assignment of drawing a 3D bunny on the screen there's this standard model of Stanford bunny just defines its vertices and how they are connected to a format mesh and we were practicing using OpenGL to render that to the screen and we did something wrong I have no idea what we connected the vertices in some weird way and we got this image and you can kind of still see the shape of the bunny so its ears are kind of up here its face but its all covered up in this bizarre looking colored shapes and its totally not what we wanted to do but I was looking pretty nice took a screenshot later called it the Stanford iceberg and didn't really think much of it but then later I found that this happened so often its worth it to start collecting those accidental art pieces and I wanted to show you some of those I set up a website called the Glitch Gallery which exhibit these art pieces and a little description on what went wrong basically for example this is a piece that happened to Laura when she was implementing C3NAF maybe you remember back then when we were doing in-person events there was the software used to draw maps of the event venue and there was some rendering error apparently and it got this really nice abstract art piece with cool looking gradients I thought that was cool this is I think it was a photograph of a galaxy and I tried to filter it to blur it out and the filtering algorithm had some weird bark that caused a lot of overflowing integers I imagine so now instead of a filtered galaxy photo we have a galaxy smoothie and this one here was submitted to the Glitch Gallery by Manuela when she was working in a game engine and what happened here is that she accidentally dragged a material that was supposed to be used for rendering text to a tree object to the leaves and then you have this this letter tree she titled this a poem as lovely and I think it's really nice and yeah so now I think this happened to me as well I have this screenshot of this old bug that happened when I was trying to do something completely different you can go to Glitch Gallery.org and submit it if you want a little description of what happened think of a very artsy title or something and I would be very happy to exhibit it there yeah let's say with art I want to tell a little story that happened to me last year and it ended in a very nice generator that's the too long didn't read from anger to art so I mentioned it before but the starting of 2021 I began to freelance as a creative technologist and well you all know corona happened and actually sucks quite a lot so I want to do museum exhibitions and stuff and that's the reason why all around Germany some sort of helping funds popped up and I am situated in the south of Germany in Bavaria so for me it was interesting to see the Bavarian help fund for artists and they actually had one that applied to me for young artists and I was very happy when they announced it in October 2020 that they will provide a help fund with actually quite a lot of money 5.000€ for each applicant and there were a lot of free spots to apply to and they said in the very beginning of 2021 in January you can apply, you will get your money also fine and of course nothing happened in January so I waited 3 months for a little art piece and also a little video on that so it says in October 2020 this art fund was put out nothing was paid yet you can't even apply now and this is why I did a little artsy project it's quite a complex image but the details will explain everything thanks for nothing so as you can see I did a little generator that creates a lot of little angry fingers and it was very fun to go oh, I guess there's a broken video here which will, would have shown you the pen plotter plotting maybe not that interesting but here's a little animation and how the whole process works so it's a one line drawing so it's easier with the pen plotter to draw and then I can swap around some parameters so wiggle around the points that it's more organic and then I can also play with the busier handles to give different bendings and in the last step I throw in some very popping colors and angry edges to give it a bit more of a punky look maybe and yeah it was a very fun project I also printed a lot of stickers but also another thing happened in july so 9 months after they proposed the project and 6 months, half a year after it should have been given to people I got a phone call that I was selected from to be one of 10 young artists to get the help money in a ceremony and I was quite confused why do they do this weird ceremony to give out help money but ok, I don't know it's like maybe politics and they can do some PR stuff for their politics so I said yeah, I'd like to get the money I will come this is how I ended up standing besides the minister Bavarian minister for culture and arts Mr. Siebler receiving this nice diploma it stopped to be some sort of help money scholarship for some reason and as far as I know still today some people still have not heard back and still have no have not received help money and I am for some reason one of the lucky 10 people who were used for their PR campaign to get the money but I thought yeah, that's nothing that's fine with me there are some little scenes about the whole situation and about this project it's called Funky Fingers and inside it has one little generative sticker and it explains that it's a project that was created from anger and disappointment and if you have to wait 5 months for your help fund it's not a help fund it's a PR stunt and people should put the stickers so wear a mask that's what the scene basically says and well when we did the gathering to get this scholarship form we had to take a lot of photos and my first idea was to give it out to like the scenes to give them out to press but sadly because of corona I guess they did not invite any press so there was only the house press there and the last chance I saw to put this out publicly was to hold it in the photo when they did the official photo so now you can see a very angry tiny finger in the official photo that they did for this whole project oh well, but yeah the generator also has very strong opinions on certain topics and if there is an opinion this generator should reflect on you can also do a pull request and we can add a bit more text if you want to try that generator go to fact.blueprack.de it's open source, it's online you can use it for everything you want feel free and have fun the last topic we are going to cover today is about a programming language called APL APL is an acronym that stands for literally a programming language was designed in the 60s and it's it looks like mathematical notation, it's very close to that and it's notable because it allows you to write super concise short programs that seems to be a theme today, I don't know so APL has a list of operators it has some common ones like addition or comparisons APL works very well with multidimensional arrays so if you take an addition operator and put arrays on both sides you will get the component-wise additions on both sides and then there's also some really nice high level operators like the two dots here for example are and each operation or the slash here is a higher-order function that modifies another function so if you write plus slash the slash will modify the plus so now it no longer applies to both sides but it looks at the array on the right and adds all the elements so it's what other languages would call a reduce operation slash and now these are the characters in there for the operators back when the language started to get popular the company maintaining it solved actual keyboards containing those characters I love how futuristic and alien like these keys sound these keys look and by now all of them are also in unicode and most often you will have some software environments that have defined to type them I wanted to show you my three favorite operators of APL there's one called the domino which takes the matrix and inverts it that's nice there's the fire hydrant operator that takes the string and then executes it as APL commands and yeah my one type my single most favorite operator APL is this one that looks like a little confused face I love it so much but it's a commute function it's another higher order function and it modifies the function in front to swap its two operands around and sometimes that helps you to write in a more concise way back when I was in the recurrence center two years ago I looked into this language and started learning it a little bit and there is this standard programming exercise called fizzbuzz which is basically outputting the list from the numbers 1 to 100 but if the numbers are divisible by certain numbers you replace the numbers by the words fizz or buzz or both of them and this was my first attempt at doing an APL implementation this was really I don't know involved and and unnecessarily complex so the second try looks like this it uses the iota operator to create a list of the numbers from 1 to 100 once in each and then and then identifies this function and then like basically checks for divisibility of the number we are currently iterating through the divisibility of these these three numbers takes the first index where this was divisible and uses it as an index into this array which either selects one of the words we want to output or the number itself so yeah just to give you an impression on how APL programs can look like here some more complex one implementing game of life this cellular automaton bina you talked about that in operation mindfuck volume 2 if you're interested you can check it out there oh yeah right just like moving pattern and that's really like doing really interesting things and yeah this is how you can implement it in APL I have no idea how this works I didn't write this this is from an explanation video check it out in the slides if you want to try APL there's actually a website called tryapl.com where you can have an interactive interpreter of it and also some documentation and all the operators at the top if you want to type them by clicking on them and to have a really nice short introduction to APL at enthusiasticcon 2019 Phoebe did a talk on APL and there's like a 16 minute intro to like the most common features and operators and I think that's a really good like entrance to this whole web at all yeah that's all we have for today you can find the slides at this link and if you missed any of the previous operation Manfark volumes here's a list of which topics we covered when and where you can find the recordings for today thanks a lot for listening coming to this talk a lot of content we create a list under like open licenses if you want to support us in doing that we have patreon pages where you can throw coins at us if you want we are really grateful for the people who do and with that I would say enjoy the rest of RC3 and see you around bye