Waiting To Be Signed · interviews on generative art, on-chain
← Index
Interview // MAY 2022

Piter Pasma

Title: Playing Code Golf
Role: Generative artist
Platform: fx(hash)
Duration: 1h 11m
Hosts: Will & Trinity
Listen on Spotify Guest on X Download MP3
#008 · Playing Code Golf
Self-hosted audio // press play
1h 11m
MP3 ↓

Spot an error? Highlight the words or lines you want to fix — an “edit” button appears, and the panel opens with your selection ready to edit.

Will: Hello and welcome again, everyone, to another episode of Waiting to Be Signed, a special interview episode.

Piter Pasma: I'm Will.

Will: I'm joined by Trinity as always, and with us today is Piter Pasma, who is -- how would you call him? Maybe the master of code, or if it were golf, he'd be the world's greatest coder in terms of conciseness and ability to optimize.

Trinity: But how would his golfing be?

Will: Yeah. How is your golfing, Piter?

Piter Pasma: Oh boy. Code golfing is good, but actual golfing I'm probably terrible at.

Will: That's good. I think that's a sign that you're a grounded person, probably not being too good at golf. Piter, thank you so much for taking the time to join us. It's really exciting to have you on the show. I find it hard to imagine there are people listening who don't know who you are or have some familiarity with you, but for the sake of completeness, maybe you can give everyone a quick introduction to yourself, your history in art and code, your path to finding NFTs, and a synopsis of your career the past couple of years?

Piter Pasma: So I am Piter Pasma, generative artist from the Netherlands. I started coding when I was nine, and it was already creative, but the real creative graphics started probably in the demo scene in 1997. I wrote very tiny four-kilobyte demos there -- 4,096 bytes of assembly code -- and won a few prizes with that. I always kept a connection to creative coding over the years, always working to make the machine surprise me in some way. Otherwise, I've been drawing all my life, mostly cartoons, and I was brought up with a lot of love for art by my father, who also taught me to draw. I think I got a lot of my creativity from practicing that.

At some point, I started posting my work to Instagram and got in touch with the wider generative art community that I didn't really know was out there. I knew a few people by name only, and a lot of those names are now my friends, which is really cool. I organized Genuary in '21 and '22, and probably '23 as well if all goes right. Through that I made contact with a lot of people from the generative art world. A few months after Genuary, NFTs started happening. I'd already heard a little about NFTs -- I even heard about the Rare Pepes when they were made, but I didn't really understand them at the time. I believe it was in December 2020 when Ringers was released. Is that about correct?

Trinity: We'll say yes-ish.

Will: We can fact-check that.

Piter Pasma: I think so. I was with my family, and I remember showing it to them and telling them, this is a special thing.

Trinity: Did you mint any?

Piter Pasma: No, no, no, not at all. I didn't understand NFTs. Dimitri, a friend of mine, showed me the project and explained it to me. The generative part I understood, or at least somewhat -- his algorithms are always very interesting and curious, or maybe simpler than they look, as he often says. But the NFT part was new to me, and it took a bit of getting used to.

There was a really special realization, though. When you make a generative program, usually -- at least mine were -- of the form where you can hit refresh a bunch of times and get a new image every time. It varies from artist to artist, but I usually aim for about a 70% good-image ratio, because I couldn't be bothered to sort through tens or hundreds of outputs to find the gems. One thing I noticed when showing people such programs was that even though there was infinite variation, after five minutes they'd walk away with a general impression of having seen fifty images, thinking, "this is sort of the thing this program does."

Then I first heard of Ringers, and it offered a completely new way of looking at it: every output of the program was owned by someone, and they couldn't just refresh and get a new one, because they had that one. They would look at it and think, maybe that looks like a goose or a fish or something, and they'd experience every output individually instead of getting the impression of this whole mishmash of everything.

Will: Not to derail too much, but it's interesting you bring that up, because I know you've been on fx(hash) for a while -- some of your drops were back in 2021, when it was still very early, when the team there decided to add the ability to cycle through preview images while something was still waiting to be opened for mint. That was very controversial at the time -- and at first it was forced, not optional. That was controversial to artists who said, no, I only want the ones that get minted to be the canonical outputs -- that is what the project is, and I don't want people to be able to just sit there and spin them and keep exploring.

Trinity: Yeah.

Will: And similarly, there have been some generative art sites that actually let you keep flipping until you find the one you want and then mint that way -- so you get to self-curate your own output. Those have had varying success as well.

Trinity: It really kills the rarity thing, I've got to say.

Piter Pasma: Well, that was another thing -- rarity was something I had never thought of while making my art. As far as I know, the whole rarity idea, with some things being only a few percent of the output, comes from the crypto world. Sometimes you have to let go as an artist, I think. Some pieces work very well with rarities, and other times you don't want, or didn't want, rarities.

Trinity: In my mind, that's more a factor of there being a really big gap between people interested in crypto and people interested in art, with the generative art scene being the part of the Venn diagram where they come together. My experience is that people who are more into crypto are more into the financial world, the gaming world, the world of maximizing everything. So the idea of being able to chase and maximize certain characteristics is really appealing. Whereas when we see art created by people who are more from the art world, it's more like, no rarity, it is what it is, it's all subjective to your own taste.

