Welcome back everyone 👋 and a heartfelt thank you to all new subscribers who joined in the past week!
This is the 99th issue of the Gorilla Newsletter—a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, tech, and AI.
If it's your first time here, we've also got a Discord server where we nerd out about all sorts of genart and tech things — if you want to connect with other readers of the newsletter, come and say hi: here's an invite link!
Before we get into the news this week, a special segment to kick things off 👇
Open-form genart x fxhash
A new way to create and collect generative art is coming to fxhash, and I'm super stoked to be among the first to explore an entirely new paradigm!
Over the past weeks I built a toy 'proof-of-concept' app to explore and better understand how this new form of generative art works, how to program it, and also discover some of the new archetypes it enables. The above clip shows this simulator in action—there's a bunch of technical aspects to open-form genart that I'm personally super excited to share more about in the coming weeks!
But before we get into all of that, a little bit of context first to explain how we actually got here 👇
Generative art on the blockchain has without a doubt captured the attention of a global audience over the past couple of years. Starting with Larva Labs' Autoglyphs demonstrated back in 2019, the project demonstrated that NFT collections didn't necessarily have to just exist in the form of pre-rendered assets (like the BAYC), but could also equivalently be pieces of code that live directly on the blockchain, and capable of generating interesting visuals .
When fxhash entered the scene, it opened the floodgates for all generative artists to tap into this new paradigm. Maybe it sounds bit cheesy, but it legitimately felt like a goldrush era—and I'm not just saying that, I was present in the flesh at the time.
While long-form genart was new and exciting for a period of time, things have come to a crawling stop in the past months. It's become more and more evident that there's quite a few shortcomings to the long-form paradigm, particularly in how it constrains both artists and collectors.

Which leads us to the current moment in time. To quote Kevin Esherick's seminal essay Generative Anesthetics:
Generative Art has had a moment.
Over the past months it's been quite busy behind the scenes at fxhash—the team's ideated, designed and implemented an entirely new protocol for creating and collecting generative art on the blockchain, that attempts to remedy many of the problems that the genart space has been suffering from.
Enter open-form genart.
In open-form genart, collected outputs are no longer static mints, but instead can be thought of as their own self contained systems. Mints can now be interacted with through a set of actions, that open up new options for both collectors and artists alike. For instance, as a collector you can now reroll or burn your mints—that way you're no longer stuck with duds (crappy output from an algo) or editions that you simply don't enjoy. This means that open-form genart has collector curation directly built into it.
Collected editions from an open-form project can now also act as their own mini-generators that spawn new child mints. We call this evolving a mint, because it now becomes possible to transfer information between a parent and a child mint! Naturally, this is entirely up to the artist on how they leverage this aspect of open-form genart—and from my early tests I believe there's really a lot that can be done.
I've written a couple of posts over on X already to explain how this works from a technical POV if you're curious to learn more.


In terms of the underlying tokenomics, it does also get a little bit more complicated. All new interactions are ultimately powered by an underlying token that's attached to the artwork. This additional complexity however is ultimately for a good reason—it's also intended to solve some of the financial problems attached to releasing generative art on the blockchain.
That said, if this has piqued your interest now, the best way to learn more is by joining the big info session we're doing this Wednesday May 14th at 9AM EST / 17:00 CET over in the fxhash discord — here's an invite link to the event!

Now, back to regular scheduling—cue the news 👇
All the Generative Things
1 — One Million Chessboards: Nolen Royalty is back with another experiment that disregards absolutely any considerations for the general scale of things on the web — one million chessboards is a chess MMO, where players can move the pieces of one million chessboards simultaneously — try it out for yourself here:

He just recently released a v1.1 for the game that resets the board and improves some aspects of it. I honestly had a blast having skirmishes with randos so far 😆
What adds a lot of complexity is that pieces can travel between adjacent boards— you can't capture when traversing the boundary however, which adds an interesting dynamic where players attempt to amass tiny forts of pieces of one color that line the boundary of an entire board.
Nolen also already shared a brief write-up over on his blog with the promise of a much more in depth upcoming article.

He's also shared a bunch of technical details over on X if you're curious.
2 — strudel Music Live Coding in the Browser: strudel is an official JavaScript port of tidalcycles — while scouring Hacker News I recently learned that the popular Haskell-based music live-coding environment also has a browser based version — and I'm super impressed with how smoothly it runs considering that web audio can be a pain to work with.
Here's an example of wjat a "track" in strudel looks like 👇

What's more, strudel is free and open source.
3 — Wookash Podcast featuring Inigo Quilez & Freya Holmér: a few weeks back, in issue #92 of the newsletter, I mentioned the Wookash podcast, on which Łukasz has up to this point featured many a renowned game dev.
Now he's pivoted to also feature guests from broader programming scene—particularly interesting for the genart & creative code community are Inigo Quilez and Freya Holmér. In both conversations the coding wizards talk about their careers, their processes, and how they work on their ideas:
4 — Inventing the Adventure Game: this week's wildcard is "an unpublished book manuscript from the dawn of the video-game age (written in 1983-84)." by Warren Robbinet. The book documents early video game history, particularly the 1980 game Adventure.

