Newsletter

Gorilla Newsletter 98

RampenSau v1.0 - Spectral.js 3 - Understanding Shader Functions - Livecoding Graphics in Lisp - Acerola on Perlin Noise - L-systems & Pattern Grammars - Federating a Microblog - Writing Useful Error Messages - Cookie Store API -

By Ahmad Moussa · April 28th, 2025

Last updated on April 28th, 2025

From L-systems to pattern grammars

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

This is the 98th 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! (opens in a new tab)

That said, cue the news 👇

All the Generative Things

Link to Post (opens in a new tab)

RampenSau is a lightweight, dependency-free and blazingly fast color generation library "perfect for generating color palettes for data visualizations, visual design, generative art, or just for fun".

The lib can generate a broad variety of different colors by hue cycling in the HSL colorspace and using easing functions to interpolate between them — there's a cool codepen demo that demonstrates it in action, as well as an interactive doc page that lets you configure the ramp generation settings:

As an aside, I really love the creative, play-on-words name of the lib! "Rampensau" is a German word, that in English translates to "stage hog" basically refers to people who love performing and being in the limelight — it's the perfect name for a tool that generates vibrant color ramps!

(opens in a new tab)
Check out David's impressive GitHub (opens in a new tab) for some of the other color tools he's built!
(opens in a new tab)
Link to Post (opens in a new tab)

A few weeks ago (in issue #86 (opens in a new tab) of the newsletter) I already wrote about the Kubelka-Munk model and how it plays a central role in simulating realistic pigment mixing digitally — particularly for the MixBox library. Spectral.js implements a simplified version of it, for which Ronald outlines some details over on GitHub:

(opens in a new tab)
GitHub Repo (opens in a new tab)

And the lib works splendidly, I used it in this sketch of mine to achieve some super vibrant gradient colors:

Go and give the lib a try in your next sketch! Besides this, I'm also super humbled to have both David and Ronald in the discord, occasionally sharing some of their creations — if you want to shoot them a message or ask about their tools, doing so in the discord might be the best way to go about it!

Learn with me: Getting Started with Shader Functions (step, mix, smoothstep) - Romain Herault
Join me as I learn GLSL shader functions! We’ll explore step, mix, and smoothstep with interactive Three.js examples and fun challenges.
(opens in a new tab)
Link to Post (opens in a new tab)

6 — L-systems & Pattern Grammars: we've been hard at work behind the scenes at fxhash, and there's big things coming that are going to open up a lot of new avenues in generative art — I'm infinitely excited to be among the first to explore an entirely new generative artform!

While I won't reveal too much yet, I've been working on a new project that fits into this new scheme, revolving in its entirety around L-systems and how they can be leveraged to create interesting pixel patterns — here's the little visualizer I've built to test my project:

Link to Post (opens in a new tab)

(opens in a new tab)
Link to Post (opens in a new tab)

And if you're curious about the inspiration, it's the banner of this P5 guide I wrote back in May of 2023 (almost 2 years ago now 😱):

Getting started with P5JS
In this post we’ll have a look at p5.js, a creative coding and generative art javascript library. We’ll setup our first project, learn how to draw some shapes and get started on our creative coding journey.
(opens in a new tab)

Dev & Web Tech

The framework they've used as a foundation for their own implementation is Fedify — a TypeScript library for building federated server apps powered by the ActivityPub (opens in a new tab) protocol. You can read about the entire development journey through the dedicated newsletter they've spun up for this purpose — I found it highly interesting to follow along over the past months:

(opens in a new tab)
Link to Post (opens in a new tab)

Now if you were to spin up your own self-hosted Ghost instance, you'll also be able to fedify it — which I find wildly exciting! You don't just get a CMS + newsletter tool, but also the ability to tap into a massive network for a potential audience.

Naturally, if you're running your own non-Ghost blog, you'll also be able to fedify it — I'm not certain if it's a new post or not, but there's a massive tutorial over on the Fedify docs that shows how to do it:

Creating your own federated microblog | Fedify
In this tutorial, we will build a small microblog that implements the ActivityPub protocol, similar to Mastodon or Misskey, using Fedify, an ActivityPub server framework.
(opens in a new tab)
How to write error messages that actually help users rather than frustrate them
One of the most consistently neglected parts of today’s user experiences is our handling of errors. We’re so busy designing the happy paths through our products that we often forget to give the same care and attention to the times when things will go wrong
(opens in a new tab)

It's an improvement to the previous document.cookie interface (opens in a new tab) by providing asynchronous access to cookies, less back-and-forth serialization, as well as introducing more standardization across different cookie libraries — Fotis Papadogeorgopoulos explains how to use the API and how to account for browsers that might not yet support the feature:

The new Cookie Store API
Introducing the relatively new Cookie Store API, and what it means for web applications.
(opens in a new tab)
What Does It Really Mean For A Site To Be Keyboard Navigable — Smashing Magazine
Keyboard navigation is a vital aspect of accessible web design, and a detail-oriented approach is crucial. Prioritizing keyboard navigation prioritizes the user experience for a diverse audience, extending your reach while simultaneously fostering a more inclusive web environment.
(opens in a new tab)
Link to Post (opens in a new tab)

And I wouldn't have included the post if there wasn't also a stimulating discussion over on Hacker News (opens in a new tab) about it 😆

AI Corner

The Post-Developer Era • Josh W. Comeau
When OpenAI released GPT-4 back in March 2023, they kickstarted the AI revolution. The consensus online was that front-end development jobs would be totally eliminated within a year or two.Well, it’s been more than two years since then, and I thought it was worth revisiting some of those early predictions, and seeing if we can glean any insights about where things are headed.
(opens in a new tab)

In my humble opinion, we're still very, very far away from AI getting even close to replacing real devs, and echoing Josh's words: while AI is a powerful tool, it’s here to enhance, not replace, human developers. Staying skilled and adaptable will keep developers valuable in the evolving tech landscape.

(opens in a new tab)
Link to Post (opens in a new tab)
Why do AI company logos look like buttholes?
A humorous exploration of the uncanny resemblance between AI company logos and human anatomy. Discover why circular, gradient-based designs dominate the AI industry, and what this design convergence tells us about branding in tech.
(opens in a new tab)

Music for Coding

Who would've thought that chillrave is my kind of music?! While going through some YoutTube playlists I came across a stellar track titled Nemova, made by Geju. I was immediately hooked and had to explore more of Geju's — they've posted quite a few albums and mixtapes that I think are all worth checking out.

Turns out that chillrave, combined with slow house and ritualistic sounds is perfect for writing and programming:

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 (opens in a new tab), Mastodon (opens in a new tab), or Bluesky (opens in a new tab) and since we've also got a Discord now, let me shamelessly plug it here again. (opens in a new tab) 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 97
Programming WebGL Gradients - Painting with Evolutionary Algorithms - Hydra JS Tutorial Series - Bilinear Interpolation of Quad Meshes - Jonas Lund’s Network Maintenance - Shaders in SQL - WebKit’s text-wrap: pretty - Over-engineering Anchor Links - h1 Default Styling Changes
(opens in a new tab)

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.
(opens in a new tab)

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

~ Gorilla Sun 🌸