Will: Mm-hmm.

Trinity: And that's it. So it's an interesting thing to bring up.

Piter Pasma: There's also another aspect, at least for the generative artist. What you say is correct, but I think there's a third, in-between mode. Sometimes when you're building a program, like I said, I want the machine to surprise me. I want there to be an emergence of properties, and sometimes those things can't be captured easily into features. I would have loved to have a feature like "the number of red pieces in a sculpture," but it would require so much calculation afterward just to figure out how many red pieces there are. I thought about doing it, but it would have meant crossing even more deadlines than I already was.

Often when I'm in a program and want to capture certain features, it's almost like you have to write a detector for the features afterward -- part of the fun was that it came out automatically. So it sometimes feels like you're taming your program a little, or even exposing some of the mystery that goes into it. But sometimes it works, and you can put generated titles on the pieces, which is pretty cool.

Will: That's what you did with Hypergiraffe, right -- generated titles. I fact-checked, by the way: Ringers was January 31st, 2021. So you were very close in your estimate.

Hypergiraffe — Piter Pasma

Piter Pasma: Ah, okay. Then I probably heard about it in December, while it was still a work in progress.

Trinity: Still didn't mint it. Oh my gosh -- it's okay, I'm just making fun. But I think what you're talking about with the features, and now that we're back on Ringers, it's interesting because, as you said, there are rarity things people see in it, whether it's the duck, the goose, the fox, or the frog. That's something projected by the viewer. Whereas maybe some of the generative art we see on fx(hash) is more like: I want 70% of these to look like a fox, 10% to look like a goose, and the rest to look like random stuff. So instead of going out and seeing what gets produced, you're trying to curate it upfront with intended results. It's interesting that you're looking at it the reverse way.

Will: Yeah.

Piter Pasma: Sometimes you get the idea that you have these features with four combinations, those with five, and the output is all the possible options times some rarity value, and that's it. I wanted something a bit more complex than that. It's not that I set out to make Skulptuur with that in mind exactly -- there were just two possible programs, and I never even really released the other one. It wasn't going to be quite as cool as Skulptuur turned out to be. So I made the right call.

Skulptuur — Piter Pasma

Trinity: Let's talk about that for a bit, because for anyone listening who only knows your fx(hash) work and hasn't looked at your work on Art Blocks -- could you give us some background on Skulptuur, how it was created and envisioned, and its trajectory from where it originally started?

Piter Pasma: It's quite a long story. In 2015, I already started experimenting with writing my own ray marcher, ray tracer kind of thing. It was inspired by an article written by Inigo Quilez, who is my hero, absolutely -- I look up to him tremendously. He's incredible with shaders, mathematics, and painting with light. I don't know if he has a painting background, but that's a real, great skill he has.

I'd seen the article and written a version of it in Processing, in Java, so it wasn't on the GPU -- it took about half an hour to render something quite low-resolution. I knew I had to do it in shaders, but that didn't really happen even after a couple of years, because at some point I got a plotter, and plotters only make lines. I actually made a lot of line-based art since getting the plotter. At some point I wanted to get back into 3D stuff again, but didn't know how to plot it -- I eventually worked out a way to make hatched 3D scenes from a ray-marching setup. I made those, I think, near the end of 2020 -- at least started them. A lot of hatched, line-based 3D scenes, made so you could plot them.

For some reason, I then got back into shaders again -- oh yeah, I know why: NFTs. You can't plot NFTs. Part of the reason I got the plotter in the first place is that I really like to do everything from the ground up, the hard way. So when it came to printing my art, I was wondering: what does the person with the big printing press actually add to the artwork? I wanted to do that for myself, the hard way, with a plotter. But then NFTs came along, and the digital image itself became the object you could sell. That changed my outlook -- I could make stuff with pixels again because it didn't need to be printed.

So I got into shaders again, because GLSL is really fun to write in, I think. Quickly from there, I started building a simple ray marcher, because I knew I could now do it at full speed, and the first results were pretty impressive. At some point I was talking to Aaron Penne about what I should release for Art Blocks. One option was something I'd been calling the "epihyperderpflardoids," which are like Spirograph-type figures. The other was a Monte Carlo path tracer kind of thing.

Trinity: What is that, for people who don't know?

Skulptuur — Piter Pasma

Piter Pasma: Oh, yeah.

Will: The simulation, right?

Piter Pasma: It simulates all the light rays—well, not all of them, but a lot of them—and averages them together. The Monte Carlo part refers to the randomness: if a light ray hits a diffuse surface, like a white wall, it bounces off in a random direction rather than the reflected direction it would take off a mirror or flat surface. Do that for many light rays per pixel and you get a really nice soft lighting effect. It's not even an "effect," really, since you're just doing the physics of what photons actually do.

Around the same time, I'd come up with an algorithm to procedurally generate shapes in 3D, which fascinated me because I'd worked in 2D for so long, and 3D just opens up different possibilities. One thing that grabbed me was that SDFs—the formulas I use to define shapes—are relatively good at finding the intersection of two shapes. If you have two spheres and put them together, the intersection is a lens shape in the middle. That's usually a hard operation to do in 3D, and it gives you unexpected results: you start with the two simplest objects, two balls, and immediately you're one step more complicated with this lens shape. I started experimenting with that.