I only skimmed through it but it's quite a fascinating read — particularly interesting is the final chapter where it outlines the program architecture of both Adventure and Rocky's Boots.
5 — I hate my Portfolio: and to cap off, an article about the emotional challenge of putting together a portfolio of your work—Valeria Yakovchik explains why it is a difficult task and how to create a good portfolio:

On that note, Anna Lucia recently wrote about this exact topic in one of her newsletters, that's she's been sending out more frequently again. It's a really good read about making a simple portfolio that just works, without worrying about it being super polished.
Dev & Web Tech
1 — Reservoir Sampling by Sam Rose: Sam Rose is back with one of his wonderful interactive explainers! Reservoir Sampling is a technique for selecting a fair random sample when you don't know the size of the set you're sampling from.
At first that might seems like an impossible task to solve when approaching with regular random sampling approaches—but turns out that there's a fairly simple and elegant solution that's solely based on probabilities.

When observing an incoming stream of data samples and deciding whether or not to hold on to the current samples or select a new one, we simply generate a random number between 1 and the index of the current item in the stream.
If the number is 1, we replace the current sample with the new item; otherwise, we keep the existing one. This ensures that every item in the stream has an equal probability of being selected, even though we're only storing one item at a time.
This might not be intuitive, but logging the probability as Sam does in his article, turns out that this is perfectly fair.
2 — CSS Hell: is a set of 15 CSS challenges devised by Marcos Acosta, intended to be challengingly infuriating — having made it through the first 3 (taking longer than I had anticipated) I can say that it's probably just as fun.
Marcos' concept is simple: you get to add a couple of CSS rules + properties to certain UI elements to make the colored pegs shown on the page overlap the matching holes. Making them barely touch is good enough of a solution here, as you can see from how I solved the third one 🤣

The tricky part is that you only get one or two rules for each challenge, with the solution kinda being unintuitive if you rely on how you'd usually go about layouting and positioning ing CSS.
A big highlight for me were the short congratulation messages that Marcos threw in, in between the challenges — shots fired a backend devs:

Let me know how far you get if you end up giving it a try!
3 — Using Container Query Units Relative to an Outer Container: if you're not familiar with container queries yet (what are you still doing?) check out this excellent interactive guide by Ahmad Shadeed, as well as another two posts by Josh Comeau, an introductory tutorial as well as a more advanced one.
Container queries are a way to size elements relative to another container element, instead of on the whole viewport. They get a bit tricky to work with when you're dealing with nested divs where the sizing of a child element needs to be relative to a specific outer container and not to its immediate parent — the CSS spec doesn't let you directly say "use this other container's size."
A recent post from Ana Tudor provides an elegant solution to this problematic simply by using a CSS property:
If you define a custom property (--s
) with a cqw
value on the intermediary container, and make sure it's a registered CSS property (using @property
), then its value will be calculated relative to the outer container and become available to the child that you want to size relatively.
4 — I use Zip Bombs to Protect my Server: Ibrahim Diallo shares how he deals with malicious bot traffic on his site by using zip bombs: tiny compressed files that, when opened, expand into a massive size, overwhelming the system that tries to process it.

When he detects bots that scan for security vulnerabilities, probing for a response or trying to inject a script, he responds with a 200 OK header and attaching one of the innocuous zip bombs. Ibrahim also proceeds to show us how he creates them directly on the terminal!
5 — Functional HTML: if you could add an HTML tag of your choice, what would it be? Dan Abramov reimagines what it would be like if HTML behaved more like a full fledged functional and composable programming language—in essence Dan reinvents React Server Components and how they can be understood as a natural evolution of HTML that addresses fundamental web development challenges.

6 — How Promises Work in JavaScript: the asynchronous side of JavaScript is probably one of the most misunderstood aspects of the language overall — Kaan Peksen wrote an excellent explainer on JS Promises, how they work behind scenes, and how they power asynchronous operations.
7 — Good vs. Great Animations: And to cap off, Emil Kowalski shares a short collection of practical tips for elevating your CSS animations, making them feel more organic and natural.

No AI Corner section this week, didn't really come across anything interesting 🤷
Music for Coding
This week I enjoyed Glue Trip's dreamy, sun-soaked melodies, layered synths, and mellow vocals that all blend so seamlessly on their 2022 album Nada Tropical. Glue Trip is a Brazilian psychedelic pop band that you might remember from their 2013 hit track back titled "Elbow Pain":
And that's a wrap — hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
Now that you find yourself at the end of this Newsletter, consider forwarding it to some of your friends, or sharing it on the world wide webs—more subscribers means that I get more internet points, which in turn allows me to do more internet things!
Otherwise come and say hi over on TwiX, Mastodon, or Bluesky and since we've also got a Discord now, let me shamelessly plug it here again. If you've read this far, thanks a million! And in case you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:

You can also find a backlog of all previous issues here:

Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!
~ Gorilla Sun 🌸