Newsletter

Gorilla Newsletter 87

Genuary Week 3 Recap - Passing of Ruth Leavitt - Generating Mazes with Recursive Subdivision - Nonsensical Math Paper Generator - Fluid Simulation Pendant - Generative Grid Art with Three.js - DOOM in PDF - Realtime Collaborative Apps with Yjs - Artificial Aesthetics Book Release

Gorilla Newsletter 87

Welcome back everyone 👋 and a heartfelt thank you to all new subscribers who joined in the past week!

This is the 87th 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 now, 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!

Let's kick things off with a quick recap of the third week of Genuary 2025 👇

Genuary Week 3 Recap

My favorite part about Genuary, and any of these month-long challenges for a matter of fact, is seeing how folks interpret the prompts in vastly different manners — I try to do my sketch before I explore what others have made, otherwise I will be too tempted to recreate some of them.

This year's prompt selection is particularly poised for that kind of creative interpretation — here's some of my favorites from the last week's batch of creations again:

  • For the day 14 prompt "Pure black and white. No gray." Yann Le Gall created this cool optical illusion, where the line width of the rectangles is modulated in such a way that it creates an animated 3D shape. I tried my hand at a similar effect before, but with much less success.
  • For the day 15 prompt "Design a rug" I'm impressed yet again by Roni's sketch, because he really nailed it with the pattern. I might be completely wrong on this, but it seems to me like a sort of cellular automaton that's tiled across a grid.
  • Day 17 prompt "What if π = 4?" proved to be a bit of a challenge, because it kinda breaks everything when you can't make proper circles or loops, but Florian Berger's idea of slapping rectangular wheels on a car is in a league of its own.

One sketch that I missed in the first week, and that's too good to not include here, is Joshua Bagley's 42 lines of differential growth — the first time I tried my hand at it, I think I ended up with around 200 lines of code, hence if you want a sort-of-tsubuyakified version of the algo, here you go:

Link to Post

How's my Genuary going, you ask? Pretty decently, but could be better 😅. In the past week I only managed to do 4 prompts — technically I only made three sketches, but one of them combines two prompts. I'm really happy with the ideas that I had for the ones that I tackled though:

#12 Subdivision: This one was an interesting challenge, initially I wanted to subdivide the image simply with white rectangles that have black outlines, so that the subdivisions are clustered more densely around the prominent features of the image — the problem with that is extruding these prominent features in the first place. A simple edge detection filter doesn't really produce good results, is hard to tune, and overall isn't generalizable. The approach that you see here, subdivides rectangles on the image depending on the range of colors that they contains, and attempts to split regions so that range is reduced — you end up with rectangles clustered around the regions with larger color variation.

#16 Generative Palette: I've been thinking about making a color palette generator for the longest time, and it turned out that putting one together was easier than expected. I've recently been playing around with groq, a free LLM API that lets you query prompts and get back results. Obviously there's rate limits, but it's more than enough for hobby projects like this. Here I essentially ask the LLM to generate n hex codes for colors, that I then parse to isolate and store them in an array. The sliders simply modify aspects of that prompt.

#15 Design a Rug & #17 What if π = 4?: For my this generative rug I was playing with taxicab distances — a geometric space where where the familiar Euclidean distance is ignored, and the distance between two points is instead defined to be the sum of the absolute differences of their respective Cartesian coordinates. In that setting, the value of the analog of the circle constant π, the ratio of circumference to diameter, is equal to 4, and circles essentially become squares, which is how I produce the square shapes on the rug. The rug is then additionally deformed with a sine wave.

And that's a wrap on Genuary related things, we'll check back in next week with some new creative ideas — now let's cue the news 👇

All the Generative Things

Link to Post

Dissatisfied with off-the-shelf interactive software, she turned to programming and developed her own computer art systems with her husband Jay Leavitt. By 1973, they had created a “stretching program” that could swivel, warp, and reshape lines, to transform rigid constructivist artworks into more fluid compositions. For those curious about that program, Ruth and Jay published a paper on the topic titled "Pictures Based on Computer Drawings Made by Deforming an Initial Design" that details how their method works.

Link to Paper

Most notably Ruth is known for authoring her seminal book Artist and Computer, published in 1976. The book gathers 35 North American, European and Japanese artists that worked with computers for artistic purposes during that period of time, and gave them a space to talk about their work in the burgeoning field. Among them are Lillian Schwartz, Ben F. Lapowsky, Manfred Mohr, Hiroshi Kawano, Herbert W. Franke, among many others — the names on this list demonstrate just how important the book really is.

