 So, this talk has a new subtitle, more interesting than what I meant to be doing, sort of a recurring theme. So, my name's Jess, Jess5199 is the part that's easy to Google, but it's hard to remember, so maybe write that down. Last year when I was here I told a story about turning images into sound. This talk story starts the other way, I was turning sound into images. The image on the left is a sample of my own voice, the one on the right is supposed to be an ascending scale of pure tones, but you can see it's kind of glitchy. And those glitches actually look kind of cool, they have this complicated filigree pattern to them and I had no idea what that was. It was code I wrote, I made that mess and I was like, wow, that's really pretty, I wish I had some control over that, but I don't, and so I gave up and just like, that was it. And that was six years ago, and so I spent five years having no idea what that was, and other things happened, that's Isaac. And then about a year ago I was just browsing the internet and someone was like, hey, have you ever seen cool pictures that were made by math and this random guy was like, yeah, I was playing a graphing calculator and I came up with all these patterns, I don't know what they are, and this one, I was like, that looks a lot like the glitch on my sound file, what's going on here? And someone else was like, oh, this one with circles, I've seen that one before, that was on the cover of a magazine in the USSR in the 80s. Okay, so what's going on, someone else was like, oh, there's this paper you should read, this CS professor had this happen and sort of explain what happened to him. So what Craig was doing was he was trying to do a Voronoi diagram, which was like a classic CS visualization thing, and he passed his program some bad data and instead of making something like this, it produced this image, and he goes, what just happened? Because he's a good academic, he made a paper with a lot of citations and a lot of prior art, and so I'm going to delve into one of those rather than delve into his explanation because this older one is simpler. So Brian Hayes, 1986, I was five, he's just read a paper by a NASA scientist about how to draw topographic maps using a plotter. A plotter is a kind of printer, it's like a big robot arm with a pin, sorry, Brian didn't have a robot arm with a pin, he just had a dot matrix printer. So he said, I want to make a topographic map, too. How can I make an algorithm that will work on my dot matrix printer? So he's like visualizing what is a topographic map actually like, and he's imagining it filling with, space filling with water, it calls it the bathtub algorithm. And it's basically even odd, even odd, black, white, black, white. And he also doesn't have any of NASA's topographic data either. So he just picks a pure math function, maybe this is supposed to be modeling this bathtub they've just been imagining. And so he's picturing he's going to get a result like this, you know, just a curved bowl and this is a topography of it. And so he writes up some code and he, you know, has to wait, he doesn't even have a graphical monitor, he's just got the dot matrix printer because it's 86. And so he had to print any weights. And pretty immediately it's obvious that something has gone wrong. What's going on? And he finds he can tweak the formula a little bit and get all these different patterns out of it that are all interesting and all wrong. And he writes a magazine article about it, October of 86, could not compete in visual interest of what I was trying to do. So I'm going to try to reproduce his explanation. It's all about the Nyquist limit. The Nyquist limit is about digitization of signals. If your sample rate is fast enough compared to the signal you're trying to do, you'll get a good digital replication of it. But if your wave is too fast relative to your sampling, you start getting these weird resonances rather than your original thing. And so it gets sort of weirder and weirder and less and less like what you were trying to do. It gets really great in one second. This is hypnotic. I could watch this for the whole 10 minutes. So I'm going to have to stop myself. Okay. So similarly if you're the bathtub algorithm produces something like a square wave on, off, on, off, on, off. And that's great if your pixels are bigger than the squares you're producing. But as it gets smaller, they sort of get out of sync in this weird way and get less and less directly related to what your algorithm was doing. Boom. Okay. So you take it back to two dimensions. If you're zoomed in enough, you get good results. But as you zoom out, you start to get artifacts. They're called aliasing artifacts. They're sort of glitchy, right? And as you zoom out more, they get more intense and weirder. And eventually they start to overwhelm the original image entirely. And then it gets kind of trippy. Okay. Okay. So you can do it in grayscale. It doesn't have to be black and white. This is just a sine wave. Now you're in a floating point space. It looks a little more organic. I'm going to use that to show you this space. Instead of parabola, it's a hyperbola, which people usually describe as a saddle-shaped. It makes these sparks. And the sparks form this grid of squares and machini things. And it looks a lot like the original glitch that I had in my sound wave visualizer for some reason. And this code is really simple. Like that JavaScript there produces this black and white version there. That's the whole thing. I like to do things in WebGL. So here's a WebGL program. Does it in grayscale? 186 characters. I thought that was pretty good. There's a site, Twitter, where people write very short JavaScript programs. This guy has a version of 140 characters because it's like the old Twitter limit. And his is animated. This guy, Don, has an idea that this is related somehow to this paper about relativistic conics. And that I actually have no idea what this is. But he uses the colors to map to these theorems about something to do with triangles. So when I think about color, I just think about pure aesthetics. So someone else was like, also in 1986, was like, oh, you just do mod in and then you assign it to a color palette of in colors. You can get patterns like that. That got published in Scientific American. Wallpaper for the mind. So I was thinking, well, if you're in floating point space, you can just use any arbitrary gradient. This is one I picked because I thought it was pretty. Sort of blue on one side and red on the other. But as you get close to one, it gets to be white. And the weird thing about this one is that you see colors in here that aren't represented in the pixels. There's an optical illusion going on. So if you see green or purple or orange, which I always see when I look at that, there are no pixels of those colors. This is producing something that like fools your mind into thinking that there are other colors. So now you have an automated optical illusion generator. And I've been using these really simple patterns. But anything that sort of goes high frequency produces a-lancing artifacts. So I came up with a pattern that I thought might look cool. This was just something I was playing around in a visualizer for a while and I came up with it. So you get these donut shapes that get more and more packed in the further away you get from the center. And I thought maybe if you zoom out, they would look cool. They do. And at different zoom levels, you start getting more elaborate artifacts. And like if you're on a retina monitor, you can hold this like really close to your face and just go, it never stops. So this is something I could just stare at for hours and actually I have. So yeah, that's my talk.