The shapes in Skulptuur are based on that idea taken further. Imagine a donut that's hollow but has two shells—a double-shelled donut—and you intersect that with a double-shelled sphere. What does that even look like? I don't know, but the computer does. Those are the typical shapes you find in Skulptuur: grids of shapes intersected with each other.

Skulptuur — Piter Pasma

Will: So is that the secret to the brevity of the code for Skulptuur? Working from simple primitives in 3D, then using that kind of subtraction between a torus and a sphere, double-shelled, to form on the fly, with a little randomness, shapes that would be very complex to code individually?

Piter Pasma: There's a lot of secrets, and I actually plan to write about all of them—it's just going to take a while. One thing I already knew from the demo scene days, writing my 4-kilobyte demos in assembly code, is that you have to do everything yourself. There were no libraries; they wouldn't fit in 4 kilobytes. What I found is that if you drill down to the basics of how things really work, you can just program them out, and the code will already be pretty small—if you generate everything instead of using data, code is really small.

This is how I got into sound and music, actually. Part of that last 4-kilobyte demo—1,100 bytes of it—is a tiny software synthesizer I wrote myself that does a sawtooth with a resonant filter and distortion, making beepy sounds and drums, among other things. Only 1,100 bytes. So I already knew that if I squished the code together and kept hammering on it, I could get it down small. I actually wanted to get Skulptuur to 4 kilobytes for old times' sake, but at some point you get diminishing returns, and 6 kilobytes was already pretty good. It scared me at some point—it just fit on the screen, after I'd been working on it for months. That realization, that half a page was everything, was pretty funny.

Skulptuur — Piter Pasma

Will: Here's a question you may have been asked before: why make it smaller? I want to tie this to conversations we've had with other artists, like Amy and Ciphrd. I get the sense that for you, the code itself should be appreciated as art, and that's part of what drives you to optimize it—not just "look at what this code made" but "look at what I did with so few characters." What drives you to do those optimizations? A great recent example: that thing you posted on Twitter last week that people could paste into the Chrome browser to generate shapes on the fly.

Piter Pasma: Hypergiraffe is also really small, by the way. Part of the reason goes back to the demo scene, which started out as doing the impossible on a machine—there had to be a challenge. But desktop computers were already getting more and more powerful. People did ray tracing on a Commodore 64. It doesn't look great, but they did it, and that's impressive, because that machine doesn't even have a divide instruction.

My 4-kilobyte demos ran on Pentiums, which were much faster, so we applied these artificial boundaries of 4 kilobytes and 64 kilobytes. Like I said, code is really tiny if you generate everything—64 kilobytes is an ocean. You can't imagine what you can do with 64 kilobytes of assembly code. It quickly became clear you'd need a team: a music person, a graphics person, maybe two coders. I didn't know anyone at the skill level I needed, so I did it alone in 4 kilobytes—that was the alternative. It still took me half a year to make one production.

That's why I did it in the demo scene. When I did it for Skulptuur, it was because every byte you write on-chain costs money, and I thought, that sounds like a job for size optimizing. I had a lot of fun with that. I'd also done a lot of weird stuff with JavaScript back in the day—the moment I saw you could put scripts into web pages, I realized you could do a lot of weird stuff, and sometimes to make a website do something unusual you only had so many characters to work with, so you had to learn size optimizing, or how to avoid certain types of characters. People who know what I'm talking about know what I'm talking about—that's where part of my JavaScript knowledge comes from.

Skulptuur — Piter Pasma

And there's also, as you touched on, that I just love code, and I love JavaScript. Everybody hates it, but ever since it got arrow functions, I think it's become a beautiful language I can have a lot of creative fun in. It's not that I want people to look at my code, though it is beautiful—it's also a personal satisfaction thing. Maybe that's the part of the art I don't care whether people get, because I know it's there.

There's a concept called Kolmogorov complexity: the minimal amount of code needed to produce a certain string of data. If you have a string of a billion ones, that's a gigabyte to save as data—but you could write a program that says "a billion times one," and it would output that and be much, much smaller. This goes further, though. Take the digits of pi—they're not repeating, they're effectively random, but you can still write a program that outputs all of them. There's a kind of magic compressibility in encoding things with code. If you saw the digits of pi and didn't recognize them—say they skipped the first thousand decimals—you couldn't write that program. Being able to write the shortest program for a given output requires a deep understanding of what that output really is. I think that's beautiful.

Trinity: That's really well said. It makes me think of something from your Instagram—I was clicking through, and a lot of it is really interesting. There was an early plotting post where you said hatching in a single direction takes so much time, because it draws a line, then goes back to the start of the line, and it would be so much faster to hatch in both directions—so your plotter would never be bored. That struck me because one of the demoscene videos you'd posted is called Never Bored, from 1999. I'm wondering if there's a thread there about efficiency—making sure everything is used, optimized as much as possible.