You can read the book in its entirety over in the Atari Archives. It's sad that many of the pioneers are leaving us now when we're just at the brink of really understanding and appreciating their contributions.

Recently one of those tutorials resurface again while I was scouring Hacker News; it's one that I'd actually tried implementing before, where the maze is generated with recursive subdivision instead of using a traversal algorithm:

The algo works in quite a similar way to how you would subdivide a rectangle into smaller one, by successively inserting walls between them — with the difference that you insert openings into the walls to create connections between the individual rooms. As the rooms become smaller and smaller, you end up with maze like paths.

An observation here is that this recursive approach creates evident sector-like regions, that can only be accessed via a single opening — in certain scenarios this might be useful, but doesn't create a very challenging maze. Jamis published an update later on, revisiting the idea with a non-linear path to split up two regions and create a boundary between them, resulting in more organic looking maze patterns.

Typst supports dynamic content through variables, loops and simple logic, which Sylvan leverages to create a simple PRNG that then populates template strings with randomly selected math terms and assembles them into a fake paper.

Maybe this is how we will make our last stand against our future neural overlords — by poisoning them with bogus data 😂 jokes aside though, this is quite fascinating, because I genuinely can't tell that the resulting papers are fake. I'm not entirely sure if even a very knowledgeable mathematician would be able to tell that these are fake by just glancing over them.

He explains that the FLIP (Fluid-Implicit Particle) algorithm is at the core of what's powering the pendant — a hybrid method that combines particle-based and grid-based approaches to achieve a realistic and dynamic fluid behaviour. He points out Matthias Müller's Ten Minute Physics YouTube channel that provides arguably the most concise explanation of the non-trivial algorithm:

We don't usually talk much about hardware on here, but mixtela's YoutTube channel was a really fascinating rabbit hole to explore — it's basically size-coding, but with hardware. Also, funnily enough, the pendant itself turns out to be waterproof.

Creating a Generative Artwork with Three.js
Learn how to create dynamic, generative artwork using Three.js, inspired by Lygia Clark’s minimalist geometric designs, with a grid system and creative coding techniques.

Tech & Web Dev

Link to Post

I don't have much more to share here 😆 it's also worth noting that this has previously been done by X user Reelix.

Using CSS properties that are currently supported by all browsers, Andy Bell shows us how to create a simple, masonry-like layout that's composable — a modular and reusable design where independent components are combined to create flexible and scalable layouts.

A simple masonry-like composable layout
It’s going to be a long time until CSS masonry is ready for us to use in our projects so I’ve got a nice stop-gap here for you that uses composable layouts.

Yjs is a library by Jamsocket, that lets you create and manage CRDTs with ease. They recently kicked of a series of lessons to explain how the library works:

Learn Yjs by Jamsocket
Learn Yjs is an interactive tutorial series on building realtime collaborative applications using the Yjs CRDT library. Learn about handling state in distributed applications using Yjs shared types, with explorable explanations and code exercises.

AI Corner

Lev Manovich
Lev Manovich: photos, bio, complete CV.
There is an allure to a technology that can (at least some of the time) craft sophisticated responses to challenging questions. [...] I followed this curiosity, to see if a tool that can generate something mostly not wrong most of the time could be a net benefit in my daily work. The answer appears to be yes, generative models are useful for me when I program.

For someone like me, this cutting edge approach to prototyping is invaluable; I often have more ideas than I have time to realistically spend time on, and when I really want to get an idea out of my system, just to validate if it's something that I actually want to flesh out later on, then why wouldn't I conjure a prototype at the snap of a finger? I would definitely be frustrated at this point if LLMs suddenly weren't a thing anymore.

Music for Coding

ODESZA is an electronic music duo from Seattle, that blend lush cinematic soundscapes, with upbeat percussive rhythmic layers. Their third studio album A Moment Apart was critically acclaimed and earned a nomination for the 60th Grammy awards, marking a career milestone for the duo. Throughout the tracks they explore ideas of space-travel, separation, and isolation — there's a big megathread over on Reddit back from when the album came out in 2017 in which people discuss these topics.

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:

Gorilla Newsletter 86
Genuary 2025 Week 2 Recap - Practical Color Mixing - Procedural Creatures - Programming Fractals - Art Galleries in DOOM - Programming Tetris in a PDF - Balancing Text in CSS - A Philosophy for Digital Longevity - LLMs in 2024

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

Newsletter - Gorilla Sun
Weekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.

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

~ Gorilla Sun 🌸