Piter Pasma: I love that interpretation, even though it's totally not what it was about. It's true that a computer where all the code is very optimized is never bored—never idling. I could have put that in there somewhere.

Trinity: You can have it for free.

Will: We'll edit that out and you can keep it as an original.

Skulptuur — Piter Pasma

Piter Pasma: Great. Really, Never Bored was about being pretty young, just starting university life, and having so much going on that even in my free time I always had something to do. That's what it was about, but I really like your interpretation.

Trinity: There's still an interesting parallel between the efficiency of the code and the time efficiency of the plotting. Your plottable work is really beautiful, by the way—if you released that on fx(hash), I think people would lose their minds.

Will: I had that mentally flagged. There are artists on fx(hash) who release plottable work with exportable SVGs, or build in something like a 2% chance as a trait, where if you're lucky you get a free plot from them. Have you ever considered doing plottable work?

Piter Pasma: You can actually plot Hypergiraffe—they're all SVGs. You can right-click, save, and just figure out how to make the colors work. Some people have actually contacted me about that: a collector of Hypergiraffe found someone with a plotter, and I was happy I didn't have to figure it out myself. They asked if they had my blessing to do it, and of course they did—it would be really cool. I haven't heard back yet on that project.

Hypergiraffe — Piter Pasma

The problem with a lot of my hatching programs is that they're not long-form. All those spooky, sci-fi, threatening scenes—I just come up with them. I start building mathematical shapes I find interesting, combining formulas, and it becomes a bit like doodling: what does this look like, how do I position the camera for the most impact, do I need extra blobs somewhere? Then I flesh out the scene until it looks cool. But that's not really a long-form process, and that was the challenge with Skulptuur: making interesting 3D shapes in long form. It's pretty hard to find more shapes—I've found a few, but I've been told they still look a lot like Skulptuur, so I'm not sure how to turn them into something distinctly long-form.

There's also a bit of conflict in me. For new work it could be different, but my old black-and-white line work was intended for the plotter, and turning it into an NFT feels off—it's hard for a plot and an NFT to exist next to each other. Zybotron, a piece of mine on Foundation, also uses the hatching algorithm, but I explicitly did it in color so it can't really be plotted—it's a digital work, which is why it's available as an NFT. I'm still going back and forth on how to approach that. But if I did a long-form vector graphics piece on fx(hash), that would make sense, I think.

Trinity: One of the other threads that often comes up with your plottable pieces is the need to keep the number of lines low so it's actually efficient from a plotting perspective. If it's 30,000 lines, that's going to take forever. So how do you get that unique shape and aura in a piece while keeping it simple enough, with fewer lines, that it can actually be feasibly plotted?

Piter Pasma: It has to do with the AxiDraw plotter, at least. It differs if you have a high-powered plotter like the old ones from the 1980s — GenGeo Merchants has one, and Joshua Bagley's goes really fast, so it doesn't really matter, though you almost feel sorry for the pen. But the servo on the AxiDraw is quite slow — moving the pen up and down actually takes a while. If you have to do that a lot, it adds a ton of time to the plot. You plot a lot faster if you only have one continuous line. Plots can take really long, like eight hours for a big one, so it makes sense to optimize them. Some of my programs actually output the lines in a completely random order, and if you plot them like that, the plotter will be idle 90% of the time, just moving all over the page between lines.

Will: You're making the plotter intentionally bored.

Trinity: Which is art in and of itself.

Skulptuur — Piter Pasma

Will: Could be. We've talked a lot about Skulptuur, your big Art Blocks drop, and touched a little on Hypergiraffe and some of your fx(hash) work. How do you decide these days which pieces you'll put on Art Blocks, on Ethereum, versus which you publish on fx(hash)? What's the difference between those experiences for you, and do you have a preference? Are you chain agnostic?

Piter Pasma: A little bit. If it were purely up to me, I'd be chain agnostic, and that's the main reason I've mostly released on fx(hash) since Art Blocks — actually, only Skulptuur is on Art Blocks. Part of it is that it just feels lower effort to put something on the fx(hash) website. You can do it all on your own; you don't need an appointment with people on Discord, and it feels like you can make mistakes more freely.

Will: For clarity, you mean lower effort in the process of publishing, not lower effort in the art itself?

Piter Pasma: Right, exactly. It's a smoother experience, and there's not a lot of risk because minting is very cheap. I'll probably mint more stuff on Art Blocks in the future, though — one good reason is that I love the code, and if it's hammered into a blockchain, that's extra cool, even though it's actually stored on IPFS. You've also released on some of the other Tezos platforms.

Trinity: A lot of work on HEN, a lot on Versum too. I was just looking at your Wobbly Tofu piece on Versum, and it's so cool.

Piter Pasma: Thanks. Yeah, I was going for more one-of-one pieces rather than long-form ones. I used to release them on Hic Et Nunc, and after all sorts of stuff happened with Hic Et Nunc, Versum appeared, and it just looks really good. I haven't put a lot of work there yet, but everything about the site pleases me — how it displays the art and facilitates things for the artist.

Skulptuur — Piter Pasma

Trinity: Definitely good for edition-size pieces rather than generative ones.

Piter Pasma: I'm not even sure if you can put interactive pieces on there — oh wait, yeah, I did, I have one there. The IMU text-code-poem thing.

Trinity: Going back to fx(hash) — we've talked about Hypergiraffe, but not much about Dot Produkt, which was one of the pieces you released before we were on the platform.

Dot Produkt — Piter Pasma

Will: Yeah, we joined a little after both those releases, I think. I never got the full story either, Trinity. So what's the genesis of both of those works? Are they connected, or is there a short version you can share?

Piter Pasma: fx(hash) had just appeared, and I decided to mint whatever the first thing I could come up with was. It was a fun, blobby shader piece, because I'd been toying around with those on Hic Et Nunc already, but in the form of "click for new art" interactive pieces rather than the long-form type of thing. The name is a play on words — the dot product is a mathematical operator, but it's also how the different textures of the blobs, some of which are dots, are determined by the formula. So it's the product that produces the dots — that made sense in my head at the time. It got copy-minted after thirty minutes by somebody calling themselves Peter Plasma, which is funny, especially because "plasma" is also the name for this type of blobby shape in the demoscene. We used to call them plasmas, and they were always one of my favorite effects — not just because of my last name, but because it's fun to put formulas together like that, and they're really suitable for shaders.

Will: Do you have a number theory or set theory background? That's where dot product comes from, right? Did you study math in school?

Piter Pasma: It's from linear algebra, which I learned through computational science, which I studied at university.

Will: I studied that too, but at a school that didn't give grades, so my recollection is a bit hazy.

Piter Pasma: I can highly recommend — linear algebra is the best thing you can learn for math and coding. There's a YouTube channel called 3Blue1Brown that makes educational math videos, and they have a series on linear algebra that's really great. It uses a visual approach to explain what all these things actually are. Who cares what a determinant is if you don't know what it's for? But once you see that it's about how much a space is being squeezed or not, it suddenly makes sense — or at least a little bit. So, everyone: learn linear algebra.

Dot Produkt — Piter Pasma

Will: Okay.

Piter Pasma: Especially for generative projects.

Will: To continue down the fx(hash) path — you've released some other work recently. One right before the end of beta, Angry Noise, and one shortly after, Gonzion, I think — is that how you pronounce it?

Gonzion — Piter Pasma

Piter Pasma: Gonzion is named the same way as Hypergiraffe — after its random title generator. During the publication process of Hypergiraffe, you have to click through the variations to find the one you want to keep as the cover image for the set, and you see the features flipping by as you go. I saw one called "Hyper Giraffe" and thought, that's a good title. Same thing happened with Gonzion. I'm not sure it's a great title, but it works. I don't even know how to pronounce it — they're made-up words.

Trinity: It works.

Will: I knew that story about Hypergiraffe, but not about the more recent projects. For Angry Noise, I saw a lot of work-in-progress stuff you posted as editions on other platforms. But for both of them, I'm not quite sure what's happening on the code side, or the conceptual side. I know you listened to one of our shows where we talked about Gonzion in particular.

Angry Noise — Piter Pasma

Piter Pasma: Mm-hmm.

Will: And I remember saying something like, I feel like there's something here, I just don't know exactly what I'm getting. I'd love to give you the chance to talk about those projects and get some more information out there.

Piter Pasma: The thing is, I'm not good at pricing or picking edition sizes, and clearly with Gonzion I made a mistake. I'm sorry to say there wasn't a lot of thought behind it — when a project nears completion, I just want to put it out there, and sometimes I misjudge the price or the edition size. I'll probably have to stop the Gonzion minting process at some point. Actually, I wanted to hear from you — I'm not sure which one of you said you hoped I'd keep it open for minting forever. I was wondering why.

Gonzion — Piter Pasma

Trinity: At the time, we hadn't had this conversation yet. My thinking was: if it's an artistic choice to create a thousand editions because you want to see a thousand variations out there, then you should stick to your guns and do that.

Will: We were giving the benefit of the doubt that there was a lot of intentionality in the edition sizing, because when we talk to other artists, they often agonize over making sure the edition size is perfect for what they think their algorithm can represent. So we assumed the same here.

Piter Pasma: I agonize as well. Maybe not long enough.

Trinity: I think we could use less agony in the world, so I think it's fine.

Will: What number do you think it should be now, in retrospect? What would you burn it down to if you were going to do it?

Piter Pasma: I'd probably just say I'm going to close it a week from now and see what happens. That's not an official announcement, by the way — I don't know when this will air, so I'll announce it properly on Twitter. I made some last-minute choices with Gonzion on the designs that came out a bit different than expected — like the alien background stuff being very dominant in the piece. One of you remarked on that too, and you especially see it in the gallery view — they all start to look kind of samey. That was maybe not the best choice. On the other hand, I'm still really proud of the fractal patterns in there, because the idea behind the large edition size was that there'd be so many fractal patterns possible. I just didn't think it through entirely. A lot of people really like the bright backgrounds, and I get that. I also heard people complaining, "I minted three and didn't get one," and I don't think that's cool. That would be a reason to stop the project — to keep people from getting disappointed like that. And there will be more fractals in the future.

Gonzion — Piter Pasma

Trinity: The sizing and pricing obviously matters to people, but I'd like to hear more about your process. Going into Gonzion, Angry Noise, and Hypergiraffe — we talked a lot about your process for Skulptuur, especially making sure it was small enough to fit on the blockchain affordably. What was your approach creating your fx(hash) releases?

Piter Pasma: It was different every time. For Hypergiraffe, it was actually size-optimized. I did it that way because I'd written this very tiny quad-tree algorithm — a spatial-querying optimization algorithm that lets you make doodly things like Hypergiraffe, or anything that requires checking how close points are to each other and drawing accordingly. I'd already written that code and started looking for a use for it. I also already had this doodling algorithm — there are some variants of it on Hic Et Nunc and Instagram that I'd posted. So I reimplemented the doodling algorithm using only very tiny code and squished it all together.

To be honest, I hadn't expected Hypergiraffe to be that big of a hit. In hindsight, I recognized it was a combination of things — the longer I let something brew, the better it gets, because I keep working on it. There was a great quad-tree algorithm, a really cool doodling algorithm, and some wisdom about the wobbly functions that define the shapes in Hypergiraffe — the insight to give all four corners a different scale, so each corner can be bigger or smaller and it interpolates between them. That's how you get all the different shapes.

Hypergiraffe — Piter Pasma

I'd actually wanted to do the generative-title thing for Skulptuur too. I wanted a kind of crazy science-fiction backstory — which I'm now sort of making up myself by coming up with all these titles I post on Twitter — but the idea was to generate them automatically. I just couldn't get it right, couldn't figure out how to make it tiny, even though it didn't need to be, since the features don't go on-chain — you could actually make that code as big as you wanted. But I never did it for Skulptuur.

For Hypergiraffe, the generative titles were really an afterthought. I'd already made the program, and I thought, these random titles — fx(hash) can do that too. I felt creative because fx(hash) was new and there was room to experiment. The titles are a bit magical-realism, a bit silly, almost children's-story kind of things. I wanted Skulptuur to sound more important, and I could never figure out how to generate that tone. But for Hypergiraffe, the playful titles worked really well with the images, I think. So I added them afterward, and I was satisfied I managed to keep them tiny too.

For the other fx(hash) pieces, I didn't size-optimize — you can actually read the code, and there are comments of mine inside it. I got some remarks about Dot Produkt from Alexis André, or Mattpan, I'm not sure how it's pronounced — he said he got some use out of the comments I'd left in there. So I thought, people actually read this. And since there's no real reason to size-optimize on fx(hash) except to show off, and I'd already done that a few times, I decided to just write nice code with jokes instead.

Dot Produkt — Piter Pasma

Angry Noise was based on an article by Inigo Quilez about a way to create a certain type of noise in three dimensions. The way he did it was interesting, and I wanted to try it in two dimensions. I did some variations on it, and out came this very angry noise. I just wanted to showcase the texture of it, because I thought it was something special — something I hadn't seen before. That's the main intention behind it, I think.

Will: When we talked a bit about music before we started, and then thinking about how the outputs look in that project — I thought maybe it was a play on words, noise as in noise in generative art, but it also looks like a wave pattern, the kind that wouldn't actually be physically real for sound. It reads like a made-up waveform. So I found myself wondering if there was also a reference to sound in there.

Piter Pasma: I actually considered calling it Punk Noise — for being angry and punk, but also as a play on "pink noise." If you've heard pink noise, it sounds like a waterfall, and it's exactly that. It is in two dimensions, so — I'd have to look at Angry Noise again to see if that waveform idea comes through, or if it's just because there's a bar running through it each time.

Angry Noise — Piter Pasma

Will: It's the bar — the bar and the way the shapes protrude from it. And often they're opposing, like a waveform going up, one going down, then a third one coming back up. There are square waves and sine waves, and this felt like a whole other type of wave. I wondered if there was a double entendre there.

Piter Pasma: There was a strong idea of making a bar and putting shapes around it. I like waveforms — I like the way they look. You can see that in my last 4K demo on YouTube, called Moog. It shows the waveform of the sound at the beginning, just because I thought it looked cool. I was also reading a lot about the synthesizer, the TB-303, at the time — the one that makes acid house. It's a very famous synthesizer with a lot of mystique around it, and I don't know which parts of the mystique are real, but it's said to have a really peculiar shape to both its saw and square waveforms — more pointy, more angry-looking. Maybe I'd been fascinated with those patterns and they were in the back of my mind for Angry Noise. Generally it was an attempt to make an interesting design out of these shapes.

Will: I ended up getting one right before the beta ended, before the big burn. Did you know that the burn was going to be forced, when Ciphrd closed the platform?

Piter Pasma: I realized it at some point, but again, I hadn't thought about it much. Did you know someone actually went through the trouble of sending all the early minters of Angry Noise a very custom angry NFT?

Angry Noise — Piter Pasma

Will: Yes, I got one.

Piter Pasma: Congratulations.

Will: It's in the burn wallet now, at the burn address.

Piter Pasma: I spoke to Ozzy from fx(hash) about it in Amsterdam. He said they'd looked at the picture, and it was more a comment on the discussion happening in the Discord than actually agreeing with those comments — I think it might have been making fun of the FUD.

Will: It absolutely was.

Piter Pasma: At first when I got it, I wasn't amused, but I kept it — it's a memory now.

Angry Noise — Piter Pasma

Will: The quotes pulled out for it were very much along the lines of things people say, especially in the price-discussion channel of the Discord. On that note, I'm curious — how do you regard it when some projects sell out and do amazing secondary volume, like Hypergiraffe, and others, like Angry Noise, where we never got to see where it would go because it was ceremoniously burned at the end of beta? Now you have Gonzion out there too. How do you cope with the reality that when you release something as an NFT, it's going to be judged on economic metrics that don't necessarily have much bearing on you as an artist, but that's just the reality?

Piter Pasma: I wish it wasn't, it would be easier, but it is what it is. The most important thing is that I can't let it affect what I'm going to make — and honestly that part isn't hard, I don't care enough for it to. What's harder is making sense of it emotionally. Sometimes I feel a bit responsible for things, sometimes I don't. Sometimes I think maybe I should make something with a very low mint price so people can go nuts on the secondary again, just for the fun of it — but then there's the question of keeping price expectations in check, which is really hard to estimate. I just multiply some numbers in my head, and it doesn't always come out right.

Trinity: I don't think you should feel that responsibility. It's really hard to make people in this world happy, especially when everyone's trained to think about things in financialized terms — rather than the work you put in, the decades of experience and optimization, actually knowing assembly, which honestly I didn't know people still did. So congrats on that. It's important to value the time you spend. When it comes to putting something out there for people to have fun with — are you familiar with Art for Bots by RevDanCatt?

Piter Pasma: Yeah, yeah.

Trinity: It's so meta — it was something like 0.16 tez just to put it out there. I think there's something fun and playful that could be done to release things in a less serious way. It can still be serious art, but, you know.

Piter Pasma: I was thinking about that — it went a bit wrong, but I was thinking about that thing I put in a tweet, about maybe putting it on fx(hash) too, where the feature would be the code you could tweet with your parameters. I almost had it figured out, but it was too long for a tweet. I thought it was a brilliant idea because I was sure I'd seen somewhere, in a wallet or a Tezos transaction, that the features were recorded on-chain — but they're not. I thought they were. And I thought if I could just wrangle my code in there, I'd be the first on-chain fx(hash) project. But that can't happen, unfortunately, so I'm not sure what to do with that tweet program now. It would have been a tiny fun thing.

Hypergiraffe — Piter Pasma

I've been doing a secret collab, so I can't talk about that — that's what I've been spending a lot of time on. But if you've kept your eyes open, you'll know exactly who it is.

Will: All right, a little bait for everyone listening. When those collabs were first announced — I don't know if you mean official fx(hash) collabs or just independent ones — a few artists came out and said "I'm working with someone," but I didn't see your name come up. Maybe you were quiet about it, or maybe we just missed it among all the others.

Piter Pasma: I did tweet it. But I know who it is.

Will: Uh-oh. Do you want to throw your guess out right now, Trinity? Peter doesn't have to confirm it.

Trinity: Ippsketch.

Piter Pasma: I don't know, really.

Hypergiraffe — Piter Pasma

Will: Interesting.

Trinity: I work with people who pay attention — everything is documented. Thank you, Web2 and your centralized databases.

Piter Pasma: It's not really — I thought it had already leaked somewhere.

Will: I might have just missed it. Maybe I'm the one out of the loop here.

Piter Pasma: No, Ozzy told me last week to keep quiet about it again.

Trinity: So we'll edit that out.

Hypergiraffe — Piter Pasma

Will: Hey, nothing was confirmed. Peter's just playing coy with us and letting us think we know who it is.

Trinity: Regardless — even though you were a self-proclaimed one-man show in your demoscene days, there's a lot of collaboration traditionally within that scene. Is this your first time collaborating with somebody since the early 2000s?

Piter Pasma: It's hard—well, no, actually, that's not true. I did a collab that was a lot of fun and way less hard, with Will Staal, who's also a shader wizard. We had this VS Code plugin that let two cursors work in one file, voice chat on, just messing around with shaders. There's a series on my Foundation called Two Cursors, One File. They're still available—we priced them at 3 Ethereum, though honestly, I was thinking it's the effort of two people, so it should be more.

Trinity: It should be like—not twice as much, three times as much. It's exponential.

Will: Depending on how well you like the person you're collabing with.

Piter Pasma: That one was easy. With another collaborator I won't name—already giving away too much about the project—it's a different approach, harder when you don't share a similar programming style. With Will it wasn't just that he was doing shaders, he was specifically doing ray marchers in shaders, so we had enough overlap that I actually understood his code when I saw it.

Hypergiraffe — Piter Pasma

Will: Piter, I know we've gone over an hour, so let's do one last question and start wrapping up—you've already been so generous with your time. What are you most excited about in generative art right now? Looking ahead a year or two, NFTs or otherwise—does the traditional art world fit in anywhere? Where do you see it all going?

Piter Pasma: I don't know where it's all going, but I'm definitely going to keep making art. I want to do more in the traditional art world—that's been a lot of fun, and I have opportunities there now. But I'm not abandoning anything either. I'd still love to project my work onto buildings, really big ones—that sounds fun, though it's pretty far removed from what I'm doing currently. I've got a lot of ideas I haven't worked out yet. Mostly, though, I'm looking forward to having my taxes done. And traveling more, meeting other generative artists—I've done a little of that now and I want more of it.

Will: Are you coming to New York City next month?

Piter Pasma: Not next month, but—

Will: Isn't there NFT NYC coming up?

Piter Pasma: Oh, no, I'm not planning any trips right now. But I have to see. I am traveling more than I used to, which was hardly at all.

Hypergiraffe — Piter Pasma

Trinity: One related question—maybe my last one. You mentioned, either on this recording or just before, that you'd gone to Amsterdam to meet up with other generative artists. What we're seeing in the fxhash community is a disproportionately large share of people from the Netherlands—way more than any other country given its size. Why do you think that is? Education? People just knowing and promoting each other?

Piter Pasma: That, for sure—we do promote each other, though I assume every country's community does that. When I see a Dutch person, I feel obligated to promote them a little, even though I tell myself I only promote the good ones. I used to think it was confirmation bias, but every time I'm on a big site like Reddit, whenever I notice someone who isn't American, they're often Dutch—like there are slightly more Dutch people on the internet than a tiny country should produce. So maybe it's not just confirmation bias. Maybe we're everywhere. We also speak English very well, which helps—you can dive into the English-speaking internet without much trouble. I can't do that with the German internet; I can read some German, but writing it is cumbersome. Education probably plays a role too. We'll find out in a couple of decades if it's still good.

Will: Everyone in the Netherlands gets issued a PC and an assembly manual at age eight, and you all just learn to code.

Piter Pasma: I really do wonder, because it's more than my usual confirmation bias would explain—there are even Dutch people who don't live in the Netherlands, and I don't know a lot of them yet. There's also Ozzy, who's part of the fxhash crew and is Dutch—maybe that attracts more Dutch people. I have no idea.

Trinity: We'll blame it all on Ozzy—just recruiting people to fxhash so there's more awesome art. But I think education is part of it. When we talked with Amy a couple weeks ago, the question was what it takes to get people to appreciate—or even produce—generative art. Having more of a math, science, coding-based education, where it's built into your schooling rather than something you stumble into at nine, could really change how people think about it.

Piter Pasma: Definitely. I do some volunteer work along those lines, but—well, we're already running out of time.

Hypergiraffe — Piter Pasma

Will: No, it's okay if you want to speak on it—it's your podcast. Or I've got one last question too. We always do like three "one last questions."

Piter Pasma: Sure, go ahead. I don't really know what to say about the volunteer work anyway.

Will: Since your coding background is so extensive—when you're collecting, do you go purely on aesthetics, or do you dig into the code and evaluate both sides?

Piter Pasma: Great question. I should look at the code, but I don't, really—I'm not a very avid collector. My collection is mostly people I like and people I know write good, cool code. If I were more serious about collecting, I'd definitely dig into the code. There have been times I saw a series on fxhash and wondered whether it used pre-calculated textures or images versus something actually generated, so I'd go look at the code to figure it out. I think fxhash should show that information—or maybe they already do?

Will: They just added a label in 1.0—if a project uses pre-rendered images layered together, you now have to label it as such.

Piter Pasma: What I really want to see is just the kilobyte size.

Hypergiraffe — Piter Pasma

Trinity: I don't think they show that.

Will: There is a cap, though.

Trinity: Sixteen megabytes, I believe.

Piter Pasma: That might give too much of an advantage to the size optimizers.

Will: That's more code than you'll write in your entire life—sixteen megabytes could fit your whole career.

Piter Pasma: There's Omega Point by Monotau—that's a piece whose code I'm definitely going to read. I've already talked to them about how on earth they pulled off what they did.

Hypergiraffe — Piter Pasma

Will: It loads so fast too. Wild that it loads instantly.

Piter Pasma: I'm really looking forward to digging into that—they've described some of their techniques, and there are some very cool tricks going on there.

Will: I noticed you minted Amulet from Stranger in the Queue this week.

Piter Pasma: Yeah, I like their work. Wish I'd gotten a different one, but—

Trinity: They're still plenty available to mint.

Piter Pasma: All right, pressure's on. What was it called—Amulet? I'll look at it later.

Hypergiraffe — Piter Pasma

Will: I feel like that actually wraps things up nicely—a great little diversion into what we like to collect. Piter, thank you so much for coming on, for being so generous with your time, and for letting everyone learn more about you as an artist, your history, and your perspective. Really appreciated. We love doing these interviews, so thank you very much.

Piter Pasma: Thank you as well—I had a really great time. You're both great.

Will: Oh, thank you—you don't have to say that. Say something different off air. All right, that's it. That was Piter Pasma. Hope everyone enjoyed it. Thanks again to Piter, and thanks to Trinity for recording on a Sunday. We'll see you all soon. Later.

Piter Pasma: See ya.

Change log

  • Initial transcript — auto-transcribed (AssemblyAI) and readability-edited.