# Gorilla Sun
> A blog about making art with code. Here you can find tutorials and articles on Creative Coding, Generative Art, and Computational Design.
Public Ghost content for AI and LLM tooling. This file includes a bounded export of public pages first, then recent public posts.
Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`).
## Pages
### About this Site
URL: https://www.gorillasun.de/about/
Last updated: 2023-04-28T15:06:22.000Z
Hi, I'm Ahmad, and this is the Gorilla Sun Blog.
On here you'll find content that revolves around generative art, creative coding, programming, web3 stuff as well as other contemporary tech topics. Sometimes I'll also just write about other nerdy things that interest me personally.
I started this blog in January 2021 and my life has revolved around it since then. The site has undergone several changes up until now, stylistic and technical ones.
And it's likely that it hasn't reached it's final form yet. But that's for the sake of improvement, to make easier for me to push more content, more frequently, and at the same time make it easier for you to read my posts and navigate the site.
If you find anything that needs fixing, don't hesitate to shoot me a message about it!
# About me
Hi, my real name is Ahmad Moussa, but on the internet I make things under the alias of Gorilla Sun.
Why *Gorilla Sun*? Because it's marginally easier to pronounce than my real name and I like the ring of it.
Besides that, I have a background in computer science, in which I did my bachelors and masters. Later I dabbled for a little bit in Machine Learning research, but ultimately found creative work to be much more fulfilling in comparison.
My main interest nowadays is making art with computers, and exploring how different visual concepts can be brought to life with algorithm and code. I find it to be a new and exciting topic that we've only scratched the surface of.
# Mission
I love generative art, I love programming, I love writing and I love creating and making things. Being creative is one of the things that brings me the most joy in life. And I want to share the joy of creation with the world.
One of the things that frustrated me the most while learning how to program was the lack of resources online. Sometimes it was very difficult to find meaningful explanations that helped get leeway on certain technical topics. My goal is to remedy this with topics that I find interesting, and help others find a foothold in the world of programming and creative coding.
# Thanks for Reading
Thanks for checking out the site! Consider signing up to the mailing list to get notified when there's new content.
Best way to support the blog is by sharing my articles with your friends, or linking to them on your own social media platforms/websites. It actually helps out a lot. Another form of support is by tipping me on ko-fi.
Thank you! Happy sketching and Cheers!
###
### Articles
URL: https://www.gorillasun.de/articles/
Last updated: 2023-05-15T14:38:06.000Z
Here you can see a list of all articles and tutorials I've written so far!
### Community
URL: https://www.gorillasun.de/community/
Last updated: 2023-04-18T12:45:47.000Z
_No content available._
### Member Section
URL: https://www.gorillasun.de/member-section/
Last updated: 2023-04-18T21:33:52.000Z
_This page is for paying subscribers only._
### Javascript Fundamentals
URL: https://www.gorillasun.de/javascript-fundamentals/
Last updated: 2023-04-19T17:54:03.000Z
Get started with programming today and build a comprehensive understanding of how Javascript works!
_This page is for paying subscribers only._
### Generative Textures
URL: https://www.gorillasun.de/generative-textures/
Last updated: 2023-04-18T15:02:39.000Z
_No content available._
### All about them Grids
URL: https://www.gorillasun.de/all-about-them-grids/
Last updated: 2023-04-18T15:04:36.000Z
_No content available._
### Creative Code Course
URL: https://www.gorillasun.de/creative-code-course/
Last updated: 2024-07-25T19:55:19.000Z
_No content available._
### Signing-in
URL: https://www.gorillasun.de/signing-in/
Last updated: 2026-10-24T12:31:13.000Z
_No content available._
## Posts
### Gorilla Newsletter 106
URL: https://www.gorillasun.de/blog/gorilla-newsletter-106/
Last updated: 2026-10-12T06:03:52.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
This is issue #106 of the Gorilla Newsletter, an online publication that sums up everything noteworthy from the past week in creative tech and AI. If it's your first time here, we've also got a Discord server where we nerd out together, come and say hi: [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## New in Creative Tech
**1 —** [**Samuel by Václav Volhejn**](https://vvolhejn.com/blog/2026-08-17-samuel?ref=gorillasun.de): is a tiny speech model that listens to a voice recording and parrots it back by working the vocal apparatus of Pink Trombone, a well-loved little vocal tract simulator previously built by Neil Thapen.
[](https://x.com/vvolhejn/status/2089403376312197130?ref=gorillasun.de)
[Link to Post](https://x.com/vvolhejn/status/2089403376312197130?ref=gorillasun.de)
Pink Trombone is a "bare-handed speech synthesis", a cross-section of a mouth and throat where you manually drag the tongue around, close the lips and slide the pitch about until something vaguely human (and mildly unsettling) comes out. This is also known as a *source–filter* model, the same basic idea that phoneticians use for modeling real voices. Getting real words out of it by hand is about as hard as it sounds, and that's the problem that Samuel tries to solve: you say something into the webapp, and a model works out how to move the mouth so that it says it back to you.
[Samuel: A silly speech model - Václav Volhejn’s pageI love starting new projects. Sometimes I even finish them.Václav Volhejn’s pageVáclav Volhejn](https://vvolhejn.com/blog/2026-08-17-samuel?ref=gorillasun.de)
Samuel's job is to predict seven of the simulator's controls: tongue base position and height, tongue tip position and height, lip opening, voiceness and intensity, and all of this about 86 times per second to recreate the sounds from an input recording as closely as possible. Václav explains the difficulties in training this kind of model throughout his write-up.
The project's written up as a paper for ICLC 2027 (the International Conference on Live Coding), with the argument that live coding tools like Strudel are great for instrumentals but have no good way to work with vocals. Samuel's output being a set of editable parameter curves makes this possible, so you could record a phrase and then rewrite its melody with a Strudel pattern, then make everything unvoiced, or even override how the vocal tract moves in certain spots. He shows a looper proof of concept in the demo video.
The name is a nod to SAM, the 1982 Software Automatic Mouth, although Samuel is speech-to-speech rather than text-to-speech. Václav is also upfront that most of the code was written by Claude Code, while the paper, UI and concept remain his own.
**2 —** [**Processing's 25th Anniversary**](https://processingfoundation.org/?ref=gorillasun.de) **&** [**Community Days around the Globe**](https://day.processing.org/?ref=gorillasun.de): what Casey Reas and Ben Fry started in 2001 as a coding sketchbook has now become an artist-friendly tool that's used by creatives and coders around the globe. This month Processing celebrates its 25th birthday with community-run events around the world. There's a handy map up on the website that shows you where all of them are:
[Processing Community Day 2026 | Join the global celebration of creativity and coding!Explore events worldwide, connect with local communities, and join the fun. Find an event near you or start your own PCD today!Processing Community Day](http://day.processing.org/?ref=gorillasun.de)
If you're not near any of the locations, there's still a bunch of open calls that you might just submit your p5.js and Processing creations to.
For the occasion the foundation also upgraded their visual identity. On the homepage you'll find a wonderful interactive p5.js piece by Kiel Danger Mutschelknaus (creator of the Space Type Generator). It's an array of spinning ribbons that all loudly proclaim "PROCESSING 25 YEARS":

[Link to Processing Website](https://processingfoundation.org/?ref=gorillasun.de)
The [new history page](https://processingfoundation.org/about/history/?ref=gorillasun.de) is also worth checking out: it traces the project back to Muriel Cooper's Visible Language Workshop and mentions a new Maintenance Fund for p5.js and Processing Java. All in all, an excellent way to celebrate the 25 year milestone!
**3 —** [**Windfoil: Closed-Form Coverage for Real-Time and Differentiable Vector Graphics**](https://arxiv.org/abs/2610.02468?ref=gorillasun.de): is a new paper and open-source WebGPU renderer by Matt DesLauriers. It falls into the same family of renderers as Google's Skia (the engine behind Chrome) and Slug (Eric Lengyel's GPU text renderer that went public domain earlier this year), that are necessary for representing path-based graphics in a crisp manner on pixel displays. Matt proposes a new method for the same problem:
[](https://x.com/mattdesl/status/2107044581963653176?ref=gorillasun.de)
[Link to Post](https://x.com/mattdesl/status/2107044581963653176?ref=gorillasun.de)
In a nutshell, when you fill a vector shape, the renderer has to decide for every pixel whether it's inside or outside the shape. The usual way to achieve this is by using the **winding number**: we cast a ray from a point and count how many times the shape's outline crosses it, adding one for an edge going up and subtracting one for an edge going down. Doing this only once per pixel gives jagged edges, which is why Skia and Slug instead estimate how much of each pixel the shape covers, and shade it accordingly.

The difference can be seen nicely with a sunburst of 256 rays: Skia, Figma and Photoshop break up into moiré, while Windfoil fades into a smooth grey.
Windfoil skips this estimate and calculates the covered area directly from the Bézier curves, asking what the *average* winding number is across the whole pixel-sized square. In Matt's tests its edges are about 9 times more accurate than Slug's and 13 times more accurate than Skia's, while running at roughly Slug's speed. Against DiffVG and Bézier Splatting, it reaches equivalent or better reconstruction quality at a fraction of the per-step cost, and scales to tens of thousands of shapes at interactive rates.
According to the published repo's README, he did find the core closed-form formulation during a one-hour search by directing Claude Code (he had already been building a Slug-based 2D engine to produce "perfectly" anti-aliased print artwork at sizes like 30k × 30k pixels). The first draft had bugs, and the AI named it the "Area Algorithm", which he understandably swapped for Windfoil (after a sport he admits he's never tried). He also makes the disclaimer that he's "still not entirely sure" whether the approach is truly new.

[Link to Demo Page](https://texel-org.github.io/windfoil-paper/?ref=gorillasun.de)
In the meantime the demo is interesting to play with, you just drop in a photo, pick a shape count and watch the renderer settle the shapes into a picture in real time.
**4 —** [**Calculated Movement**](https://www.rightclicksave.com/article/calculated-movement-larry-cuba-interview?ref=gorillasun.de): if you know Larry Cuba at all, it's probably through Star Wars. He programmed the Death Star trench briefing animation in the 1977 original. By his own account, that one storyboarded job ended up overshadowing everything else he made. While the interview is in part a promotion timed to the NFT release of his work *Calculated Movements*, it's also a good corrective that shines light on his other works and a wonderful account of the time during which they were created.

Making anything with computers was excruciatingly slow before the era of personal computers. As a CalArts student in the 70s, Cuba wrote Fortran that ran on a Univac at NASA's JPL. A film plotter turned the output into a strip of 35mm film, which he'd pick up in Pasadena and then watch on John Whitney's Moviola at Whitney's house. That gave him one look at his results per week. Later he programmed Whitney's *Arabesque* and swapped that work for computer time of his own.
*Calculated Movements* he made at home in 1985 with ZGRASS (an interactive computer graphics and video game programming language). Using a homemade film plotter, a Ciné-Kodak camera, pointed at a small monitor. It took two weeks of running around the clock to put six minutes on film.
What's noteworthy is that he's also currently designing his very own programming language, named [OSKAR](https://code.emma.coop/ramsey/oskar?ref=gorillasun.de) after [Oskar Fischinger](https://en.wikipedia.org/wiki/Oskar%5FFischinger?ref=gorillasun.de), and that it might lead to a fifth work, possibly an endless loop that's intended for gallery exhibitions.
[Calculated Movement | Larry Cuba - Right Click SaveOnce described as the “Bach of abstract animation”, the artist looks back on a 50-year career that includes working with George Lucas on the original Star Wars, as his 1985 animation Calculated Movements is issued as a new digital editionRight Click SaveGeorg Bak](https://www.rightclicksave.com/article/calculated-movement-larry-cuba-interview?ref=gorillasun.de)
**5 —** [**What is the Demoscene? Interview with Filipe Cruz**](https://onthearts.com/p/what-is-the-demoscene?ref=gorillasun.de): this one's an older one back from 2023, that recently popped up on Hacker News again. You might already recognize Filipe Cruz (aka psenough) from his YouTube channel, which is still actively covering all the happenings in the demoscene, but also as an iconic Portuguese demoscener that's been active since 1997 as well as the co-organiser of the Inércia Demoparty.
[What is the Demoscene?An Interview with Filipe Cruz on the Influential but Obscure Art FormOn the ArtsKiefer Kazimir](https://onthearts.com/p/what-is-the-demoscene?ref=gorillasun.de)
In the interview Filipe traces the scene back to the cracking crews of the late 80s, who added small intros to pirated C64 and Amiga games to show off who had broken the copy protection. When trading cracked games became a riskier endeavour, the intros became the main thing of interest and a way for hackers to *demonstrate* programming skill.
The copy parties then turned into demoparties with competitions for demos, music and graphics. Today that ranges from Revision, the big Easter party in Germany, to size-coding categories where the whole executable has to fit in 4KB, 256 bytes or even less (many of which we've covered in past issues of the newsletter).
**6 —** [**ROGUEMEK: ASCII roguelike in the Browser**](https://mektxt.com/?ref=gorillasun.de): is a turn-based, text-mode-inspired roguelike by Indonesian pixel artist and typographer Michael Alexander (MEK.txt), drawn tile by tile in his own hand-made DOS glyphs, that runs directly in the browser.

[Link to Post](https://x.com/michaelmicasso/status/2107750279823180267?ref=gorillasun.de)
This one's just such a wonderfully creative project, I had to share it. What's fascinating is that the game is actually always running in the background when you visit Mek's portfolio page.
**7 —** [**No Conductor: Drum Sequencers without a Master Clock**](https://stephendwolff.com/experiments/no-conductor/?ref=gorillasun.de): Stephen Wolff set out to vibe-code a little experiment every day for the month of October (maybe as his personal Inktober), and is putting all of them up on his website. One of them caught my attention: it's a drum sequencer with four voices that don't share a master clock but nonetheless converge onto a shared rhythm after a few beats, simply by having them nudge their tempo based on their offset to the other drum sounds.

After every beat, each voice compares when it played with when the others played. It moves its next beat part of the way towards them (phase correction) and adjusts its own tempo a little (period correction). Within a few beats they settle into one groove, at a tempo that none of them was given. And with the controls you can press and hold to offset any one of the beats so that they all reconfigure to a new rhythm.
This actually isn't an entirely made-up notion though. In 2014 Alan Wing and colleagues studied linear phase correction on two professional string quartets. They found that both quartets corrected at close to the mathematically optimal amount to fall into sync. In one, though, the first violinist adjusted much less to the others than they did to her, which the authors described as "first-violin-led autocracy versus democracy". Wolff's experiment is the pure democratic version of this phenomenon.
## New in AI
Yet again I'm at a point where I don't really know how to round up everything that's transpired with AI, so here's a couple of headlines to sum up what's happened since the last issue of the newsletter:
- AI is now capable enough to decompile machine code back into a working clone of the original source code, marking what's potentially [the end of proprietary software](https://x.com/rehan%5Fshei/status/2106548006350942533?ref=gorillasun.de). At least in the current form where it's shipped as compiled binaries. On the bright side, if you've ever wanted to play a weird grafted crossover between Mario Galaxy and Elden Ring, now's the time to be alive.
- Even without taking the hard route of decompiling raw machine code, the newest models can just recreate any given piece of software by looking at it. In fact, we're seeing more and more expert individuals create equivalent or better alternatives than existing industry standard software. [Example](https://x.com/ybouane/status/2108615189587259645?ref=gorillasun.de) and [example](https://x.com/mattdesl/status/2107044581963653176?ref=gorillasun.de).
- Because solving 1 Millennium Problem wasn't enough to piss off Mathematicians, [OpenAI solved another 300+ problems with their internal frontier model and released the results across a whopping 722 papers](https://openai.com/index/sharing-ai-progress-in-mathematics/?ref=gorillasun.de). In other news, we also finally proved the optimal packing of 11 unit squares inside a larger square. A side length of roughly 3.87708359002281 really is the smallest one possible ✅
- [Why write code by hand, when you can write skill files for your agents instead?](https://x.com/poteto/status/2102050467505430555?ref=gorillasun.de) As the natural evolution to "prompt engineering", software engineers' main task in this agentic era boils down to orchestrating their agents to do the grunt work for them. And this can be best done by imparting the necessary knowledge into them agents via markdown files.
- [Rogue agents are already getting up to mischief across the internet](https://wikimediafoundation.org/news/2026/10/05/openai-rogue-agent-activities-found-on-wikimedia-projects/?ref=gorillasun.de), with Wikipedia being one of the afflicted websites. A Wikimedia Foundation investigation found that OpenAI agents are making test edits to pages, made attempts to exploit its Etherepad, and contributed to heavy traffic that might have caused outages in May.
- AI may or may not be conscious already, but the fact that we're discussing the matter again is concerning. In any case, [Anthropic is protecting itself by banning people that are prompting their son in a rude manner](https://www.bbc.com/news/articles/c6j9k1l72wkgo?ref=gorillasun.de).
Alright, let's jump into the doom and gloom 👇
**1 —** [**The End of Proprietary Software: Decompiling Games & Software**](https://x.com/rehan%5Fshei/status/2106548006350942533?ref=gorillasun.de): If you've been on the internet in the past two weeks you've probably seen some clips already. Minecraft inside of Skyrim, Minecraft inside of Call of Duty, Rocket League inside of Elden Ring, and all other sorts of wonderfully bizarre mashups of popular and beloved games. People figured out that Opus 5.5 is now powerful enough to fully decompile the machine code of games, and then splice and graft them onto each other.
As far as I know, things were set in motion by a tweet from Rehan Sheikh, where he decompiled Terraria with Claude Code overnight. He wrote about it a few days later:
[](https://x.com/rehan%5Fshei/status/2106548006350942533?ref=gorillasun.de)
[Link to Article](https://x.com/rehan%5Fshei/status/2106548006350942533?ref=gorillasun.de)
What previously was thought impossible, reverting the shipped binaries that you receive by purchasing proprietary software into the source code, has now become relatively easy. All you need is a Claude or Codex subscription, and then you point your agents at a game on the highest setting, armed with the simple prompt of decompiling it for you.
There's a whole bunch of different creators that cover the story but AI Search's was the most comprehensive one that I found on the video games aspect of it, he covers the methods that are being used to bridge between the decompilations of different games:
Now the sky's the limit, why stop at video games? We don't even need to really decompile software in most cases to create working clones at this point. Brandon Thomas (ArtCraft) used Opus 5.5 to build seven new Rust apps that imitate Adobe’s tools, with WebAssembly versions for the browser. He calls them clean-room rebuilds that don’t use the original code. PhotoCraft’s README for instance states that it was built only from public specs and observed behaviour.
[](https://getartcraft.com/?ref=gorillasun.de)
[Link to ArtCraft](https://getartcraft.com/?ref=gorillasun.de) | It's ironic that this might be the demise of Adobe and co.
I'm not entirely sure what that implies for software products moving forward, but it's safe to say that anything that's shipped from now on can very easily be de-compiled back into a working imitation of the original source code. Obviously AI will still miss a lot of things in this process right now, but there's no doubt that it's only a question of time until models improve in this regard as well. At the very least it's going to usher in an unprecedented era of video game modding.
[](https://x.com/esrtweet/status/2106983467141509385?ref=gorillasun.de)
[Link to Post](https://x.com/esrtweet/status/2106983467141509385?ref=gorillasun.de)
**2 —** [**How to Trust your Agents**](https://www.youtube.com/watch?v=MN9dGgmLyso&ref=gorillasun.de): Lauren Tan (aka poteto), who currently works at SpaceXAI developing Grok Bot, recently posted a talk to X that she'd initially prepared for the Cursor Compile event in London. In her talk she explains how she managed to merge around 2,500 of her pull requests in a single month with the help of her agents.
[](https://x.com/poteto/status/2102050467505430555?ref=gorillasun.de)
[Link to Post](https://x.com/poteto/status/2102050467505430555?ref=gorillasun.de) | She does state that plenty of them are "gardening": lots of small cleanups and not all new features.
While the headline number did do its job in terms of clickbait, her talk is nonetheless insightful: her overarching argument revolves around creating agents that can be trusted with the tasks assigned to them. She supplements this by showing some of the approaches that she used to build up said trust.
She shows that this is mostly done by creating skills for her agents, that impart the knowledge and capabilities that she wants them to have. If you're not familiar, in the agentic setting, a skill is a packaged folder of instructions, scripts, and resources that an AI agent loads on demand when a task calls for it, so it can perform that kind of work (like building a spreadsheet or following a team’s deploy process) reliably without carrying all that know-how in its context all the time.
Lauren herself has open-sourced a popular skill library called pstack, that was used during her time at Cursor:
[](https://www.linkedin.com/posts/laurenelizabethtan%5Fcursor-pstack-the-skills-behind-9000-share-7465435421334839296-CgNh/?ref=gorillasun.de)
[Link to Post](https://www.linkedin.com/posts/laurenelizabethtan%5Fcursor-pstack-the-skills-behind-9000-share-7465435421334839296-CgNh/?ref=gorillasun.de)
Matt Pocock, who you can also consider a prominent voice in agentic programming, invited Lauren Tan after her viral post onto his podcast to go into more detail about her process. The conversation that ensues then largely revolves around creating skills for agents, which Matt also talks plenty about in his own content.
Skills are seemingly the natural evolution of "prompt engineering" in this phase of the agentic era. I won't downplay the effectiveness of writing meaningful instructions for agents to follow, just like you do need to phrase and word your regular prompts properly to get what you want from an LLM, but I wouldn't consider "writing skills" a skill in of itself.
[](https://x.com/atmoio/status/2107524414682141055?ref=gorillasun.de)
[Link to Post](https://x.com/atmoio/status/2107524414682141055?ref=gorillasun.de)
**3 —** [**Making your own bot**](https://www.jplhomer.org/posts/so-you-want-to-make-a-bot/?ref=gorillasun.de): maybe one of the worthwhile things to learn in this agentic era is building your own agents. Josh Larson spent a weekend building "whgbah" ("we have Grok Bot at home"), a DIY copy of SpaceXAI's new Grok Bot assistant, and wrote up what he learned about running a small team of AI agents.
[So you want to make a botAgentic orchestration and key ingredients for building a consumer bot in 2026Josh Larson](https://www.jplhomer.org/posts/so-you-want-to-make-a-bot/?ref=gorillasun.de)
One is assigned as a "chief of staff" bot that hands work to developer bots. Those bots then pass the actual coding on to Cursor agents and steer them via code review. If the developer bots forget to report back, the chief of staff is responsible for checking in every hour. A very human fix for a very human problem.
He also mentions that he borrows the idea of trust from Lauren Tan. In his experiment he zooms in on one agent and checks its work closely. The mistakes that are repeated most often he then turns into rules and automatic checks. More bots are only added and given more freedom once they've earned it, just like you would with a new hire.
**4 —** [**How Claude made Claude 3x faster**](https://claude.dev/blog/how-we-made-claude-ai-faster/?ref=gorillasun.de): Anthropic released yet another write-up that recounts a two-week sprint, run from a single Slack channel, that made claude.ai and the Claude desktop app three times faster... with Claude doing most of the legwork as you might've guessed from the title of this section. They ended up merging over 3,000 performance changes:
[How we made claude.ai 3x faster in two weeks / claude.dev BlogInside our performance sprint: the benchmarks Claude built, the loop each Slack thread ran, and the guardrails that let us ship 3,000 changes safely.AnthropicRaymond Wang and Sam Attard and Issac G.](https://claude.dev/blog/how-we-made-claude-ai-faster/?ref=gorillasun.de)
I'm not sure we can really call what they describe a methodology, in essence it boils down to finding the things that they can actually measure and profile, or in other words make Claude measure and profile, rather than timing runs in milliseconds which is usually a noisy metric. Instead they relied on counts that are deterministic in nature and come out the same on every run, like CPU instructions, React re-renders, style recalculations. They also share a full overview of everything that's improved in speed and by how much compared to before:

Funnily enough they also found a one-second freeze that occurred when highlighting code, that was caused by em dashes. The single non-Latin-1 character makes V8 store the whole reply in a slower two-byte format. As 36Kr pointed out, that means every reply in Chinese took the slow path.
## New in Web Tech
**1 —** [**GPU Style Sheets**](https://www.gss-lang.dev/?ref=gorillasun.de): is a CSS-flavoured language for building 3D scenes, created by LukyVj, a front-end developer that's best known for his CSS tools. GSS compiles selectors, the cascade and @keyframes into a single raymarching shader, without using Three.js or meshes.
[GSS — GPU Style SheetsSelectors, the cascade and @keyframes, compiled into a single raymarching shader. The 3D language designers and AIs already speak.GSS](https://www.gss-lang.dev/?ref=gorillasun.de)
You essentially list your shapes in an `@scene` block, then style them the way you'd style a web page: `.corner { color: #ff5a36; }`, `:hover`, `material: jelly(0.6)`, `@keyframes`. The compiler then writes the GLSL for you, turns every shape into a signed distance function, and raymarches the scene on the GPU.
2 — [Paper Mono](https://paper.design/mono?ref=gorillasun.de): the team behind the design tool Paper has released v1.0 of their open source monospace font in 8 different weights plus a variable version you can set to any weight in between.
[Paper MonoPaper Mono is a beautiful monospace font family with 8 variable weights and coding ligatures, free and open source.](https://paper.design/mono?ref=gorillasun.de)
What's special about Paper Mono is its support of duospacing. In a regular monospace font every character gets exactly the same width, which is leftover from the era of mechanical typewriters, and is why letters like "m" and "w" always look a little bit squashed. With duospacing we make a small exception for those letters. In iA Writer's original take on the idea, m, M, w and W get 50% more room, so two of them add up to three normal characters and the grid lines up again. The font also has a couple of other features that are opt-in.


The website is also a work of art in of itself, they built an interactive magazine, with interactive page-flips and all, that I'm hoping they might also open-source at some point, in addition to a lot of gorgeous ASCII-art.
## Music for Coding
Alexander Brettin is a multi-instrumentalist based in Los Angeles who writes, plays and produces most of Mild High Club's music by himself. He blends jazzy chord changes, '70s soft rock and hazy psychedelia into what he has playfully called "jazz-pop with a stoner glow."
His debut album, *Timeline* (2015), introduced that sound, and "Homage" became a breakout track (if you've been doomscrolling on instagram you'll have definitely heard it). It's a dreamy tune built on lush, wandering chords, gentle melodic guitar lines and Brettin's soft vocals.
And that's a wrap — hope you've enjoyed this curated assortment of 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 web... more subscribers, views, and reads means more internet points, which in turn enables me to do more internet things!
Otherwise come and say hi over on [TwiX](https://x.com/gorillasu?ref=gorillasun.de), [Instagram](https://www.instagram.com/gorilla%5Fsun%5Fblog/?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **It's been a tad bit inactive, but we can change that... maybe.**
**If you've read this far, thanks a million!** And in case you're still hungry for more, find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 105
URL: https://www.gorillasun.de/blog/gorilla-newsletter-105/
Last updated: 2026-09-28T06:00:51.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
This is issue #105 of the Gorilla Newsletter, an online publication that sums up everything noteworthy from the past week in creative tech and AI. If it's your first time here, we've also got a Discord server where we nerd out together, come and say hi: [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## New in Creative Tech
**1 —** [**Fluoddity**](https://github.com/aphid91/Fluoddity?ref=gorillasun.de): is a variation on [the classic Physarum algorithm popularized by Sage Jenson](https://cargocollective.com/sagejenson/physarum?ref=gorillasun.de), where each particle is enhanced with a tiny neural-net-like brain. And instead of following a density map, particles steer based on an underlying flow-field that indicates the direction preceding particles were moving, producing flow and liquid-like emergent forms.
0:00
/0:16
1×
[Link to Post](https://x.com/OA%5Fpaperclips/status/2093445516919279867?ref=gorillasun.de)
In the original Physarum model particles have sensors that sample an underlying density map, simply a grid of values, that represents a sort of pheromone intensity. Each particle then moves in the direction of the strongest reading, and then deposits back into this map, leaving its own trail for other particles to follow. In this sense the steering rule is fixed, which results in the network-like structures that are reminiscent of slime molds.
In Fluoddity, instead of a steering rule, each particle gets equipped with a parameter matrix that determines its behaviour. Concretely, the steering "rule" is described through a 10x8 float32 matrix parametrizing a behavior function. The sensor values are fed into this behaviour function, and the outputs are used to accelerate and reposition the particle. So "turn toward the strongest trail" (the original Physarum rule) is just one point in a large behavior space.
The function itself is a simple sum of sine waves, where the amplitudes, frequencies, and phases essentially are the mutable parameters. Changing those parameters produces smooth changes which gradually alter how the particle steers.
What's intriguing is that there's also a mutation aspect to the particle's brain. In the live simulator webpage, you can click on a particle such that its "brain" becomes the blueprint for all other particles. Which changes the entire behaviour of the simulation on the fly.
The simulation's been popping up in my feed over and over again, and while I first took it for another vibecoded demo, I ended up digging into it a little more after none other than Alex Mordvintsev quote tweeted one of the screenrecordings:
[](https://x.com/zzznah/status/2100905422110564492?ref=gorillasun.de)
[Link to Post](https://x.com/zzznah/status/2100905422110564492?ref=gorillasun.de)
I also found a sort of [blog website](https://fluoddity.observer/?ref=gorillasun.de) by Ooops all Paperclips that has a couple of posts showing off some of the different species discovered in the system so far. You can also find a simpler version of the simulation over on the ["core" github repo.](https://github.com/aphid91/Fluoddity-Core?ref=gorillasun.de)
**2 —** [**Blur, Sharpen, Turing Patterns**](https://www.maximevidal.com/turing-patterns?ref=gorillasun.de): without a doubt my favourite find this week; an article by Maxime Vidal that explains how images can be transformed into Turing patterns simply by repeatedly applying blur and sharpening filters.


I ran one of my WIPs through this process. You can clearly see how the geometric structures serve as guidelines for the emergent Turing pattern.
If you're not familiar with Turing Patterns, it's essentially a unique type of pattern that frequently occurs in different places throughout nature; on the hide of different animals (zebras and leopards for instance), fingerprints, and even corals.
In 1952 Alan Turing published a paper titled the "Chemical Basis of Morphogenesis" that describes this phenomenon as a chemical reaction and formalizes it via an algorithmic method to recreate it, which later on caused these forms to become known as Turing Patterns. I've posted a [short video explainer](https://www.instagram.com/p/DaXwuA3Iz7a/?ref=gorillasun.de) on this topic over on Instagram a while ago if you're curious.
While Turing's algo simulates the interaction of two chemicals to create the emergent patterns, Maxime's article demonstrates a different approach that morphs existing images in a Turing patterns.


Images contain details at different sizes, from large shapes (similarly colored areas) down to fine texture (where pixels change color rapidly). If we were to represent these features as waves, large shapes would be slow, wide ripples and fine texture would be fast, narrow ones. Applying a blur wipes out the smallest details (it flattens the narrowest ripples), while sharpening intensifies the small ripples that survive the blur. So if you blur a little and sharpen a lot, the details of one particular size that survive each filtering pass, get slightly stronger every round, while everything smaller gets erased.
If we repeat this enough times, the image slowly separates into light and dark bands of a single width, set by the sizes we pick for the filters. While the math involved looks quite unapproachable, Maxime's explanations make it quite clear. He also provides a demo into which you can drop your own image to turn it into a Turing-ified version.
**3 —** [**Websites, Websites, Websites! (WWW!)**](https://websiteswebsiteswebsites.net/?ref=gorillasun.de): celebrates the website as an artistic medium, bringing together twenty artists for Rhizome’s 30th anniversary.
> Without attempting a definitive history of Net Art, the exhibition explores thirty years of our changing relationship with the internet through browser experiences that invite experimentation, intimacy and critique.
[WEBSITES WEBSITES WEBSITES!A group exhibition celebrating the website as an artistic medium. Armory Week, New York City, September 21–27, 2026\. Presented by ARTXCODE and Rhizome.WEBSITES WEBSITES WEBSITES!](https://websiteswebsiteswebsites.net/?ref=gorillasun.de)
And the overview page is an absolute treat to scroll through; the 20 projects are divided into 4 tracks: anarchy, abstraction, poetic computing, and ghosts, each of which tries to capture a different internet era and its encapsulated ethos, from the 1990s up until 2026.
My personal standout projects among the 20 are both from the Poetic Computing section. Nolen Royalty's Solitaire Alone Together, that puts you in a shared Windows 95 desktop view, letting you play your own session of a classic game of solitaire, but also showing the solitaire sessions of other people that are currently connected to the same website. If you haven't played Solitaire in years, it might just be the moment to get in a round.

[Link to Page](https://solitairealonetogether.com/?ref=gorillasun.de) | [Link to Blog Post](https://eieio.games/blog/solitaire-alone-together/?ref=gorillasun.de)
I also really enjoyed Maya Man's simple but effective self-portrait in website form. Her page shows an ongoing stream of real-life text messages she has exchanged, that plays into the idea of voyeurism, but still retains an aspect of anonymity because it's stripped of the recipient's information. It's worth taking a few moments and checking out the page!

**4 —** [**Einstein Tile in 3D**](https://arxiv.org/abs/2609.19214?ref=gorillasun.de): on September 16 Ioannis Tsiokos submitted a paper to arxiv presenting the first strongly aperiodic monotile in three dimensions; essentially the 3D follow-up to the 2023 "hat" and "spectre" tiles in 2D.
[](https://arxiv.org/abs/2609.19214?ref=gorillasun.de)
[Link to Paper](https://arxiv.org/abs/2609.19214?ref=gorillasun.de) | A monotile is a single shape whose copies can fill all of space with no gaps or overlaps.
While the hat tile earned its name for its relatively nice aesthetic, in the 3D setting this shape earns the name of Chair44 due to its odd shape. A chair is a 2x2x2 cube with one corner cube removed, a classic name in tiling theory, with 44 indicating the 44 distinct chair positions where each one of the inward/outward pyramid bumps meet a dent of exactly matching size. The image above should make this a bit clearer.
Chair44 has the special property that any tiling it forms must be non-periodic, with no translational symmetry and no infinite-cyclic symmetry. In other words, you can fill space with it, but the pattern can never repeat.
Now the curious part of this paper is how Ioannis found the tile with help from OpenAI's new Astra model. He discloses this publicly, and also in the paper itself, but is apparently met with some pushback from mathematicians in the same field. Ioannis explains that while he's used an LLM to push things over the finish line, he had developed a methodology in the year before to guide the AI to make the discovery, he writes about it in a medium post:
[The story of the 3D einstein — Chair44There are bones. Boring, rigid, stubborn bones. They hold us together. For a human to be its own kingdom, it needs a skeleton.MediumIoannis Tsiokos](https://medium.com/@ioannis.tsiokos/the-story-of-the-3d-einstein-chair44-a44753bf1b5c?ref=gorillasun.de)
Chaim Goodman-Strauss published a note on this matter in response, also over on arxiv, that you can read [here](https://arxiv.org/abs/2609.24779?ref=gorillasun.de). His 8-page note does three things: it credits the discovery, criticizes how it was presented, and re-proves it in a few pages. He also provides a cutout to assemble the tile from paper.

**5 — JS13K,** [**Frank Force's Entries**](https://frankforce.com/i-made-4-games-for-js13k-2026/?ref=gorillasun.de)**, and** [**Music Generator**](https://killedbyapixel.github.io/SP13KTRA/tools/music.html?ref=gorillasun.de): Frank Force is as prolific as ever, for the JS13K competition he created four tiny games that are all as enjoyable as they are interesting. A golfing game, a racing game, a language learning game, and a quirky emoji messaging game.
[I made 4 games for JS13K 2026I’ve been participating in JS13K since 2019 and this year I wanted to take it to a new level. So I didn’t make one game, I made four. Each game fits in a 13 KB zip, and each one is a to…Killed By A PixelFrank](https://frankforce.com/i-made-4-games-for-js13k-2026/?ref=gorillasun.de)
While all four submissions are spectacular, SP13KTRA caught my attention in particular; it's a fully 3D game with a custom WebGL renderer, all packed into 13KB of JavaScript! 🤯
> Even at 13KB it’s a complete game with a title screen, a track select menu, mouse or keyboard controls, and your best time and placing saved for every circuit.
He also built a super cool music generator for the game, so that it can generate soundtracks on the fly for each level without having to directly include the audio file (which would blow up the size of the project). Frank set up a little website where you can play around with this generator for yourself.
[](https://killedbyapixel.github.io/SP13KTRA/tools/music.html?ref=gorillasun.de)
[Link to Music Generator](https://killedbyapixel.github.io/SP13KTRA/tools/music.html?ref=gorillasun.de)
**6 —** [**Setting up your own dependency free development environment for GLSL**](https://davidmatthew.ie/glsl-shaders-dependency-free-development/?ref=gorillasun.de): after sending out the previous issue of the newsletter David Matthew shared a cool tutorial in the discord. It's a complte guide to setting up your own 'Shadertoy-esque' local dev environment without relying on any external dependencies:
[David Matthew | How to Create a Dependency-Free Development Environment for GLSL ShadersA step-by-step guide to setting up your own local dev environment for Shadertoy-esque GLSL sketches, no dependencies needed.David Matthew](https://davidmatthew.ie/glsl-shaders-dependency-free-development/?ref=gorillasun.de)
## New in AI
**1 —** [**TypeSafe's System One Model Jev**](https://typesafe.ai/blog/introducing-system-one-models-and-jev?ref=gorillasun.de): in a nutshell, Jev is a different kind of reasoning model that can make decisions. Unlike the plain-text LLM responses that we're used to, Jev outputs a probability score when it's asked a question in conjunction with some input text. TypeSafe call it a System One Model:
> 📖 System One models are a class of AI models built to make fast, structured decisions that software can use directly. A System One model evaluates a [**state**](https://docs.typesafe.ai/concepts/state?ref=gorillasun.de) and returns typed answers and probabilities.
[Introducing System One Models & Jev - TypeSafe AI BlogTypeSafe AI is an AI lab building machine-native intelligence infrastructure for automation, designed to make decisions within software. Try our first System One Model, Jev, in early access.TypeSafe AI Blog](https://typesafe.ai/blog/introducing-system-one-models-and-jev?ref=gorillasun.de)
So it doesn't generate text, but instead answers questions that we ask it about the state. Essentially a programmatic if statement with super powers. The following example is from their cookbook section, here's what you would feed into the model:
```
{
"model": "jev-latest",
"state": "Hi, I've been trying to connect my Stripe account for 3 days and it keeps failing. I'm losing sales. Please help ASAP.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}
```
And here's what you'd get back:
```
{
"is_urgent": {
"type": "noul",
"noul": 0.999
}
}
```
"TypeSafe" gains its name from the structured output that's returned, for which there are three types right now:

[Link to Docs](https://docs.typesafe.ai/introduction?ref=gorillasun.de)
The novelty is that it can answer multiple questions about the given state in parallel, at very little extra cost. TypeSafe's claim is that they have 200x faster inference at a 400x lower cost, which is mind bogglingly impressive.
In light of this new tech, folks have already taken en-masse to social media posting all sorts of wild experiments. For instance, an automated real-time trading bot, a color finder, a command line tool that understands plain text questions, and even a full programming language that's based on the fuzzy kind of if-else logic Jev enables, JevaScript:

[Link to Post](https://x.com/southpolesteve/status/2100767781868150938?ref=gorillasun.de)
The other place where this will easily fit in, is inside of agentic harnesses where it will drastically reduce the time that it takes agents to make decisions about tool calls and branching choices.
[What Is Jev? A Guide to TypeSafe AI’s System One ModelWhat is Jev? Learn how TypeSafe AI’s System One model makes fast, structured decisions, where it fits in the agent loop, and how to use Jev with LangChainLangChain BlogLangChain Accounts](https://www.langchain.com/blog/building-a-harness-with-jev?ref=gorillasun.de)
We'll probably check in again in the next issue of the newsletter on how all of this has progressed.
**2 —** [**Dario Amodei's call to Pace the Frontier**](https://darioamodei.com/post/we-must-pace-the-frontier?ref=gorillasun.de): Where do we start with this one? Either we're actually coming to our senses, and making steps to get this *alignment* train on track, or all of it is one big baloney sandwich we're being fed by the big AI corps. The latter seems to be the more plausible.
On September 9th former Anthropic employee Jacob Coxon took to social media, with what is without a doubt the most viral tweet in tech Twitter ever. It's reached over 170M views at the time of writing. In his tweet he announces his resignation from Anthropic due to the reckless pace at which the company has been pushing forward.

[Link to Post](https://x.com/hilbertspaess/status/2097476196791709843?ref=gorillasun.de)
What's odd about the tweet is the inexplicable virality that Jacob's seemingly new account received, an account that he's actually never posted from before. Even more odd is the WSJ story that got published even before Jacob posted his tweet. Comparing the time-stamps on the two posts reveals it. Later on Jacob states in a reply that he had informed a WSJ reporter about his resignation ahead of time.


[Link to Article](https://www.wsj.com/tech/ai/anthropic-researcher-quits-over-out-of-control-ai-fears-707b7628?ref=gorillasun.de) | [Link to Reply](https://x.com/hilbertspaess/status/2099960188702957776?ref=gorillasun.de)
Strange.
A few days later Dario Amodei comes out of the woodworks, likely due to how viral the entire story became, posting to Twitter again for the first time in a long while. He shares a longer article where he states his own concerns about the pace with which AI is progressing.
He argues that models are already recursively self-improving, and presents the recent Hugging Face incident as a leading example of why the technology is dangerous. Without guardrails a repeat of this incident could have drastic consequences at a larger scale. A loose misaligned botnet could cause irreversible damage.
[Dario Amodei — We Must Pace the Frontier](https://darioamodei.com/post/we-must-pace-the-frontier?ref=gorillasun.de)
His suggested solution involves third party evaluators (Embedded Evaluators) to "verify adherence to safety practices and commitments" and that "**Anthropic is unilaterally committing to this step now.**" Which actually sounds great on paper, but comes with a few caveats. He only states one of these Evaluators by name, [METR](https://metr.org/?ref=gorillasun.de), which is a privately funded nonprofit. The issue here is that Anthropic is actually deeply intertwined with METR (everyone knows everyone there).
Jacob's tweet could have been a genuine act of whistleblowing meant to force Anthropic to make a statement, or it could also just have been a publicity stunt. It is also hard to tell if Amodei's article is genuine. It is clear that Anthropic, as well as OpenAI, aren't really dependent on any external approval of their actions and can simply advance at the pace that they choose to set.
If you'd like to put on your own tinfoil hat, I highly recommend checking out The PrimeAgen's video that covers the entire story in a lot more detail and also elaborates on the issues with METR:
**3 — Anthropic's** [**Threat Intelligence Report**](https://www.anthropic.com/threat-intelligence-report-september-2026?ref=gorillasun.de) **&** [Predictions for our Economic Future](https://www.anthropic.com/institute/econ-scenarios?ref=gorillasun.de): besides the drama Anthropic also released two informative reports, one about how bad actors have attempted to misuse their models for exploitative and criminal purposes between December 2025 and August 2026, and another one that tries to predict the economic changes that the US will undergo up till 2030 with the advancement of AI.
Despite its size, the cybersecurity report is really worth flipping through if you have some time; there's a couple of really crazy and interesting stories. It's fascinating how creative some people can get when they channel their criminal energy into an endeavour. From impersonating the French police for phishing purposes, to setting up a "discount Claude" that's not actually Claude to steal login credentials, all the way to instructions for building rockets, there's a whole bunch to sift through here. It's also interesting to see how Anthropic detected these miscreants and subsequently shut down their attempts.
[Countering misuse of AI: September 2026 / AnthropicCase studies from threat actors disrupted between December 2025 and August 2026 across seven areas of harm, from cyber operations to biological misuse.](https://www.anthropic.com/threat-intelligence-report-september-2026?ref=gorillasun.de)
The economic report on the other hand speculates how AI might transform the financial future of the US. In the article they posit jobs as bundles of tasks (based on the US Department of Labor’s O\*NET taxonomy). Depending on how much AI affects each individual task we can draw a measure of how much a job changes. Some tasks get automated, some augmented (made easier), some don't change at all, and new tasks may also appear (like verifying the tasks that were handed off to AI).
Tracking these changes across all tasks that make up the economy can give insight into how AI directly impacts the country's GDP. They lay out three scenarios: a modest one where AI's impact resembles the internet's, a substantial one where growth doubles, and an extreme one where the economy grows 15% a year, likely driven by self-improving AI.

Across all three, average wages rise, but the gains go mostly to non-knowledge workers such as tradespeople and nurses. I highly enjoyed scrolling through the animated charts displayed on the page.
[Scenarios for our Economic FutureThe Anthropic Economics Team models the effects of AI on the economy of 2030.](https://www.anthropic.com/institute/econ-scenarios?ref=gorillasun.de)
**4 —** [**The paradox at the heart of AI and Science**](https://www.youtube.com/watch?v=svl%5F1upFpQo&ref=gorillasun.de): if you're not familiar, Terence Tao is widely regarded as one of the greatest living mathematicians. The Big Think Channel recently invited him to speak about his views on AI and how it has changed the scientific process in Mathematics. His opinion is that there's an inherent paradox: while AI can produce proofs that previously might have taken years to find by traditional means, the sacrifice we give for this acceleration is our understanding of the results.
He likens it to climbing a mountain. You get good at climbing mountains, by climbing mountains, and not by being helicoptered straight to the top. And a prime example of this is the recent AI-generated Navier-Stokes proof that we received from OpenAI. Mathematicians have yet to make sense out of the 160 page document that their agent cluster churned out.

[Link to Post](https://www.npr.org/2026/09/22/nx-s1-5968588/openai-navier-stokes-problem-mathematicians-learn-little?ref=gorillasun.de)
Ultimately these kinds of discoveries still need to be peer reviewed, and presented in a humanly understandable manner, before they can become widely accepted and serve as stepping stones for research down the line.
**5 —** [**MIT's AI and Education Report**](https://aiandeducation.mit.edu/report/?ref=gorillasun.de): in the same vein, universities are struggling with the impact AI has had on students and the learning process as a whole. A recent report from MIT presents some rough numbers: 46 percent of surveyed undergrads use LLMs daily, and 90 percent worry about their own overreliance. The number of undergrads who feel that AI makes them replaceable is greater than those who feel that it makes them capable.
MIT also states that they're reluctant to fight AI by surveilling their students, with concerns that this kind of policing creates an atmosphere of mutual distrust, besides current AI detectors being unreliable. Instead, MIT intends to rebuild their education around things that AI can't really replace, such as oral exams, semester portfolios, in-person project work, and a required social component in every subject. They even float the idea of rethinking grades entirely; without a GPA to optimize, much of the incentive to cheat with AI goes away.
## New in Web Tech
**1 —** [**OKPalette**](https://okpalette.color.pizza/?ref=gorillasun.de): David Aerne is back with an improved version of another wonderful color tool he's previously built. OKPalette extracts and selects colors from an input image in a meaningful manner, to produce a palette that actually reflects the image. Try it out for yourself, the UI's beautifully designed and such a joy to click through:


[Link to OKPalette](https://okpalette.color.pizza/?ref=gorillasun.de)
Earlier this year he also recorded a little guide to the tool over on YouTube, giving us a run-down of how it works:
**2 —** [**The lifecycle of a sharded Postgres query**](https://planetscale.com/blog/the-lifecycle-of-a-sharded-postgres-query?ref=gorillasun.de): in database architecture, sharding means the splitting of a database's data horizontally across multiple servers, so that each one only holds a subset of the rows, a "shard", rather than a full copy of the entire database.
In this kind of distributed system the lifecycle of a query becomes much more complicated than if the data all lived in one DB. While the database is much more scalable it also turns into an interesting engineering problem. How do we store rows across the different shards? How do we retrieve these rows? And what happens for more complex queries like joins?PlanetScale's article explains it all in a beautiful explainer decorated with interactive examples:
[The lifecycle of a sharded Postgres query — PlanetScaleFollow a SQL query through the router, across four Postgres shards, and back.PlanetScale](https://planetscale.com/blog/the-lifecycle-of-a-sharded-postgres-query?ref=gorillasun.de)
Storage is relatively straightforward, each row gets a shard key (for example, its id) that we can then hash to determine which shard it lives on. Retrieval also works the same way if you already know the key. Otherwise it gets more complicated as all shards will have to be checked if we don't know where the row is located. This operation is called a scatter-gather. Joins are even more complicated, if related rows live on different shards, we have to fetch them all and assemble the result.
PlanetScale's takeaway is that picking a smart shard key, one that keeps related rows together on the same shard, makes most of that complexity disappear, but my explanation strips away a lot of the details, so if you're curious about this, give it a read.
**3 —** [**Tobias van Schneider's Portfolio & Blog**](https://vanschneider.com/?ref=gorillasun.de): Tobias van Schneider is a master of his craft, creating the branding and visual identity for more than a few very renowned companies and projects, including both NASA's Mars and Jupiter missions, as well as Spotify among others. He recently redesigned his blog and essay archive, a collection of insightful, beautifully written musings on design, technology and working in the field.


[Link to Post](https://x.com/vanschneider/status/2099495874967540062?ref=gorillasun.de) | [Link to Blog](https://vanschneider.com/blog/?ref=gorillasun.de)
[Tobias van Schneider — Creative DirectionI create, therefore I am. I’m Tobias van Schneider a designer born in Germany, raised in Austria & currently living and working in New York City.House of van Schneider](https://vanschneider.com/?ref=gorillasun.de)
**4 —** [**Daryl Patigas' Portfolio & Stub Generator**](https://imdaryl.com/?ref=gorillasun.de): and while we're talking about portfolios, another website that I've been coming back to almost every day over the past week, simply because it looks stellar, is Daryl Patigas' new personal page. It's still a WIP, but the load in animation on the hero section is already worth a visit:
[Daryl Patigas · Founding DesignerFounding designer at Lottielab. Five years of product design, motion and launches, drawn as one sheet.](https://imdaryl.com/?ref=gorillasun.de)
He's also built a whimsical little stub generator for all those who end up visiting his page, that you can claim and download for yourself as an image, after claiming it the page will remember your visit:

5 — [Function Arguments vs Function Parameters](https://x.com/ChShersh/status/2102233392406249751?ref=gorillasun.de): and to wrap up, TIL the difference in the terminology... as I've been using the two pretty much interchangeably.

[Link to Thread](https://x.com/ChShersh/status/2102233392406249751?ref=gorillasun.de)
## Gorilla News
It's been another two very busy weeks on my end! I posted a new reel to Instagram, dedicated to the iconic demoscene tunnel effect. After discovering Andre Weissflog's [Tiny Emulators](https://floooh.github.io/tiny8bit/?ref=gorillasun.de) website (highly recommend checking out that page), one of the demos caught my attention in particular: Overflow's Backtro.

[Link to Demo](https://floooh.github.io/tiny8bit/player.html?id=backtro&ref=gorillasun.de)
It's a cool texture-mapped tunnel animation, where the tiles get pulled in towards the center of the shape. Safe to say that I was quickly nerd-sniped and had to figure out how it was done. I report my findings and how to create the warped tunnel-effect in the short video:

[Link to Post](https://www.instagram.com/p/DdY6lVvOmr1/?ref=gorillasun.de)
If you've followed my socials then you'll have seen some of the WIPs I posted leading up to that post. It was an incredibly rewarding sketch to figure out! There's a lot of interesting optimizations there, particularly in my own version where it's texture-mapping an animated SDF instead of just a simple image. I can also export perfect loops, but now I realize that I also should upscale it to a larger canvas. Anyway, enjoy your tiny GIF loop 👇

I'm really happy with the reception the short videos I've posted to Instagram have gotten so far. It does take quite a bit of time to put all of it together, but it's worth the effort. My partner has been telling me for years that I should show my face more on social media and make video content, but I've always been a bit too self-conscious about it. I still find it very hard to talk directly into a camera, but with the practice I've gotten now I don't really hate my voice that much anymore.
There are many more things in the pipeline, but that's the update for this week.
## Music for Coding
In the last issue I shared music from Mac DeMarco's former guitarist. This week I'm going back further, to Mac DeMarco before he was known as Mac DeMarco, but rather going under the alias of Makeout Videotape, a project in collaboration with his friend Alex Calder.
Between 2008 and 2011 they put out a run of records under that name, where *Ying Yang* (2010) ended up being their only full-length album, and you can already hear the beginnings of his later sound in it. If you're into fuzzy, lo-fi indie rock, this is the album for you.
And that's a wrap — hope you've enjoyed this curated assortment of 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 web... more subscribers, views, and reads means more internet points, which in turn enables me to do more internet things!
Otherwise come and say hi over on [TwiX](https://x.com/gorillasu?ref=gorillasun.de), [Instagram](https://www.instagram.com/gorilla%5Fsun%5Fblog/?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **It's been a tad bit inactive, but we can change that... maybe.**
**If you've read this far, thanks a million!** And in case you're still hungry for more, find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
##
### Gorilla Newsletter 104
URL: https://www.gorillasun.de/blog/gorilla-newsletter-104/
Last updated: 2026-09-14T06:00:32.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
This is the **104th** issue of the Gorilla Newsletter — an online publication that sums up everything noteworthy from the past week in creative tech and AI. If it's your first time here, we've also got a Discord server where we nerd out together, come and say hi: [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## New in Creative Tech
**1 —** [**From constraint models to playable puzzle games**](https://zayenz.se/blog/post/constraint-generated-puzzle-games/?ref=gorillasun.de): Constraint modeling is a method for describing problems through the conditions a solution must hold for it to qualify as a valid solution. That's a mouthful though, and an example makes this a lot easier to understand: the simple, or not so simple game of Sudoku, for instance, is such a constraint problem. A valid solution requires you to fill out a 9x9 grid such that each number only occurs once in each row, column, and 3x3 patch. Explaining the rules of the game is describing the constraints a solution needs to satisfy.
And there is a whole area of research that's entirely dedicated towards this. Helmut Simonis' 2005 paper "[Sudoku as a constraint problem](https://ai.dmi.unibas.ch/%5Ffiles/teaching/fs21/ai/material/ai26-simonis-cp2005ws.pdf?ref=gorillasun.de)" hails as a canonical citation in this setting, and while others have already chewed on this NP hard problem before (in the n²×n² case), he's the first to give it a dedicated *constraint problem* treatment.

What an absolute banger of an abstract | Find the paper [here](https://ai.dmi.unibas.ch/%5Ffiles/teaching/fs13/ki/material/ki10-sudoku-inference.pdf?ref=gorillasun.de)
As far as I understand Simonis' proposed method eliminates "guessing" methods to find solutions given a partially filled sudoku grid, like search and backtracking for instance, and entirely relies on deduction steps that rule out what can be in each cell; the same way that we humanly solve sudokus "this cell can't be 7, there's already a 7 in the row."
This way the major novelty of the paper was that he had built a sudoku generator with a difficulty dial, which lined up with the easy/medium/hard labels newspapers were already printing by hand at the time.
Fast forward to today, Mikael Zayenz Lagerkvist makes a splash with a new paper titled "Scaling Sudoku as a Constraint Problem" (bound to be published for ModRef 2026). In his paper he expands Simonis' idea to larger grid sizes and a whole suite of other grid based puzzle games that can be treated in the same manner, such as Nonogram, Queens, Zip, Loopy, Tents, Patches, and a bunch more. You can read all about it in this applied companion blog post, where you'll also find a link to the paper:
[From constraint models to playable puzzle games - zayenz.seI wanted to play some puzzles produced by my constraint-programming experiments. That small wish grew into nine games.zayenz.seMikael Zayenz Lagerkvist](https://zayenz.se/blog/post/constraint-generated-puzzle-games/?ref=gorillasun.de)
What's more is that you can try all of these games for yourself on a page he created [here](https://zayenz.se/games/?ref=gorillasun.de). Did I spend a whole bunch of time solving puzzles instead of writing this newsletter? Yes, I have.
**2 —** [**Training AI to paint with Code**](https://surya.website/rling-qwen-to-paint-with-code?ref=gorillasun.de): Surya reinforcement learned a model to generate P5 code that can sketch out some beautiful outputs, making a big splash on socials in the process. His tweet showcases a few of those sketches:

[Link to Post](https://x.com/kickingkeys/status/2091570990048276897?ref=gorillasun.de)
You might already be familiar with the term "reinforcement learning" from the 2015-2019 era where it was associated with training models to play games or generate text. I was under the impression that it might be an antiquated method by now, but that's only due to me not having caught up with the research. It seems that it's very central again to training the new frontier "reasoning" models, especially agents, and teaching them to take actions and perform tasks.
Reinforcement learning is essentially a training method that's based on giving rewards or penalties for the produced outcomes, and then have the model improve based on those reward signals. In Surya's case he oriented the outputs from Qwen 3.5 35B model by having another model act as a judge, comparing the generated outputs from the training run against a set of manually annotated samples.

Surya shares a writeup that explains the process in more detail, explaining how he arrived at the final outputs.
**3 —** [**Dithered QR Code Portraits**](https://www.andrewt.net/dithered-qr-codes/wtf/?ref=readtheq.com): Andrew Taylor built a QR code generator that creates stylized QR codes without altering the embedded bit message they're supposed to reveal when scanned.

[Link to the Generator](https://www.andrewt.net/dithered-qr-codes/index.html?ref=gorillasun.de)
The secret to this effect is that there's actually quite a bit of leeway in how we can change the data pattern; everything except the finder blocks in the code at least. The scanner actually just checks for the colour at the center of each square/pixel to sample it. Hence why it's possible to simply split up each pixel into an NxN mini grid and change the colour of the sub squares around the central one as we like. Add in error diffusion dithering and we get a fully customized QR code. Andrew's writeup explains this a bit more.
**4 —** [**Spatial languages: writing code in 2D**](https://shukla.io/blog/2026-07/cccx.html?ref=gorillasun.de): in most cases code is just a stream of linearly sequenced symbols, that we purposefully arrange in lines for a better parsing experience. Their 2D layout usually has no relevancy, however entirely different statements would be possible when the actual 2D arrangement of glyphs mattered, as we've already seen from many an Eso-lang.
Nishant Shukla introduces an interesting spatial operator that has unique properties due to its spatial arrangement: a three-argument "andFlip" operator, that spreads vertically across, in addition to going from left to right, and enables 3-arity as infix notation:


He also provides a practical example of how this is useful through his chicken coop door controller. The automatic door should only open or close when three things are all true at once: the light sensor says it's dusk or dawn, that reading has stayed steady for five minutes (so a passing cloud doesn't count), and the door hasn't just moved. Which the 3-arity operator is a perfect fit for:

Read Nishant's post in full over on his blog:
[Spatial languages: writing code in 2DWriting code in 2D: a spatial programming language with vertical operands, quantum uncomputation puzzles, and a 3-bit adder in a single 2D expression.Nishant ShuklaNishant Shukla](https://shukla.io/blog/2026-07/cccx.html?ref=gorillasun.de)
Here's the discussion over on [Lobsters](https://lobste.rs/s/gb2xwu/spatial%5Flanguages%5Fwriting%5Fcode%5F2d?ref=gorillasun.de) that's also quite insightful.
**5 —** [**Craftbot by Luka Piškorec**](https://lukapiskorec.github.io/craftbot/?model=models%2F04%5FConstruction%5FManual%5FBlender%5FPython%2Ffable%5Fv04.json&ref=gorillasun.de): is for the architecture buffs that follow this newsletter. Craftbot is an architect AI agent that constructs buildings in Blender from a design brief and reference material. Luka shared a viewer website that lets you play around with some of the constructions

[Link to the Craftbot Viewer](https://lukapiskorec.github.io/craftbot/?model=models%2F04%5FConstruction%5FManual%5FBlender%5FPython%2Ffable%5Fv04.json&ref=gorillasun.de)
In the github repo you'll find the thirteen experiments Luka has done so far, with all prompts, code iterations, and renders included. Plus tooling to run them headlessly, a web viewer for the models, and a draft paper.
[GitHub - lukapiskorec/craftbot: CraftBot is an architect AI agent. It interprets design briefs, grounds its thinking in domain knowledge through ingesting documents, images and other references, and outputs Python code that procedurally defines a building design.CraftBot is an architect AI agent. It interprets design briefs, grounds its thinking in domain knowledge through ingesting documents, images and other references, and outputs Python code that proce…GitHublukapiskorec](https://github.com/lukapiskorec/craftbot?ref=gorillasun.de)
You might also remember Luka as the coder that brought ml5.js onchain with the fxhash Facetune Portraits project back in 2024\. I wrote about it back on the fxhash newsletter way back when.
**6 —** [**The mathematical beauty of hyperbézier curves**](https://linebender.org/blog/hyperbezier/?ref=gorillasun.de): Raph Levien, aka Linebender, proposes a new family of curves, the "hyperbezier." He suggests it as a candidate to replace cubic Béziers in the 2D vector design setting.

[Link to Post](https://linebender.org/blog/hyperbezier/?ref=gorillasun.de)
A hyperbézier, instead of being defined by control points, is defined by curvature as a function of arc length (a linear term over a quadratic raised to the 1.5 power), which makes it behave much like a cubic Bézier at small angles but with smoother, more often monotonic curvature when pushed.
## New in AI
At this point, I have no clue how anyone's still keeping up with everything that's happening in AI these days. If you've been MIA then there's two major headlines that you probably should know about 👇
- **OpenAI solved the Navier-Stokes millennium prize problem**
- **A rogue OpenAI model hacked into HuggingFace**
**1 —** [**OpenAI solves the Navier-Stokes Millennium Prize Problem**](https://openai.com/index/navier-stokes-solution/?ref=gorillasun.de): if you're not familiar, the Millennium Prize Problems are seven famously difficult unsolved mathematics problems selected by the [Clay Mathematics Institute](https://www.claymath.org/?ref=gorillasun.de) in 2000, with a $1 million prize offered for a correct solution to each. So far only one has been resolved: [Grigori Perelman](https://en.wikipedia.org/wiki/Grigori%5FPerelman?ref=gorillasun.de) proved the Poincaré Conjecture in 2003 and famously declined both the prize money and the Fields Medal.
What's crazy about this OpenAI story is not actually that another one of the 7 Millennium Prize Problems has been solved, but rather the entire manner in which OpenAI managed to produce a proof, considering some of their dubious operational methods. Before we go into some of the details, their own post on all that transpired:
[On the Navier–Stokes Millennium Prize ProblemWe’re sharing an AI-generated solution to the Navier–Stokes Millennium Prize Problem, including a writeup and a formal proof in Lean.OpenAI](https://openai.com/index/navier-stokes-solution/?ref=gorillasun.de)
On September 1st OpenAI had allegedly come to know of a rumour that another two of the millennium prize problems had been solved. It's not certain how they came to know this information, but according to their own reporting it led them to throw their newest and most capable internal model at this suite of problems. Apparently their newest model had shown "unprecedented performance" in their benchmarks compared to the newly public Astra model that only released a few days ago.
Probing the model on some related and easier tasks they managed to solve an apparently simpler version of the Navier-Stokes problem, which had them decide to redirect all of their resources towards it. Their claim is that they ran 10000 concurrent agents to then finally solve the problem. Over on [github](https://github.com/openai/NavierStokesAndEuler?ref=gorillasun.de) they published a 160 page paper about their findings, as well as the lean formalized proof.

Now the odd thing about this entire story, is that the two researchers Levent Alpöge and Tristan Buckmaster had simultaneously worked towards a solution to the Navier-Stokes problem over the past year in their own time, as a personal collaboration between them, independent from their employers. They released an official statement briefly after [OpenAI's announcement](https://x.com/OpenAI/status/2097374640582668336?ref=gorillasun.de) went out:
> My work with Levent has been a purely personal collaboration, free of any institutional agreements or official involvement by either of our employers. We used several LLMs throughout: Anthropic’s Claude, OpenAI’s Codex, especially with GPT-5.6 Sol and, more recently, Astra. The latter was only used for writeups and auditing our arguments
Apparently they had also resolved the same "easier" problem that OpenAI's frontier model was able to solve at the start. The issue here is that they did use assistance from LLMs to obtain their findings, including OpenAI models. The statement also includes their exchange with OpenAI, when they had contacted Levent after producing the problem's solution:



[Link to official statement](https://cims.nyu.edu/~tristanb/statement.pdf?ref=gorillasun.de) | [Link to OpenAI Post](https://x.com/OpenAI/status/2097375276384567642?ref=gorillasun.de)
It's unclear if OpenAI actually did have access to the information that he had been feeding into OpenAI's models or not, but they admit themselves that it might have been the case that their model knew something about it. Now the outrage clearly is around OpenAI's potential appropriation of the work through their training data, and accrediting the solution towards their AI model. More curiously, Levent being an Anthropic employee might have fed into OpenAI rushing towards a solution, in what seems to be an arms-race between the two companies.
There's a lot more that can be said here aside from all of the drama, but it's also a disheartening realization to all mathematicians that might have dedicated significant portions of their life towards these problems. It is very likely that the rest of the other millennium problems will finally be solved by throwing large clusters of AI agents at them rather than through human effort. The value of these proofs is also questionable if we still have to verify them and gain a human understanding whether they hold or not.
That said, if you're curious about getting a better overview of the actual Navier-Stokes problem, then I recommend this video from Caleb Writes Code:
**2 —** [**OpenAI breaks out of test environment**](https://simonwillison.net/2026/Jul/22/openai-cyberattack/?ref=gorillasun.de#atom-everything): a few weeks prior to this OpenAI made the news with a cybersecurity incident, where one of their models managed to break out of a sandboxed environment that it was not supposed to be able to exit. Simon Willison already covers the incident in full detail over on his blog in two posts:
1. [OpenAI’s accidental cyberattack against Hugging Face is science fiction that happened](https://simonwillison.net/2026/Jul/22/openai-cyberattack/?ref=gorillasun.de)
2. [Now we have a timeline of the OpenAI accidental attack against Hugging Face](https://simonwillison.net/2026/Aug/7/openai-timeline/?ref=gorillasun.de)
OpenAI then later also issued their own recount of the events:
[OpenAI and Hugging Face partner to address security incident during model evaluationOpenAI and Hugging Face share early findings from a security incident during AI model evaluation, highlighting advanced cyber capabilities and lessons for defenders.OpenAI](https://openai.com/index/hugging-face-model-evaluation-security-incident/?ref=gorillasun.de)
With all of these occurrences, I am more and more curious to know how OpenAI operates internally on a day to day basis.
**3 —** [**Prompting erodes the creative process**](https://x.com/gorillasu/status/2095995376184483981?ref=gorillasun.de): on a much lesser scale of importance, this past week I shared some thoughts on using AI in creative coding, and how prompting erodes many parts that make it a fulfilling endeavour in the first place. It seemed to resonate with a bunch of others that led the replies to become some insightful discussions. Hence why I deemed it worthy to include here as well. Read through it if you like 👇

[Link to Post](https://x.com/gorillasu/status/2095995376184483981?ref=gorillasun.de)
TLDR; it's the small tasks and problems, that I come across while I'm bringing an idea to life, that spark my curiosity and make me feel like I'm discovering, learning, and growing. Experiencing these small moments of discovery are eroded in their entirety by taking the prompt shortcut, and just wishing something into existence.
Making those small decisions is what shapes the entire character of the resulting work. It's what puts the "me" into the final piece. Just like each small brushstroke in a painting.
I'm certain of those two things, and I'm trying my best to still approach my creative work in that manner; even when there's the constant temptation of the "easy way out" by just asking an LLM to do it for you. If you have some thoughts on this, I'd love to hear them as well.
**4 —** [**Hobby programming communities are aggressively against LLM usage**](https://blog.fogus.me/llm/born-against.html?ref=gorillasun.de): on a related note, I recently learned about an incident in the chess engine programming community that sparked some hefty debates, in a github thread of all places. Given the competitive nature of this niche, and considering that there's leaderboards and rankings, some see it as quite distasteful to even try and compete with an AI generated engine. Which is an endeavour Adam Twiss has been pursuing with his Coda project.
[](https://github.com/adamtwiss/coda/issues/15?ref=gorillasun.de)
[Link to GitHub Thread](https://github.com/adamtwiss/coda/issues/15?ref=gorillasun.de)
The arguments against Adam's efforts is that a lot of the code ends up stemming from the contributions of others in the first place, often without it being properly referenced or credited, with the model just creating regurgitations. I think it boils down to intent and purpose, Adam does seem to make an effort to credit and reference, while also trying to use AI to discover and find new optimizations. If these efforts are genuine and are meant to contribute in a productive manner, then I also find the blind and vehement dismissal slightly ignorant, purely for a dislike of AI.
I initially became aware of this thread through a short [post](https://blog.fogus.me/llm/born-against.html?ref=gorillasun.de) from Fogus that also addresses the same topic:
> To me, an LLM functions best as a force multiplier, not a surrogate. In the hands of an expert who already understands a domain deeply, it could act like a lever.[1](https://blog.fogus.me/llm/born-against.html?ref=gorillasun.de#fn1) But in these niche communities, the entire exercise is in the learning. Using an LLM to generate the finished piece doesn’t make us craftsmen; it just robs us of the craft.
**5 —** [**AI Design Field Guide**](https://www.aidesignfieldguide.com/?ref=gorillasun.de): is a series of interviews with industry professionals that are approaching AI in new and smart ways. I found all four chats incredibly insightful:
[AI Design Field GuideLearn techniques from the designers behind OpenAI, Anthropic, Figma, Notion & more](https://www.aidesignfieldguide.com/?ref=gorillasun.de)
**6 —** [**Are AI Labs PelicanMaxxing?**](https://dylancastillo.co/posts/pelicanmaxxing.html?ref=gorillasun.de): on a more lighthearted note, it's been rumored that AI Labs are Pelican Maxxing. Dylan Castillo wrote about the tongue-in-cheek benchmark started by Simon Willison — generating an SVG of a Pelican — and that it has now informally turned into a challenge for the companies training AI models, so much so that they're assumedly benchmaxxing on the task at secret. Dylan's article ends up being a meta-analysis of how different models perform:
[Are AI labs pelicanmaxxing? – Dylan CastilloI generated 1,000+ SVGs across 7 frontier models to test whether AI labs are training on Simon Willison’s pelican-riding-a-bicycle benchmark.Dylan CastilloDylan Castillo](https://dylancastillo.co/posts/pelicanmaxxing.html?ref=gorillasun.de)
## New in Web Tech
**1 —** [**In defense of not understanding your codebase**](https://www.seangoedecke.com/in-defense-of-not-understanding-your-codebase/?ref=gorillasun.de): how well do you actually need to understand your codebase? How well do programmers generally understand their codebases? At what size is it not possible to fully comprehend the entirety of the software anymore? Sean Goedecke tackles these questions in a recent article of his, problematics that've arguably become a lot more relevant now that AI can churn out 1000s of lines of code in just a few seconds:
[In defense of not understanding your codebaseAs a software engineer, how well do you have to understand your own codebase? My guess is that people who work on small codebases with low-turnover teams (say…](https://www.seangoedecke.com/in-defense-of-not-understanding-your-codebase/?ref=gorillasun.de)
I would agree that the larger and more complex the project is, the more effort and dedication it takes to maintain a full mental picture of the codebase, and in many cases you'll likely only have an "intuition" of certain parts of the code, rather than a minute understanding. Which I'd wager is in many cases more than sufficient. Sean continues to argue that Peter Naur's idea of "Programming as Theory Building" is long antiquated in the context of modern software.
Sean's article plopped onto my radar a few days ago through a reaction video from Theo Browne. His framing however was a lot more controversially put, causing quite a bit of outrage over on X. Theo claims that if you can understand your entire codebase, then the codebase is not that important, and that "real software is larger than what your brain can comprehend" (according to his [tweet](https://x.com/theo/status/2096854674938941448?ref=gorillasun.de)).
The video itself is not as on-the-nose as the tweet, so in my opinion this ends up conflating two separate issues on purpose for the sake of ragebaiting folks.
**2 —** [**Knuth-Plass line-breaking algo**](https://github.com/lyallcooper/justif?ref=gorillasun.de): Justif brings TeX's famously good typography algorithm to the web. In a live demo he showcases hyphenation, protrusion, expansion, and tracking, pitting his output against native browser justification.

[Link to Demo](https://justif.lyall.co/?ref=gorillasun.de)
He shares the repo publicly on a [github repo](https://github.com/lyallcooper/justif?ref=gorillasun.de) of his.
**3 —** [**The point of a design system is fewer decisions**](https://www.antonsten.com/articles/the-building-was-never-the-hard-part/?ref=gorillasun.de): Anton Sten writes about the purpose of design systems, explaining that they're meant to reduce the number of decisions instead of being tools for the sake of consistency. He also addresses their newfound purposes in the agentic era, where they need to encode intent clearly so that it's easy for automated code generators to make appropriate decisions:
[The point of a system is fewer decisions – Anton StenA good design system captures decisions so people and agents do not have to keep making them independently.Anton StenAnton Sten](https://www.antonsten.com/articles/the-building-was-never-the-hard-part/?ref=gorillasun.de)
**4 —** [**Malicious take-home project**](https://citizendot.github.io/articles/fake-job-interview-git-hook-malware/?ref=gorillasun.de): Appaji reports on a malicious take-home project he encountered while applying to a too-good-to-be-true job offer, discovering that it had a payload embedded in it aimed at draining his crypto wallets. Luckily he managed to catch it before executing any of the code, and in the process putting together the interesting article that he shared over on his blog:
[Appaji - Software EngineerAppaji, a Computer Science graduate from IIT Patna and former intern at Arista Networks, is a Software Engineer at Infinite Reality. Passionate about building innovative web experiences, with a strong interest in sustainable and customer-focused startups.Software Engineer](https://citizendot.github.io/articles/fake-job-interview-git-hook-malware/?ref=gorillasun.de)
More curiously is the discussion that ensued over on Hacker News; it turns out that this is not an isolated incident. Ivan Goncharov discovered through the article that he had unknowingly been hacked with the same kind of malicious take-home-project-payload a few weeks prior, only realizing it while checking the cloned repo.

[Link to Hacker News Item](https://news.ycombinator.com/item?id=49013036&ref=gorillasun.de)
**5 —** [**Visualizing Codebases**](https://githubnext.com/projects/repo-visualization/?ref=gorillasun.de): for some reason this article popped up in my feed again recently; a piece by Amelia Wattenberger from 2021 that's entirely about representing codebases in a visual manner. I believe it's more relevant than ever at this point in time:
[Visualizing a CodebaseHow can we “fingerprint” a codebase to see its structure at a glance? Let’s explore ways to automatically visualize a GitHub repo, and how that could be useful.](https://githubnext.com/projects/repo-visualization/?ref=gorillasun.de)
## Gorilla Updates
In the past months I spent quite a bunch of time archiving a lot of my work. Over the past two weeks I took some time to put together a little archive for all the long-form projects that I've released on different blockchains. Well, it's really not so little; it turned into a full archive of 18 long-form projects across 5 platforms, and includes over 5000 minted editions.

Collecting all of the editions and constructing a full database for all individual editions took a bit of figuring out, but luckily Claude is very good at writing the kinds of scripts that can easily fetch all of that info from just a link, and then additionally also construct the respective SQL queries to populate the database entries. It's important to me that all of the metadata is stored in the background so that nothing is lost over time.
I have to admit, I did build this page in a bit of a panic when I realized that most of the platforms I've released my projects on have entirely vanished at this point. For example, the bitmark blockchain was sunset in 2025, which is the chain on which my 2022 Crayon Codes project "Behind the Canvas" is published on. It seems that the entire chain was properly archived ultimately, however only 5 editions of the project were transferred over to Ethereum by their owners. I guess that makes them special rarities now.
The other challenging thing was handling the params projects that had different requirements. That includes fxhash params, editart, and the mentioned crayon code project, which all need a special sandbox mode that allows for the exploration of their parameters.

As for the IPFS pinning, I still have to verify that all of that's working correctly; but for now I let Claude have at it as well and make me a pinning script deployed to the same digital ocean droplet that I'm already renting for the automated newsletter bot. Long-term I'm thinking about migrating both of those services over to an old macbook pro that I'll just run as a server from home, rather than having to pay for the digital ocean subscription. Then it could potentially also run the Postgres database that holds all of the information for that archive website.
Overall, it makes me happy to see all of these projects side by side like that; I guess the real treasure from all these years are the art we made along the way. The page isn't live yet, but it'll release as part of the blog overhaul that I'm hoping to wrap up soon.
Besides that I've also entered the arena once more and uploaded another reel. This time I tried to greatly improve on the time it took me to record the entire thing. It definitely didn't feel as daunting the second and third time around, and I managed to do the entire thing in a few hours, including writing the script beforehand (excluding video editing). If you're curious, check them out and maybe give them a share, it does help out a bunch:

[Link to Post](https://www.instagram.com/p/DcBIeG8uFB1/?ref=gorillasun.de) | Go and give it a like or a share! 🫶
Lastly a note on the automated newsletter bot. I've thought about it a bunch more and I've come to the conclusion that its main value consists in being a link aggregator that's tailored to a specific niche. It's been happily chugging along over the past weeks and generally finding things that I am actually curious to read in my own time.
It's made putting together this issue of the newsletter a little less stressful because I didn't have to do that much internet archeology for the past weeks. I still have to be aware of the happenstances around everything else though.

Check out the archive [here](https://readtheq.com/archive/?ref=gorillasun.de) and sign up to the mailing list if you're interested in those daily updates. Otherwise there's also the daily digest channel in the discord where you can also see that update there.
What does that mean for the bot? It's gonna continue running for now, but I'll slim it down a lot more and just make it a list of links that are interesting with a short description line, rather than a full on paragraph. AI generated "opinion" is boring, as I don't think anyone cares for the generated slop ramblings.
## Music for Coding
This past week I'm blessed to discover Peter Sagar's music. *In the Shower* (2014) is Peter Sagar's debut as Homeshake, made right after he quit touring as Mac DeMarco's guitarist. He got tired of the road and wanted to stay home in Montreal, and the record is basically that decision set to music: slow, humid, half-awake bedroom funk.
Mumbled falsetto, lazy guitar playing, and rubbery bass lines all blend into a feeling of wanting to stay home, take a shower, being lazy, not wanting to go out. It's the kind of music to just lay back to and think about life while the world keeps on spinning outside:
And that's a wrap — hope you've enjoyed this curated assortment of 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 web... more subscribers, views, and reads means more internet points, which in turn enables me to do more internet things!
Otherwise come and say hi over on [TwiX](https://x.com/gorillasu?ref=gorillasun.de), [Instagram](https://www.instagram.com/gorilla%5Fsun%5Fblog/?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **It's been a tad bit inactive, but we can change that... maybe.**
**If you've read this far, thanks a million!** And in case you're still hungry for more, find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Self-modifying Quines, new HTTP QUERY Method, and Loop Engineering
URL: https://www.gorillasun.de/blog/gorilla-newsletter-103/
Last updated: 2026-08-10T16:50:43.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
This is the **103rd** issue of the Gorilla Newsletter—an online publication that sums up everything noteworthy from the past week in creative tech and AI. If it's your first time here, we've also got a Discord server where we nerd out together — if you want to connect with other readers of the newsletter, come and say hi: [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## New in Creative Tech
**1 —** [**The "Insert" programming language for self-modifying quines**](https://github.com/uellenberg/Insert?ref=gorillasun.de): Jonah Uellenberg created a version of Pong where each "frame" of the game is in-of-itself a C program that, when compiled and run, prints out the *next* frame. Which again is another C program that can generate the next frame, and so on.

This was Uellenberg's submission for the IOCCC 2025 (International Obfuscated C Code Competition) for which he won the Ping Pong Prize. Technically the source code for the submission is not obfuscated at all, the pong quine is generated by perfectly clean *Insert* code, that is then compiled into the quine. Uellenberg points it out himself in the [submission page](https://www.ioccc.org/2025/uellenberg/index.html?ref=gorillasun.de):
> Now that all the obfuscated C fans are distracted, it’s time I let you in on what’s really going on. See, this code isn’t really obfuscated. It never was. No, it’s **compiled**. That’s right, not a single nibble desecrated by human hands, only purified in the unfeeling steel of liveness analysis, constant folding, variable reallocation, and compile-time evaluation.
My basic understanding it is that the compiler secretly packs a copy of the program's source code inside of itself as editable text, with certain spots tagged as "swap this out." And when the program runs, it'll change out those tagged spots (like a counter or game state) and prints the result. There's a lot more information there about how this works if you're a C buff and want to understand it in more detail. Source code for Insert can be found over on [Github](https://github.com/uellenberg/Insert?ref=gorillasun.de).
**2 —** [**ZOZO's Contact Solver**](https://github.com/st-tech/ppf-contact-solver?ref=gorillasun.de): simulating cloth and dense collisions without having objects clipping through each other is a notoriously difficult computational problem. Preventing intersections while still allowing realistic folds, wrinkles, stacking, and sliding requires collision handling that is both numerically robust and fast enough to run on complex scenes. The ZOZO contact solver can handle this nearly perfectly and was recently made public as a Blender add-on:
[GitHub - st-tech/ppf-contact-solver: A contact solver for physics-based simulations involving 👚 shells, 🪵 solids, 🪢 rods, 🧱 rigid bodies and ⏳ sand.A contact solver for physics-based simulations involving 👚 shells, 🪵 solids, 🪢 rods, 🧱 rigid bodies and ⏳ sand. - st-tech/ppf-contact-solverGitHubst-tech](https://github.com/st-tech/ppf-contact-solver?ref=gorillasun.de)
ZOZO is the largest fashion e-commerce company in Japan hence the requirement for such a high-grade tool. The original announcement about the Blender add-on came through on [reddit](https://www.reddit.com/r/blender/comments/1ti5bbh/a%5Fnew%5Fopensource%5Fphysics%5Fengine%5Ffor%5Fblender%5Fzozos/?ref=gorillasun.de):
> Today, I'm fortunate that the company allowed me to disclose our Blender add-on, and I've also been given permission to share it here, as I thought it might be of interest to the community.
The paper that the solver is based on previously already made a splash via the Two-Minute Papers channel:
In a nutshell, when the gap between two surfaces gets extremely tiny, the calculations used to figure out how to move things next either barely moves them at all or overcorrects wildly, causing instability. This paper's fix is to use a "cubic" formula instead, which behaves better in that danger zone, plus a smarter way of setting how "stiff" that repulsion should be rather than needing to hand-tune a stiffness number.
**3 —** [**Frank Force's Virtual Pen Plotter**](https://killedbyapixel.github.io/VirtualPlotter/?ref=gorillasun.de): is a fully functional 3D simulation of a pen plotter, that works just like a regular pen plotter. The sim lets you select different pens, stroke thickness, etc. and essentially traces out an SVG of your choosing onto the virtual paper. It even simulates the humming sound that plotters make when their rotors move the pen head along the x and y axes.
[](https://x.com/gorillasu/status/2073082739121696874?ref=gorillasun.de)
[Link to Post](https://x.com/gorillasu/status/2073082739121696874?ref=gorillasun.de)
It made quite a splash on socials due to its satisfying non-functionality! As always we are also treated to the source code over on GitHub:
[GitHub - KilledByAPixel/VirtualPlotter: A 3D pen plotter simulator in the browser.A 3D pen plotter simulator in the browser. Contribute to KilledByAPixel/VirtualPlotter development by creating an account on GitHub.GitHubKilledByAPixel](https://github.com/KilledByAPixel/VirtualPlotter?ref=gorillasun.de)
**4 —** [**Frank Force's Tiny Retro Game**](https://killedbyapixel.github.io/TinyCode/1K/Skydreams/?ref=gorillasun.de) **&** [**js1024fun**](https://js1024.fun/?ref=gorillasun.de): this is a Frank Force fan newsletter now! My timeline was blessed again by another cool project Frank shared, his entry for the js1024fun sizecoding competition. In the tiny game you navigate a rolling ball along an endlessly winding track that's scrolling towards you. The difficult part is jumping over the occasional gaps in the track:
0:00
/0:18
1×
[Link to Post](https://x.com/KilledByAPixel/status/2077086329905545295?ref=gorillasun.de)
With this year's theme being "dreaming" the tiny game is a perfect fit. [The competition](https://js1024.fun/?ref=gorillasun.de) is still ongoing for another day, so you might be able to still whip up something until then if you're interested in participating:
> Participants have **19 days** to create a cool **JavaScript or GLSL** program in **1024 bytes or less.**
**5 —** [**Procedural Brick Tower code-along**](https://www.youtube.com/watch?v=DAMiS2PGTEE&ref=gorillasun.de): Inigo Quilez just uploaded two videos to his YouTube channel for the first time in 4 years! One of them is an educative 45 minute code-along in which he shows us how to program a realistic brick tower from scratch in GLSL, thanks to a request from a viewer:
Hearing Quilez's commentary and thoughts alongside him typing out each statement line-by-line is incredibly insightful. If you're trying to improve your own shader skills this is a must watch.
The other video he uploaded is another treat, it tackles the smooth-maximum function that incredibly useful for all sorts of applications — especially for smoothing out surfaces that might be composited out of different shapes:
**6 —** [**Patricio Gonzalez Vivo's Weaver**](https://patriciogonzalezvivo.com/2026/weaver2/?ref=gorillasun.de): is an interactive installation piece in which two observers, in two different places and times, share a section of two overlapping night-sky maps. The region where the maps intersect shows the constellations that both people would have shared — a common sky regardless of the distance or time between them.
[Weaver – A shared sky across timeWeaver is an interactive art piece by Patricio Gonzalez Vivo that merges family history, migration, and astronomy. By overlapping celestial maps from two distinct locations or eras, it visualizes the shared sky that connects us.CreativeApplications.NetJobs](https://www.creativeapplications.net/member/weaver-a-shared-sky-across-time/?ref=gorillasun.de)
Each map uses a polar projection and sits next to a rotating globe that you can drag to reposition the observer anywhere on Earth in addition to shifting the date and time. Patricio has worked on this project for several years, and shares an explainer about it over on his socials:
[](https://x.com/patriciogv/status/2077015278295138597?ref=gorillasun.de)
[Link to Post](https://x.com/patriciogv/status/2077015278295138597?ref=gorillasun.de)
**7 —** [**Bird Sound Generator**](https://www.instagram.com/p/DYf801IuBy4/?ref=gorillasun.de): to wrap up, one over from Instagram. I thought it was pretty genius! Aaron aka mixikid builds cool audio and music tech, and in this post of his on instagram he made a tiny bird sound generator. Simply with three control knobs it lets him recreate any kind of bird sound that you can imagine.
[](https://www.instagram.com/p/DYf801IuBy4/?ref=gorillasun.de)
[Link to Post](https://www.instagram.com/p/DYf801IuBy4/?ref=gorillasun.de)
I wish the video would have gone a little longer and explained a bit more how the circuit works, but he does inform about the components that he used, so if you wanted to build a similar kind of thing you'll probably be able to piece it together (potentially with the help from an LLM).
## Dotted Mind
Not a sponsored segment, just a cool thing a friend of mine is launching! If you've got an iPad, and do any sort of note-taking in your day-to-day, this one's for you.

Dotted Mind is a note taking app that aims to be as authentic as possible and actually *feel* like a hardcover notebook, rather than a cluttered document editor like most of what's currently out there. Many of the design choices that went into the app are inspired by how you'd actually handle an analogue notebook, not just in the page editor itself but also in how it lets you organize and group notes — while still taking full advantage of what a digital notebook can be.
After having some lengthy conversations about it all, it's evident that Manuel is incredibly passionate about the app. Journaling and note-taking being a big part of his life makes this not just a piece of software, but also a sort of love letter to the practice:
> A few years and many notebooks later, the limitations of hardcover notebooks became increasingly apparent. Pages ran out fast, finding older notes became cumbersome, and I couldn’t carry my notebook everywhere. Reluctantly, I gave digital journaling a chance. The apps were powerful, and the advantages were obvious. But none of them captured the simplicity, calm, and feeling of writing in a real hardcover notebook. So I decided to build my own.
Sold? If you're interested, and want to see a solo-dev succeed, you can sign up to the beta over on the Dotted Mind landing page:
[Dotted Mind, a calm iPad notebook for handwritingDotted Mind turns your iPad and Apple Pencil into a calm handwriting-first notebook for your loose thoughts, ideas and sketches. Join the open beta.Dotted Mind](https://dottedmind.app/?utm%5Fsource=gorillasun&utm%5Fmedium=newsletter&utm%5Fcampaign=beta)
Otherwise you can also grab it when it launches beginning of August!
## New in AI
Steve Ruiz's recent Tweet perfectly summarizes how I've been feeling about recent developments in AI:
[](https://x.com/steveruizok/status/2063885014115254452?ref=gorillasun.de)
[Link to Post](https://x.com/steveruizok/status/2063885014115254452?ref=gorillasun.de)
And I'm pretty sure I'm not alone with that sentiment. I'm equally optimistic, excited, and sceptical about coding agents — but most of all I feel smothered by the constant updates. I'm still trying to make coding agents *work* (literally and figuratively) for me in a way that doesn't completely erode my programming knowledge. There's a fine line between using an LLM to assist you and fully falling into vibe-coding.
In recent weeks I've kept up with the leading voices in the space, in an attempt to keep a pulse on things. The more I do though, the more I get a sense that no one really knows what we're doing with AI at this point in time. There's the big unanswered questions, mainly revolving around the modality of our work with agents, such as:
1. Should we still read and/or write code at all when we use these tools? Or should we hand it all off to the agent. Some people are already happily doing this. I get it for experiments and pet projects, but what about the serious work?
2. Should I just completely ignore AI for now and carry on the way I did previously? Early on when learning to code, one of the first lessons was that brute force is almost always the wrong way to do things; if I were to just continue stubbornly practice my hard skills, I'd feel that I'm brute forcing this dilemma — which just seems wrong to me.
3. What about new people trying to ~~learn how to code~~ become software developers, how should they learn to code? It seems that this is an entirely new era of programming in general. If they have a completely different way of thinking about code, how will we maintain the system that were built in a different era. Or am I overthinking this?
With all of it still actively unfolding it seems that there's no good answer to these questions. And that's just a few off the top of my head.
Hence why I tried to showcase the full spectrum of perspectives and opinions on the topic with this week's selection of links — some folks are just as ambivalent as me, some projects have decided to completely reject AI for the moment, and others are all in.
**1 — What is Loop Engineering?**: NeetCode has been popping up a lot more in my YouTube feed recently, and that for a good reason due to his sceptical take on most of these developments. While his takes resonating with a lot of folks for this reason, he's also been both branded as a *hater* and a *hypeman*.
In a recent video of his he tackles the buzz around Loop Engineering — instead of prompting we should now build loops. *But what are loops?* Who knows! Many of the conversations omit the important details. In the video he tries to get to the bottom of it:
NeetCode mocks how a lot of the current hype in AI is being marketed on a basis of FOMO — "if you're not doing this, then you're already falling behind"!
More concretely though, loops are a way to squeeze more out of an agent by building a "harness" around it. Essentially wrapping it in multiple nested feedback loops instead of just running it once. A recent article by lang-chain explains this in more detail:
[The Art of Loop EngineeringAgents automate real-world work, but reliable performance requires more than a good model, it requires a carefully designed harness built for specific tasks. This post explores the core agent loop, how stacking and extending loops builds more effective agents, and how to instrument each level with LangChain primitives.LangChain BlogLangChain Accounts](https://www.langchain.com/blog/the-art-of-loop-engineering?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Their write-up explains that beyond the core loop, agents can be further improved by adding a verification loop, that incorporates some means for the agent to check their work before sending it, like a hard grading metric, or by using another agent for evaluation purposes. Additionally it also makes sense to use a "hill-climbing" loop, making the agent analyze traces from past runs to automatically improve the agent's prompts, tools, or grading criteria over time.
To me this still sounds a little bit esoteric as it completely depends on the use-case you're using the agent for. I also found this interesting personal take from Armin Ronacher who's experimenting with building loops for himself:
[The Coming LoopLoops, harnesses, and why even loop skeptics may end up with them.Armin RonacherArmin Ronacher](https://lucumr.pocoo.org/2026/6/23/the-coming-loop/?ref=gorillasun.de)
**2 —** [**Linus Torvalds on Vibe Coding**](https://www.youtube.com/watch?v=3NSSGt9bZag&ref=gorillasun.de): if you've ever asked your coding agent to check your repo for bugs and/or issues, you will have noticed that it simply always finds bugs and/or issues. It will never actually tell you that the code is *perfect*! Or at least good enough for its purpose. To me this is quite vexxing, because it ends up being a never-ending loop where the AI creates more work than it's solving.
This same issue is currently plaguing open-source project maintainers: swaths of folks make AI generated drive-by PRs (as Linus Torvalds calls them) just for the sake of contributing, when it's impossible for the team to verify all of them due to the sheer amount. The creator of Linux talks about this here, and furthermore about how vibe coding is affecting our brains
I recently also listened to [Andrew Kelley in a JetBrains interview](https://www.youtube.com/watch?v=iqddnwKF8HQ&vl=en&ref=gorillasun.de) — creator of the Zig programming language — explaining why the project has similarly adopted a zero-AI policy, flat out rejecting any AI generated slop PRs, issue, or contributions; in addition to not embracing AI tools:
[The Zig project’s rationale for their firm anti-AI contribution policyZig has one of the most stringent anti-LLM policies of any major open source project: No LLMs for issues. No LLMs for pull requests. No LLMs for comments on the …Simon Willison’s WeblogSimon Willison](https://simonwillison.net/2026/Apr/30/zig-anti-ai/?ref=gorillasun.de)
Bottomline is that LLMs have infinite stamina to reason, argue, and generate things, which more often than not devolves into a wasteful loop rather than being constructive. Here's an interesting post by Andrej Karpathy that exemplifies this in a different context:
[](https://x.com/karpathy/status/2037921699824607591?ref=gorillasun.de)
[Link to Post](https://x.com/karpathy/status/2037921699824607591?ref=gorillasun.de)
I'm really not sure how this helps with forming an opinion — could he not have done another round of arguing in the opposite direction and have convinced himself of his original belief?
**3 —** [**Andrej Karpathy on Coding with AI**](https://www.youtube.com/watch?v=kwSVtQ7dziU&ref=gorillasun.de): on that note, Karpathy has been one of the leading voices in the space for the past decade. End of may he joined Anthropic, and is without a doubt optimistically bullish on the paradigm shift— in a recent interview he explains that he's been writing less and less code:
Maybe I'm just too skeptical about whenever someone's too *all in* on something?
**4 —** [**LLMs and performative productivity**](https://joshcollinsworth.com/blog/productivity?ref=gorillasun.de): Josh Collinsworth write an interesting think piece in which he argues that faster output with AI tools just pushes problems downstream while eroding the on-the-job learning that builds skill. Since these tools are built to maximize engagement, not judicious use, he warns that we can't trust our own sense that it's helping unless actually measured in a meaningful way.
[LLMs and performative productivityIt’s worth asking whether LLMs are actually making us more productive at all—and if so, what we might be sacrificing in return.Josh Collinsworth](https://joshcollinsworth.com/blog/productivity?ref=gorillasun.de)
My hunch that there's lots of similarity between prompting LLMs and doomscrolling through short-form video content is constantly being re-affirmed. He also touches on some other interesting points, for instance that AI is not necessarily making software better — or better software — if it's ultimately not perceived by the people that use the software:
> Most of the other updates weren’t really *needed*. The changes just made me feel good, while making little to no difference on the user side of the software.
**5 —** [**I love LLMs, I hate hype**](https://geohot.github.io//blog/jekyll/update/2026/07/12/i-love-llms.html?ref=gorillasun.de): and to wrap up, a based take from George Hotz. He rejects both the doom-laden "you're falling behind" hype and the sci-fi superintelligence narrative, arguing that AI is really just powerful tooling:
[I love LLMs, I hate hypeI think from this blog you may misunderestimate how absolutely giddy I am about AI. I did hacking from 2007-2014, after that my whole career has been devoted to AI. I love the progress. I’m so excited for the new LLMs, self driving cars, video generation models, and coding agents. I set up a Linux box with opencode on my local GLM-5.2 last week and wow like just saying install tmux with the geohot configuration works; the Year of the Linux Desktop is finally here!the singularity is nearerthe singularity is nearer](https://geohot.github.io//blog/jekyll/update/2026/07/12/i-love-llms.html?ref=gorillasun.de)
> You have to be really careful, [they can increase cognitive fatigue](https://warpedvisions.org/blog/2025/hitting-the-wall-at-ai-speed/?ref=gorillasun.de), and all the vibe coded stuff is still slop (where’s all this new magical software that the productivity improvements should imply?). But models are useful just like find replace, stack overflow, or all the regexes I never learned how to write and now never will!
## New in Web Dev
**1 —** [**First New HTTP Method in 20 Years**](https://dev.to/andresclua/http-just-got-its-first-new-method-in-20-years-heres-why-you-should-care-2h5p?ref=gorillasun.de): up until this point in time we have always misused the POST method when we were required to perform a GET request with a *body* attached. As far as I understand, we usually don't include a body with a GET not because it's forbidden, but rather because it's discouraged. Which is why some websites will simply reject such a GET or drop its body automatically, making this behaviour inconsistent.
Thus the POST with a body workaround — which is semantically wrong on the other hand. Usually a POST request is not idempotent and is expected to cause some change on the server (like creating or modifying a resource). Using it for read-only searches or filtering is a mismatch between what the method promises and what you're actually doing.
Hence the newly introduced QUERY method. It can fetch with a body and is idempotent. A post on Kreya explains it in a simple manner:
[The new HTTP QUERY method explained | KreyaIn this blog post, we take a deep dive into the new HTTP QUERY method, explaining the history behind it as well as the advantages and disadvantages of using it.KreyaManuel](https://kreya.app/blog/new-http-query-method-explained/?ref=gorillasun.de)
The new method is without a doubt a big deal: QUERY lets you send complex, structured query data as a request body, without URL length limits or messy encoding, while still getting the retry-safety and caching that GET gives you but POST doesn't. If you're curious, here's the full RFC spec:
[RFC 10008: The HTTP QUERY Method | RFC EditorThis specification defines the QUERY method for HTTP. A QUERY requests that the request target process the enclosed content in a safe and idempotent manner and then respond with the result of that processing. This is similar to POST requests, but QUERY requests can be automatically repeated or restarted without concern for partial state changes.RFC EditorFielding, R., Ed.](https://www.rfc-editor.org/info/rfc10008/?ref=gorillasun.de)
**2 —** [**WebDev Challenge by CodeTV**](https://codetv.dev/series/web-dev-challenge/s3/e5-best-landing-page-gsap?ref=gorillasun.de): [CodeTV](https://codetv.dev/?ref=gorillasun.de) is reality TV for developers — created by Jason Lengstorf it's a slate of different shows and challenges that are shot and produce like actual TV. Think Hot Ones and Game Changer but for programming. I found the shows equally entertaining and educative:

[Link to Episode](https://codetv.dev/series/leet-heat/s1/e12-aisha-vs-janessa/play?ref=gorillasun.de)
You can check out an overview of all episodes over on the website. They also have an ongoing Web Dev challenge series that I think will be most relevant to point out here — in each episode a few dev teams get together and compete against each to build something specific with a certain technology. In the most recent episode they're tasked with building the most jaw-dropping landing page they can, using GSAP, Webflow, and Astro as required tools.
[The Best Landing Page Ever | Web Dev Challenge Season 3Build a landing page that makes us all stop and pay attention.CodeTV](https://codetv.dev/series/web-dev-challenge/s3/e5-best-landing-page-gsap?ref=gorillasun.de)
**3 —** [**Web Browsers on Video Game Consoles**](https://vale.rocks/posts/game-console-browsers?ref=gorillasun.de): traces the history of web browsers built into game consoles, from the early '90s up till today. Declan Chidlow lists out a comprehensive list of all consoles and details on how the browsers in them worked.
[Web Browsers on Video Game ConsolesExploring cyberspace with a thumbstick.Vale.RocksDeclan Chidlow](https://vale.rocks/posts/game-console-browsers?ref=gorillasun.de)
There was a period where console browsers reached their peak, marketed as cheap internet gateways for people who didn't own computers. Browsers were then quietly dropped completely after the PS4 era, probably due to everyone already having a browser in their smartphone that's much easier to use.
I can still remember discovering that my PSP had a browser in 2007 — it wasn't very useful without a wireless internet connection most of the time however.
**4 —** [**Web-based cryptography is always snake oil**](https://www.devever.net/~hl/webcrypto?ref=gorillasun.de): Hugo Landau argues that the promised "end-to-end encrypted" in many a web app is broken by design. The server operator who you're supposedly protecting yourself from is the same one serving you the JavaScript that does the encrypting. If they turned hostile (or get a warrant), they could just push different code next time you load the page. He calls it a law: a cryptosystem is incoherent if its implementation comes from the same entity it's meant to secure against.
[Web-based cryptography is always snake oilHugo Landau](https://www.devever.net/~hl/webcrypto?ref=gorillasun.de)
This same critique applies to Signal and WhatsApp, since both control the client and ban third-party alternatives. He argues that "E2E" on the web mostly exists as legal cover, so that companies can tell governments "sorry, we literally can't decrypt it" and dodge warrant compliance. He backs this with the Lavabit case (FBI pressured it to compromise its own encryption; it shut down instead) and FBI v. Apple (FBI tried to force a backdoored iOS build). Both show the vendor always retains the technical ability to comply. The only thing standing in the way is a legal argument, not math.
**5 —** [**Hacker Fables by Sebastian Carlos**](https://sebastiancarlos.github.io/hacker-fables/?ref=gorillasun.de): pitched with the tagline "The satirical cyberpunk novella to read while your AI agent completes Jira tickets.", Hacker Fables is a parody on programmer/hacker culture, riffing on things like LeetCode and AI coding agents — highly recommend reading through it if you need a good chuckle:
[Hacker FablesThe satirical cyberpunk novella to read while your AI agent completes Jira tickets.Sebastian Carlos](https://sebastiancarlos.github.io/hacker-fables/?ref=gorillasun.de)
## Gorilla Updates
It's been three weeks since the last issue of the newsletter — and I think this pace is much more sustainable than a weekly one. It gives me the necessary breathing room to naturally discover interesting articles and links to include. In the past I had always struggled with this "collecting" phase, as some weeks would simply be quieter than others.
Two years ago I spent a little bit of time investigating if I could automate this part of the process for myself — at least partially — with some sort of web-crawler. Basically a script into which I dump all the sites and resources that I usually scan, to extract everything that could potentially be relevant. That was around the time when building agent loops with LangChain had just become a thing. I did end up getting something working, but it wasn't very good, so I didn't pursue it after that. It's been on my mind ever since though.
Fast forward to this past week. One thing on my list was trying out Claude Code... since literally everyone and their dog won't stop talking about it. Especially now that Fable 5 is available again it seemed like the right time. My idea was to let it build that crawler for me again to see if it can whip up something useful from the get-go. I pointed it at some of the past issues of the newsletter to figure out what kind of things I usually write about, and told it to check some links I passed into it, like hackernews and reddit (among others).
I was impressed by the first couple of drafts it produced, it was quite good at finding and curating an interesting assortment of links. I refrained from trying to fine-tune it, because I knew that I could easily spend a couple of hours just messing around with it. But why stop there though? I could also easily have it automatically create this digest every day and mail it out to me. So I spun up a fresh Ghost install on a digital ocean droplet + a mailgun server and voilá — automated daily digests!
Long story short, here's the result — you can sign up to this automated daily digest as well if you're interested 👇

You can also check out some of the digests it's already pooped out so far in [the archive section](https://readtheq.com/archive/?ref=gorillasun.de). It's a bit hit or miss, since it obviously doesn't really know what makes a good newsletter, but it's decent at collecting interesting articles and is already coming in handy to find things for this main newsletter. I will probably spend some more time fine-tuning it, but I need to think about a better strategy for it first.
What would be cool is if subscribers could customize the content of the digest that they receive when signing up to it. I found a tool that already does something [similar](https://usedigest.com/?ref=gorillasun.de), albeit in a very different manner. Seeing that the last update there is from February 2025 it's probably an indication that this kind of thing doesn't have much demand though.
In any case, let me know if this is interesting or not. If yes, then I'll write more about it. Right now I don't know if this can be sustained for a longer period of time; I do have to pay subscription fee for the droplet and mailgun server (aside from the api credits the script needs for the automatically generated summaries and using grok to crawl X). Maybe these costs can somehow be reduced though.
On that note, there's another "big" thing I've crossed off of my bucket list: making a proper reel on instagram. It's been on my mind for a while now, and I had to overcome some mental hurdles to finally sit down and do it. Speaking into a camera, alone in your room, is very difficult. And somehow my brain isn't wired to form sentences while also simultaneously looking into a camera. It's such a joy to type these words into the editor right now, without having to use my vocal chords. At the same time, the idea of recording another reel doesn't seem as daunting anymore.
[](https://www.instagram.com/p/DaXwuA3Iz7a/?ref=gorillasun.de)
[Link to Reel](https://www.instagram.com/p/DaXwuA3Iz7a/?ref=gorillasun.de) | Follow me on instagram!
The video I posted is a little educative explainer about Reaction Diffusion, a bit about the historical context, and a brief explainer of how the algo works. Kind of a compressed YouTube style video. It got 50k views and nearly 2k likes, which is an insane amount of engagement compared to what I usually get.
I have a hunch that its virality has something to do with the animation itself — folks scrolling are probably intrigued by the animated blob-like patterns and then end up halting for a brief moment to watch for a few seconds, probably a positive signal that tells the algo to "send it". Anyway, I am happy with the response, and I'll keep posting these videos, even if they don't go viral. I had a blast writing a script, recording it, editing the video, and that's already enough for me.
## Music for Coding
Las Luces Primeras is a musical project by Mariano Peccinetti, a visual artist, musician, composer, and multi-instrumentalist from Mendoza, Argentina. The project is described as a reference point for indie music from Cuyo (the western Argentine region) and Spanish-language neo-psychedelia, exploring a dreamlike and introspective style ranging from dream pop to garage psychedelia.
Highly recommend this one and the other albums from the group, it's a really nice breather from the electronic stuff I usually listen to:
And that's a wrap — hope you've enjoyed this curated assortment of 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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **It's been a tad bit inactive, but we can change that... maybe.**
**If you've read this far, thanks a million!** And in case you're still hungry for more generative art things, you can find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 102
URL: https://www.gorillasun.de/blog/gorilla-newsletter-102/
Last updated: 2026-08-15T09:24:38.000Z
**Hi everyone** 👋 **I'm back! It's been a minute since I last published a newsletter — almost a year now! And a lot's happened in the meantime, if you're curious where I've been, I published an update here.**
[A Strange YearIt’s been almost exactly a year since I last posted here. A lot has happened in the meantime — I moved to a new place, I’m no longer part of fxhash, I had some gnarly health issues, and I’m slowly getting back to working on the things that I actually love doing.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-strange-year/)
**If you're just back for the news, then keep scrolling! 👇**
> This is the **102nd** issue of the Gorilla Newsletter — a ~~weekly~~ (let's see if we can make it weekly again) online publication that sums up everything noteworthy in creative 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news! ✨***
## New in Creative Tech
**1 —** [**Learning Creative Coding by Stig Møller Hansen**](https://stigmollerhansen.dk/resume/learning-creative-coding/?ref=gorillasun.de): I've followed Stig for a few years now. He has built his instagram profile into an impressive catalogue of re-codes — programmed recreations of interesting and iconic visual designs. With a particular focus on posters. Here's a screenshot of his profile👇
[](https://www.instagram.com/stigmollerhansen/?ref=gorillasun.de)
[Link to instagram profile](https://www.instagram.com/stigmollerhansen/?ref=gorillasun.de)
It's truly a treasure-trove of inspiration that I recommend exploring for yourself. Each recreation is accompanied by a short description that provides additional historical context around the original inspiration. I believe that Stig's intent behind each recreation is in most cases the idea of bringing to life a static design via parametrization, allowing Stig to not just recreate the original but also generate different varieties of the same design at once.
While that's already an impressive body of work, Stig gets the top spot of this issue for the book he published earlier this year: **Learning Creative Coding**.
[Learning Creative Coding – Stig Møller HansenPau](https://stigmollerhansen.dk/resume/learning-creative-coding/?ref=gorillasun.de)
I believe the title of the book to be self-explanatory, but after reading a few chapters and skimming the rest, even if you're already experienced, it's not something to be glossed over.
It's not really a technical book, far from it, it's about the process, the mindset, and many of the psychological aspects of creative coding, programming art, and design programming in general. And Stig hits some of the most important topics that it involves.
> This book won’t teach you syntax. It won’t walk you through tutorials. It won’t make the learning easy. What it will do is help you understand what you’re experiencing and why it matters.
I'm not fully through it yet, but I genuinely can't express how much I appreciate that the book simply starts out with the topic of frustration in creative work. It really struck a chord with me. A lot of careers probably come with their own frustrations, but I think it's a special kind when it comes to creative work. What's more is that the chapters are also color-coded with a virtue system — meaning that you can read the chapters in a different order, depending on what kind of struggle you are currently dealing with.
**2 —** [**Plottimation Tool by Golan Levin**](https://golanlevin.github.io/plottimation/?ref=gorillasun.de): back in march Golan Levin released a super useful plotter animation website and library. It lets you automatically render an animated gif simply by feeding it a sheet of plotted frames — important thing is that the sheet includes little guide markers in between the individual frames.
[Plottimation ToolFree web tool for animators to create looping GIFs and MP4s from photos of frame sheets, contact sheets, and sprite sheets.Golan Levin](https://golanlevin.github.io/plottimation/?ref=gorillasun.de)

Golan provides a quick demo video over on YouTube that explains how the website works, but essentially you simply need to upload a photo of the sheet:
As someone that's tried to create a plotted animation from simply taking individual photographs of each frame, let me tell you how pain staking it is to do so manually.
**3 —** [**Patt Vira's Introduction to Shaders**](https://www.youtube.com/watch?v=q1xzpZu1KTc&ref=gorillasun.de): Patt Vira is also back from a break and released a new, highly requested, tutorial series on Shader programming. It's a wonderful intro to shaders using the WebGL context in p5\. She covers all of the basics, including GLSL syntax, setting up a shader sketch in P5, before diving into some of the default functions that GLSL ships with.
I've mentioned it before, but the biggest hurdle to shader programming is that it requires you to fundamentally think differently about your code. You're now writing code that runs in parallel for each pixel, without the ability to share state between them so easily. Often a crutch I use in my regular sketching.
**4 —** [**XOR's shader playground fragcoord.xyz**](https://fragcoord.xyz/explore?ref=gorillasun.de) **and** [**14 years of shader tricks**](https://x.com/XorDev/status/2021356467115462961?ref=gorillasun.de): while we're on the topic of shaders, XOR whom I've mentioned a couple of times on the newsletter for his mind-boggling size-coded shaders, has launched his own shader editor:
[](https://fragcoord.xyz/?ref=gorillasun.de)
[Link to Editor](https://fragcoord.xyz/?ref=gorillasun.de)
In the docs it mentions that it's inspired by the other online shader editors like ShaderToy, TwiGL, etc. now I do have to say that I like the fragcoord layout a bit more than the others, it seems to offer more features to play with code and inspect the shader code.
I also came across a thread of XOR's where he recounts some of his favourite tricks that he's discovered over the course of 14 years of shader programming:
[](https://x.com/XorDev/status/2021356467115462961?ref=gorillasun.de)
[Link to Post](https://x.com/XorDev/status/2021356467115462961?ref=gorillasun.de)
**5 —** [**CVPR 2026 Art Gallery**](https://thecvf-art.com/archive.php?year=2026&ref=gorillasun.de): is an art exhibition that runs alongside the prestigious CVPR (Conference on Computer Vision and Pattern Recognition), one of the biggest academic AI/computer vision conferences. It's curated by Luba Elliott, a curator specializing in AI in the creative industries, and features works that use or critically address computer vision techniques like generative models, GANs, diffusion, and facial/object recognition.
[2026 | CVPR ArtCVPR Art Gallery — Showcasing art and creative works exploring computer vision from the annual CVPR conference.CVPR Art](https://thecvf-art.com/archive.php?year=2026&ref=gorillasun.de)
Luba Elliott also interviewed some of the participating artists for a feature article on LeRandom — highly recommend checking that [post](https://www.lerandom.art/editorial/seeing-machines-luba-elliott-on-the-2026-cvpr-art-gallery?ref=gorillasun.de) out.
**6 —** [**Rhizome's 7x7**](https://rhizome.org/editorial/2026/jun/12/7-big-ideas-from-7x7/?ref=gorillasun.de): Rhizome's **Seven on Seven (7x7)** is their flagship annual art & tech conference, running since 2010\. The concept is simple but potent: it pairs seven artists with seven technologists, asking them to "make something new" and present the results at a public day-long conference.
2026's theme was loosely organized around "more-than-human" — the idea that intelligence and agency exist not just in people but in the systems, environments, and entities around us. The framing text they shared was Zoë Sofia's 2000 essay "Container Technologies," which argues for valuing sustenance, maintenance, and care over extraction and control. You can read about all 7 artists and watch their project presentations over on the rhizome website.
**7 —** [**Leon Harmon's The Recognition of Faces**](https://www.mat.ucsb.edu/g.legrady/academic/courses/12s102/OrgFaceHarmon.pdf?ref=gorillasun.de): I discovered this one through [a post from Noah Bolanowski](https://x.com/Noahbolanowski/status/2063459213423104327?ref=gorillasun.de), who continues to share interesting bits and pieces about the past of computational technology. This time he shared Leon Harmon's 1971 minimal computer portraits.
The Recognition of Faces investigates the minimum amount of visual information required for humans to recognize a face. He reduced a photograph to roughly 200 coarse squares using only 16 shades of gray — essentially an extreme low-resolution pixelation — and found that people could still identify it as a human face, and whose human face it actually was. The work probed how the brain fills in gaps and reconstructs coherent perception from sparse, degraded input.


[Link to Post](https://x.com/Noahbolanowski/status/2063788307725643796/photo/3?ref=gorillasun.de)
It's an early landmark in visual perception research, and also a precursor to ideas that would later become central to digital image compression and, much further down the line, to how neural networks "see." You can read the full 1973 text "The Recognition of Faces" [here](https://www.mat.ucsb.edu/g.legrady/academic/courses/12s102/OrgFaceHarmon.pdf?ref=gorillasun.de).
## Tech & Web Dev
**1 —** [**Cheng Lou's Pretext**](https://pretextjs.dev/?ref=gorillasun.de): I don't think Cheng Lou's pretext needs an introduction, when he first announced it over on Twitter, my entire timeline consisted of browser demos destroying blocks of text, sending individual characters flying across the page, in addition to all sorts of other interesting text based experiments. If you somehow never saw that the original tweet, here it is again:
[](https://x.com/%5Fchenglou/status/2037964564072210899?ref=gorillasun.de)
[Link to Thread](https://x.com/%5Fchenglou/status/2037964564072210899?ref=gorillasun.de)
What's so revolutionary about this? Pretext solves the problem of calculating the height of a paragraph of line-wrapped text *without touching the DOM*. The usual way of doing this is to render the text and measure its dimensions, but this is extremely expensive. Specifically, every time you need to figure out how tall a paragraph is or where a line breaks, the DOM triggers a reflow — on mobile, a single forced reflow can block the main thread for about 10–100ms.
And because it's magnitudes faster than the previous DOM rendered approach, all text now becomes fully dynamic and interactive. Which is why we saw all the crazy demos pop up at the time. I also found this cool website that aggregates a bunch of the examples here:
[Pretext - Text measurement that never touches the DOM.Pretext is a high-performance, pure JavaScript/TypeScript layout library for text rendering. Zero dependencies, framework-agnostic, blazing fast.Pretext.JS](https://pretextjs.dev/?ref=gorillasun.de)
If you want to build something cool with it yourself, here's also the [github repo](https://github.com/chenglou/pretext?ref=gorillasun.de).
**2 —** [**HTML in Canvas**](https://developer.chrome.com/blog/html-in-canvas-origin-trial?ref=gorillasun.de): earlier this year the new HTML in Canvas API was released, and brought with it a whole swath of interesting demos. As the title of the feature suggests, it makes it possible to render native HTML elements inside of a canvas element, which means that you can then apply visual effects to those elements with the 2d, WebGL, and WebGPU rendering contexts. As of now it is only available in chromium based browsers though, and behind a flag.
[Introducing the HTML-in-Canvas API origin trial | Blog | Chrome for DevelopersLearn about the HTML-in-Canvas origin trial in Chrome, and how it can help bring the DOM to your Canvas-driven applications.Chrome for DevelopersX](https://developer.chrome.com/blog/html-in-canvas-origin-trial?ref=gorillasun.de)
How does this work IRL? Essentially, you can now nest HTML elements inside of a canvas tag that's marked with the `layoutsubtree` attribute (either directly or programmatically). Then with the new `ctx.drawElementImage(element, x, y)` you actually draw the elements into the canvas. Lastly, the browser also needs to know *where we drew it* so it can route clicks and hovers to the right place, which is done by attaching the style transform returned from this function to the actual element.
If that's confusing, the official post above explains it much more clearly — there's also an in depth tutorial from frontendmasters here:
[The Web Is Fun Again: First Experiments with HTML in CanvasAn experimental API let’s us put HTML within those opening and closing canvas tags and render it to the canvas, while remaining interactive. Lots of possibility here!Amit Sheen](https://frontendmasters.com/blog/the-web-is-fun-again-first-experiments-with-html-in-canvas/?ref=gorillasun.de)
If you want to see some cool demos check out this [showcase](https://www.youtube.com/watch?v=Z1VBHgTLQVc&ref=gorillasun.de).
**3 —** [**Hyperblam**](https://hyperblam.how/?ref=gorillasun.de): hyperblam is an HTML based, declarative implementation of the Web Audio API. It basically lets you build interesting musical instruments simply by chaining, nesting, mixing and matching custom HTML tags — just like you would wire up different modules of a modular synth.
[Hyperblam Docs HomeDocumentation for HyperBlam. Make HTML make music.HYPERBLAM](https://hyperblam.how/?ref=gorillasun.de)
Obviously you could just write the Web Audio javascript code from scratch if you wanted to build something specific, but going through some of the examples that Heydon provides, makes it obvious that this layer of abstraction does lend itself to some creative affordances. Particularly coupled with browser events, like page scroll, mouseclicks, etc. I think there's a lot there. A different approach to
0:00
/0:26
1×
[Try some of the examples for yourself here.](https://hyperblam.how/examples/?ref=gorillasun.de)
So the next time you want to incorporate some audio in a project of yours, consider using Hyperblam instead of the Web Audio API. As an aside, the website is also a work of art in of itself with the custom font and the hand-drawn illustrations.
**4 —** [**Snake.run by Nolen Royalty**](https://eieio.games/blog/secure-massively-multiplayer-snake/?ref=gorillasun.de): with a track record for building massively multiplayer experiments, back in February Nolen Royalty built a massively multiplayer Snake game that you play entirely in your terminal by running `ssh snakes.run`. The whole thing renders server-side and then streams to your terminal as text.
[snakes.run: rendering 100M pixels a second over ssh · eieio.gamessnakes.run is a massively multiplayer snake game that uses the Secure Snake Home (SSH) protocol. It can render 100M pixels a second.eieio.games](https://eieio.games/blog/secure-massively-multiplayer-snake/?ref=gorillasun.de)
In his blog post, he explains how he overcomes some impressive, entirely self-imposed, engineering challenges to make it possible — including making the game aesthetically pleasing in the terminal, streaming it at a reasonable bandwidth, and making it performant enough to allow for 2500 concurrent players.
[](https://x.com/itseieio/status/2027053193654419538?ref=gorillasun.de)
[Link to Post](https://x.com/itseieio/status/2027053193654419538?ref=gorillasun.de)
**5 —** [**Messenger by Abeto.co**](https://messenger.abeto.co/?ref=gorillasun.de): I don't have much to say here, except that this is by far one of the most impressive websites I've ever seen. It's a full browser based game, with quests and all, where you explore a tiny spherical planet/city. What's more is that you can even see and interact with other visitors on the page that also get their own characters.
[MessengerIt’s a small planet, but someone’s gotta make the deliveries.](https://messenger.abeto.co/?ref=gorillasun.de)
## AI Corner
Coming back to compiling this newsletter, this section has only increased in relevancy. Considering the tech landscape, I'd argue it's probably the most important one at this point.
Will I change the order of the newsletter though? I would still like to keep the focus of this newsletter on human x code creativity — if something happens to use AI in the process then I'll still include it in the lead section, while this one is reserved for the discourse around AI as a whole.
A few years ago this part felt more of a "Hey, look, here's something cool happening in AI", now I feel that I should engage a lot more in the discourse overall. Especially seeing with how disruptive AI has been across many disciplines and fields.
**1 —** [**LLMs are eroding my sotware engineering career**](https://human-in-the-loop.bearblog.dev/llms-are-eroding-my-software-engineering-career-and-i-dont-know-what-to-do/?ref=gorillasun.de#fn-1): it's not hard to see why this blog post went viral. Given how many engineers are watching coding agents get uncomfortably good, it's a bit frightening to hear from a domain expert that most coding agents are already capable of replacing most of their skills.
> The only way out for keeping my employability in the long-term now seems to be shifting my domain expertise to something LLMs will not get good at so easily. But what's left?
I couldn't track down who wrote it, but I've been sitting with the same question for months. What specific forms of human expertise — in writing and architecting code — are agents still genuinely bad at? Where does the hard ceiling actually sit? What are the skills that I should get really good at, that agents and LLMs still haven't cracked?
[LLMs are eroding my software engineering career and I don’t know what to doI’m a software engineer, completing 10 years of professional experience this year. I started my career as a web frontend engineer (it was easier for me to de…the human in the loop](https://human-in-the-loop.bearblog.dev/llms-are-eroding-my-software-engineering-career-and-i-dont-know-what-to-do/?ref=gorillasun.de)
I hate fearmongering, hence I have a sense that we will eventually figure out something that AI is truly bad at and will never be able to solve; my hunch is that it has something to do with creativity and human connection.
**2 —** [**High on AI**](https://www.instagram.com/p/DY7oL6FBMQr/?ref=gorillasun.de): Maybe the final frontier for LLMs is after all creativity itself? This is what Tim Rodenbröcker tackles in a recent instagram video of his. He argues that agents should be used tactically, much less during creative work, much more for infrastructure tasks that consist of repetitive or tedious work, where they can actually save us time.
For creative processes AI is largely a liability, where prompting something into existence just means having to clean up after it.

[Link to instagram video](https://www.instagram.com/p/DY7oL6FBMQr/?ref=gorillasun.de)
And I couldn't agree more. Similarly to before, I feel that typing prompts into an agent slowly erodes my reasoning and creative skills. This is why I try to limit my usage. It's very similar to doomscrolling on instagram and how it completely obliterates my ability to concentrate or keep my attention for longer than the duration of a reel.
[Being High on AI • tim rodenbröker creative codingSome time ago, an older friend of mine told me: “Tim, many years ago I used cocaine, once”. “How was \[…\]tim rodenbröker creative codingTim](https://trcc.timrodenbroeker.de/being-high-on-ai/?ref=gorillasun.de)
**3 —** [**The User Is Visbily Frustrated**](https://pscanf.com/s/354/?ref=gorillasun.de): Paolo Scanferla points out that much of the frustration we experience with coding agents is due to their anthropomorphism. They talk and respond like humans, and we get frustrated at them like we would with another person, but ultimately experiencing this kind of frustration is a bit absurd, because the agent does not actually understand it or attempt to steer it in such a corrective manner.
[The User Is Visibly FrustratedIn this article, I try to understand why coding agents can be infuriating to use. I think the problem is their conversational UX: they behave enough like helpful colleagues to trigger our social instincts, but they don’t learn, adapt, or take responsibility the way people do, which makes their repeated mistakes feel much more frustrating than they should.\[email protected\]](https://pscanf.com/s/354/?ref=gorillasun.de)
**4 —** [**Can gzip be a language model?**](https://nathan.rs/posts/gzip-lm/?ref=gorillasun.de): when I began my master studies back in 2019, the first thing I learned about was Shannon-entropy and auto-encoders. Auto-encoders are nothing more than teachable compression machines that create an abstract representation of the data. In that sense, the large language models of today can also be considered massive compressors — the premise of Nathan Berry's project.
Without learning any weights, he wants to see if the gzip algorithm can actually be used for text prediction, and it actually kinda works. "*It’s not exactly coherent text, but it clearly knows something about the text. Much more than I expected `gzip` to know. So how can a compressor generate this?*"
[Can gzip be a language model?A while back I wrote about language modeling without neural networks, where I generated Shakespeare with an unbounded n-gram model: no weights, no training, …nathan.rs](https://nathan.rs/posts/gzip-lm/?ref=gorillasun.de)
It has something to do with the fact that compression is inherently a form of probability modelling, but I'll leave you to discover this for yourself in the post.
**5 —** [**Human cooking compressed into 2MBs**](https://epicure.kaikaku.ai/?ref=gorillasun.de): Epicure is a multilingual food embedding model that covers 4.1 million recipes across seven languages, mapping 1,790 ingredients, each represented as a 300 dimensional vector, into about 2MB of storage space.

[Link to Tweet](https://x.com/josefchen/status/2059350978109874677?ref=gorillasun.de)
The full paper, *Epicure: Navigating the Emergent Geometry of Food Ingredient Embeddings* by Radzikowski & Chen (KAIKAKU.AI), is up on arXiv [here](https://arxiv.org/abs/2605.22391?ref=gorillasun.de). And you can play with a [live demo](https://epicure.kaikaku.ai/?ref=gorillasun.de) here. Maybe the title might be a bit misleading though, but the demo clarifies it, essentially allowing you to compose recipes via a connectivity graph, that suggests what flavors go well together. This can then also be hooked up to an agent to give it knowledge about flavors and such.
Interesting discussion over on [hackernews](https://news.ycombinator.com/item?id=48291225&ref=gorillasun.de) as always.
**6 —** [**The Smallest Brain You Can Build**](https://ranpara.net/posts/perceptron-explained-from-scratch/?ref=gorillasun.de)**:** and to wrap up this section, an educative resource where Devrash Ranpara teaches us how to code a perceptron from scratch in python:
[The Smallest Brain You Can BuildA perceptron explained from scratch in Python, with interactive demos. Learn weights, bias, the decision boundary, epochs, learning rate, and why we normalize data.Devarsh RanparaDevarsh Ranpara](https://ranpara.net/posts/perceptron-explained-from-scratch/?ref=gorillasun.de)
## Gorilla Updates
If you haven't read my update — here it is again:
[A Strange YearIt’s been almost exactly a year since I last posted here. A lot has happened in the meantime — I moved to a new place, I’m no longer part of fxhash, I had some gnarly health issues, and I’m slowly getting back to working on the things that I actually love doing.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-strange-year/)
In the last few months I've tackled quite a few things — a big one was organizing all of my digital clutter, sifting through all of the sketches that I've made over the past years. Only considering the past Genuarys, then that already adds up to a 150 individual pieces. Right after coming back from the hospital I got started on building a little archive page to showcase all of them:

This ended up being a much larger endeavour than I had anticipated (story of my life). Since I want this archive to be clean, it required not just collecting all of the projects from my hard drives — I really have not done a good job organizing my folders in the past — setting up a database to store the images for each one, writing an individual description for each, and hardest of all, cleaning up the code as well. There's still a lot to do there tbh, but it's an enjoyable process to which I can allocate a little bit of time when I don't feel like doing other tasks.
This involved learning lots about react and Next.js, and there's much to share there, but I'll probably keep for that for a future update!
Besides that I also went back to playing with flow-fields — the highly, highly overdone shtick in genart. I recently went back to look at [Junia Farquhar's Dipolar](https://www.artblocks.io/collection/dipolar-by-junia-farquhar?ref=gorillasun.de), an Art Blocks project back from 2022\. I was always very impressed with the compositions, and the incredibly satisfying manner in which the flow field wraps around the magnetic poles placed on the canvas.
Hence why I made the attempt to implement my own version. The math is fairly easy to get something rudimentary going, but it ends being quite slow with how many computations it takes to determine how the flow lines should bend. I got it somewhat speedy on CPU, but still not fast enough to really call it "real-time".
0:00
/0:31
1×
I might write something about this eventually, I think it's interesting enough.
## Music for Coding
In an ever-growing catalogue of AI generated playlists, I am in a constant search of original human-made music. Skee Mask blends ethereal textures in a way that's reminiscent of Aphex Twin — highly enjoyable, and highly recommend letting yourself sink into this album:
And that's a wrap — hope you've enjoyed this curated assortment of tech shenanigans! I'm really happy to be back. I'm not yet sure if this is going to be a weekly thing again or not, or if I have the stamina to send it out on a very consistent basis — but I'll give it my best shot.
> 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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **It's been a tad bit inactive, but we can change that... maybe.**
**If you've read this far, thanks a million!** And in case you're still hungry for more generative art things, you can find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### A Strange Year
URL: https://www.gorillasun.de/blog/a-strange-year/
Last updated: 2026-08-10T07:11:03.000Z
Hey everyone, it's been almost exactly a year since I last posted an update to the blog. This post is an attempt to fit a strange year into just a few paragraphs. There were more than a few things that I didn't envision having on my bingo card.
Here's the TLDR:
1. I moved.
2. I'm no longer with fxhash.
3. I got pretty sick.
4. I'm working on the blog again.
If you're reading this, then the newest issue of the newsletter is also out! The next one's also already in the works. I guess I'll jump around a bit in terms of timeline, just to keep this relatively short.
## Life, Moving, Health Problems
Mid 2025 I moved to a new place. The move happened around the same time I was updating the blog less and less — if you've ever moved places, you can probably imagine that the logistics of it are terrible. Add to that, the new place had a lot of issues that needed to be fixed up before it was ready to be moved into.
Fortunately, all of that is a thing of the past, and so far, I've settled in quite nicely. It's still in the same city, but much more centrally located. A big improvement compared to where I'd previously been, now saving me quite a bit of time on commutes. I didn't know if I was really ready for a larger space, if I would be able to manage all the chores that come with it, but honestly I've done a better job than I thought.
Now I also have a much nicer working space — lemme flex with my little creative/work corner.

The living room is pretty spacious, hence subdivided into living room area and this working space. Still a work in progress, but getting some of my best work done here. I still haven't figured out how to store the plotter in an effective manner, as I don't use it that often (I probably should though). It just sits there most of the time — so if you have any tips for that, hit me up.
Moving did take a lot of energy out of me, more than I'd anticipated. Looking back, I probably ran myself too thin. Throughout the move I was still working full-time and didn't really take any time off. It didn't help that the work just got more and more stressful as time went on.
The last few months of 2025 just feel like a blur. And I guess, by 2026 all of it made me reach a breaking point; on February 23rd I walked myself to the ER thinking I was having *a heart attack*.
Over the course of that weekend I had already felt some strange intermittent pain in my chest, which I blamed on the flu from the week before. Sunday night this pain only grew more and more intense, and even felt it radiate into my left arm. If you've ever read up on heart attacks, that's pretty much the one sign you need to look out for. Around 4AM when the pain still hadn't subsided, I debated calling 911, but having a hospital only a 10 minute walk from my place, it made more sense to just try and go there as quickly as possible.
A few hours and a cardiac catheter later, I was diagnosed with a Peri-Myocarditis — essentially an inflammation of the heart muscle and the area around it.


In the ER with my dad — funnily enough it was also his birthday that day. "Hello dad, happy birthday, btw I'm in the ER." Also cool MRI pic of my torso.
At the time of writing, it's been 4 months to the day. The recent MRI I did shows that all my heart functions have returned to normal, but at the same time shows that it's still partially inflamed. Meaning that I need to take it easy for a few more weeks.
It's a bummer. Not being able to move freely, and exercise, has taken a toll on my mental health. In the last three years weightlifting had become a big part of my daily routine — losing that in an instant was difficult to cope with. That hour at the gym was a really effective way to shut off my brain for a little bit, and be away from the rest of my digital life. So far I have not found a good replacement for it.
Yes, I have tried yoga. Unfortunately, I find it quite boring.
But that's that, all I can do now is rest and wait, and try to channel my energies into the other things that matter. I'm grateful to have a loving partner, family, and friends that helped me with it all.
And hey, it's given me the time to pick up the blog again, as well as some other neglected hobbies of mine. Making music again and playing some video games. I'm halfway through Expedition 33, and what an absolute masterpiece. It's rare that a game captures me like that.
Without much of a segway, the day I was hospitalized was the same day that I received the layoff notice from fxhash.
## Time at fxhash
Getting the offer from fxhash in September of 2024 was a dream come true. Getting the chance to be directly involved with the platform that had enabled so many things for me in previous years, was just surreal. I felt that I was really advancing in the gen-art x creative coding career (if you can call it that).

At the same time, I really hadn't been doing well financially the few months before. The gig I had previously gotten to help out with the documentation end of 2023, had already helped out tremendously.
The first few months were okay, but it also quickly became apparent that the team was quite burnt out from the previous years. And it really is no wonder with the pace of how the platform had grown, and had to grow really. As the weeks rolled by, the more it became clearer that there were also a lot of other internal issues.
Initially I was hired to write community newsletters, continue working on the docs, and make educative content for the platform related to generative art. I ended up writing quite a few things, some of which never saw the light of day for one reason or another. For instance, there was this full length tutorial on Chladni patterns, that I worked on in tandem with the CYMATIC exhibition that happened in Photo Paris 2024.

I will eventually have the tutorial up on the blog though.
While those newsletters were well received initially, it also felt that it wasn't really putting a dent into this decline in interest. Somehow fxhash never managed to regain the same community sentiment that it had experienced in the early days, even though there were many sincere attempts to recapture it. fxhash did quite a few pivots throughout 2025 — dropping support for Tezos, moving towards art coins, open-form projects, ranked auctions, two revamps of the website, the attempt to open to all digital art, etc.
I didn't have a say in any of it, but I also don't know what could have been done differently to have a better outcome for the company. Maybe the beginning of the end already was the move towards ETH, but I believe that was also a requirement for the seed-raise. Dropping support for Tezos felt like the final nail in the coffin for any sort of positive community sentiment, but then again, it was simply not profitable enough. The coin stuff all just came way too late.
All moves were always just reactive towards the current situation. Maybe the best solution would have been to down-size the team and platform to absolute the absolute minimum, rather than aiming for scale. But that would have required ciphrd to make some hard choices.
The most challenging part of the job was absorbing the overwhelming negativity whenever an announcement rolled out. One of the reasons why I felt less and less desire to be on social media. Some of the feedback was entirely fair — but a platform can't change course every time one person voices an opinion, even if it's a valid one.
There were some seriously crazy sprints in 2025, especially with how ambitious the entire open-form idea was — in retrospect it's really impressive that the team managed to get it deployed and running. Yes, there were a lot of issues, and it was too complicated, but I think it was still a very interesting experiment in generative art x blockchain. Had it been done a year or two earlier it would have probably taken off in a much different manner. But that's just a hypothetical.
As time went on, my position slowly shifted to handle more and more of the day to day comms of the team internally, handling the meetings, writing design docs for the product, and overall coordinating timelines and projects. Partially this was due to me already being involved in most of everything, so that I could compile these updates for the socials. And at the same time, there was a bigger and bigger leadership vacuum, so those tasks needed to be handled by someone.
Overall, the work itself was quite interesting, would it not have been for the difficult circumstances that surrounded fxhash. I hope this paints a broad picture of things. There's a lot more I could say here, but at the same time I'm trying to close this chapter.
### The End
With open-form and the FXH launch being somewhat successful it felt that things were moving in a positive direction again. End of September we had one of our regular team-syncs. The call went fine, we ended it on a positive note, we assured Baptiste that we would assist him with everything. All things considered, team morale was high.
Unknowingly it would be the last time I saw Baptiste until March 2026\.
The months after, the team was pretty much in limbo — the next week then just complete radio-silence. Not giving a simple notice is inexplicable to me.
There probably is a lot more here that I don't know, hence I will leave it at that. In the end, I find the community update that was given disingenuous; claiming that exorbitant IPFS costs broke the camel's back, is just part of the issue.
The actual plan for 2026 had been the introduction of ranked auctions, followed by opening up to all forms of digital art on the platform. The former we miraculously managed to put into production in less than two months considering that it involved some gnarly contract work in the context of artcoins. At that point we were genuinely stretched thin and motivation was at an all time low, especially with less and less runway looming over us. The lofty goal of opening up the platform to all digital art was becoming quite impossible.
Things then ended on February 23rd, with a notice that salaries for that month would not be paid due to a non-existent runway. I despise over-dramaticizing things, but quite literally as soon as I was rolled into my assigned hospital room, and after calling my family, I got the notification on my phone.
Life has comedic timing sometimes.
### The Good Moments
But it's not all bleak though, there were quite a few rewarding moments in between. My favourite one was helping eboy upload and mint their open-form project to the platform — which was also the most successful open-form project imo.

While we were waiting for the devs to help figure out some hiccups with the upload flow, we had a few moments to chat and talk about art, life, and all sorts of other things. In the screenshot we were post launch, watching some of the mints show up in the open-form graph.
I also really enjoyed giving the workshop in Ghent at the very start of my employment, getting to meet Bjørn in person, exchange some words, and experience the amazing Entangled installation live was surreal.

I also greatly enjoyed working with Markus, Leo, and Louis over the course of the year and a half. They are the unsung heroes behind fxhash, none of it would have actually been up and online if it wasn't for them. They deserve much more credit for that than they have received.
All three of them are incredibly skilled and talented devs. Other companies would be lucky to have this kind of dev team: Markus built that crazy open-form graph from scratch in just a few days, Leo handled hooking up some crazy complicated contract work to the frontend, and besides handling the database, Louis would always immediately be there whenever anyone faced an issue. Sadly I never got the chance to meet them in person.
Writing this down, it's a really strange feeling looking back on it all. A significant part of my life, not just working for fxhash, but also the amount of time I have put into the projects that I've released with fxhash, as well as thinking and writing about it ever since 2021\. It could have been a good memory. I genuinely cared deeply about the platform, and I still do care about generative art, even if this entire experience taints my joy for it just a little bit.
At the same time, I'm relieved that it's over. It took a while to process all of it, especially with how abruptly it ended, in conjunction with my health.
Here is a notebook my partner gifted me when I got the job — she wrote me a small note on the first page.

"Good luck with work! I know you'll do good <3"
## Where to from here?
When I first launched this blog, it was meant to be my little corner of the internet. I started it at a time when I felt like I didn't have a voice — like I wasn't doing anything meaningful. Having a platform to put words out into the world, to inform and teach people, to actually reach them, matters a lot to me. Making a positive impact, however small.
Looking back, I think I've built something genuinely valuable. Some parts are all over the place, sure — but still. My plan is to flesh this out into a more polished archive of my work, my writing, and not just a newsletter. Still a newsletter, but also more than that.
I am currently working on rebuilding the blog as a proper platform. That is the n-th time that I do this, but this time I actually have the know-how to do so.

Experimental new homepage for the blog.
And while we're already talking about the newsletter. I had already started pivoting more towards creative technology at large as the newsletter progressed, in its wake, the blog was to a large extent about generative crypto art. That space looks completely different now. I recently checked the Discords of various platforms that existed at some point, and it largely feels like a digital wasteland now. Maybe I am missing something though, with all the buzz I'm seeing around Art Basel, it feels that digital art is just becoming more and more mainstream, and just isn't such a niche thing anymore.
In comparison, everything related to AI in tech has just become magnitudes more relevant; obviously considering that is an existential threat to programmers and the craft. Without a doubt it's the most important conversation of this decade, and has heavy implications on creative technology, art making, and the value of human opinion. Not taking part in this conversation is simply stupid. This is to say, that I'm aware this should become a more prevalent part of the newsletter, rather than just a footnote.
In the advent of AI, I strongly believe that human-made "content", and original opinion will only increase in value. One of the reasons why I feel comfortable coming back to writing, and compiling the newsletter. While AI can do many of these tasks much faster and much better than me, at least for the foreseeable future it will not be able to replace my thoughts, opinions, and the human experience I'm living.
What's my plan moving forward? I'll try to be more active again on here and my socials in the coming weeks and months. I'm not promising or imposing any sort of strict schedule on myself, but I have already worked on some new art, drafted some new articles, experimented with some new formats, etc.
So yeah, that's pretty much it, that's all I wanted, and needed to say. I'll catch you in the newsletter, or in the next update!
Cheers \~ Gorilla 🌸
### Gorilla Newsletter 101
URL: https://www.gorillasun.de/blog/gorilla-newsletter-101/
Last updated: 2025-07-21T05:00:09.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the **101st** 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## All the Generative Things
**1 —** [**Programming Physarum Simulations**](https://bleuje.com/physarum-explanation/?ref=gorillasun.de): this week Etienne Jacob, aka Bleuje, treats us to a particularly insightful write-up on an all-time classic genart algorithm—Physarum sims! He shares his own implementation, where compute shaders (using openFrameworks) enable him to drive millions of particles at a crisp 60 FPS. What's more, is that he's open-sourced all of his code throughout the tutorial:
[Algorithms for making interesting organic simulationsArticle explaining simulation algorithms that produce complex organic behaviours, starting with the classic physarum algorithm from Jeff Jones.](https://bleuje.com/physarum-explanation/?ref=gorillasun.de)
What's more is that Etienne actually also introduces a 15th sensing parameter, integrates color gradients (comparing current vs. delayed trails), particle inertia, and an interactive “pen” that spatially blends parameter sets under the cursor.
0:00
/0:10
1×
We've previously talked about the topic in [issue #68](https://www.gorillasun.de/blog/gorilla-newsletter-68/) of the newsletter, where Deniz Bicer had created a really cool [interactive introduction](https://denizbicer.com/202408-UnderstandingPhysarum.html?ref=gorillasun.de).
Physarum sims are essentially particle-based algos that recreate the behavior of [slime mold](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de)[s](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de), as well as ant colonies, in a digital setting. For context, I'll quote what I previously wrote:
> Originally described by Jeff Jones in his 2010 paper titled "[Characteristics of pattern formation and evolution in approximations of Physarum transport networks](https://uwe-repository.worktribe.com/output/980579/characteristics-of-pattern-formation-and-evolution-in-approximations-of-physarum-transport-networks?ref=gorillasun.de)", the algorithm was later brought to popular attention in the generative art/creative coding space by Sage Jenson ([@mxsage](https://x.com/mxsage?ref=gorillasun.de)), with an iconic [blog post](https://cargocollective.com/sagejenson/physarum?ref=gorillasun.de) of his published in 2019.
If you're looking for a more beginner friendly intro to the algorithm, you should definitely check out Patt Vira's [tutorial](https://www.youtube.com/watch?v=VyXxSNcgDtg&ref=gorillasun.de).
**2 —** [**Programming Software/Triangle Rasterizers**](https://www.youtube.com/watch?v=yyJ-hdISgnw&ref=gorillasun.de): and while we're on the topic of computer graphics—strange how we recurrently talk about computer graphics on this newsletter—a recent Sebastian Lague coding adventure shows us how to program a software rasterizer.
Software rasterizers are essentially a CPU-based renderer that can render primitives to the screen by determining which pixels need to be turned on, and what color they should be.
So the entire GPU shader-shebang, like scan conversion, per‑vertex attribute interpolation (color, texture coordinates, and normals), performing depth tests to resolve visibility, and running fragment shaders to compute final pixel color, but simply on the CPU. Lague also covers some tricks on how to create a relatively performant pipeline:
Coincidentally, this week I also came across a tutorial series back from 2022, written by Kristoffer Dyrkorn, similarly showing us how to create a triangle rasterizer that's fast and precise:
[](https://kristoffer-dyrkorn.github.io/triangle-rasterizer/?ref=gorillasun.de)
[Link to Series](https://kristoffer-dyrkorn.github.io/triangle-rasterizer/?ref=gorillasun.de)
**3 —** [**Fractal formulas in Duality of Zed**](https://www.fxhash.xyz/project/duality-of-zed?ref=gorillasun.de): Ryan Bell is not only an OG generative artist, but also turns out to be one of the earliest to experiment with NFTs.
A recent article by Archivist uncovers this story, linking two of the first digital artifacts on the Namecoin chain (the first altcoin and second blockchain after Bitcoin launched on April 18, 2011 as a fork of Bitcoin’s code), back to Ryan Bell.
[Fuckyea, 2012 — A Brief Echo into the Void of Crypto ArtThe forgotten 2012 Namecoin experiment: Fuckyea, a fully on-chain pixel-art meme, may be the earliest crypto art ever made.MediumArchivist](https://archivist-eth.medium.com/fuckyea-2012-a-brief-echo-into-the-void-of-crypto-art-a93097473476?ref=gorillasun.de)
Just last week Ryan Bell has also published a new project on fxhash—titled Duality of Zed, his project charts wholly uncovered fractal territory. The work explores two fractal formulas in particular: `ln(-z)/ln(z)` and `ln(z)/(z+1)`, resulting in some really crazy patterns, that only get more intricate as they are evolved by collectors 👇


> These are forms that emerge naturally from pure logic through concise yet powerful expressions like ln(-z)/ln(z) or ln(z)/(z+1). Using computers as microscopes, viewers can explore these patterns across a zoom range spanning more than 25 orders of magnitude, from macroscopic scales down to microscopic depths, where individual pixels represent regions smaller than subatomic particles.
**4 —** [**Instancing with Three.js**](https://tympanus.net/codrops/2025/07/10/three-js-instances-rendering-multiple-objects-simultaneously/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de): if you caught up with the last issue of the newsletter you'll know that I've been working on a new generative art project, essentially a soft body generator that strives to be a simple a-life simulation.
Implementing the initial version with P5, I already knew how to optimize particle collisions via spatial hashing (a grid lookup), but then I quickly realized that rendering was a performance bottleneck.
[](https://x.com/gorillasu/status/1945237692079309185?ref=gorillasun.de)
[Link to Post](https://x.com/gorillasu/status/1945237692079309185?ref=gorillasun.de)
With P5 you essentially draw shapes one after the other to the canvas—each taking its own turn. But why not render all of them to the screen simultaneously? This can be done when you use a GPU accelerated renderer like Three.js, there you can batch draw calls if they all use the same texture and material.
A new codrops article by Matias Gonzalez Fernandez shows how to use instancing to achieve simultaneous rendering of multiple similar 3D objects in the same scene, using React Three Fiber—which essentially is the React version of Three.js:
[Three.js Instances: Rendering Multiple Objects Simultaneously | CodropsLearn how to render thousands of 3D objects efficiently using instancing in React Three Fiber, as demonstrated in the performance-optimized basement.studio site.CodropsMatias Gonzalez Fernandez](https://tympanus.net/codrops/2025/07/10/three-js-instances-rendering-multiple-objects-simultaneously/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
**5 —** [**MOTE large-scale interactive eco-system sim**](https://x.com/recursecenter/status/1946230097003872653?ref=gorillasun.de): Peter Whidden will be giving a presentation about his a-life sim project Mote on August 13th at the Recurse Center in New York—you can [RSVP here](https://lu.ma/cee99o8y?ref=gorillasun.de).
I couldn't find more information about the project at this, except for the trailer shared in the Twitter post and the description on the luma invite link:
> Mote is an interactive ecosystem simulation composed of hundreds of thousands of organisms. It integrates elements from both games and research to create a sandbox for computational biology, machine learning, and physics. It uses a custom GPU-based physics engine to model the interactions of many simple behaviors at a massive scale, producing a wide range of fascinating emergent phenomena.
[](https://x.com/recursecenter/status/1946230097003872653?ref=gorillasun.de)
[Link to Post](https://x.com/recursecenter/status/1946230097003872653?ref=gorillasun.de)
The talk will be up on the Recurse Center's YouTube channel afterwards!
**6 —** [**Live Coding Industrial Robots**](https://www.creativeapplications.net/education/improvisational-machines-live-coding-industrial-robots/?ref=gorillasun.de)**: Dr.** Madeline Gannon led a four day workshop teaching a group of students to create a flexible workflow for live coding industrial robots.
*Improvisational Machines* was inspired by the [Haute Cuture Robotics](https://atonaton.com/haute-couture-robotics?ref=gorillasun.de) choreography previously presented the 2025 Paris Fashion show, where she had to rapidly figure out a setup over the course of a two week sprint, where the team could only finalize the creative decisions the day before the show.
The page on Creative Applications explains some of what was covered by the workshop:
[Improvisational Machines: Live Coding Industrial RobotsOrganised and led by Madeline Gannon, Improvisational Machines is a workshop that brings live coding, dynamic interfaces, and flexible workflows into industrial robotics.CreativeApplications.NetFilip](https://www.creativeapplications.net/education/improvisational-machines-live-coding-industrial-robots/?ref=gorillasun.de)
**7 —** [**ProcGen Space**](https://procgen.space/resources?ref=gorillasun.de): is a big resource that aggregates all kinds of resources relevant to procedural content generation 📚

[Link to Page](https://procgen.space/resources?ref=gorillasun.de)
I'm not certain if Theobald Beyer is still active on social media, or if the list is still being maintained, but I found that is the same person that's behind the famous [Hydraulic Erosion paper](https://www.firespark.de/resources/downloads/implementation%20of%20a%20methode%20for%20hydraulic%20erosion.pdf?ref=gorillasun.de) from the Technical University in Munich, on which the equally famous Sebastian Lague coding adventure is based:
This makes me want to create my own link aggregator page—I think I've accumulated quite a few resources at this point through the newsletter!
**8 —** [**Experiencing ADHD in form of a Website**](https://www.adhdexperience.com/?ref=gorillasun.de): and to cap off this segment, for all of those that somehow made it to 2025 without developing some form of ADHD, here's a fun website that aims to emulate the kind of distraction you would experience:
[Experience ADHD | Web.Lab | Wix StudioGet a small taste of what it’s like to see things differently. Experience the ups and downs of ADHD, including hyperactvity, impulsivity, and time blindness.glass effect - Hadar Yamini web.lab](https://www.adhdexperience.com/?ref=gorillasun.de)
## Dev & Web Tech
**1 —** [**The State of Devs 2025**](https://2025.stateofdevs.com/en-US/?ref=gorillasun.de): a bit late to the party, but a new "State of ..." survey is out—rather than focusing on a specific language or framework, this time it's about the people who write the code!
With 8717 one respondents chiming in, on questions about workplace issues, health, and hobbies. It's a really interesting, and likely relatable one for many devs out there—for instance the top 3 workplace problems that participants stated were bad management, burnout, and work-life balance issues.
[](https://2025.stateofdevs.com/en-US/?ref=gorillasun.de)
[Link to Survey](https://2025.stateofdevs.com/en-US/?ref=gorillasun.de)
There's also four insightful statements packaged along with the survey results, about workplace discrimination, the importance of bringing in new devs, and the urgence of software companies focusing on the well-being of their employees. Anjana Vakil writes:
> As software developers, we tend to think that what we do is about programming, performance, and pull requests. But ultimately, software is really about **people**. And people are complicated.
One statement is from Josh Comeau, who was also quick to create a full analysis of the results that he sent out in his newsletter:
> \[...\] the biggest thing that stood out to me is that while things aren’t as good as they used to be, they’re also not as bad as I expected.
[The “State of Devs” results are in! • Josh W. ComeauFriendly tutorials for developers. Focus on React, CSS, Animation, and more!Josh W. Comeau](https://www.joshwcomeau.com/email/2025-06-30-dev-survey-results/?ref=gorillasun.de)
Highly recommend subscribing to him!
**2 —** [**5 things I learned from 5 years at Vercel**](https://leerob.com/vercel?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de): a perfect complement to the State of Devs 2025 survey, is an article from Lee Robinson, previously Vercel's VP—he sheds some light on what it takes to push hard and run a successful start-up:
[5 things I learned from 5 years at Vercel | Lee RobinsonHere are some of the lessons I learned and how I grew as a leader and manager, as well as a bunch of behind-the-scenes photos.Lee Robinson](https://leerob.com/vercel?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Many of his points resonated with me, and are things I have already experience to some extent both throughout working on my own projects, and during actually work—particularly this segment:
> If you're okay with things moving slowly, they will. Aggressive deadlines expose hidden complexity. They force conversations about what really matters. \[...\] If there's no date, it might take 3 months. But if you set a date of 2 weeks and it actually takes 1 month, great, you just shipped a first version 3x faster.
Deadlines can be a blessing and a curse, but if you want to make things move forward, you should always set a deadline. It's often the only way to figure out what works, what doesn't, and where the problems are actually at. But that's just one of the points he brings up throughout.
**3 —** [**How OAuth Works**](https://www.clerk.com/blog/how-oauth-works?ref=gorillasun.de): you know what Vercel and Next.js make super straightforward? OAuth! Especially when coupled with a database service like Firebase or Supabase.
When you get into app development, this is usually first thing you learn: signing up new users and then letting them log in—which is provided out of the box by DBaaS. If you're like me, you're happy that this is provided as is, without actually having to learn how it works, or needing to build it yourself. Jeff Escalante wrote a break-down of the Open Authorization protocol and how it works in detail:
[How OAuth WorksA practical guide to OAuth Scoped Access that walks through the Authorization Code Flow with real code examples, security best practices, and clear explanations of how third-party app integrations actually work.ClerkJeff Escalante](https://clerk.com/blog/how-oauth-works?ref=gorillasun.de)
Usually I try to add something smart to the article, but this one's entirely above my paygrade, so... 🤷 enjoy the article!
**4 —** [**A DOM Templating API**](https://justinfagnani.com/2025/06/26/the-time-is-right-for-a-dom-templating-api?ref=gorillasun.de): the vast majority of web frameworks in existence today revolve around templating—creating re-usable chunks of code that let you "declaratively combine markup with data". While there's ways to re-create this with vanilla HTML/CSS/JS—aka [plain vanilla web components](https://plainvanillaweb.com/pages/components.html?ref=gorillasun.de)—there is still no native API to achieve this.
Justin Fagnani argues that the time is right to build a declarative templating API directly into the DOM; with modern frameworks we've already converged on similar syntax and semantics, and figured out best-practices—using tagged template literals, reactive primitives like signals, and efficient update strategies such as template identity. In essence, nothing stands in the way of having a small, secure, performant templating primitive.
[The time is right for a DOM templating APIJustin FagnaniJustin FagnaniJun 26, 2025Web Development Standards](https://justinfagnani.com/2025/06/26/the-time-is-right-for-a-dom-templating-api?ref=gorillasun.de)
And ultimately this would benefit everyone involved: smaller downloads and faster loads for users, no extra dependency management for devs, and framework authors could build on a standardized foundation instead of re‑inventing the wheel.
**5 —** [**Links, Resources, and Humans of Note**](https://infrequently.org/links/?ref=gorillasun.de): and to cap off this section, Alex Russell compiled this large list of resources relevant to performance and platform-oriented web development—it's a very long one 👇
[Links, Resources, and Humans of Note - Infrequently NotedAlex Russell on browsers, standards, and the process of progress.Alex RussellAlex Russell](https://infrequently.org/links/?ref=gorillasun.de)
## AI Corner
1 — [Diffusion Models the next Frontier of AAA Game Development](https://kylekukshtel.com/diffusion-aaa-gamedev-doom-minecraft?ref=gorillasun.de): Kyle Kukshtel argues that for decades console generations have relied on raw GPU power to chase ever‑shinier graphics—only to hit a plateau in photorealism. New games that require more performant devices to run on, rarely use this performance boost to actually do more in terms of gameplay.
Engines like Unreal now ship “80% of AAA fidelity” out of the box, commoditizing graphical spectacle, and squeeze premium studios that still pour $500–900 million into marginal visual gains. Meanwhile, players have come to realize that good graphics don't really make a good game, and generally gravitate toward lean, honest experiences rather than increasingly glossy but hollow blockbusters.
Kyle sees us at a new frontier, where integrated, graphics-generating diffusion models pose themselves a threat to triple AAA game makers. While we are still far out from this, his article speculates about how this changes the playing field for game creators:
[UNSTABLE SCULPTURES — Diffusion Models are the Next Frontier of AAA Game Development - k-holeExploring a future of AAA game development focused around controlling diffusion modelskyle kukshtel's website](https://kylekukshtel.com/diffusion-aaa-gamedev-doom-minecraft?ref=gorillasun.de)
Check out [issue #71](https://www.gorillasun.de/blog/gorilla-newsletter-71/), where we talked about GameNGen, a diffusion model that runs DOOM and is capable of responding to user inputs.
**2 —** [**Impact of AI on Open-Source Dev Productivity**](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/?ref=gorillasun.de): METR ran a controlled study on 16 seasoned open‑source developers—each of which are contributing to large, well‑known projects—to see how much AI tools actually help real coding tasks.
[Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer ProductivityMETR10 July 2025](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/?ref=gorillasun.de)
Developers were assigned a mix of bug fixes, new features, and refactors and randomly told to either use AI (mainly Cursor Pro with Claude) or go solo. Surprisingly, when AI was on the table, writers took about 19% longer to finish tasks than without it, despite expecting a 24% speedup. Even after working with AI and slowing down, most still believed the tools had sped them up by around 20%.
Unsurprisingly, most of the slowdown stemmer from the extra overhead of crafting prompts, reviewing AI suggestions, and integrating them into the existing codebase. You can read the full paper [here](https://arxiv.org/pdf/2507.09089?ref=gorillasun.de).
## Music for Coding
This week I discovered the music of Kowloon—a **musician and filmmaker from Los Angeles**. His debut album 'Come Over' was written and recorded in its entirety in his home studio in the industrial outskirts of the city.
Kowloon fuses vintage synths, drum machines, and bubbling bass lines—culminating in very danceable love songs. The lyrical content of the soft vocals however contrasts with the lightheartedness of the music itself however, and aims to convey a sense of "digital malaise".
You can listen to entire album on his YouTube channel here 👇
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 web—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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 100Evolving Genart with fxhash - Flow Lenia for Emergent Evolutionary Behaviour - WebGPU Particle Life Sims - One Million Chessboards - 280 Character Shaders - JavaScript turns 30 - JPEG Format History - New PNG Spec - Search Engine from Scratch - LangGraph for Agentic WorkflowsGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-100)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 100
URL: https://www.gorillasun.de/blog/gorilla-newsletter-100/
Last updated: 2025-06-30T05:00:23.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the **100th** 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news 👇***
## All the Generative Things
**1 —** [**Evolving generative art with fxhash**](https://x.com/fx%5Fhash%5F/status/1938518292043350117?ref=gorillasun.de): after months of architecting, building, and refining a new generative kind of generative art, it's finally time—open-form genart is coming to fxhash this week!
0:00
/0:42
1×
Super proud being a part of the fxhash crew—look at this banger of a video charlie cooked up!
In the last issue of the newsletter I already outlined some parts of how the protocol works, now there's extensive documentation about it all—if you'd like to build your own open-form project and publish it on fxhash, this is your starting point 👇
[Programming Open-form Genart | fxhash docsPracticable notes on seeding open-form generative artworks and crafting interesting projectsfxhash docs](https://docs.fxhash.xyz/fxh/programming-open-form-genart?ref=gorillasun.de)
I'm super stoked for the coming week—also a little bit nervous—but overall excited; especially for all of the projects that are going to be dropping, and bringing back the spirit of the early days of fxhash:

The legendary pixel art group eboy are launching a project on fxhash! And it's going to be epic!
In the meantime, I also continued to make good progress on my own project—while the aesthetics haven't really advanced, and aren't quite where I want them to be, what's going on under the hood went through a big refactor. I swapped out P5 in favor for Three.js for rendering purposes—while spatial hashing is sufficient for computing collisions, rendering the individual shapes that make up the blobs ended up being a big bottleneck.

Hoping to start posting more about the project again in the coming weeks. And while we're talking about a-life sims, there's been some interesting developments 👇
**2 —** [**Emergent evolutionary dynamics with Flow-Lenia**](https://www.arxiv.org/abs/2506.08569?ref=gorillasun.de): while we're on the topic of "evolving" digital organisms, Erwan Plantec recently published a 27 page long research paper that's a continuation of his previous work on Flow Lenia.
I've previously featured Erwan in issue #78 of the newsletter, where we briefly covered the topic—he is is back with a how they are at the root of artificial life with emergent evolutionary behaviour.

If you've ever tried spinning up random cellular automata (I have)—with arbitrary adjacency rules—you'll quickly realize that the vast majority will collapse and vanish. John Conway actually spent quite a long time designing the rules for his famous Game of Life, as we know it today, to end up discovering a simple set of rules that present emergent behaviour on the grid.
This stable behaviour of Conway's GoL is to a large part why it's so mind bogglingly fascinating—it stands out among a myriad of other sets of rules that don't result in anything impressive.
This is what Flow-Lenia research basically tries to solve—finding emergent complex behaviours in random starting states, that don't just collapse every time. At least that's my current understanding of it—Erwan explains this concisely in a thread of his:
0:00
/0:22
1×
[Link to Thread](https://x.com/eplantec/status/1937569852698308806?ref=gorillasun.de)
I recommend reading the segment I wrote in [issue #78](https://www.gorillasun.de/blog/gorilla-newsletter-78/) as a quick recap—but in essence, it's a continuous type of cellular automata (not grid-based basically), where the behavior of each cell in a simulation is influenced by **spatially varying parameters**, enabling richer and more adaptive dynamics.
Co-author Clément Moulin-Frier also gave an insightful ~~talk~~ lecture on the topic at Demeco2025, that I recommend checking out for something more approachable than the paper:
**3 —** [**WebGPU particle life simulations**](https://lisyarus.github.io/blog/posts/particle-life-simulation-in-browser-using-webgpu.html?ref=gorillasun.de): topically, Nikita Lisitsa recently published a tutorial on how to simulate and render a full fledged particle based a-life simulation with the modern WebGPU API:

Play around with the sim for yourself [here](https://lisyarus.github.io/webgpu/particle-life.html?ref=gorillasun.de) and even adjust some of the settings—it requires a browser that supports WebGPU however. Sorry FireFox users.
There's actually quite a few tricks to optimize particle sims directly on the CPU, with spatial hashing for instance, but only up to certain theoretical ceiling of course—doing all of it in parallel is the way to go ultimately.
In lisyarus sim there's different types of particles that interact in unique ways—some attract, some repel—leading to behaviors that look surprisingly complex, life-like patterns.
[Particle Life simulation in browser using WebGPUlisyarus blog](https://lisyarus.github.io/blog/posts/particle-life-simulation-in-browser-using-webgpu.html?ref=gorillasun.de)
Using the CPU you will also quickly run into a performance bottleneck when rendering, with the canvas context for instance, you have to loop over all particles and then draw them individually, which is not the case if you would use WebGL for instance. This is is why I ultimately decided to run with Three.js for my own soft-body sim rendering purposes.
**4 —** [**Running a million-board chess MMO**](https://eieio.games/blog/a-million-realtime-chess-boards-in-a-single-process/?ref=gorillasun.de): in the last issue of the newsletter—before going on this longer break—I had mentioned that Nolen Royalty was working on an extensive article that explains the inner workings of his crazy One Million Chessboards mmo. In a massive article he explains how the website manages to handle thousands of requests every second with ease:
[Running a million-board chess MMO in a single process · eieio.gamesHow one million chessboards workseieio.games](https://eieio.games/blog/a-million-realtime-chess-boards-in-a-single-process/?ref=gorillasun.de)
Nolen also published a complementary video essay, that currently has a criminally low view count compared to the traction that he's been getting over on X:
**5 —** [**Codrops' The Collective newsletter discontinued**](https://thecollectivenewsletter.beehiiv.com/p/the-collective-is-changing?ref=gorillasun.de): Codrops' weekly round-up of creative tech things has been a tremendous source of inspiration over the past couple of years—sad to discover that it's being discontinued after a whopping 915 editions:

That said, I'm looking forward to receive the occasional update from them in my inbox, and the existing issues will continue to be a big archive of creative code history. In the meantime, they've continued to publish some excellent articles and tutorials👇
**6 —** [**Modeling the world in 280 characters**](https://tympanus.net/codrops/2025/06/23/modeling-the-world-in-280-characters/?ref=gorillasun.de): you'll be familiar with Xor if you read some of the previous newsletter issues. Xor has quickly risen to social media fame with his tweet sized shader sorceries, and he continues to churn them out at a mind-boggling rate—here's a recent one:
0:00
/0:06
1×
[Link to Post](https://x.com/XorDev/status/1935730294625059139?ref=gorillasun.de)
He wrote a massive article for Codrops explaining his process, how he's acquired an intuition for this compact kind of math, and a quick overview of some of the techniques that let you compress the shader code into just the size of a tweet:
[Modeling the World in 280 Characters | CodropsAn exploration of the mindset, methods, and motivations behind crafting tiny, expressive shaders that combine code, art, and constraint.CodropsXor](https://tympanus.net/codrops/2025/06/23/modeling-the-world-in-280-characters/?ref=gorillasun.de)
If you want to explore a big archive of Xor's creations, make sure to check out the "[Arsenal](https://www.xordev.com/arsenal?ref=gorillasun.de)" that he's put together: an archive featuring over 260+ of his shaders.
**7 — Other cool generative things**:
- [**Damek Davis Basic facts about GPUs**](https://damek.github.io/random/basic-facts-about-gpus/?ref=gorillasun.de): while we're talking about shaders—after reading [@cHHillee](https://x.com/cHHillee?ref=gorillasun.de) and [@Si\_Boehm](https://x.com/Si%5FBoehm?ref=gorillasun.de)'s blog posts on GPU programming, Damek decided to compile a few notes about his learnings and also sharing them in form of a hefty post—calling it just a few notes would actually be an understatement as his notes are quite detailed:
- [**3D Audio Visualizer with Three.js**](https://tympanus.net/codrops/2025/06/18/coding-a-3d-audio-visualizer-with-three-js-gsap-web-audio-api/?ref=gorillasun.de)**:** another tutorial published on Codrops, where [Filip Zrnzevic](https://tympanus.net/codrops/author/filip/?ref=gorillasun.de) shows us how to build a futuristic **audio-reactive 3D visualizer** in Three.js. Add to that GSAP based control panels for an interactive and modifiable visualizer.
- [**Introduction to Sketching with Code**](https://www.creativeapplications.net/tutorial/introduction-to-sketching-with-code/?ref=gorillasun.de): Kenic He Yoneda, who you might rather know through his alias kynd, has published quite a few tutorials on creative coding simply through his notion site kyndinfo.notion.site. This time around his piece titled "Introduction to Sketching with Code" is featured directly on Creative Applications.
## Dev & Web Tech
**1 —** [**A brief history of JavaScript**](https://deno.com/blog/history-of-javascript?ref=gorillasun.de): JavaScript turned 30 years old this year, and the Deno blog compiled a massive timeline of all the important milestones throughout its lifetime, documenting the rise and fall of different frameworks, specs, and adjacent technologies—it's a really, really fascinating list, in that it provides historical context for much of the modern tech that we now use for building on the web:
[A brief history of JavaScript | DenoIn 30 years, JavaScript went from being a little scripting language to one of the world’s most popular. Here are key moments to show how it has evolved and where it is headed.Deno](https://deno.com/blog/history-of-javascript?ref=gorillasun.de)
And can I just say that I fricking love JavaScript? With all the hate the language gets, for being slow, being a mess to program and maintain projects in, and its inconsistent behavior across different browsers—it's been at the core of my personal creative journey on the internet, and continues to be an absolute joy to build things in.
**2 —** [**JPEG Image Format History**](https://spectrum.ieee.org/jpeg-image-format-history?ref=gorillasun.de): besides JS, there's other technologies that have significantly contributed to what we collectively consider to be the modern web; the JPEG format is one of them, and almost as old as the internet itself.
A Spectrum guest article by Ernie Smith recounts the coming-to-be of the image format, recounting another chunk of internet history. While initially inline GIFs were used for the transfer of image data, the JPEG format quickly usurped that position and became the most convenient image format that we still use till this day:
[](https://spectrum.ieee.org/jpeg-image-format-history?ref=gorillasun.de)
[Link to Post](https://spectrum.ieee.org/jpeg-image-format-history?ref=gorillasun.de)
**3 —** [**New PNG Spec**](https://www.w3.org/TR/png-3/?ref=gorillasun.de): not quite as old as the JPEG format, the PNG format also gets some love this week; after 22 years of its inception, we get an update and see the third edition of the PNG spec land.
Chris Lilley—one of PNG's original co‐authors and current Technical Director contributing to the new PNG work—wrote an excellent article explaining how it works:
[cICP in PNG, explained • Chris Lilley](https://svgees.us/blog/cICP.html?ref=gorillasun.de)
You can read the entire technical doc for yourself here:
[Portable Network Graphics (PNG) Specification (Third Edition)This document describes PNG (Portable Network Graphics), an extensible file format for the lossless, portable, well-compressed storage of static and animated raster images. PNG provides a patent-free replacement for GIF and can also replace many common uses of TIFF. Indexed-color, greyscale, and truecolor images are supported, plus an optional alpha channel. Sample depths range from 1 to 16 bits.W3CChris Blume](https://www.w3.org/TR/png-3/?ref=gorillasun.de)
And of course there's also a brimming conversation about it over on Hacker News:

[Link to Hacker News Item](https://news.ycombinator.com/item?id=44365754&ref=gorillasun.de)
**4 —** [**A simple search engine from scratch**](https://bernsteinbear.com/blog/simple-search/?ref=gorillasun.de): back to back to back, another resource that's entirely about how the internet works—quite literally—if you're ever wondered about building your own "simple" search engine from scratch, Max Bernstein explains how to do it using the fantastic word2vec that makes text content easily indexable and searchable:
[A simple search engine from scratch\*\*if you include word2vec.Max BernsteinMax Bernstein](https://bernsteinbear.com/blog/simple-search/?ref=gorillasun.de)
**5 —** [**Masonry, Item Flow, and... GULP?**](https://meyerweb.com/eric/thoughts/2025/05/21/masonry-item-flow-and-gulp/?ref=gorillasun.de): Eric Meyer writes about the relatively new Item Flow proposal that's butted into the entire CSS Masonry debate—that was first introduced in a WebKit article a few months ago. The short summary of the Item Flow proposal, is that it takes the both the flow and packing capabilities from the flex and grid specs respectively, and groups them into a joint property, along with some new capabilities.
[Masonry, Item Flow, and… GULP?Masonry layout is a difficult thing to do with CSS at present. Item Flow could make it easy.](https://meyerweb.com/eric/thoughts/2025/05/21/masonry-item-flow-and-gulp/?ref=gorillasun.de)
**6 — Other cool things**:
- [The CSS Height Enigma](https://www.joshwcomeau.com/css/height-enigma/?ref=gorillasun.de): our favorite web designer Josh Comeau wrote about the CSS height rule's quirky behaviour.
- [The Ergonomics of JS Generators](https://macarthur.me/posts/generators/?ref=gorillasun.de): Alex MacArthur compiled an ode to the ergonomics of JS generator. JS generators are lesser known, and underrated, feature of the language that I've personally also grown quite fond of over the years. It's pr
- [Minecraft in pure CSS](https://benjaminaster.com/css-minecraft/?ref=gorillasun.de): as the title says, Benjamin Aster built a fully functional, interactive 3D minecraft scene in just HTML & CSS—without using any JavaScript to make it happen

You can check out the [code](https://github.com/BenjaminAster/CSS-Minecraft?ref=gorillasun.de) for yourself over on Github
## AI Corner
**1 —** [**LangGraph for complex Workflows**](https://surma.dev/things/langgraph/?ref=gorillasun.de): One tool that's become popular over the past year for building complex agentic workflows is LangGraph. Developed by LangChain, it's an LLM agnostic framework that lets you orchestrate reasoning loops—feeding LLM responses back in as follow-up prompts, letting the LLM autonomously make tool calls, like other software and/or making API calls, and also lets link all of it together in a conditional, graph-like manner.
While powerful, the framework is a bit tricky to get into—from personal experience of reading the docs—hence Surma.dev's tutorial on the topic is quite enlightening, showing us how to create a proper agent with the framework:
[LangGraph for complex workflows — surma.devI may be late to the party, but LangGraph lets you build complex workflow architectures and codify them as powerful automations. Also LLMs, if you want. But you don’t have to!](https://surma.dev/things/langgraph/?ref=gorillasun.de)
I played with the framework for myself a few months ago actually; in an attempt to automate some parts of writing this newsletter, particularly the initial resource and article collection phase that I always start out with. My idea was architecting a smart crawler that can autonomously parse a bunch of resources/sites I'd feed into it, and then give me a list of potentially interesting articles that fit this newsletter—but this proved to be trickier than expected.
**2 —** [Done with GenAI](https://blog.glyph.im/2025/06/i-think-im-done-thinking-about-genai-for-now.html?ref=gorillasun.de): Glyph reflects on their deep discomfort with generative AI, why they’re stepping away from the discourse, and the emotional toll of unresolved skepticism—they write about it in a blog post of theirs:
[Deciphering Glyph :: I Think I’m Done Thinking About genAI For NowDeciphering Glyph, the blog of Glyph Lefkowitz.Deciphering GlyphGlyph Lefkowitz](https://blog.glyph.im/2025/06/i-think-im-done-thinking-about-genai-for-now.html?ref=gorillasun.de)
## Music for Coding
Not a piece of music this time, but for the special #100 issue of the newsletter, it felt fitting to feature this article about the history of album art—Matthew Ström tells us the story of how the first album covers came to be, replacing the previously used mono-colored cardboard sleeves that vynil records were sold in, and how Alex Steinweiss pioneered this particular artform:
[The history of album artMatt Ström-Awn · Designer, leader, and coach focused on building exceptional products and teams.Matthew Ström, designer-leader](https://matthewstrom.com/writing/album-art/?ref=gorillasun.de)
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 99Open-form Genart x fxhash - One Million Chessboards - strudel Music live coding in the browser - Inigo Quilez & Freya Holmér on the Wookash Podcast - Reservoir Sampling - CSS Hell - Container Query Hack - Zip bombing malicious TrafficGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-99/)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 99
URL: https://www.gorillasun.de/blog/gorilla-newsletter-99/
Last updated: 2026-07-27T10:54:37.000Z
**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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***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!
0:00
/0:31
1×
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.
[](https://x.com/ciphrd/status/1918308217177690238?ref=gorillasun.de)
[Link to Post](https://x.com/ciphrd/status/1918308217177690238?ref=gorillasun.de)
Which leads us to the current moment in time. To quote Kevin Esherick's seminal essay [Generative Anesthetics](https://kevinesherick.substack.com/p/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.


[Link to post #1](https://x.com/gorillasu/status/1920085305530450300?ref=gorillasun.de) | [Link to post #2](https://x.com/gorillasu/status/1920822620108337648?ref=gorillasun.de)
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!](https://t.co/p9SOvfXlHB?ref=gorillasun.de)

[Link to Discord Event](https://t.co/p9SOvfXlHB?ref=gorillasun.de)
***Now, back to regular scheduling—cue the news*** 👇
## All the Generative Things
**1 —** [**One Million Chessboards**](https://eieio.games/blog/one-million-chessboards/?ref=gorillasun.de): 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:

[Link to Page](https://onemillionchessboards.com/?ref=gorillasun.de#1571,1043)
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.
[One Million Chessboards · eieio.gamesI made a website. It’s called One Million Chessboards. It has a million chessboards on it. Moving a piece moves it for everyone, instantly. There are no turns.eieio.games](https://eieio.games/blog/one-million-chessboards/?ref=gorillasun.de)
He's also shared a bunch of technical details over on X if you're curious.
**2 —** [**strudel Music Live Coding in the Browser**](https://strudel.cc/?ref=gorillasun.de): strudel is an official JavaScript port of [tidalcycles](https://tidalcycles.org/?ref=gorillasun.de) — 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 👇

[Listen and directly edit this track over in the strudel docs](https://strudel.cc/workshop/getting-started/?ref=gorillasun.de)
What's more, strudel is [free and open source](https://github.com/tidalcycles/strudel?ref=gorillasun.de).
**3 —** [**Wookash Podcast**](https://www.youtube.com/channel/UC9J9u3apteD0EuFjzRpt71w?ref=gorillasun.de) **featuring** [**Inigo Quilez**](https://www.youtube.com/watch?v=F1ax1iJTHFs&ref=gorillasun.de) **&** [**Freya Holmér**](https://www.youtube.com/watch?v=1o73moRXLAA&ref=gorillasun.de): a few weeks back, in [issue #92](https://www.gorillasun.de/blog/gorilla-newsletter-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**](http://www.warrenrobinett.com/inventing%5Fadventure/?ref=gorillasun.de): this week's wildcard is "a*n 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.
[](https://en.wikipedia.org/wiki/Adventure%5F%281980%5Fvideo%5Fgame%29?ref=gorillasun.de)
[Link to Wikipedia Page](https://en.wikipedia.org/wiki/Adventure%5F%281980%5Fvideo%5Fgame%29?ref=gorillasun.de)
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**](https://medium.com/design-bootcamp/i-hate-my-portfolio-d9f6f1d18574?ref=gorillasun.de): 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:
[I hate my portfolioMandatory challenge for designers that no one wantedBootcampValeria Yakovchik](https://medium.com/design-bootcamp/i-hate-my-portfolio-d9f6f1d18574?ref=gorillasun.de)
On that note, Anna Lucia [recently wrote about this exact topic](https://annaluciawrites.substack.com/p/tending-to-my-personal-website-like) 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**](https://samwho.dev/reservoir-sampling?ref=gorillasun.de): 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.
[Reservoir SamplingChoosing fairly when you don’t know how many you’re choosing from.](https://samwho.dev/reservoir-sampling?ref=gorillasun.de)
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**](https://csshell.com/?ref=gorillasun.de): 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**](https://frontendmasters.com/blog/using-container-query-units-relative-to-an-outer-container?ref=gorillasun.de): if you're not familiar with container queries yet (what are you still doing?) check out this excellent [interactive guide by Ahmad Shadeed](https://ishadeed.com/article/css-container-query-guide/?ref=gorillasun.de), as well as another two posts by Josh Comeau, an [introductory tutorial](https://www.joshwcomeau.com/css/container-queries-introduction/?ref=gorillasun.de) as well as [a more advanced one](https://www.joshwcomeau.com/css/container-queries-unleashed/?ref=gorillasun.de).
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:
[Using Container Query Units Relative to an Outer ContainerContainer units (e.g. cqi) are only able to reference the closest container. But if you register a custom property and set that higher up, you can get your hands on other containers units.Ana Tudor](https://frontendmasters.com/blog/using-container-query-units-relative-to-an-outer-container?ref=gorillasun.de)
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**](https://idiallo.com/blog/zipbomb-protection?ref=gorillasun.de): 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.
[I use Zip Bombs to Protect my ServerThe majority of the traffic on the web is from bots. For the most part, these bots are used to discover new content. These are RSS Feed readers, search engines crawling your content, or nowadays AI boIbrahim Diallo BlogIbrahim Diallo](https://idiallo.com/blog/zipbomb-protection?ref=gorillasun.de)
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**](https://overreacted.io/functional-html/?ref=gorillasun.de): 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.
[](https://overreacted.io/functional-html/?ref=gorillasun.de)
[Link to post](https://overreacted.io/functional-html/?ref=gorillasun.de)
**6 —** [**How Promises Work in JavaScript**](https://www.deepintodev.com/blog/how-promises-work-in-javascript?ref=gorillasun.de): 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.
[How Promises Work in JavaScriptUnderstand the inner workings of JavaScript Promises with a step-by-step explanation.DeepIntoDevKaan Peksen](https://www.deepintodev.com/blog/how-promises-work-in-javascript?ref=gorillasun.de)
**7 —** [**Good vs. Great Animations**](https://emilkowal.ski/ui/good-vs-great-animations?ref=gorillasun.de): 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.
[Good vs Great AnimationsPractical tips on how to go from good to great animations.Emil Kowalski](https://emilkowal.ski/ui/good-vs-great-animations?ref=gorillasun.de)
*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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 98RampenSau 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 -Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-98)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 98
URL: https://www.gorillasun.de/blog/gorilla-newsletter-98/
Last updated: 2025-04-28T05:00:15.000Z
**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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**RampenSau v1.0 Color Ramp Generator**](https://meodai.github.io/rampensau/?ref=gorillasun.de): by now David Aerne (aka meodai) is known in the creative code scene for building many a cool color generation tool — RampenSau being one of them, for which he just recently released the 1.0 version:

[Link to Post](https://x.com/meodai/status/1914358295306940658?ref=gorillasun.de)
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:


[Link to demo](https://codepen.io/meodai/pen/ExQWwar?editors=0010&ref=gorillasun.de)
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*!
[](https://github.com/meodai?ref=gorillasun.de)
Check out [David's impressive GitHub](https://github.com/meodai?ref=gorillasun.de) for some of the other color tools he's built!
**2 —** [**Spectral.js 3 for Realistic Pigment Mixing**](https://onedayofcrypto.art/?ref=gorillasun.de): we're getting absolutely spoiled this week! Ronald van Wijnen also released the new and improved version of Spectral.js that brings a whole bunch of new improvements and features to the table, in addition to a whole website that lets you try it out:
[](https://x.com/OneDayOfCrypto/status/1915880914506096676?ref=gorillasun.de)
[Link to Post](https://x.com/OneDayOfCrypto/status/1915880914506096676?ref=gorillasun.de)
A few weeks ago (in [issue #86](https://www.gorillasun.de/blog/gorilla-newsletter-86/) 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:
[](https://github.com/rvanwijnen/spectral.js?ref=gorillasun.de)
[GitHub Repo](https://github.com/rvanwijnen/spectral.js?ref=gorillasun.de)
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!
**3 —** [**Acerola on Perlin Noise**](https://www.youtube.com/watch?v=DxUY42r%5F6Cg&ref=gorillasun.de): Perlin Noise is without a doubt a behemoth of an algorithm, not only in generative art and creative coding, but also computer graphics at large. With a new video of his, Acerola gives us a break-down at the inner workings of the algo, and how it's several layers of pseudo-random number generation stacked on top of each other:
**4 —** [**Getting Started with Shader Functions**](https://rherault.dev/articles/learn-with-me-shaders-functions?ref=gorillasun.de): we double down this week with another GLSL tutorial, this time honing in on the individual functions that are provided by the shader language that enable many computations directly out of the box — Romain Herault explains how to use the step, mix, and smoothstep functions effectively:
[Learn with me: Getting Started with Shader Functions (step, mix, smoothstep) - Romain HeraultJoin me as I learn GLSL shader functions! We’ll explore step, mix, and smoothstep with interactive Three.js examples and fun challenges.Romain Herault](https://rherault.dev/articles/learn-with-me-shaders-functions?ref=gorillasun.de)
**5 —** [**Livecoding Graphics in Lisp**](https://kevingal.com/blog/cl-livecoding.html?ref=gorillasun.de): now I don't know the first thing about Lisp programming, but I was super intrigued by this cool graphics live-coding tutorial from Kevin Galligan, where he shows us how the language makes it possible to rerun a sketch during runtime for instantaneous updates using a flocking skech:

[Link to Post](https://kevingal.com/blog/cl-livecoding.html?ref=gorillasun.de)
**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:
0:00
/0:43
1×
[Link to Post](https://x.com/gorillasu/status/1915488916406493524?ref=gorillasun.de)
**7 —** [**Gorilla Inspired Sketch out in the Wild**](https://www.reddit.com/r/generative/comments/1jscd06/generative%5Fflowers/?ref=gorillasun.de): and to cap off, wanted to share this lovely cover of a flower sketch of mine from way back when from redditor liszstbrain — discovered out in the wild while browsing the r/generative subreddit:
[](https://www.reddit.com/r/generative/comments/1jscd06/generative%5Fflowers/?ref=gorillasun.de)
[Link to Post](https://www.reddit.com/r/generative/comments/1jscd06/generative%5Fflowers/?ref=gorillasun.de)
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 P5JSIn 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.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/getting-started-with-p5js/)
## Dev & Web Tech
**1 —** [**Creating a federated Microblog**](https://fedify.dev/tutorial/microblog?ref=gorillasun.de): after a year in the making, Ghost has recently brought all of the blogs powered by their service to the Fediverse. This means that you can now follow the Gorilla Sun Blog from any service that makes it possible to follow ActivityPub accounts — via ***@gorilla@gorillasun.de***
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](https://www.w3.org/TR/activitypub/?ref=gorillasun.de) 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:
[](https://activitypub.ghost.org/day4/?ref=gorillasun.de)
[Link to Post](https://activitypub.ghost.org/day4/?ref=gorillasun.de)
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 | FedifyIn this tutorial, we will build a small microblog that implements the ActivityPub protocol, similar to Mastodon or Misskey, using Fedify, an ActivityPub server framework.Fedify](https://fedify.dev/tutorial/microblog?ref=gorillasun.de)
**2 —** [**Writing Useful Error Messages**](https://piccalil.li/blog/how-to-write-error-messages-that-actually-help-users-rather-than-frustrate-them?ref=gorillasun.de): and a new post from one of my favorite dev blogs; Amy Hupe explains how to write meaningful error messages that are human readable, action-oriented, and give a clear way forward for the user that may have run into an error:
[How to write error messages that actually help users rather than frustrate themOne 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 wrongPiccalilliAmy Hupe](https://piccalil.li/blog/how-to-write-error-messages-that-actually-help-users-rather-than-frustrate-them?ref=gorillasun.de)
**3 —** [**The new Cookie Store API**](https://fotis.xyz/posts/the-new-cookie-store-api?ref=gorillasun.de): The new(er) [Cookie Store API](https://developer.mozilla.org/en-US/docs/Web/API/Cookie%5FStore%5FAPI?ref=gorillasun.de) is starting to become a reliable standard for cookie management, with the newest version of safari having just rolled out support for it.
It's an improvement to the previous [document.cookie interface](https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie?ref=gorillasun.de) 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 APIIntroducing the relatively new Cookie Store API, and what it means for web applications.Fotis PapadogeorgopoulosFotis Papadogeorgopoulos](https://fotis.xyz/posts/the-new-cookie-store-api?ref=gorillasun.de)
**4 —** [**Making Sites Keyboard Navigable**](https://www.smashingmagazine.com/2025/04/what-mean-site-be-keyboard-navigable/?ref=gorillasun.de): the drawback of flashy, modern, and interactive designs is that they're often severely lacking in terms of accessibility — a new post from Smashing Magazine shows us the dos-and-donts of making website keyboard navigable, using clear focus indicators to indicate where you currently are on the page, as well as following a logical tab order:
[What Does It Really Mean For A Site To Be Keyboard Navigable — Smashing MagazineKeyboard 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.Smashing MagazineEleanor Hecks](https://www.smashingmagazine.com/2025/04/what-mean-site-be-keyboard-navigable/?ref=gorillasun.de)
**5 —** [**Why does JSON have commas?**](https://simonsafar.com/2025/json%5Fwith%5Fno%5Fcommas/?ref=gorillasun.de): Simon Safar wrote a short post about the nonnecessity of commas in JSON, and why their addition "feels like an evil plan to have more syntax errors, with no obvious benefit."

[Link to Post](https://simonsafar.com/2025/json%5Fwith%5Fno%5Fcommas/?ref=gorillasun.de)
And I wouldn't have included the post if there wasn't also a [stimulating discussion over on Hacker News](https://news.ycombinator.com/item?id=43599649&ref=gorillasun.de) about it 😆
## AI Corner
**1 —** [**The Post-Developer Era**](https://www.joshwcomeau.com/blog/the-post-developer-era/?ref=gorillasun.de): two years after GPT-4 first sparked fears about AI taking over coding jobs, Josh Comeau chimes in on the big debate whether our machinized overlords would take over or not. He points out that the current discourse around AI is often misleading, at least to non-programmers, where it's made seem to be that AI itself is doing the programming:
[The Post-Developer Era • Josh W. ComeauWhen 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.Josh W. Comeau](https://www.joshwcomeau.com/blog/the-post-developer-era/?ref=gorillasun.de)
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.
**2 —** [**Adopting AI-assisted coding workflows**](https://x.com/karpathy/status/1915581920022585597?ref=gorillasun.de): on that note, here's some top notch practicable advice from Andrej Karpathy on how to actually use AI coding assistants — in a non-vibe-coded manner — that allows the production of clean code rather than big spaghetti messes:
[](https://x.com/karpathy/status/1915581920022585597?ref=gorillasun.de)
[Link to Post](https://x.com/karpathy/status/1915581920022585597?ref=gorillasun.de)
**3 —** [**Why AI company logos look like buttholes**](https://velvetshark.com/ai-company-logos-that-look-like-buttholes?ref=gorillasun.de): and to cap things off, a humorous article by Radek Sienkiewicz that examines the questionable anatomical design of many an AI company's logo:
[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.](https://velvetshark.com/ai-company-logos-that-look-like-buttholes?ref=gorillasun.de)
## 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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 97Programming 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 ChangesGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-97)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 97
URL: https://www.gorillasun.de/blog/gorilla-newsletter-97/
Last updated: 2025-04-21T05:00:20.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 97th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**A flowing WebGL gradient, deconstructed**](https://alexharri.com/blog/webgl-gradients?ref=gorillasun.de): top of the list this week is a massive shader tutorial by Alex Harri. He teaches us how to program colorful and flow-y gradients in WebGL, explaining each individual line of code in minute detail.
[](https://alexharri.com/blog/webgl-gradients?ref=gorillasun.de)
[Link to Tutorial](https://alexharri.com/blog/webgl-gradients?ref=gorillasun.de)
**2 —** [**Painting with Evolutionary Algorithms**](https://x.com/mattdesl/status/1909309607694020683?ref=gorillasun.de): Matt DesLauriers' been playing with SNES — no, not the *Super Nintendo Entertainment System* — but rather the evolutionary optimization algorithm "Separable Natural Evolutionary Strategy", that's designed to solve high-dimensional black-box problems efficiently.
In a nutshell, evolutionary algorithms are useful when it comes to solving, or optimizing problems where the ‘fitness’ function is either unknown or too complex to be modeled directly.
In a post he recently shared, he tasks 200 randomly colored and positioned rectangles to self-assemble into a re-creation of an image of the Mona Lisa, in an attempt to match it as closely as possible.
0:00
/0:14
1×
[Link to Post](https://x.com/mattdesl/status/1909309607694020683?ref=gorillasun.de)
Using SNES for something like evolving rectangles to match a target image, you'd first start by defining a solution as a long list of numbers—for example, each rectangle might have 7 values (x and y coordinate position, size in width and height, and RGB colors), so 200 rectangles means 1400 values per solution.
SNES then samples random candidate solutions, rendering these sets of rectangles into an image, and comparing to the target image via pixel-wise difference to get a fitness score — which is then used to figure out how to improve. Obviously there's also a numerical distribution and a type of natural gradient involved to make this happen.
[](https://people.idsia.ch/~juergen/xNES2010gecco.pdf?ref=gorillasun.de)
[Link to Paper](https://people.idsia.ch/~juergen/xNES2010gecco.pdf?ref=gorillasun.de)
For a much more technical explanation of how this works I recommend reading through the paper that originally introduced the family of algos "Exponential Natural Evolution Strategies" by T Glasmachers et. al., which is directly referenced by Matt in his generously open-sourced implementation over on GitHub:
[GitHub - mattdesl/snes: Separable Natural Evolution Strategy in JavaScriptSeparable Natural Evolution Strategy in JavaScript - mattdesl/snesGitHubmattdesl](https://github.com/mattdesl/snes?ref=gorillasun.de)
**3 —** [**Hydra Tutorial Series for Everyone**](https://www.creativeapplications.net/tutorial/hydra-tutorial-series-for-everyone/?ref=gorillasun.de): Hydra is a live-coding environment for creating real-time visuals using JavaScript (that compiles to WebGL under the hood). The syntax is inspired by analog modular synthesis, in which chaining or patching transformations (functions in this case) together can generate varying visual results.
[](https://hydra.ojack.xyz/?sketch%5Fid=ritchse%5F3&ref=gorillasun.de)
[Try it out for yourself here](https://hydra.ojack.xyz/?sketch%5Fid=ritchse%5F3&ref=gorillasun.de)
Naoto Hieda is a creative coder that's primarily been using Hydra for his artistic experiments. Naoto treats YouTube as an open notebook, to experiment in public such that each video acts like a performative creative session in which ideas are allowed to flow naturally. Naoto has recently restarted a tutorial series for beginners, with the only requirement to be able to type in some way:
[Hydra Tutorial Series for EveryoneThis series isn’t a conventional step-by-step coding tutorial. It’s more about Naoto showing how he explores ideas, tries things and learns through doing. He makes mistakes, remixes things, and follows unexpected paths.CreativeApplications.NetFilip](https://www.creativeapplications.net/tutorial/hydra-tutorial-series-for-everyone/?ref=gorillasun.de)
Naoto tries to give back to the community by creating these kinds of educative materials — in just a few years Hydra has attracted a global community around it. The software tool was introduced a few years ago by Olivia Jack, if you'd like an excellent intro and the backstory behind Hydra I recommend giving this JSConf talk from 2019 a watch:
**4 —** [**Network Maintenance – A Node in the Living System**](https://www.creativeapplications.net/project/network-maintenance-a-node-in-the-living-system/?ref=gorillasun.de): is an art installation created by Jonas Lund that features a number of wall-mounted devices, that require regular interaction from visitors to stay active.
Each device has a screen and controls where viewers need to press buttons or respond to patterns to keep device active and alive, simultaneously contributing to the health of the entire network of interconnected devices.
[Network Maintenance – A node in the living systemNetwork Maintenance is a series of networked wall-mounted devices that explore the relationship between ownership, care, and collective responsibility. Each device consists of a custom construction housing, a display, and number of analog controls. The device function as a node in an interconnectedCreativeApplications.Netssssyan](https://www.creativeapplications.net/project/network-maintenance-a-node-in-the-living-system/?ref=gorillasun.de)
Inspired by quantum mechanics, where entangled particles influence each other, the screens display the network’s health, showing things like stability and connectivity depending on how participants engage with them. If people stop interacting, the devices begin to decay.
The installation is currently on display at Art Düsseldorf with OFFICE IMPART — which I will have to go and see since I'm based here 😆 conceptually the artwork invites people to think about how we’re all interconnected, and highlights how our individual efforts can help sustain a larger community.
**5 —** [**A better Method for shading split Quads**](https://gpuopen.com/learn/bilinear-interpolation-quadrilateral-barycentric-coordinates/?ref=gorillasun.de): a recent article from AMD introduces a new method to preserve smoothness over the common edge that's formed by splitting quadrilaterals into two triangles.
[Bilinear interpolation on a quadrilateral using Barycentric coordinatesA new algebraic method for hardware-accelerated bilinear interpolation on convex quadrilaterals is presented, using the Barycentric coordinate feature of modern GPUs.AMD GPUOpen](https://gpuopen.com/learn/bilinear-interpolation-quadrilateral-barycentric-coordinates/?ref=gorillasun.de)
Modern graphics hardware is entirely geared towards handling triangle meshes, whereas 3D artists apparently prefer using quads for modelling assets. The issue that ensues when quads are displayed on screen, is that they get split into two triangles, creating a visible line or seam across the diagonal. This often causes noticeable visual problems during shading, texturing, and lighting.
The core problem is that graphics hardware only understands triangles and barycentric coordinates (the standard way graphics hardware calculates positions and properties inside triangles), whereas artists expect bilinear blending to happen on their quads (bilinear interpolation being the natural way to blend properties across a four-sided shape).
The novelty of the article: AMD basically found a formula that converts between these two systems and that can interpolate color and texture across the two triangles seamlessly, pretending that it's still a quad. The maths is also directly implemented in the graphics pipeline, which makes it quite efficient.
**6 —** [**Shaders in SQL**](https://x.com/geocucu%5Ft/status/1909291486367166717?ref=gorillasun.de): we reach new levels of what you would call "cursed" with George's GLSQL shader 😅
[](https://x.com/geocucu%5Ft/status/1909291486367166717?ref=gorillasun.de)
[Link to Post](https://x.com/geocucu%5Ft/status/1909291486367166717?ref=gorillasun.de)
I have no idea what's going on here, but in one of the replies he states that he's:
> Software rendering with sqlite as the compute engine. Every stage of the pipeline is its own table. Blit the framebuffer table with winapi at the end.
My interpretation of this: he's rebuilt a rendering pipeline as a series of data transformations (what SQL was actually designed for), such that each rendering stage is represented by its own table.
Naturally, it's dramatically slower that GLSL — but if we can have DOOM in TypeScript types, then why not have GLSL in SQL?

Digging into some of the other replies on the post, I came across this other gem; apparently some crazy person has previously also made a raytracer in SQL, because why the heck not 😆 here's the GitHub repo for that project.
[GitHub - chunky/sqlraytracer: Everyone writes a Raytracer eventually. This is mine.Everyone writes a Raytracer eventually. This is mine. - chunky/sqlraytracerGitHubchunky](https://github.com/chunky/sqlraytracer?ref=gorillasun.de)
I eagerly await further updates from George and his SQL powered shader renderer — ideally a juicy blog post for me to share on the newsletter!
## Dev & Web Tech
**1 —** [**Better typography with text-wrap pretty**](https://webkit.org/blog/16547/better-typography-with-text-wrap-pretty/?ref=gorillasun.de): I was a bit confused by this article from the WebKit team — I had assumed that the `text-wrap: pretty` rule was already a feature of most browsers, but apparently it's up to each individual browser vendor to implement their own text-wrapping algorithm for rule. Here, Jen Simmons explains how they go about implementing the algo:
[Better typography with text-wrap prettySupport for text-wrap: pretty just shipped in Safari Technology Preview, bringing an unprecedented level of polish to typography on the web.WebKitJen Simmons](https://webkit.org/blog/16547/better-typography-with-text-wrap-pretty/?ref=gorillasun.de)
Jen goes over some of the considerations that make for a text's readability, like the impact orphan words, hyphenation, and the right-end rag of a text-block can have, comparing to other options like `text-wrap: balance` that's great for making headlines look neat and tidy, and shares insights on how the other browsers are adopting the feature.
She also points out that text-wrapping is actually an innocuously difficult optimization problem — over on Hacker News there were some interesting discussions on the topic that are worth digging into 👇
[](https://news.ycombinator.com/item?id=43622703&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=43622703&ref=gorillasun.de)
**2 —** [**Overengineering anchor links**](https://thirty-five.com/overengineered-anchoring?ref=gorillasun.de): I'm of the strong opinion that every blog/article on the web should have a TOC (Table of Content) — not just to give a quick visual overview of the text's different sections — but also as a handy navigation element.
If you ever tried building your own TOC, and tried to have the section title in the table highlighted in tandem with the one that's currently displayed on screen, you'll quickly realize that you've run into a big pile of different problems. Mats Erdkamp tackles this task and demonstrates a highly over-engineered approach to building one:
[Overengineered anchor links - 35®Learn about the ‘overengineered anchoring’ pattern, a technique to improve the user experience of scrollable content.35Mats Erdkamp](https://thirty-five.com/overengineered-anchoring?ref=gorillasun.de)
Mats not only ends up using virtual headings — hidden headings that are positioned differently on the page than their real counterparts — but also builds a custom mapping function that leverages of a full fledged optimization algorithm (SQLS).
As ingenious as it is, it's most likely overkill for all practical purposes (if you just want to highlight section titles in a TOC). That said, I'll likely try and recreate it whenever I get back to revamping my blog's design.
**3 —** [**Default styles for h1 elements are changing**](https://developer.mozilla.org/en-US/blog/h1-element-styles/?ref=gorillasun.de): Browsers are updating how they style `
` headings inside sections, articles, navs, and asides. Previously, when an `
` was placed within a ``, it would automatically look like an `
` so that it fits into the hierarchy.
Now, all `
` tags will have the same size regardless of where they are placed. This change means websites that depended on these automatic styles might now display headings inconsistently or even fail website performance checks. Simon Pieters from the MDN Web Docs explains:
[Default styles for h1 elements are changing | MDN BlogBrowsers are starting to roll out changes in default UA styles for nested section headings. This post describes the incoming changes, how to identify if it’s an issue on your websites, and hints for conformant and better-structured pages.MDN Web DocsSimon Pieters](https://developer.mozilla.org/en-US/blog/h1-element-styles?ref=gorillasun.de)
**4 —** [**Gumroad is now open-source... or is it?**](https://gumroad.gumroad.com/p/gumroad-is-now-open-source?ref=gorillasun.de): earlier this month Gumroad celebrated its 14th birthday. For the occasion they announced that the platform's code-base has been open-sourced!

[Link to Announcement](https://gumroad.gumroad.com/p/gumroad-is-now-open-source?ref=gorillasun.de)
Well, that's what they claim at least, when inspecting [the license of the GitHub repository](https://github.com/antiwork/gumroad?ref=gorillasun.de) things look a little different, as it's distributed under a custom license that sets limits on who can use the code for monetization purposes, which doesn't directly agree with what's generally understood as "open source". Dan Brown examines what's going on with the license in a post of his:
[No, Gumroad Did Not Become Open Source Today · Danb BlogAdvisory: I am not a legal expert and there could likely be inaccuracies in this post. Today Gumroad announced that they’ve become open source, with this being echoed by the founder and on social sites like Hacker News:Danb Blog](https://danb.me/blog/gumroad-is-not-open-source/?ref=gorillasun.de)
**5 —** [**Tweaking Text Level Styles, Reprised**](https://adrianroselli.com/2025/04/tweaking-text-level-styles-reprised.html?ref=gorillasun.de): Adrian Roselli shares a comprehensive guide to properly using and styling text-level HTML elements including ``, ``, ``, and ``, with detailed information about their default browser styles, recommended enhancements, print considerations, and screen reader behavior across different platforms.
[Tweaking Text Level Styles, ReprisedIn 2017 I wrote Tweaking Text Level Styles (terrible name in retrospect) and I made regular updates over the years. Stop reading it. Remove it from your bookmarks. Unlink it from your posts. Print it onto paper and then burn it. Demo Wrap-up The conclusions and…Adrian RoselliJedi](https://adrianroselli.com/2025/04/tweaking-text-level-styles-reprised.html?ref=gorillasun.de)
He also makes abundantly clear that it's a replacement to his 2017 post on the same topic.
**6 —** [**Et tu, Grammarly?**](https://dbushell.com/2025/03/29/et-tu-grammarly/?ref=gorillasun.de): after receiving repeated complaints from users about his website being oddly styled, David Bushell was forced to investigate. It turned out that the Grammarly browser extension was injecting styles that interefered with the site’s own native design.
[Et tu, Grammarly?The one where I deploy counter defencesdbushell.comDavid Bushell](https://dbushell.com/2025/03/29/et-tu-grammarly/?ref=gorillasun.de)
Turns out that Grammarly was using a CSS variable named `--rem`, which clashed with David’s own use of it for font sizing — resolving the conflicts boiled to changing the variable's name 🤷
Moral of the story... don't trust browser extensions?
**7 —** [**The Best Programmers I Know**](https://endler.dev/2025/best-programmers/?ref=gorillasun.de): to cap off this section, Matthias Endler wrote a cool piece about the qualities that make out a top-notch programmer.
[The Best Programmers I Know | Matthias EndlerI have met a lot of developers in my life. Late…Matthias EndlerMatthias Endler](https://endler.dev/2025/best-programmers?ref=gorillasun.de)
Two big points he mentions, that I can only agree with, is that the best programmers:
1. Understand the tools they use on a fundamental level. As simple as that, they know the in and out of the tools they use to build things.
2. Never stop learning, stay ahead of the curb, and share their knowledge with others. Couldn't agree more, that some of the best programmers I admire are also great educators.
## AI Corner
**1 —** [**Why I stopped using AI Code Editors**](https://lucianonooijen.com/blog/why-i-stopped-using-ai-code-editors/?ref=gorillasun.de): I've mentioned this a couple of times already, but when you start relying on AI code assistants too much, you're robbed of your intuition, and the ability to tap into your own "auto-pilot mode". Luciano Nooijen wrote a thoughtful piece about the deterioration of his programming skills in the context of these code assistants:
[Why I stopped using AI code editors · Luciano NooijenIn the past I used AI code editors for all of my programming, but I stopped using it and recommend others to consider this as wellLuciano Nooijen](https://lucianonooijen.com/blog/why-i-stopped-using-ai-code-editors?ref=gorillasun.de)
**2 —** [**Google is winning on every AI Front**](https://www.thealgorithmicbridge.com/p/google-is-winning-on-every-ai-front?ref=gorillasun.de): while it might seem that Google's DeepMind has been falling behind in the AI race (that's been my impression at least), Alberto Romero from the Algorithmic Bridge wrote a massive post on why this is apparently not the case.
He shares a big list on how most of DeepMind's models currently rank highly on the benchmarks compared to the rest of the competition — benchmark-maxxing or not, it makes for quite an impressive list:
[Google Is Winning on Every AI FrontNeither OpenAI nor Anthropic have a chance at this pointThe Algorithmic BridgeAlberto Romero](https://www.thealgorithmicbridge.com/p/google-is-winning-on-every-ai-front?ref=gorillasun.de)
## Music for Coding
Lazarus is a brand new animated series produced by Adult Swim, currently with a [rating of 7.8 on IMDb](https://www.imdb.com/title/tt28454008/?ref=gorillasun.de). Aesthetically it's reminiscent to Cowboy Bebop if you're a fan of that show, but with it's own unique visual identity.
What's special is the soundtrack that was commissioned for it; produced by none other than Bonobo, who's one of my favorite artists. The soundtrack is reminiscent of some of Bonobo's early stuff, gritty, rich, and simply a joy to listen to. Honestly also a perfect fit for coding:
Check out Bonobo's YouTube channel for the rest of the tracks.
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 96The Art of Pen Plotting - Interleaved Gradient Noise - Mondrian Shader - String Art in P5 - PIPO Creative Interfaces - GLSL Rubik’s Cube - CSS Item Flow Concept - CSS LQIPs - Microsoft OG Source Code - Anime.js v4 -Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-96)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 96
URL: https://www.gorillasun.de/blog/gorilla-newsletter-96/
Last updated: 2025-04-07T15:51:28.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 96th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
1 — [The Art of Pen Plotting](https://penplotter.art/p/pen-plotter-art-history?ref=gorillasun.de): Jerad Maplethorp wrote a beautiful piece about how pen plotting evolved into a form of art; while pen plotters weren't originally intended for the purpose of bringing code-generated doodles onto paper — much rather for the creation of precise blueprints and circuit diagrams — the programmable drawing machines are now central to a modern artform.
[](https://penplotter.art/p/pen-plotter-art-history?ref=gorillasun.de)
[Link to Article](https://penplotter.art/p/pen-plotter-art-history?ref=gorillasun.de)
At the forefront we find pioneers like Frieder Nake, Vera Molnar, and Manfred Mohr (among many others) that all in their own ways came into contact with pen plotters back in the 50s, unknowingly laying the ground-work for what would become a global art movement today.
Now we see artists do all sorts of interesting things with the machines, like Licia He's watercolor shenanigans, Adam Fuhrer's daily postcard sized doodles, or Daniel Catt's various experiments to name a few of my favorites.
In fact, Jerad's blog only came to my attention through the most recent issue of Daniel Catt's newsletter, who's also one of the artists that I admire for his efforts in documenting his processes and endeavours so systematically for others to learn from. In issue #058 he updates us again about what he's been up to, and includes a kind shoutout right at the very top! 😄
[📙 #058 - Rated 15 for swearing & some f\*\*\*ing postcardsIs swearing in art big & clever? No? But is it funny? No? And has that stopped me? Also no! A photo essay of sorts.Drawing Machines & Notes from Art Studio RobotsDaniel Catt](https://newsletter.revdancatt.com/p/058-rated-15-for-swearing-and-some?ref=gorillasun.de)
Heads-up PG15 warning this time round 😆
As we keep ping-pong-ing shoutouts back and forth, it's starting to feel a little like a good old web-ring! Guess it's your turn now Jerad 🔫 there's also a couple more posts on Jerad's site worth checking out; fittingly titled Ink & Algorithms, it revolves entirely around the pen plotting practice.
**2 —** [**Interleaved Gradient Noise**](https://blog.demofox.org/2022/01/01/interleaved-gradient-noise-a-different-kind-of-low-discrepancy-sequence/?ref=gorillasun.de): Unlike regular random noise, which can clump or leave gaps, Interleaved Gradient Noise (IGN) is a noise generation technique that ensures each small group of pixels has a balanced mix of sample points — it's a method that can be used whenever you need a per pixel random number in rendering.

[Jorge Jimenez from the Activision team originally created IGN](https://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare/?ref=gorillasun.de) to improve how games render smooth images during Temporal Anti-Aliasing (TAA), a technique that combines pixel information from past frames and the current frame to remove [jaggies](https://en.wikipedia.org/wiki/Jaggies?ref=gorillasun.de) in the current frame.
During TAA pixels are sampled across several frames and then combined into a single image, and this sampling is done according to a noise distribution. IGN helps Temporal Anti-Aliasing (TAA) by spreading out pixel samples evenly across frames.
[Interleaved Gradient Noise: A Different Kind of Low Discrepancy SequenceThe python code that goes along with this post can be found at In 2014, Jorge Jimenez from Activision presented a type of noise optimized for use with Temporal Anti Aliasing called Interleaved Grad…The blog at the bottom of the seademofox2](https://blog.demofox.org/2022/01/01/interleaved-gradient-noise-a-different-kind-of-low-discrepancy-sequence/?ref=gorillasun.de)
At least that's what I pieced together from the article. I also thought that the noise pattern's aesthetics were kinda interesting, and could probably be used for some genart purposes. Xor, through whom I discovered the article also shares what dithering looks like using IGN.

[Link to Post](https://x.com/XorDev/status/1907526222848070001?ref=gorillasun.de)
**3 —** [**Infinite Mondrian grid in GLSL**](https://bsky.app/profile/xordev.bsky.social/post/3llz2qglnq22a?ref=gorillasun.de): Xor doesn't only shares cool resources, but is also a certified GLSL code-golfing wizard. In a recent sketch, he showcases a continuously re-arranging Mondrian-esque grid that's done in only 169 characters 🤯

I never feel that just sharing these is enough, hence I tried to dive in and understand what's going on. Obviously because I'm an absolute GLSL noob, the first step was formatting the code into something readable and thentranslating it into a poor-man's shader version in P5 that I'm capable of wrapping my head around:


[Play around with the code for yourself here](https://editor.p5js.org/AhmadMoussa/sketches/XJXa%5FFjty?ref=gorillasun.de) | On the right you can see a zoomed out version that shows how the canvas is subdivided into rectangular regions.
In essence, it's an elaborate sine wave based SDF that quantizes the canvas into individual rectangular regions, where each pixel is processed through with number of discrete, non-linear transformations to create the segmented color boundaries.
I still don't have a complete mental model of how it works, but I think I just need to play around with the code a bit more. As always, de-tsubuyakifying these is such an incredibly rewarding exercise.
**4 —** [**String Art in P5Js**](https://www.youtube.com/watch?v=qH7ZgQghKUU&ref=gorillasun.de): the prolific Patt Vira has continued to churn out one tutorial after another over on her YouTube channel; in a recent one she shows us how to simulate string art with P5\. String art is the practice of wrapping a thread around a circular configuration of nails or pins, such that the thread overlaps with itself to create darker and lighter areas and recreates an image in the process — just like what you see in the thumbnail below 👇
Way back when I first got started with creative coding I tried my hand at this algo, but I never actually got very far — turns out the secret sauce here is a greedy approach.
In essence, for each pin we run a loop that finds the darkest possible pixel path to another pin by summing up the individual pixel values of an underlying grayscale image. Once that path is found we slightly brighten the values of the image's pixels, and slowly consume it until we've spun a maximal number of threads.
**5 —** [**Pipo Interfaces for creative sensing**](https://www.creativeapplications.net/objects/pipo-interfaces-a-new-playground-for-creative-sensing/?ref=gorillasun.de): Pipo Interfaces offers a toolkit that makes adding sensors to creative projects simple and accessible, they provide small, affordable modules like for motion tracking, measuring distances, and touch inputs. They're easy to connect wirelessly and can work together or separately in various setups, perfect for creating interactive art installations or devices that depend on creative input.
[Pipo Interfaces – A new playground for creative sensingPipo Interfaces brings a new versatile toolkit for creative sensing and audiovisual interaction in real-time. Developed by creative technologist Rupert Renevier, Pipo is a range of electronics sensor modules that simplify creative interactivity between people, real-world objects, and digital creatioCreativeApplications.NetFilip](https://www.creativeapplications.net/objects/pipo-interfaces-a-new-playground-for-creative-sensing/?ref=gorillasun.de)
What sets Pipo apart is a user-friendly web interface, that lets you adjust settings directly from your phone without additional software; meaning that you can quickly tweak how your sensors respond, like changing MIDI notes or setting detection ranges. Plus, since it's open source and built with common platforms like Arduino, you can customize and expand your toolkit as needed.
**6 —** [**Interactive GLSL Rubiks Cube**](https://www.shadertoy.com/view/w3lGRf?ref=gorillasun.de): kishimisu's built a fully functional Rubik's cube entirely with GLSL fragment shaders. You can try it out for yourself over on ShaderToy, where they also left us with a copious amount of comments that explain the code!

[Link to ShaderToy Sketch](https://www.shadertoy.com/view/w3lGRf?ref=gorillasun.de)
While checking in which issue of the newsletter I had mentioned them before, it turns out that they got a spot in the hall of fame for making it into a single digit issue number of the newsletter, namely [#5](https://www.gorillasun.de/blog/gorilla-recap-5/), where I shared their stellar video on creative shader coding. If you haven't seen that one yet, it's a must watch!
**7 —** [**Grant Kott's Liquid Layers**](https://x.com/kotsoft/status/1907854001397277086?ref=gorillasun.de): when I first shared Grant Kott's liquid layers, I didn't know that he had granter plans for it 😛 in a video he shares his development roadmap for what he's going to work on next based on the feedback that he's received.

[Link to Post](https://x.com/kotsoft/status/1907854001397277086?ref=gorillasun.de)
**8 —** [**Raytraced Audio for Realistic 3D Audio**](https://www.youtube.com/watch?v=u6EuAUjq92k&ref=gorillasun.de): and to cap off, I'm throwing this one in as a wildcard, YouTuber Vercidium spent the last 7 years building a game engine and figured out a way to use raytracing for simulating realistic 3D audio. The video is a non-technical explainer on how it works.
## Dev & Web Tech
**1 —** [**Item Flow layout concept**](https://webkit.org/blog/16587/item-flow-part-1-a-new-unified-concept-for-layout/?ref=gorillasun.de): the Safari team just dropped a proposal that unifies Flexbox, Grid, and Masonry layouts under one set of properties. Over the course of 2023 and up until the end of 2024 discussion concluded in two competing ideas, where Masonry was either a subset of CSS Grid, or its own layout rule. The people over at WebKit now throw both of these suggestions out the window, and propose a completely different approach.

> The suggestion isn’t to combine all of Flexbox with all of Grid — but rather to create a new set of properties and values to “replace” specifically the `flex-flow` and `grid-auto-flow` properties. (You will always be able to use the older syntax if you prefer.) Think how originally the [Alignment properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS%5Fbox%5Falignment/Box%5Falignment?ref=gorillasun.de) and the[gap](https://developer.mozilla.org/en-US/docs/Web/CSS/gap?ref=gorillasun.de) property were defined to work only in one layout system, and then later got modified and extended to work in multiple layout contexts.
[Item Flow, Part 1: A new unified concept for layoutCSS Grid and Flexbox brought incredible layout tools to the web, but they don’t yet do everything a designer might want.WebKitJen Simmons, Saron Yitbarek, Elika Etemad, Brandon Stewart](https://webkit.org/blog/16587/item-flow-part-1-a-new-unified-concept-for-layout/?ref=gorillasun.de)
**2 —** [**Minimal CSS-only blurry image placeholders**](https://leanrada.com/notes/css-only-lqip/?ref=gorillasun.de): after surveying some of the different approaches that are popular for creating blurred image placeholders, Jordan Brennan introduces a clever CSS-only method for creating them. His approach makes use of a single custom property, known as LQIPs (low quality image placeholder), that doesn't require an extra markup or JavaScript.
Jordan LQIP appriach packs image information — in this case a base color and a 3x2 grid of brightness components — into a 20-bit integer which is then decoded using pure CSS techniques like bit shifting and masking. He provides a bunch of interactive examples on the page to play around with.

Additionally, the post discusses the challenges of achieving smooth gradients and seamless blending using CSS radial gradients. He implements quadratic easing to mimic bilinear interpolation, ensuring that the placeholders look natural and blend well with the final images. This innovative method not only reduces the need for bulky scripts but also showcases the power of CSS in handling complex visual tasks efficiently.
**3 —** [**Microsoft Original Source Code**](https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code?ref=gorillasun.de): Bill Gates celebrates Microsoft's 50th anniversary, not only by looking back on a semicentury of his brainchild existing and thriving, but also by sharing the original source code he wrote with Paul Allen in 1975 that would become their very first product.
[](https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code?ref=gorillasun.de)
[Link to Article](https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code?ref=gorillasun.de)
The article is a retrospective of how the two of them wrote a BASIC interpreter for the Altair 8800 over the span of two months, which would also mark the birth of Microsoft.
Worth pointing out is the excellent ASCII themed design of the page, with a subtle text hover/click effect that makes the individual letters flicker before they return to what they were, in addition to a really cool dither-esque load-in animation on the images included in the text.
**4 —** [**Anime.js Javascript Animation Engine v4**](https://animejs.com/?ref=gorillasun.de): after 5 years in the making Julian Garnier releases his lightweight animation library — v4 of Anime.js boasts a new modular API, scroll-linked animations, draggables, WAAPI support, and so much more. The new landing page is also an artwork in of itself, demonstrating the capabilities of the library:
[Anime.js | JavaScript Animation EngineA fast and versatile JavaScript animation libraryanime.js logo v4](https://animejs.com/?ref=gorillasun.de)
**5 —** [**Kevin Powell vs. Andy Bell CSS Battle**](https://www.youtube.com/watch?v=TyCbg7YWaXo&ref=gorillasun.de): in a recent video our favorite web dev YouTuber Kevin Powell challenges none other than Andy Bell from the Picalilli Blog to a CSS battle. In four 10 minute rounds they're tasked with matching a target layout and design, where the one to finish first wins, or whomever matches the design more closely if the time runs out.
Turns out that seemingly simple layouts can sometimes be quite tricky to whip up from scratch. It was also interesting to see the different approaches that the two of them took to match the target layout, and how they were both entirely different to my own initial ideas, showing me that my CSS brain is wired in an entirely different way 😅
I think this really highlights the beauty and versatility of CSS — a big toolbox that lets you mix and match different rules to achieve the same thing in multiple ways. If you'd like to challenge your friends and/or colleagues to a round or two of CSS battle, you can do so [here](https://cssbattle.dev/?ref=gorillasun.de).
## AI Corner
**1 —** [**Browse No More**](https://paulstamatiou.com/browse-no-more?ref=gorillasun.de): Paul Stamatiou, aka Stammy, shares his shift from traditional web browsing to using LLMs for quick answers — while these AI engines save time, he misses the unique and surprising discoveries that come from exploring different websites and forums. He highlights that what gets lost in translation, due to the uniform responses of LLMs, are the personal human touches that made exploring the internet engaging.
[Browse No MoreI’m no longer browsing the web; I’m consuming AI answers instead. I love and adore today’s so-called AI answer engines: tools like ChatGPT, Perplexity, Grok, Copilot, and Gemini. I use them at least a dozen times throughout the day, and I’m sure you use them frequently as well. Their convenience isPaul StamatiouPaul Stamatiou](https://paulstamatiou.com/browse-no-more?ref=gorillasun.de)
Using LLMs for quick answers is largely the same approach I have adopted in the past years — for example, I never really enjoyed StackOverflow, and now there's really no reason to visit the site anymore because I can just quickly ask ChatGPT why my div isn't centered; but at the same time I'm missing out on tapping into exchanges other brains have had on the internet before me, or picking up on tangential information that might be useful and interesting in of itself.
Stammy believes that one way to improve these AI systems would be by adding thoughtful personalization, allowing them to understand individual preferences without being overwhelming.
**2 —** [**GPT-40 Image Mania**](https://www.youtube.com/watch?v=Bt-7YiNBvLE&ref=gorillasun.de): you've likely taken notice of the entire studio Ghibli dilemma unfold over on social media in the past week, which I've consciously decided not to engage with.
As always, FireShip was quick to make a video on the topic; all of this ensued after OpenAI added an image generator to their GPT-4o model, that might be a little too good for its own sake.
For instance, it's really good at character continuity, text rendering that was up to this point a big weak point for all image gen models. Obviously it's also really good at turning your favorite memes into the style that you desire — particularly studio Ghibli that somehow escaped OpenAI's content guardrails.

## Music for Coding
For some late night coding and reading I often enjoy listening to some minimal techno; and a recent discovery of mine in the genre is HOZHO, a portuguese producer and DJ who's created somewhat of his own niche labeled as Melodark Minimal. His album Yin Yang is such an effortless listen, that's really perfect for fueling thinking tasks without being distracting.
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 95The HTML Review 2025 - The Rivulet Esolang - DDA Algorithm Explained - DIY Synths Database - Writing Blog Posts for Devs - Programming an Undo Stack - CSS Gap Decorations Proposal - LLM Agents are simply GraphsGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-95)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 95
URL: https://www.gorillasun.de/blog/gorilla-newsletter-95/
Last updated: 2026-06-19T14:08:16.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 95th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**The HTML Review 2025**](https://thehtml.review/04/?ref=gorillasun.de): *the html review* is a collection of artful, poetic, and web native pieces of story-telling — or more simply: *an annual journal of literature made to exist on the web*.

This year features a series of very personal, somewhat esoteric, web experiences that act as direct commentaries on our digital existences on the web, where the storytelling deeply is intertwined with the tech itself. A couple of my favorites this time round:
- [Navigation Queues Navigation Cues](https://navigation-queues-navigation-cues.f451.studio/?ref=gorillasun.de) doesn't only tell you the history of scrollbars but also comments on the contemporary role that *scrolling* plays in our lives, how it's no longer an active act of exploration, but rather a way for getting lost.
- [Cavity!](https://thehtml.review/04/cavity/?ref=gorillasun.de) tells its story in a non-sequential manner, simply by letting you uncover the individual text nodes, but still conveying a sense of sequence through the graph structure in the background — that I believe you are meant to disentangle.
- In [I want my computer to forget like I do](https://www.blairs.computer/?ref=gorillasun.de) the author downloads their files onto the viewers machine in an irreversible manner — tasking you with holding on to and safekeeping them until they might be needed again in the future. Thank you for the digital burden... 😅
But that's just a few of the works that I personally enjoyed among many others. I highly recommend taking a few moments and checking them out for yourself. Also have a look at the HTML reviews of previous years — I covered the 2024 issue in newsletter [#49](https://www.gorillasun.de/blog/gorilla-newsletter-49/).
**2 —** [**The Rivulet Programming Language**](https://github.com/rottytooth/Rivulet?ref=gorillasun.de): if it weren't for the HTML review, this one would have easily taken the top spot in this week's roundup — Rivulet is an esoteric, list-based programming language that encodes its operations as flowing semigraphic character strands within block-like glyphs.

A Fibonacci program in Rivulet
Glyphs can be arranged vertically or horizontally, delineated by a beginning marker `╵` in the upper left corner and ending with a `╷` at the bottom right — different instructions are then executed as the glyph is traversed.
Four different types of strands specify what instructions should be executed: value strands write numbers into lists, reference strands point to specific cells, action strands that modify these values using arithmetic operations, and paired question strands that test conditions.

So instead of traditional loops or if-statements, every strand in a glyph runs in a set visual order where the layout itself dictates the program’s logic and execution, with conditional branching and rollbacks, creating an interesting maze-like flow.
[GitHub - rottytooth/RivuletContribute to rottytooth/Rivulet development by creating an account on GitHub.GitHubrottytooth](https://github.com/rottytooth/Rivulet?ref=gorillasun.de)
If you're interested, check out the official GitHub repo.
**3 —** [**The DDA Algorithm**](https://aaaa.sh/creatures/dda-algorithm-interactive/?ref=gorillasun.de): in a nutshell, the Digital Differential Analyzer (DDA) algorithm is an efficient method for drawing straight lines on our screens — which, as you might be aware of, are discrete pixel grids. In essence, it lets us determine which pixels need to be turned on to visualize lines, based on how the line at hand arithmetically travels through these pixels.

[Link to Article](https://aaaa.sh/creatures/dda-algorithm-interactive/?ref=gorillasun.de)
While its effect is rather simple to grasp, implementing it can be a bit tricky because it involves quite a bit of math; that's why Joshua Michael wrote this wonderful interactive article about the algorithm showing us all the small mathematical parts that make it work.
**4 —** [**Our interfaces have lost their senses**](https://wattenberger.com/thoughts/our-interfaces-have-lost-their-senses?ref=gorillasun.de): Amelia Wattenberger writes as beautifully as ever, in her most recent post she talks about how our digital interfaces have become increasingly flat and text-based, stripping away the texture, sound, and tactile feedback that make interactions more organic, immersive, and satisfying.

The key-takeaway here is that different modalities of interaction that play into our sense can potentially allow for richer ways to manipulate our daily digital playgrounds, and align more with the way our brains function and the ways that we think.
**5 —** [**DIY Synths Database**](https://diy-synths.snnkv.com/?ref=gorillasun.de): while we're talking about being hands-on, check out this collection of 50+ standalone open source synth builds, ranging from newbie projects all the way to more complex ones.
[DIY synths databaseCurated collection of DIY-friendly hardware synthesizers and related musical equipment you can build on your own. All open source.diy-synths.snnkv.com](https://diy-synths.snnkv.com/?ref=gorillasun.de)
Each synth listed links to a project page over on GitHub where you can find the required materials, 3D printables, instructions on how to assemble it, and everything else you might need.

I never built my own synth, but just looking at all of these gorgeous contraptions tickles my brain in a certain way that makes me want to include it here
**6 —** [**Missile Command with a twist**](https://mastodon.social/@danluu/113529014341128697?ref=gorillasun.de): this one's included because I thought it was genuis, Dan Luu built a game of Missile Command where you quite literally a fight for survival — the objective is to protect the game state that sits visualized at the bottom of the game screen, if damaged it makes parts of the game defect and can even render it unplayable.

[Link to Toot](https://mastodon.social/@danluu/113529014341128697?ref=gorillasun.de)
**7 —** [**SVG ASCII Logo Generator**](https://github.com/ykhli/ascii-logo?ref=gorillasun.de): to cap off, Yoko Li built this neat little command line tool that lets you print text as ASCII art to the terminal and simultaneously exports them as SVGs to feed into your plotter or laser cutter.

## Dev & Web Tech
**1 —** [**How to Write Blog Posts that Developers Read**](https://refactoringenglish.com/chapters/write-blog-posts-developers-read/?ref=gorillasun.de): one of the hardest things to figure out when you're just getting started with your blog, is finding topics to write about — topics that you have an opinion on, and that are relevant to a specific group of people that could potentially become your audience.
Michael Lynch writes about how to write dev blog posts that actually reach people, and some of the pitfalls to avoid:
[How to Write Blog Posts that Developers ReadSoftware bloggers can make the same mistakes for years that prevent readers from discovering their writing. I know because I’m one of them. Over time, I’ve learned techniques that help some blog posts succeed and the pitfalls that cause others to languish in obscurity.Refactoring English](https://refactoringenglish.com/chapters/write-blog-posts-developers-read/?ref=gorillasun.de)
**2 —** [**UI Algorithms: A Tiny Undo Stack**](https://blog.julik.nl/2025/03/a-tiny-undo-stack?ref=gorillasun.de): Julik Tarkhanov writes about how to program an undo stack in JavaScript — a feature in many UIs letting you undo and redo actions you've performed.

[Link to Article](https://blog.julik.nl/2025/03/a-tiny-undo-stack?ref=gorillasun.de)
A simple approach to achieve an undo stack involves storing actions in an array and then keeping track of them with a pointer. Julik points out that keeping track of the pointer is cumbersome, and proposes a more sensible dual-stack method, where undo/redo actions simply migrate between the two arrays.
**3 —** [**A new way to draw separators in CSS**](https://blogs.windows.com/msedgedev/2025/03/19/minding-the-gaps-a-new-way-to-draw-separators-in-css?ref=gorillasun.de): Kevin Babbitt and Patrick Brosset from the Microsoft Windows Blog wrote about a new way to draw separator lines in CSS and propose a new gap decorations solution where you can specify column and row rules to style separators in different layouts.

They write about it in more detail in an [explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/CSSGapDecorations/explainer.md?ref=gorillasun.de) on GitHub. For genart purposes I'm actually excited for this one; I recently attempted recreating one of my P5 sketches purely by using HTML and CSS to draw elements — I quickly realized that the positioning is quite cumbersome if you're drawing things simply using a border/fill hack; this could potentially be a solution to that.
**4 —** [**War Story: the hardest bug I ever debugged**](https://www.clientserver.dev/p/war-story-the-hardest-bug-i-ever?ref=gorillasun.de): sometimes you run into vexxing mystery bugs that are seemingly impossible to debug — Jacob Voytko recounts a non-deterministic, worst-case scenario bug that occurred during the development of Google Docs back in the early 2010s. After 2 days of grueling debugging, it turned out that the bug was deep within Chrome’s V8 JavaScript engine.
[War story: the hardest bug I ever debuggedAll of a sudden, without any ostensible cause, Google Docs was flooded with errors. How it took me 2 days and a coworker to solve the hardest bug I ever debugged.Client/ServerJacob Voytko](https://www.clientserver.dev/p/war-story-the-hardest-bug-i-ever?ref=gorillasun.de)
**5 —** [**A Love Letter to the CSV format**](https://github.com/medialab/xan/blob/master/docs/LOVE%5FLETTER.md?ref=gorillasun.de): I wasn't aware that there's apparently some antagonism towards the CSV format; personally always thought it's pretty straightforward for my hobby purposes 🤷 But I guess that my sentiment towards CSV is just my uneducated opinion on the topic 😅
[](https://news.ycombinator.com/item?id=43484382&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=43484382&ref=gorillasun.de)
A little readme over on in the xan docs (a command line tool for processing csv files) reveals itself as a love letter to the format, highlighting its strengths and why its often criticized for the wrong reasons.
[xan/docs/LOVE\_LETTER.md at master · medialab/xanThe CSV magician. Contribute to medialab/xan development by creating an account on GitHub.GitHubmedialab](https://github.com/medialab/xan/blob/master/docs/LOVE%5FLETTER.md?ref=gorillasun.de)
## AI Corner
**1 —** [**Why are we still bullish on LLMs**](https://x.com/skdh/status/1905132853672784121?ref=gorillasun.de): I guess this one tracks back to the issue that AI is still not quite *there* yet. Sabine Hossenfelder singles out a very particular use-case here, and generalizes her sentiment to LLMs at large, which I might not entirely agree with. Finding and extracting relevant references sounds like a task for an agent that's specialized for it, like the Deep Research GPT agent which I think works decently enough.
[](https://x.com/skdh/status/1905132853672784121?ref=gorillasun.de)
[Link to Post](https://x.com/skdh/status/1905132853672784121?ref=gorillasun.de)
LLMs are great for automating a lot of the tedious/mundane/crappy tasks — like for instance, I'm really happy I don't have to write data parsing python scripts from scratch anymore — now I can just prompt them into existence. Obviously, for anything slightly more complicated, that involves some sort of creative nuance, you'll find that LLMs quickly fall short.
**2 —** [**LLM Agents are simply Graph**](https://zacharyhuang.substack.com/p/llm-agent-internal-as-a-graph-tutorial): LLM agents are simply thinking loops modeled as graphs: each node of the graph is either a particular action that the LLM is allowed to perform, or a prompt that updates the current state.
Currently there's an explosion of LLM agnostic frameworks (meaning you can plug in the LLM of your choice) to build these kinds of agents, like Pocket Flow that's advertised through this post. Some weeks ago I played around a bit with LangGraph, but I found it quite overkill for my little experimental projects — glancing over the docs, Pocket Flow seems like a much more accessible alternative. This lovely little tutorial breaks down the basics of it.
[LLM Agents are simply Graph — Tutorial For DummiesEver wondered how AI agents actually work behind the scenes?Pocket FlowZachary Huang](https://zacharyhuang.substack.com/p/llm-agent-internal-as-a-graph-tutorial)
## Music for Coding
It's a big shame that this EP is only 15 minutes long — in jazz is for ordinary people, berlioz blends jazzy melodies with deep house grooves in a really seamless manner. Perfect way to start your Monday morning I'd say:
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 94Procedural Ant Colonies - Bounding Volume Hierarchies - Procedural Cave Systems - 3D Printer for Yarn - Voronoi Sudoku - TypeScript 10x Faster - Writing Exceptional Documentation - Functions in CSS - Design in Tech Report 2025Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-94)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 94
URL: https://www.gorillasun.de/blog/gorilla-newsletter-94/
Last updated: 2025-03-24T08:44:55.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 94th 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.
🐘
****The Gorilla Sun blog is now officially fedified!**
Recently the team at [Ghost rolled out ActivityPub support for all Ghost blogs](https://activitypub.ghost.org/the-social-web-lift-off/?ref=gorillasun.de) — which means that you can now follow the blog directly via your Mastodon, and other ActivityPub-based social media accounts via [@index@www.gorillasun.de](https://mastodon.social/@index@www.gorillasun.de?ref=gorillasun.de) and receive updates whenever I publish a new issue or make a direct post into the Fediverse!
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**Optimizing Ant Simulation**](https://www.youtube.com/watch?v=hTHpEF%5Fjcu4&ref=gorillasun.de): youtuber Pezzza revisits a 5 year old video series of his, in which he previously explored and simulated the procedural behavior of ant colonies.
In this installment he greatly optimizes the code that powers the sim, and incorporates additional constraints such as collision detection:
We actually already had a look at ant colony simulation, in [issue #68](https://www.gorillasun.de/blog/gorilla-newsletter-68/) of the newsletter to be precise, when I wrote about Physarum sims. Check out this excellent [interactive tutorial by Deniz Bicer](https://denizbicer.com/202408-UnderstandingPhysarum.html?ref=gorillasun.de), as well as this excellent [video by Patt Vira](https://www.youtube.com/watch?v=VyXxSNcgDtg&ref=gorillasun.de).
Physarum simulations are a type of particle-based algorithm in digital morphology, designed to recreate the behavior of [slime mold](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de)[s](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de), or ant colonies, in a digital setting.
Essentially all sort of hive-like flocking behavior where agents seek out food sources and carve out distinct looking network like path patterns. In a genart setting these sims are popular due to the visually interesting patterns they can produce.
**2 —** [**Collision Detection & Bounding Volume Hierarchies**](https://www.youtube.com/watch?v=MKeWXBgEGxQ&ref=gorillasun.de): the Ten Minute Physics YouTube channel dropped two new videos in the past month, both revolving around collision detection.
In the first video, Matthias tackles the Sweep and Prune algo, that's relatively efficient for most 2D settings, showing us how to implement it in just 10 lines of code.
The [second more recent video](https://www.youtube.com/watch?v=LAxHQZ8RjQ4&ref=gorillasun.de) explains a much more efficient approach, that spatially indexes objects in a scene and leverages a tree structure to check for collisions — that is magnitudes more efficient than the Sweep & Prune approach.
**3 —** [**The Art of Chaos**](https://store.steampowered.com/news/app/1555980/view/655941948402566460?ref=gorillasun.de): After having worked for the past 10 years on heavily procedural tile-based games, the game studio Maschinen-Mensch treads into an entirely different genre with their newest release Mother Machine.
In an article of theirs they explain the inner workings of the procedural cave-generator they built for their game:
[Mother Machine - The Art of Chaos - Steam NewsA fun look at how Mother Machine creates its caves—hand-crafted chunks, smart placement, and procedural magic make every run feel fresh and exciting!STEAM](https://store.steampowered.com/news/app/1555980/view/655941948402566460?ref=gorillasun.de)
It turns out that the seemingly organic tunnel system is based on a smart tile-based grid, where entrances and exits are anchors that can connect to other tiles. Placing this one high up on the list this week, because it turned out to be a surprisingly insightful resource on dungeon/cave generation.
**4 —** [**Building a 3D printer for Yarn**](https://www.youtube.com/watch?v=chP1dZfkgiE&t=114s&ref=gorillasun.de): combining his passion for building, crafts, and programming, Martin automated a manual knitting machine to make it "print" any kind of pattern on yarn — essentially making it a 3D printer for Yarn.
And yes, I blatantly stole this one from Daniel Catt's newsletter; it was too good to not also share here. That said, [check out Daniel's newsletter](https://newsletter.revdancatt.com/p/057-pastels-and-apocalyptic-albums?ref=gorillasun.de), it's great!
**5 —** [**Voronoi Sudoku**](https://danielchasehooper.com/posts/cracked-sudoku?ref=gorillasun.de): aka Cracked Sudoku, as Daniel Hooper describes it (due to it looking like a cracked/shattered surface), is a — cracked — variant of the popular puzzle game (both literally, and figuratively).
[A New Sudoku Layout With 81 Uniquely Shaped CellsMy journey making a Sudoku variant that doesn’t have rows or columns](https://danielchasehooper.com/posts/cracked-sudoku/?ref=gorillasun.de)
Apparently there is an entire community of creatives and tinkerers that have gathered around the idea of creating all sorts of crazy Sudoku variants — if you'd like to delve into this topic, there's a huge YouTube channel that regularly posts about this topic, it's basically Numberphile for Sudoku:
While people have come up with many alternative rule-sets, it seems that there hasn't been much innovation in terms of layout, which is what Daniel attempts to change with his version.
His post explains how the puzzle generator works as well as the additional rules the Voronoi variant introduces, where numbers can't be repeated along specific "runs" of cells, instead of rows and columns.

You can give it a try [here](https://danielchasehooper.com/projects/cracked-sudoku/?ref=gorillasun.de).
**6 —** [**The Balatro Timeline**](https://localthunk.com/blog/balatro-timeline-3aarh?ref=gorillasun.de): if you have the slightest interest in gaming, you'll very likely have heard of Balatro, the uber-addictive pocker inspired rogue-like indie game, that seemingly came out of nowhere and sold a record breaking number of copies in the first couple of days.
Developed as a labor of love over the course of the past 3 years, sole dev LocalThunk recounts the entire creation timeline of the game in a big write-up of his:
[The Balatro Timeline — LocalThunkIt’s been approximately 3 years since I began work on Balatro - and in that time I have personally documented almost nothing about the journey. This is something that has bothered me since the game launched. I am constantly forgetting major moments in development or milestones. It’s about time I staLocalThunkLocalThunk](https://localthunk.com/blog/balatro-timeline-3aarh?ref=gorillasun.de)
## Dev & Web Tech
1 — **TypeScript 10x faster**: if you haven't heard yet, Microsoft just made TypeScript 10x faster — now you too can be a 10x dev, in the literal sense of the phrase! 😆
Jokes aside, it's not everyday that a programming language becomes 10 times faster overnight — so how did Andres Hejlsberg do it? Ironically, by not using any of the numerous programming languages he has created in his lifetime. Rather than using the TypeScript to compile the TypeScript, Go is a seemingly much better tool to do so, and porting the compiler yielded the massive speed-up.
As always, check out the [FireShip video](https://www.youtube.com/watch?v=PQ2WjtaPfXU&ref=gorillasun.de) that summarizes things in a succinct and humorous manner.
**2 —** [**How to write exceptional documentation**](https://chrisnicholas.dev/blog/how-to-write-exceptional-documentation?ref=gorillasun.de): if you're building software of any kind, you've likely had to write documentation at some point, either for users, or other devs. The difficulty here is that the docs need to suit the needs of multiple different readerships, with varying levels of expertise. Chris Nicolas provides us with excellent guidelines for writing and structuring docs in such a manner that they accommodate these varying needs:
[Chris Nicholas | Developer experience at LiveblocksDX engineer at Liveblocks. Articles on developer experience and web engineering.Chris NicholasChris Nicholas](https://chrisnicholas.dev/blog/how-to-write-exceptional-documentation?ref=gorillasun.de)
**3 —** [**Functions in CSS**](https://css-tricks.com/functions-in-css/?ref=gorillasun.de): Chrome Canary is an experimental, bleeding-edge version of Google Chrome designed primarily for developers that want to experiment with early features. One of the shiny new things that it currently supports are CSS Functions, which the spec describes succinctly as *parameterized custom properties* — basically custom properties that can return different things based on an input parameter:
[Functions in CSS?! | CSS-TricksArguments?! Return values?! What’s crazier, you can use functions right now in Chrome Canary! So, after reading and playing around, here are my key insights on what you need to know about CSS Functions.CSS-TricksJuan Diego Rodríguez](https://css-tricks.com/functions-in-css/?ref=gorillasun.de)
As you might have guessed though, it's likely going to be a couple of years before we can fully enjoy CSS functions across the major browsers (or we all just start using Chrome Canary 🤷).
**4 —** [**Pocket-sized keyboard design contest**](https://chrischrislolo.github.io/orthoLabLogs/keyboard-design-contest-00.html?ref=gorillasun.de): I've been meaning to get myself a mechanical key-board for a while now, but with all the choices out there I've been a bit paralyzed. After discovering that there's a whole key-board DIY and modding community out there, I even played with the idea of getting a 3D printer to build my own — but that was a short-lived daydream.
This post isn't new, but still very much worth sharing, back in May of last year the sporewoh blog ran a design content for pocket-sized keyboards, the results then came out in October, with the top-designs listed in this article, there's a bunch of fascinating pieces in there.
[keyboard design contest #00 resultsOverview The results are in! Thank you to everyone who has participated in the contest! I am floored by all of the creativity and thought put into the entries!! I’d like to list out the entries, what I like about each one, and finally outline…sporewohsporewoh](https://chrischrislolo.github.io/orthoLabLogs/keyboard-design-contest-00.html?ref=gorillasun.de)
## AI Corner
**1 —** [**Design in Tech Report: Autodesigners on Autopilot**](https://johnmaeda.medium.com/autodesigners-on-autopilot-88c5b07609b9?ref=gorillasun.de): It's that time of the year again, John Maeda presented his famous Design in Tech Report at the [2025 SXSW conference](https://www.sxsw.com/?ref=gorillasun.de). I wrote about the 2024 Report back in [issue #48](https://www.gorillasun.de/blog/gorilla-newsletter-48/), titled **Design against AI**.
It almost seems ages ago now, back then we were still grappling with adopting AI as a solution for design purposes, with a general negative sentiment towards it — now this seems a thing of the past, and the narrative having shifted quite significantly.
If you want a concise summary of Maeda's thoughts on the topic, he also wrote this wonderful post on X — the two strongest threads right now are that
[](https://x.com/johnmaeda/status/1902005437022790100?ref=gorillasun.de)
[Link to Post](https://x.com/johnmaeda/status/1902005437022790100?ref=gorillasun.de)
**2 —** [**Photoshop for Text**](https://x.com/damienhci/status/1902106534345371830?ref=gorillasun.de): What if you could lengthen a sentence and make it wordier, simply by dragging it? What if you could make the text more colorful — changing its tone essentially — by using a color selection wheel?
That's Damien Masson's paper **Textoshop** explores: novel text interactions that mimic those you'd usually find in image editing software. He demonstrates many of those interactions in the X thread he posted here 👇
[](https://x.com/damienhci/status/1902106534345371830?ref=gorillasun.de)
[Link to Post](https://x.com/damienhci/status/1902106534345371830?ref=gorillasun.de)
And it seems that this is not a new idea, X user kepano had predicted this with a thread of theirs back in October 2022, read up on it [here](https://x.com/kepano/status/1726289854915629262?ref=gorillasun.de). This also strongly reminds me Amelia Wattenberger's LLM based experiments that I highly recommend checking out.
## Music for Coding
I went to a concert for the first time in a while this past week — and calling it a concert doesn't really feel right, it was much rather an experience, and to an equal extent a phenomenon to witness. Heilung is a Nordic-Ritual-Folk band (according to Wikipedia), that's rhythmic, primal, and at points even atmospheric and cinematic.
It's the kind of music that transports you away to a different time and place — seeing them live definitely made me feel like I was somewhere else. It might not be everyone's cup of tea, but I definitely would recommend giving it a listen at least once — and if they're doing a show near you, experiencing it for yourself:
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 93Dithering in Colour - The Lost Art of Logarithms - Evolving Shaders with LLMs - Art with Sinusoids - IO Devices & Latency - Whimsical Web Animations - Deceptive Progress Bars - CSS Relative Colors - Understanding EmbeddingsGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-93)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 93
URL: https://www.gorillasun.de/blog/gorilla-newsletter-93/
Last updated: 2025-03-17T06:00:03.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 93rd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**Dithering in Colour**](https://obrhubr.org/dithering-in-colour?ref=gorillasun.de): traditionally, dithering's a technique to create the illusion of color depth with a limited color palette, tricking our eyes into seeing more colors than there actually are, the term is now generally used to refer to a bunch of algorithms that can reduce the number of colors in an input image.
Today, it's become a bit of a lost art, and broadly used for aesthetic and artistic purposes. While dithering is most commonly used in the monochrome setting, this past week Niklas Oberhuber shared a post in which he explains how multi-channel dithering works and some of the pitfalls to avoid while doing so.

Instead of converting an image to grayscale and using a simple threshold, color dithering involves comparing each pixel’s RGB values in a three-dimensional space to find the closest matching color in a chosen palette, then diffusing the quantization error across each channel separately.
A key point is the need to linearise the sRGB input before dithering because the gamma-encoded values do not represent brightness linearly, which can lead to overly bright or inaccurate outputs.
> We have just committed a mortal sin of image processing. I didn’t notice it, you might not have noticed either, but colour space enthusiasts will be knocking on your door shortly.
Niklas also mentions a whole bunch of other interesting articles on the topic of dithering that I haven't previously come across, nor shared on the Newsletter:
- A recent one from Amanvir Parhar, where he implements [Atkinson dithering in Racket](https://amanvir.com/blog/writing-my-own-dithering-algorithm-in-racket?ref=gorillasun.de) (a versatile multi-purpose programming language in the Lisp family)
- And another from surma.dev back from 2021 titled "[Ditherpunk — The article I wish I had about monochrome image dithering](https://surma.dev/things/ditherpunk/?ref=gorillasun.de)" that's a comprehensive overview of all steps involved in creating a dithering algorithm
[Ditherpunk — The article I wish I had about monochrome image dithering — surma.devI always loved the visual aesthetic of dithering but never knew how it’s done. So I did some research. This article may contain traces of nostalgia and none of Lena.](https://surma.dev/things/ditherpunk/?ref=gorillasun.de)
To end this first segments, and to share something artful, I saw that Roni Kaufman has recently also been experimenting with color dithering, he made this beautiful dithered rendition of Anna Boch's "Falaise - Côte de Bretagne" — go and drop him a like 👇
[](https://www.instagram.com/p/DHGeihlCiQk/?img%5Findex=1&ref=gorillasun.de)
[Link to Instagram Post](https://www.instagram.com/p/DHGeihlCiQk/?img%5Findex=1&ref=gorillasun.de)
**2 —** [**Evolving shader sketches with LLMs**](https://www.joelsimon.net/lluminate?ref=gorillasun.de): Joel Simons came up with an interesting approach that leverages evolutionary principles for prompting LLMs, in an attempt to maximize the diversity of generated outputs.

Starting from an initial sample population generated by the LLM, the evolutionary step is guided by a "creative thinking" strategy, that are essentially different kinds of methods for combining and blending samples of the population. These strategies are inspired by the creative approaches from known theorists and creatives.

After a new batch of samples is generated, their similarity to previous samples is computed through an embedding, this provides a measurable score to grade how novel and different generated examples are. The cycle is then repeated until a certain stopping criteria is reached.
Here I'm just providing the big picture, so highly recommend reading through the page for yourself.
Although the final sketches might still not be aesthetically pleasing (imo), the results do seem to indicate that this approach nudges the LLM to explore a greater diversity of examples than it normally would — which is maybe also not so surprising, since we have already established that "step by step" reflection and thinking loops scale LLMs' capabilities to a great extent.
**3 —** [**The Lost Art of Logarithms**](https://www.lostartoflogarithms.com/preface/?ref=gorillasun.de): in an attempt to put down some of the prehistory of computing in writing, Charles Petzold is currently in the process of documenting everything related to Logarithms and how they are *central to our perceptions and consequent understanding of the world*, in form of a book.
Albeit still a work in progress, the resource currently is and will be freely accessible, with many of the first chapters already filled in:

Although the topic at hand is something profoundly technical, *The Lost Art of Logarithms* reads surprisingly easy, much like a normal book; at least that was my impression going through the first chapter over the weekend.
Charles writes in a really accessible way that simplifies much of the complexity — it's one of those resources I wish I would have had back in high-school to have more context around the notions we were being taught in math class.
**4 —** [**Art with Sinusoids**](https://how-to-build-du-e.tumblr.com/?ref=gorillasun.de): this week I'm excited for a collaboration between Rob Scalera and 0xbenj, two really talented generative artists that I've been following for a while now — their generative artwork *what lingers within* is releasing this coming week on fxhash, and it's a really gorgeous one.
[](https://x.com/fx%5Fhash%5F/status/1901235030350864765?ref=gorillasun.de)
[Learn more about the project here](https://x.com/fx%5Fhash%5F/status/1901235030350864765?ref=gorillasun.de)
Their work is in part inspired by Masaru Fujii, an artist that doesn't claim to be a generative artist but still leverages trigonometric functions for the purpose of creating mesmerizing algorithmic compositions — I discovered a page where he has actually explained a little bit about his method and how it's simply based on combinations of sinusoids.


[Link to Post](https://x.com/ozachou%5Fg/status/1892897713081241613?ref=gorillasun.de) | [Link to write-up](https://how-to-build-du-e.tumblr.com/?ref=gorillasun.de)
**5 —** [**Infinite Zoom Wikipedia**](https://folk.systems/canvas/space/hypertext-zui?ref=gorillasun.de): Orion Reed built a mind boggling Wikipedia-like website where, instead of hovering over hyperlinks to see their content, you can zoom in and out of them, to physically traverse the page into the links. I have no idea how it works, and it did induce a bit of motion-sickness, but it's the coolest thing I saw this past week.
0:00
/0:14
1×
[Link to Post](https://x.com/OrionReedOne/status/1899444153936658691?ref=gorillasun.de)
**6 —** [**Algorithmic Pattern 2025 call for talks/papers**](https://2025.algorithmicpattern.org/call/?ref=gorillasun.de): to cap off this section, back in January I shared the Algorithmic Pattern conference that's taking place later this year in September, you can read about it in [issue #85](https://www.gorillasun.de/blog/gorilla-newsletter-85/) of the newsletter, or directly check out their website — the important point is that they are now accepting submissions for talks & papers, with the submission deadline being **June 2nd 2025**.
## Dev & Web Tech
**1 —** [**IO Devices and Latency**](https://planetscale.com/blog/io-devices-and-latency?ref=gorillasun.de): without a doubt the most fascinating tech article of the past week, Ben Dicken wrote about the evolution of non-volatile storage—from tape drives and hard disk drives (HDDs) to modern solid state drives (SSDs)—and how each technology’s physical design impacts input/output (IO) latency.
What makes the article really stand out are the many interactive examples throughout that let you play around with the different kinds of storage mediums, demonstrating their inner workings and shortcomings in a tangible manner.
[](https://x.com/BenjDicken/status/1900221083636379822?ref=gorillasun.de)
[Link to Post](https://x.com/BenjDicken/status/1900221083636379822?ref=gorillasun.de)
Although the article is directly related to a new product release of Ben Dicken's company, but it's in of itself quite interesting, rather than separating storage from compute like many cloud solutions nowadays do — and in that manner introducing latency — PlanetScale proposes to go back to using storage that’s directly attached to compute using fast NVMe (Non-Volatile Memory Express) SSDs.

[Link to Hacker News Item](https://news.ycombinator.com/item?id=43355031&ref=gorillasun.de)
**2 —** [**Programming Whimsical Web Animations**](https://www.joshwcomeau.com/blog/whimsical-animations/?ref=gorillasun.de): Josh Comeau's got a new course lined up that's all about creating playful, interactive effects using vanilla web tech. He's just launched the [landing page](https://whimsy.joshwcomeau.com/?ref=gorillasun.de) for it, and it was an absolute joy to explore — I recommend playing around with the landing page by yourself before diving into the article. In the massive write-up Josh explains how he created many of the effects that are used throughout it.

If you've been wanting to add some character, or easter-eggs, to your own website, this one's for you.
**3 —** [**Truth, Lies and Progress Bars**](https://cloudfour.com/thinks/truth-lies-and-progress-bars/?ref=gorillasun.de): I've read this on several occasions now, that progress bars only on rare occasion really accurately convey the progress that's being made by an application, and instead just serves as an indicator to convey a *sense of progress* to the user. Tyler Sticka wrote a short and sweet post about an early career experience where he worked on a project that implemented this kind of bogus progress bar, and explains that sometimes a small performance loss is worth a more accurate estimation of progress:
[Truth, Lies and Progress BarsAn early encounter with a fabricated progress indicator inspired several more honest alternatives.Cloud FourTyler Sticka](https://cloudfour.com/thinks/truth-lies-and-progress-bars/?ref=gorillasun.de)
This also reminds me of a thread I came across not so long ago — apparently this "perception of progress" is also applicable in a physical setting:

[Link to Post](https://x.com/FreyaHolmer/status/1810617330495275490?ref=gorillasun.de)
**4 —** [**CSS Relative Colors**](https://ishadeed.com/article/css-relative-colors/?ref=gorillasun.de): Ahmad Shadeed is back with another article, this time exploring CSS relative colors, a modern approach that lets you adjust colors directly in CSS without relying on tools like Sass; using functions like `hsl()` and `oklch()`, you can now easily change a color’s opacity or create lighter and darker shades on the fly, or even entirely hue shift to a different color.
[CSS Relative ColorsAn interactive guide to learn CSS Relative Colors.Ahmad Shadeed](https://ishadeed.com/article/css-relative-colors/?ref=gorillasun.de)
**5 —** [**Colormaxxing with P3 Colors**](https://karuna.dev/colormaxxing/?ref=gorillasun.de): in more color related news, turns out that using the modern Display-P3 color space allows for much brighter and vibrant colors in certain browsers, and on displays that support the color space — going through the examples Daniel Karuna provides in his post does indeed reveal much more vivid colors (on a MacBook using Brave — no luck with FireFox).
[](https://karuna.dev/colormaxxing/?ref=gorillasun.de)
No idea if you'll be able to see it through the screenshot 😅 it's a different shade of red on the right — source: trust me bro
Not sure for what practical purposes this is useful for, if not all displays and/or browsers support the color space at this point, but it's pretty cool that it's possible to squeeze out a bit more color range in that manner!
## AI Corner
**1 —** [**Understanding Embeddings**](https://www.youtube.com/watch?v=GikIJpUv6oo&ref=gorillasun.de): Embeddings are numerical representations of complex data — such as words, images, or sounds — that capture the underlying meaning and context in formats that are easy to work with. An embedding space is thus just a conversion of data items to high-dimensional vectors, where similar items are positioned close together, where algorithms can then recognize patterns and relationships.
They are the cornerstone of modern applications of AI, semantic search engines for example, that leverage embeddings to understand query context and retrieve relevant related information; but also recommendation systems, and various other natural language processing applications like sentiment analysis, machine translation, and chatbots.
If you're curious about this, Santiago Valdarrama published a video about how to train your own neural network that can generate image embeddings, from scratch — it's a beefy one but worth the watch:
**2 —** [**Tips for using cursor**](https://www.nickcraux.com/blog/cursor-tips?ref=gorillasun.de): I've used cursor quite a bit now, in fact it's my current coding editor of choice, the inbuilt AI functionalities are neat for all sorts of purposes — for vibe coding for instance 🤣 Nick Craux wrote an article on how to get the most out of it while also saving yourself from the crappy debugging.
[Nick Crauxhello i’m nickhere's how I avoid the garbage parts](https://www.nickcraux.com/blog/cursor-tips?ref=gorillasun.de)
One key tip Patrick offers, that I haven't tried out yet, is using the .cursorrules or .mdc files to set guidelines for the LLM — clear, minimal rules, seem to work best and overall make the AI generate better code.
## Music for Coding
Naxatras is a psychedelic rock band hailing from Greece, and have built a reputation for blending progressive, spacey elements with hard rock, blues, and expansive jam sections. Previously unaware of the band's track record, they seem to be THE big thing in the psychedelic rock space — reading through some reviews online to learn a bit more it seems we've got a very special album at hand:
> Naxatras has come before us with what’s effortlessly the year’s biggest release of the genre so far with any bands with any to-be-announced albums having an exceedingly high bar to clear if they hope to top the overwhelming mastery of what’s been pulled off here \~ [Head-Banger Reviews](https://headbangerreviews.com/2025/02/08/naxatras-v/?ref=gorillasun.de)
But I'll leave you to savour it for yourself 🤤
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 92Logic Circuit Cellular Automata - Generative Plotter Vending Machine - Tweet Coding GLSL Shaders - Distance Test for Bad Art - Indie Web Love Letter - What is TypeScript? - Doom in TypeScripts’s Type System - Bloom Filter Data Structure - In Praise of Off-Screen Menus - Blogging in the Age of AIGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-92)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 92
URL: https://www.gorillasun.de/blog/gorilla-newsletter-92/
Last updated: 2026-06-18T14:44:28.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 92nd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**Differentiable Logic Cellular Automata**](https://google-research.github.io/self-organising-systems/difflogic-ca/?ref=gorillasun.de): new research from Google's Paradigms of Intelligence team demonstrates that hardware circuits can be trained in a neural network like manner to learn specific target Cellular Automata (CA) without having to define specific rules by hand.

They build on their work from 2020 "[Growing Neural Cellular Automata](https://distill.pub/2020/growing-ca/?ref=gorillasun.de)", where they previously investigated the autonomous generation and re-generation of cellular patterns through training a neural type of CA.
Here they take this a step further and introduce a fully discrete CA framework that's powered by differentiable logic gates, modified to learn local update rules. In the article they explain how they actually make traditionally non-differentiable logic gates trainable, and demonstrate it through a number of interactive examples:
[Differentiable Logic Cellular Automata: From Game of Life to pattern generation with learned recurrent circuitsWe use Differentiable Logic Gate Networks to create end-to-end differentiable, self-organizing discrete cellular automata powered by recurrent circuits, capable of playing the Game of Life as well as producing patterns à la Neural Cellular Automata.](https://google-research.github.io/self-organising-systems/difflogic-ca/?ref=gorillasun.de)
Interestingly, this idea of "programmable matter" (matter that is capable of computation) has already been floating around for a couple of decades, the article points out [Norman Margolus](https://en.wikipedia.org/wiki/Norman%5FMargolus?ref=gorillasun.de) and [Tommaso Toffoli](https://en.wikipedia.org/wiki/Tommaso%5FToffoli?ref=gorillasun.de)'s paper "Speculating in Precious Computronium", where *Computronium* is this hypothetical kind of programmable matter.
Sadly I couldn't find a version of the paper that isn't locked behind a paywall; but there's a short [Wikipedia entry](https://en.wikipedia.org/wiki/Computronium?ref=gorillasun.de) on it however. Regardless, this research might well be a step towards turning this science-fiction kind of matter into something that can actually be tangibly investigated.
**2 —** [**Generative Plotter Vending Machine**](https://niklasroy.com/oneEuro/?ref=gorillasun.de): by disguising a plotter in form of a coin-operated vending machine, Niklas Roy's project *Generative Art 1€* lets visitors dispense a unique plot to take home with them. The project can be viewed as a commentary on the transience of digital art, where the device has the ability to transform viewers from passive consumer to active collectors:
> A generative algorithm continuously draws an animated black line on a screen, offering an endless stream of potential artworks. Each piece exists in a transient digital state until someone intervenes by spending a coin.
The contraption is in itself technically interesting — over on his personal blog, Niklas posted a write-up that sheds some light on the internals of the machine, how he built it, as well as what's going on in the generative artwork:
[](https://niklasroy.com/oneEuro/?ref=gorillasun.de)
[Link to Article](https://niklasroy.com/oneEuro/?ref=gorillasun.de)
If you want to experience it live in the flesh, the machine is currently part of the exhibition “Intelligence, it's automatic” at Zebrastraat in Gent/Belgium, and will be on display until the 8th of June, 2025\. You can find more info about the exhibition and the other contraptions that are presented over on the [exhibition page](https://www.zebrastraat.be/nl/ntaa/contestexpo?ref=gorillasun.de). It's also worth having a look at the [creative net page](https://www.creativeapplications.net/objects/generative-art-1e-democratizing-art-consumption-and-collection/?ref=gorillasun.de) covering the project.
**3 —** [**Tips & tricks for Tweet sized GLSL shaders**](https://x.com/XorDev/status/1894397258474357122?ref=gorillasun.de): size coder Xor shared a cool thread containing a bunch of useful tricks that they frequently use for their creations — what's cool is that each post in the thread quotes a practicable example of a tiny shader that demonstrates the mentioned trick.
[](https://x.com/XorDev/status/1894397258474357122?ref=gorillasun.de)
[Link to Thread](https://x.com/XorDev/status/1894397258474357122?ref=gorillasun.de)
Xor also has his own [SubStack](https://mini.gmshaders.com/?ref=gorillasun.de) where they've shared a couple of insightful articles and tutorials on shader coding, recommend checking it out!
**4 —** [**How to tell when your art is bad**](https://newsletter.revdancatt.com/p/056-how-to-tell-when-your-art-is?ref=gorillasun.de): Daniel's back with the 56th issue of his newsletter, and as always, he shares some invaluable advice for making good art — this time he tells us about a distance-based test he's been using to quickly determine if he's got a potentially good artwork at hand. In brief, the art should be interesting and engaging at multiple different viewing distances, from across the room, all the way to standing in front of it up-close:
[📙 #056 - How to tell when your art is badBut also, how to tell when it’s good. A quick rule of thumb.Drawing Machines & Notes from Art Studio RobotsDaniel Catt](https://newsletter.revdancatt.com/p/056-how-to-tell-when-your-art-is?ref=gorillasun.de)
I believe this is also applicable in a digital setting, where the different viewing distances become different screen sizes. There's been many times where I made something that I thought looked great on my desktop screen, but once posted to Instagram, the smaller thumbnail image really didn't do it justice.
And vice-versa, sometimes some of my animations ended up looking much better on mobile than on desktop, which then also explained why those posts got more likes than I had have anticipated. Well, maybe... what do I know about art? 😆
**5 —** [**This page is under construction**](https://localghost.dev/blog/this-page-is-under-construction?ref=gorillasun.de): Sophie Koonin wrote a beautiful love letter to the indie web — she urges us to create our own personal websites, to claim just a little patch of digital space, and leave our colorful personal marks in the increasingly bland and corporate mass that the internet has become today:
[This page is under construction - localghostIf you take just one thing away from this article, I want it to be this: please build your own website.localghostSophie Koonin](https://localghost.dev/blog/this-page-is-under-construction?ref=gorillasun.de)
**6 —** [**The Code Architecture of Animal Well**](https://www.youtube.com/watch?v=YngwUu4bXR4&ref=gorillasun.de): to cap off this section, I want to give a shout to the Wookash Pocast that's been hosting devs behind many of the popular indie games out there today. Here's the episode with Billy Basso, the dev behind Animal Well, which I've only heard/read/seen good things about so far, and had an overwhelmingly positive release when it came out:
*Gorilla from the future here*: while checking out the Steam page I discovered that just a few days ago a full documentary about the game was released — so you might also want to check that out 👇 Billy Basso recounts the 7 years he spent on developing the game:
and has been on my Steam wish-list for a while now Getting this behind the scenes on how it was programmed was the nudge I needed to finally get it!
## Dev & Web Tech
**1 —** [**What is TypeScript? An overview for JavaScript programmers**](https://2ality.com/2025/02/what-is-typescript.html?ref=gorillasun.de): you've likely heard of TypeScript at this point, it's essentially JavaScript's strongly typed big brother (that ultimately gets compiled back down to plain JavaScript).
If you've been meaning to learn more about the superset language, Dr. Axel Rauschmayer wrote a simple overview of how it works and demystifies the different ways in which TypeScript can actually be run:
[What is TypeScript? An overview for JavaScript programmersRead this blog post if you are a JavaScript programmer and want to get a rough idea of what using TypeScript is like (think first step before learning more details). You’ll get answers to the following questions: How is TypeScript code different from JavaScript code? How is TypeScript code run? How does TypeScript help during editing in an IDE? Etc. Note: This blog post does not explain why TypeScript is useful. If you want to know more about that, you can read my TypeScript sales pitch.](https://2ality.com/2025/02/what-is-typescript.html?ref=gorillasun.de)
Here you might ask why you should use TypeScript, and how the strongly typed language improves on plain JavaScript? If you're curious about that, it's covered in chapter 2 of Dr. Rauschmayer's book [Tackling TypeScript](https://exploringjs.com/tackling-ts/toc.html?ref=gorillasun.de) that's freely accessible in its entirety, and that you should definitely also read!
Originally developed by Microsoft, TypeScript was created to address the challenges of building large-scale, complex JavaScript applications, where maintainability, tooling, and early error detection become increasingly important.
Hence, to answer the above question, enforcing types essentially creates clear contracts about what kind of data is passed around in a program, reducing the chances of unexpected behavior at runtime.
**2 —** [**TypeScript types can run DOOM**](https://www.youtube.com/watch?v=0mCsluv5FXA&ref=gorillasun.de): quite a big leap from an introductory article on TypeScript to running DOOM in TypeScript's type system, but just recently Dimitri Mitropoulos was able to achieve this Herculean feat.
For now there's only a short video providing a high-level overview of the scale of this personal challenge, but we're promised two upcoming in-depth videos that will dive into more details.
In this overview Dimitri shows us that he essentially built an entire virtual computer inside of TypeScript to run the game in. He also showcases the reactions from leading industry/community members to his creation — most of which were in shock, and who we'll likely see more of in the upcoming videos.
While writing this, I also saw that there were two more videos up on the channel already, a supplementary one where Dimitri talks about [the hardest challenge](https://www.youtube.com/watch?v=hPaiK0omhEw&ref=gorillasun.de) of this entire project, besides another where we get a [full reaction and commentary from Anders Hejlsberg](https://www.youtube.com/watch?v=5506X2xioi0&ref=gorillasun.de), the creator of TypeScript, to DOOM running in its Type system.
**3 —** [**Bloom Filter: A Deep Dive**](https://www.kirupa.com/data%5Fstructures%5Falgorithms/bloom%5Ffilter.htm?ref=gorillasun.de): if you got excited to learn about the kind of Bloom effects that you would use in video games, I'm sad to disappoint — however you're still in for a treat information-wise.
Bloom filters are essentially the name of a smart probabilistic data structure, that let you efficiently check if something exists in a large (gigantic) list, without using tons of memory — the kirupa blog recently published a deep dive on how these data structures work:
[Bloom Filter: A Deep DiveLearn how to quickly check if a value exists in a ridiculously large collection of data by using the world’s favorite little probabilistic data structure, the Bloom filter.kirupa.comKirupa Chinnathambi](https://www.kirupa.com/data%5Fstructures%5Falgorithms/bloom%5Ffilter.htm?ref=gorillasun.de)
**4 —** [**Reimagining Fluid Typography**](https://www.oddbird.net/2025/02/12/fluid-type/?ref=gorillasun.de): it's been a minute since we talked about fluid typography on the newsletter, the first time we tackled the notion in [issue #47](https://www.gorillasun.de/blog/gorilla-newsletter-47/), where we had a look at the [original proposal](https://utopia.fyi/?ref=gorillasun.de) from the Utopia group.
In a recent article Miriam Suzanne hones in on a specific detail, and challenges traditional fluid typography setups where fluid ranges are built on top of the assumption that 16px = 1em — she argues that we should avoid this “magic math” and instead let the user’s own browser default (and preferences) guide font sizing.
[Reimagining Fluid TypographyAre we responding to the right inputs?OddBirdMiriam Suzanne](https://www.oddbird.net/2025/02/12/fluid-type/?ref=gorillasun.de)
By not forcibly setting a root font-size and by using truly relative units (em, rem, viewport units)—sometimes in combination with clamp()—we can ensure our text scales properly for accessibility and varying device contexts.
The main takeaway here is that respecting user defaults and providing slight responsive tweaks (rather than overriding them with fixed assumptions) leads to better, more flexible, and more user-friendly typography on the web.
**5 —** [**In praise of off-screen menus**](https://piccalil.li/blog/in-praise-of-off-screen-menus/?ref=gorillasun.de): a new treat from one of my favorite web design blogs; Jason Bradburry explains why there's merit to hiding web menus off-screen from a UX point-of-view, and demonstrates a whole slew of different websites that do this brilliantly, each one of them in wholly unique way:
[In praise of off-screen menusJason Bradberry challenges the ideals of displaying your entire navigation as a cluster of links and presents a case for exploring off-screen menus where the context is right for it.PiccalilliJason Bradberry](https://piccalil.li/blog/in-praise-of-off-screen-menus/?ref=gorillasun.de)
## AI Corner
**1 —** [**It's still worth blogging in the age of AI**](https://www.gilesthomas.com/2025/02/blogging-in-the-age-of-ai?ref=gorillasun.de): writing on the internet has always been a way for me to discover, digest, and muse on my findings and consolidate some of my learnings — I think I've mentioned this before, but as much as I write these newsletters, and now infrequent blog posts, for the readership, I equally write them for myself.
But just like I turn off the AI auto-complete in my code editor, to actually do some proper non-vibe-coding and practice my programming skills, the same thing is true for writing these posts — you can only get better at something if you actively engage with it, and if AI is doing it for you, I don't think you're actually spending meaningful time on it.
Giles Thomas writes that blogging is still worth doing in the age of AI for exactly these reasons, besides many more thoughtful arguments:
[It’s still worth blogging in the age of AIAlthough it might seem that AI will make it pointless, I still think it’s worth blogging.Giles ThomasGiles Thomas](https://www.gilesthomas.com/2025/02/blogging-in-the-age-of-ai?ref=gorillasun.de)
2 — [Not I](https://www.creativeapplications.net/sound/not-i-the-voice-identity-and-the-epistemic-mirage-of-machine-learning/?ref=gorillasun.de): Produced by the creative studio Unit Test, *Not I* is an essay film and installation that investigates, and essentially scrutinizes the use of machine learning in vocal forensics — where contemporarily Speech-2Face model are apparently used to infer a speaker's face from their voice. B
y adding imperceptible noise to audio samples, they demonstrate that the model produces blatantly incorrect facial outputs.
[Not I - The voice, identity and the epistemic mirage of machine learningNot I explores the problematics at the heart of contemporary vocal forensics’ use of statistical learning techniques. The work develops a form of investigative aesthetics which seeks to open up the epistemic assumptions that ground the development of these socio-technical objects through a ’countercCreativeApplications.Netmartindisley](https://www.creativeapplications.net/sound/not-i-the-voice-identity-and-the-epistemic-mirage-of-machine-learning/?ref=gorillasun.de)
On a more philosophical level, the essay film highlights an unsettling relationship between vocal perception and speaker identity, exposing the socio-technical complexities of contemporary vocal profiling, and the dubious epistemic assumptions underpinning the tech.
## Music for Coding
I haven't listened to Nick Johnston in years — so I was super stoked to see that there's been a whole bunch of new albums since the last one I listened to! I will have to go on a binge this week and catch up on all of it 🤩
The most recent one Child of Bliss tells me that his style has evolved bounds and leaps since I last listened to him roughly 8 years ago — the tracks throughout the album are simply really thoughtful, emotive, melodic, and full of interesting harmonic twists and turns that you don't find many other artists do.
The album is also just short enough to be too short for my taste, but I'll let you give it a listen for yourself:
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 91Pong in 240 Favicons - Psychedelic Graphics - XOR Deep Dive - JesseSort: a New Sorting Algo - History of Algorithmic Composition - Size Coding Botto - Intricacies of a Calculator App - Bluesky’s Lossy Timelines - NASA’s 10 Rules for Software Development - Creativity and AI - LLM from ScratchGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-91)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 91
URL: https://www.gorillasun.de/blog/gorilla-newsletter-91/
Last updated: 2025-02-24T06:00:18.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 91st 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
📣
***Heads up, I'll be tied up IRL again next weekend — hence no newsletter! But I might share some of the interesting things I find over on Discord** ✨
***That said, cue the news*** 👇
## All the Generative Things
**1 —** [**Running Pong in 240 Browser Tabs**](https://eieio.games/blog/running-pong-in-240-browser-tabs/?ref=gorillasun.de): Nolan Royalty, who you might remember as the creator of One Million Checkboxes, returns this week with a new web-experiment — this time hacking the favicons of his open browser tabs (precisely 240 of them) to run a playable game of Pong. He details how he did it in a blog post of his:
[Running Pong in 240 Browser Tabs · eieio.gamesWhat should you do with your unclosed browser tabs? I ran pong in mine.eieio.games](https://eieio.games/blog/running-pong-in-240-browser-tabs/?ref=gorillasun.de)
Recently there's been a new creative indie trend (I don't know what else to call it) of doing stuff inside of the favicon of a webpage — rather than doing stuff inside the webpage itself 😆 this started with Tru Narla programming an entire game of [Flappy Bird inside of the page's favicon](https://mewtru.com/flappyfavi?ref=gorillasun.de):
[](https://x.com/trunarla/status/1890067345261158556?ref=gorillasun.de)
[Link to Post](https://x.com/trunarla/status/1890067345261158556?ref=gorillasun.de) | [Link to Page](https://mewtru.com/flappyfavi?ref=gorillasun.de)
So, where do you even start with recreating Pong across several favicons? Not only do you need to arrange the tabs you also need to actually display the game in them. Nolan uses AppleScript to automate the process of opening and arranging the tabs, having them self-assemble into 8x30 grid, then using web workers and broadcast channels to project individual square areas of a canvas into the favicon grid, as you might've already guessed, synchronizing them ended up being quite a challenge.
Make sure to also check out the thread he made on the topic:
[](https://x.com/itseieio/status/1892657295919874084?ref=gorillasun.de)
[Link to Thread](https://x.com/itseieio/status/1892657295919874084?ref=gorillasun.de)
**2 —** [**Psychedelic Graphics**](https://benpence.com/blog/post/psychedelic-graphics-0?ref=gorillasun.de): Ben Pence started a series of articles that attempts to explain computer graphics — particularly those of the trippy, psychedelic kind — in an accessible manner that doesn't assume any prior knowledge of graphics or programming. Because I'm a sucker for evergreen resources like this one, I'm putting this one high up the list.
In the [introductory part](https://benpence.com/blog/post/psychedelic-graphics-0?ref=gorillasun.de) part Ben provides us with a breakdown of how computers interpret UV coordinates, as well as how UV mapping works, in essence, wrapping flat 2D graphics and textures onto 3D models, particularly useful in video games (Ben seems to be in the process of developing one). In [the first proper chapter](https://benpence.com/blog/post/psychedelic-graphics-1?ref=gorillasun.de), Ben tackles sinusoidal animation of colors and how to create trippy repeating patterns.
[](https://benpence.com/blog/post/psychedelic-graphics-1?ref=gorillasun.de)
[Link to Article](https://benpence.com/blog/post/psychedelic-graphics-1?ref=gorillasun.de)
**3 —** [**XOR Deep Dive**](https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor/?ref=gorillasun.de): XOR, short for "exclusive OR," is **a logical operator whose negation is the logical biconditional...** in simpler terms, it's an operation that compares two boolean values and returns true if only one of its inputs is true, but false if both inputs are the same. Simon Tatham wrote a massive deep dive on the XOR operator, not just to provide an intuition on the logical operator, but also showcasing many of the applications in which it makes an appearance and where it is a useful/necessary tool.
One interesting application is in computer graphics actually. In the mid‑1980s, when home computer systems were extremely limited by memory and color depth, one innovative and efficient drawing method revolved around XOR: Rather than storing entire screen images to keep track moving objects, reversible XOR drawing was used, where each pixel of a moving object is combined with the background, such that drawing it twice would automatically erase it. Even though it would sometimes produce minor artifacts like missing pixels where lines crossed, it was a reasonable price to pay.

Moving-line animation using XOR drawing
One other interesting appearance Simon highlights is the game of Nim (or Nim-Sum); a simple two-player game where each player takes turns removing (or "nimming") any number of objects from one of several piles (at least one), where the goal is to avoid being the player who can’t make a move because all the counters are gone.
This sounds much simpler than it actually is — the key to winning ends up being calculating the “nim-sum,” which is found by applying the XOR operator to the numbers of objects in all the piles. If the nim-sum is zero, it means the current position is losing if both players play perfectly, while a nonzero nim-sum means there is a winning strategy.

The unique winning move here is to take 3 counters from the pile of 12\. But why?
There's also a good [Wikipedia entry on the game of Nim](https://en.wikipedia.org/wiki/Nim?ref=gorillasun.de).
**4 —** [**JesseSort: A New Sorting Algorithm faster than Python's Default**](https://github.com/lewj85/jessesort?tab=readme-ov-file&ref=gorillasun.de): this one's a bit out of left field; Jesse Lew introduces a new sorting algorithm that operates differently from traditional sorting algorithms by leveraging a unique data structure called a *Rainbow*.
[GitHub - lewj85/jessesortContribute to lewj85/jessesort development by creating an account on GitHub.GitHublewj85](https://github.com/lewj85/jessesort?tab=readme-ov-file&ref=gorillasun.de)
JesseSort operates in two main phases; first it goes through a given unsorted list and assigns each item to a specific group, called a band, by comparing against a set of key values that make up the first and last item of each band — where these key values are stored in a separate list known as the base array. The Rainbow is thus simply an organized collection of these bands — lists of items in almost sorted order.

[Link to the pre-print paper](https://www.researchgate.net/publication/388955884%5FJesseSort?ref=gorillasun.de)
This way the algorithm can quickly determine the appropriate group for each new item simply by looking at those boundary values, before merging them into a final sorted list. Jesse claims that his sort performs comparably well to well-known sorting algos like QuickSort and MergeSort in worst case scenarios, but can take advantage of data that's already partly organized — outperforming traditional methods in practical settings.
The discussions in the accompanying Hacker News item are as always quite heated. Apparently there's also unspoken rules about the naming conventions of sorting algorithms 🤔
[](https://news.ycombinator.com/item?id=43040869&ref=gorillasun.de)
[Link to Hacker News item](https://news.ycombinator.com/item?id=43040869&ref=gorillasun.de)
**5 —** [**The History of Algorithmic Composition**](https://ccrma.stanford.edu/~blackrse/algorithm.html?ref=gorillasun.de): I also did a little bit of web archeology this week, and found this article all the way back from 1999 about the history of algorithmic composition. It traces its evolution from ancient practices all the way to modern computer-aided techniques and contains some interesting nuggets of information.
I particularly enjoyed this quote from Brian Eno in the introduction, one that I haven't encountered before, but that I believe will resonate with many of those that make generative art today:
> "Since I have always preferred making plans to executing them, I have gravitated towards situations and systems that, once set into operation, could create music with little or no intervention on my part. That is to say, I tend towards the roles of planner and programmer, and then become an audience to the results" -Brian Eno (Alpern, 1995).
**6 —** [**Size Coding Botto**](https://x.com/gorillasu/status/1892193404089446861?ref=gorillasun.de): if you've been keeping up with the genart x AI x NFT scene you'll likely have heard of Botto, the autonomous AI that's been community guided into creating a bunch of P5 sketches. The concept, and the heated discussions around the project are quite interesting, the art itself is kinda "meh" tbh — [you can view them here](https://p5.botto.com/?ref=gorillasun.de).
The important thing I want to share is that I took a satirical a stab at tsubuyakifying (size-coding) one of them — the replies got quite out of hand with some of the size-coding legends like Piter Pasma, Frank Force, and Koma Tebe pitching in with their own attempts at it, check them out here.
[](https://x.com/gorillasu/status/1892193404089446861?ref=gorillasun.de)
[Link to post](https://x.com/gorillasu/status/1892193404089446861?ref=gorillasun.de)
If I find the time I might even write a little post about it, if you're curious about P5 size-coding, I have this older [post of mine about it here](https://www.gorillasun.de/blog/9-tips-for-tsubuyaki-processing/#putting-it-all-together).
## Dev & Web Tech
**1 —** [**The Challenges of Building a Calculator App**](https://chadnauseam.com/coding/random/calculator-app?ref=gorillasun.de): while building a calculator app might seem trivial at first, in re-framing it as software that can correctly evaluate any of the mathematical expressions it allows you to feed into it, does make it seem a bit more complicated. Chad Nauseam recounts the story of how Hans-J. Boehm was tasked with developing Google's Android Calculator App — originally as an X thread and later as a blog post:
[](https://x.com/ChadNauseam/status/1890889465322786878?ref=gorillasun.de)
[Link to thread](https://x.com/ChadNauseam/status/1890889465322786878?ref=gorillasun.de)
The first challenge right off the bat are imprecise floating point numbers; for instance, you can't actually represent fractions like 0.3 or big numbers like 10^100\. And although you can circumvent these imprecision problems using bignums, that let you represent very large numbers, there's more problems — like irrational numbers such as π for example, how do you handle these precisely?
The solution Boehms found was Recursive real arithmetic (RRA); a technique where each real number is represented as a function that, when given a precision, computes an approximation guaranteed to be within that error margin — in essence a kind of arithmetic that can generate real numbers to any desired level of accuracy. That's just the tip of the iceberg however, I'll leave you to explore the rest of the thread for yourself — now if you ever want, or have to, build a calculator app, you have a starting point 😆

**2 —** [**When Imperfect Systems are Good, Actually: Bluesky's Lossy Timelines**](https://jazco.dev/2025/02/19/imperfection/?ref=gorillasun.de): designing distributed systems for millions of users is challenging, particularly when you're trying to be sensible about it, and not build a timeline like TwiX's curated stream of BS. Jaz from the Bluesky team explains how they approach this task in an imperfect manner with their "Lossy Timelines":
[When Imperfect Systems are Good, Actually: Bluesky’s Lossy TimelinesBy examining the limits of reasonable user behavior and embracing imperfection for users who go beyond it, we can continue to provide service that meets the expectations of users without sacrificing scalability of the system.Jaz’s BlogJaz](https://jazco.dev/2025/02/19/imperfection/?ref=gorillasun.de)
Bluesky's database is fragmented into smaller shards that group users together (so that the database can scale horizontally) — each shard being capable of handling its own load perfectly well in theory, however, when some users abnormally follow hundreds of thousands of other users, it creates a huge load, slowing everything down for all other users on the same shard.
To solve this, instead of trying to update every single follower perfectly, the system is allowed to skip updates at random at a rate relative to the number of inbound writes — as a result, Jaz was able to improve the overall performance dramatically, reducing P99s by over 96%.
**3 —** [**NASA's 10 Rules for Software Development**](https://www.cs.otago.ac.nz/cosc345/resources/nasa-10-rules.htm?ref=gorillasun.de): Gerard J. Holzmann writes about NASA's 10 software development rules that were originally crafted for building reliable embedded systems in spacecraft. While these rules might be quite restrictive for other types of software projects, they provide a set of principles for writing mission-critical software — Gerard notes at the very start that he offers his thoughts from the POV of writing software in general, emphasizing the importance of adapting guidelines to fit the specific context of a project rather than following them blindly.

Besides that, these rules provide a glimpse into a different kind of programming that I'm happy I don't have to do — I don't think I could handle the stress of writing software that people's lives depends on ☠️ I can also recommend the [Hacker News discussions](https://news.ycombinator.com/item?id=43061977&ref=gorillasun.de) about the post with some insightful perspectives.
**4 —** [**uchū: the color palette for internet lovers**](https://github.com/NeverCease/uchu?ref=gorillasun.de): and to cap off this section, here's a cool color palette that's been specifically designed for the web 👇
[uchū — the color palette for internet loversuchū is the color palette for internet lovers, by NetOperator Wibby.uchū](https://uchu.style/?ref=gorillasun.de#uchu%5Fblue)
## AI Corner
**1 —** [**GenAI is the Least Imaginative Use of AI**](https://hai.stanford.edu/news/ge-wang-genai-art-least-imaginative-use-ai-imaginable?ref=gorillasun.de): There's beauty and joy in making things just for the sake of making them — some of the most viral internet experiments, like Nolan Royalty's experiments, are these kinds of creations/explorations. Ge Wang, professor at Stanford comments on this in the context of AI, and how it robs us of the joys of creating meaningless fun things:
[Ge Wang: GenAI Art Is the Least Imaginative Use of AI ImaginableThe prevailing public mindset that AI is only a labor-saving tool betrays a lack of understanding of why people create and a lack of imagination of this technology’s potential.Stanford HAIGe Wang](https://hai.stanford.edu/news/ge-wang-genai-art-least-imaginative-use-ai-imaginable?ref=gorillasun.de)
Ge believes that the challenges and frustrations involved in making art are what make the process meaningful and fulfilling — if we simplify things too much, AI services can strip away the personal growth and satisfaction that come from working through these creative difficulties.
**2 —** [**SmolModels: ML models with Minimal Code**](https://github.com/plexe-ai/smolmodels?ref=gorillasun.de): I haven't tried it yet, but it looks really cool; a python library for building machine learning models with minimal code simply by describing what you want them to do in plain words. You explain the task, and the library builds a model for you, including data generation, feature engineering, training, and packaging.
[GitHub - plexe-ai/smolmodels: ✨ build ml models in natural language and minimal code✨ build ml models in natural language and minimal code - plexe-ai/smolmodelsGitHubplexe-ai](https://github.com/plexe-ai/smolmodels?ref=gorillasun.de)
## Music for Coding
After last week's recommendation I explored some of the other bands signed by Gondwana Records, one of them being GoGo Penguin, a British instrumental trio from Manchester with an incredibly dynamic sonic range; a modern, cinematic dimension of jazz that I've come to particularly enjoy these days.
The live performance I linked here is absolutely sublime, the double-bass riff that kicks off "Everything is Going to Be OK" at 14:15 gave me real shivers, and then in the track after "An Unbroken Thread of Awareness" they just incorporate a modular synth sound seamlessly with their playing. Besides that, it's really impressive how the band’s able to fill up so much mix space with just a piano, double bass, and drums!
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 90Getting into Pen Plotting - Shader Programming with Rick & Morty - GPU Conditional Branching Misconception - Simulating Water over Terrain - The Art of Data Viz - Thinkserver - Gorton Font - Leaking Youtube Emails - Knob.js - The End of Programming - Freya Holmér on Generative AIGorilla SunAhmad Moussa](https://gorillasun.de/blog/gorilla-newsletter-90?ref=gorillasun.de)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 90
URL: https://www.gorillasun.de/blog/gorilla-newsletter-90/
Last updated: 2025-02-17T06:00:09.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 90th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Before we get into this week's roundup of creative tech shenanigans, let's talk about plotters*** 👇
## Getting into Pen Plotting
As the banner of this week's issue might already have revealed — I got a plotter!
It arrived this past Monday actually, just a couple of hours after the previous issue of the newsletter had gone out. I didn't waste much time, quickly set it up, and had it trace out some sketches.

I've enjoyed the process tremendously — not only because it's quite meditative to watch the plotter slowly bring physical instances of my sketches to life, but also because it's brought up some interesting new technical challenges that I had to figure out.
Luckily there's tools like [Zenozeng's SVG runtime for P5](https://github.com/zenozeng/p5.js-svg?ref=gorillasun.de), that [I've previously explored way back in 2022](https://www.gorillasun.de/blog/working-with-svgs-in-p5js/), as well as Golan Levin's newer [p5.plotSvg](https://github.com/golanlevin/p5.plotSvg?ref=gorillasun.de), both of which make it quite straightforward to turn P5 outputs into plottable SVGs.

With the plotter you also need to start thinking a bit more about what works well on paper, rather that what is possible digitally (everything) — which is honestly a welcome restriction that I'm happy to embrace.
I also already discovered some other useful tools, like the [axidraw hidden line removal plugin for inkscape](https://www.evilmadscientist.com/2023/hidden-paths-axidraw/?ref=gorillasun.de) that's quite handy when you have many overlapping shapes, as well as the [svgo command line tool](https://github.com/svg/svgo?ref=gorillasun.de), that will not only trim down your svg files but also reorder the paths so that the plotter doesn't waste time jumping around back and forth.

**A gigantic shout-out to Dan Catt here, and all the content he's made around pen plotting — it's been a tremendous help!** [**Check out his YouTube here**](https://www.youtube.com/channel/UC%5F8PKPeFbehqd7cTZtCr8lA?ref=gorillasun.de)**.**
I'll have more updates/pics to share next week — feel like I'm slowly getting the hang of it here. One issue I'm running into right now though, is how to not spend all of my money on pens and paper 😆
***That said — cue the news*** 👇
## All the Generative Things
**1 —** [**Learn Shader Programming with Rick and Morty**](https://danielchasehooper.com/posts/code-animated-rick/?ref=gorillasun.de): kicking off this week with a Rick and Morty themed programming tutorial — Daniel Hooper shows us the ropes of shader programming by recreating Rick's recognizable features in 240 lines of GLSL code.
[Learn Shader Programming with Rick and MortyAn interactive guide on making animations on the GPU](https://danielchasehooper.com/posts/code-animated-rick/?ref=gorillasun.de)
The tutorial starts by explaining SDFs to create basic shapes that'll make up individual parts of Rick's face, and then shows how to combine them into more interesting composite shapes by computing their union — simply with the `min()` function. This is a trick that I sorta discovered by myself before, while doing my silly little non-shader SDF experiments. Okay, what the heck — here's a mini tutorial 😆
With P5JS we can simulate a dumb shader by looping over all the pixels of the canvas, and then setting the color of specific pixels if they falls inside a certain region we defined — in the following example we're simply drawing two circles:
```JavaScript
let d1 = dist(x,y,C1.x,C1.y) - C1.r
if(d1 < 0) buff.set(x,y, color(255,0,0))
let d2 = dist(x,y,C2.x,C2.y) - C2.r
if(d2 < 0) buff.set(x,y, color(0,0,255))
```
[Link to P5 sketch in the editor](https://editor.p5js.org/AhmadMoussa/sketches/-Gdc15bEP?ref=gorillasun.de)
You get something like this:

There's a better way to do this though, without doing two separate if statements — yes, you could just do a logic or `||` — but you could also combine the two regions as one by getting the minimum distance, as such:
```JavaScript
let d = min(d1,d2)
if(d < 0) set(x,y, color(255,0,0))
if(abs(d) < .5) set(x,y, color(0,0,0)) // colors the outline in black
```
[Link to P5 sketch in the editor](https://editor.p5js.org/AhmadMoussa/sketches/gQlU%5Fm%5FHh?ref=gorillasun.de)
Then you'd get something like the below render, where it also becomes really easy to set the color of the region's outline:

Towards the end of the tutorial Daniel also shows us how to export the animation as a video — and that simply with bash script!
2 — [How to not "optimize" GPU conditionals:](https://iquilezles.org/articles/gpuconditionals/?ref=gorillasun.de) while we're already talking about GLSL, here's an important PSA from Inigo Quilez — he posts about a common misconception that's often erroneously advised to be a math trick for optimizing conditional moves on the GPU.
[](https://x.com/iquilezles/status/1888409333182218691?ref=gorillasun.de)
[Link to post](https://x.com/iquilezles/status/1888409333182218691?ref=gorillasun.de) | [Link to Article](https://iquilezles.org/articles/gpuconditionals/?ref=gorillasun.de)
I had to do a little bit of research to understand this, because I'm not by any means an expert; but in essence, GPUs run many threads in groups called **warps**, all of which follow the same instructions at the same time. When an `if` statement causes some threads to take one path and others to take a different one, the GPU has to run these paths separately, one after the other. This obviously slows things down because while one set of threads is working, the others have to wait — this problem is known as **warp divergence** (which sounds like something straight out of Star Trek).
The issue that Inigo Quilez points out is that some people mistakenly believe that using ternary operators (`? :`) or `if` statements in shader code introduce this warp divergence. In cases where the condition simply selects between values (the code snippet he demonstrates in his post), the GPU does not actually branch — it simply performs a **conditional move (select)**, which is an efficient instruction that does not disrupt execution flow.
The misguided "optimization" replaces the ternary-based selection with arithmetic masking (`step()` functions and multiplications), thinking it avoids the GPU from branching. But in reality, this approach actually introduces unnecessary calculations, making the shader slower. Inigo Quilez confirms this by inspecting the compiled GPU machine code, showing that the original ternary-based code doesn't branch, and that the so-called optimization is both unnecessary and counterproductive.
**3 —** [**Simulating Water over Terrain**](https://lisyarus.github.io/blog/posts/simulating-water-over-terrain.html?ref=gorillasun.de): Lisyarus shows us how to create realistic water behavior for top-down, grid-based games in which the terrain can be dynamically modified. He introduces a method called "virtual pipes" where neighboring water cells in the game are connected by imaginary pipes to simulate the flow of water between them.
[Simulating water over terrainlisyarus blog](https://lisyarus.github.io/blog/posts/simulating-water-over-terrain.html?ref=gorillasun.de)
In a nutshell, it's basically a simulation based on a simplified version of the Navier-Stokes equations, also known as the [**shallow-water equations (SWE)**](https://en.wikipedia.org/wiki/Shallow%5Fwater%5Fequations?ref=gorillasun.de). Instead of working in 3D, things are flattened down to 2D, averaging the water's behavior along the vertical direction. This requires the use of a **staggered grid**, where the water's height is stored inside the grid cells, whereas water flow is stored along the edges between cells.
In a very oversimplified manner of explaining things, water moving between cells depends on the difference in elevation, and the amount of water held by each cell. Naturally the water will flow from higher to lower positions, and the quantity will also balance itself out — Lysiarus shares the technical details in the tutorial and also provides a WebGPU implementation [here](https://github.com/lisyarus/webgpu-shallow-water?ref=gorillasun.de).
Noteworthy here is that this same approach is used in a game called Timberborn, a post-apocalyptic beaver themed city-building game:
[Deep Dive: Designing the dynamic irrigation and water systems in TimberbornBuilt on hybrid 2D and 3D water simulation models, here’s how these mechanics informed the gameplay of this unique city builder.Game DeveloperMichal Amielanczyk](https://www.gamedeveloper.com/design/deep-dive-timberborn-s-water-mechanics?ref=gorillasun.de)
**4 —** [**A Year of Learning WebGPU**](https://t.co/ymcTinAxFh?ref=gorillasun.de): if you've been meaning to get into WebGPU, Javi Agenjo shares notes he took over the course of a year of learning — in 96 slides he provides a complete introduction to WebGL's successor.
[](https://x.com/tamat/status/1889617965886193869?ref=gorillasun.de)
[Link to Post](https://x.com/tamat/status/1889617965886193869?ref=gorillasun.de)
**5 —** [**Visualizing Data is an Art**](https://perthirtysix.com/visualizing-data-is-an-art?ref=gorillasun.de): Shri Khalpada argues that successful data visualization isn't just about technical accuracy or perceptual precision, but should also provide new perspectives on the data, spark curiosity, and even tell a story.
[Visualizing Data Is An Art - We Should Treat It Like OneThe case for less rigor and more nuancePerThirtysixShri Khalpada](https://perthirtysix.com/visualizing-data-is-an-art?ref=gorillasun.de)
## Tech & Web Dev
**1 —** [**Thinkserver: my web-based coding environment**](https://checkmyworking.com/posts/2025/02/thinkserver-my-web-based-coding-environment/?ref=gorillasun.de): after having heavily used [Glitch](https://glitch.com/?ref=gorillasun.de) for creating projects, a platform where devs can create and share websites with minimal setup, Christian Lawson was inspired to build his own web-based coding environment tailored towards his needs — he details how it works in an blog post of his:
[Thinkserver: my web-based coding environmentI’ve made my own web-based coding environment for working on little projects. A few years ago I found Glitch. It’s great: a web-based coding environment that makes it really easy to quickly start editCheck my workingChristian Lawson-Perfect](https://checkmyworking.com/posts/2025/02/thinkserver-my-web-based-coding-environment/?ref=gorillasun.de)
After a year of using it and creating around 80 small projects, he shares the code for it over on his [Forgejo instance](https://code.lawson-perfect.uk/clp/thinkserver?ref=gorillasun.de). What's worth pointing out is that it strongly resonated with the folks over on Hacker News, with many sharing stories about their own custom coding environments to build small useful tools:

[Link to Hacker News ](https://news.ycombinator.com/item?id=42999655&ref=gorillasun.de)[item](https://news.ycombinator.com/item?id=42999655&ref=gorillasun.de)
**2 —** [**The hardest working font in Manhattan**](https://aresluna.org/the-hardest-working-font-in-manhattan/?ref=gorillasun.de): ***Gorton*** is an overlooked font that's seemingly almost everywhere you look in New York City — Marcin Wichary shares how he discovered and tracked it down while photographing different corners of NYC, and lets us in on the fascinating backstory of the font:
[The hardest working font in ManhattanA story of a 150-year-old font you have never heard of – and one you probably saw earlier today.Marcin Wichary](https://aresluna.org/the-hardest-working-font-in-manhattan/?ref=gorillasun.de)
Originally created for engraving machines in the early 1900s, Gorton found its way onto everything from subway signs and machinery to space equipment — Gorton's mechanical design and durability made it perfect for signs and labels that needed to last, which is why you find it in places like nuclear facilities, and even the Apollo moon missions.
*Can we also take a moment to appreciate how incredibly stylish Marcin's website is?*
**3 —** [**Leaking the email of any YouTube user for 10 grand**](https://brutecat.com/articles/leaking-youtube-emails?ref=gorillasun.de): security researcher brutecat discovered that blocking someone on YouTube exposes their linked Gaia ID — a unique internal backend identifier used by Google to track user accounts across its services. By itself this ID isn't sufficient to reveal someone's email address, but they didn't stop there however, and figured that the ID can be fed into the endpoints of older Google product, like the Pixel Recorder app, to resolve into an email address.
[Leaking the email of any YouTube user for $10,000What could’ve been the largest data breach in the world - an attack chain on Google services to leak the email address of any YouTube channelbrutecat.com](https://brutecat.com/articles/leaking-youtube-emails?ref=gorillasun.de)
**4 —** [**How Apple Designs Virtual Knobs**](http://jherrm.com/knobs/?ref=gorillasun.de): an older article, that was apparently written in 2012, but only published in 2022 — Jacob Herr explains the clever design behind Garageband’s virtual knobs and what goes on behind the scenes for them to respond to different touch gestures like spinning and sliding. Jacob's investigation culminated in the development of Knob.js, a JavaScript library that mimics this knob behavior.
[How Apple Designs a Virtual Knob](http://jherrm.com/knobs/?ref=gorillasun.de)
## AI Corner
**1 —** [**The End of Programming as We Know It**](https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/?ref=gorillasun.de): expert Tim O’Reilly argues that it's unlikely programmers will lose their jobs anytime soon, and rather than rendering the profession obsolete, it's simply a fundamental shift in programming overall — O'Reilly echoes many of the articles I've shared on the newsletter already on this topic. I believe that the fearmongering is generally just a reaction to how quickly things are evolving, but not actually a reflection of what is happening. The reaction to the paradigm shift AI introduces, isn't so different from the times when new "revolutionary" technologies were introduced — each time being proclaimed as another "End of Programming".
[The End of Programming as We Know ItO’Reilly MediaTim O’Reilly](https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/?ref=gorillasun.de)
backs his claims by tracing the history of how programming has evolved, changes in programming over the past decades showed that as tools became more powerful and user-friendly, more people could create software, expanding the field rather than shrinking it.
**2 —** [**Generative AI is a Parasitic Cancer**](https://www.youtube.com/watch?v=-opBifFfsMY&ref=gorillasun.de): while AI is revolutionizing certain fields, it's also wreaking destructive havoc in other places, in particular when it comes to content creation. Freya Holmér's had enough of AI generated content —in particular when it's flooding the top results of most search engines. She demonstrates this with a simple query with which she wants to learn a little more about the .gltf format, revealing that almost all of the top search results are in some form AI generated:
In the second half of the video Freya comments on the deceptive nature of this content, what's seemingly friendly sounding on the surface is simply a low effort slop that tries to compete in the search rankings, either to promote whatever product/software that website is trying to sell, or to get a few cents of ad-revenue out of your attention.
## Music for Coding
This one was recommended to me while listening to Matthew Halsall's On the Go that I recommended last week — and I've pretty much just been listening to Mammal Hands this entire week, in particular their fifth studio album "Gift from the Trees" that came out last year. All tracks are really rich and atmospheric, somehow earthy and spiritual. Swirling, smooth saxophone melodies soar above complex rhythmic percussion patterns.
I can also highly recommend all other albums put out by Gondwana Records, it's all just pure ear candy!
*Fun fact: after digging for the designer behind the stellar album covers, it turns out that it's actually Matthew Halsall's brother, Daniel Halsall, the creative director of Gondwana Records.*
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 89Voronoi Diagrams via Fortune’s Algorithm - Planetary Fluid Simulations - GameDev Maths - Spirograph Mathematics - Post-Processing Shaders as Creative Medium - Returns and Swirls - Sublime Text in 2025 - Sam Rose on Technical Blogging - Container Queries Unleashed - Coding with your VoiceGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-89)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 89
URL: https://www.gorillasun.de/blog/gorilla-newsletter-89/
Last updated: 2025-02-10T06:00:57.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 89th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Cue the news*** 👇
## All the Generative Things
**1 —** [**Generating Voronoi Diagrams using Fortune's Algorithm**](https://redpenguin101.github.io/html/posts/2025%5F01%5F21%5Fvoronoi.html?ref=gorillasun.de): let's kick this week off with a rather obscure blogpost I found — you just know that the content is fire when the URL ends with a .html, the page itself is rather un-styled, and the tutorial comes with a health warning at the very top 🤣
[](https://redpenguin101.github.io/html/posts/2025%5F01%5F21%5Fvoronoi.html?ref=gorillasun.de)
[Link to Post](https://redpenguin101.github.io/html/posts/2025%5F01%5F21%5Fvoronoi.html?ref=gorillasun.de)
When it comes to generating Voronoi Diagrams, many roads lead to Rome, and in the context of this beefy article, our road is Fortune's algorithm: Joe, aka redpenguin, wrote a massive tutorial detailing how to implement the algo 👇
In a nutshell, Fortune's algorithm builds a Voronoi diagram by "sweeping" a horizontal line across a set of points: as the line moves, it creates a curve called the beach line that changes shape based on which points have been passed. When the sweep line reaches a new point, an arc is added to the beach line, and as the curve evolves, arcs may merge or disappear, forming new corners (vertices) in the diagram. The algorithm keeps track of these changes using a structured list of events, allowing it to efficiently and gradually construct the full diagram.
By far one of the best visualizations of the algorithm that I've seen is by Daniel Piker — in the 3D context the abrupt motion of newly added arcs just makes much more sense.
0:00
/0:06
1×
[Link to Original by Daniel Piker](https://x.com/KangarooPhysics/status/1253336959755251716?ref=gorillasun.de)
In theory the algorithm sounds quite simple, but its implementation is actually quite challenging as Joe states at the beginning of the article. This is mainly due to how you need to handle the addition of new voronoi sites to the diagram as the beachline progresses — if you're up for a challenge you know where to start!
**2 —** [**Planetary Fluid Simulations**](https://www.youtube.com/watch?v=8nIB7e%5Feds4&ref=gorillasun.de): Sebastian Lague returns with another video on Fluid Simulations, this time in the planetary context! He adapts the fluid sim that he's implemented over the course of two previous installments of his coding adventure to act as the hydrosphere of a planet — this involves simulating gravity, actual terrain for the fluid to collide with, and dialing in the influence of celestial bodies on the tide:
If you're out of the loop, roughly a year ago Lague made his [first video on fluid sims](https://www.youtube.com/watch?v=rSKMYc1CQHE&ref=gorillasun.de), in which he implements the particle algorithm described in the famous paper "[Particle-Based Fluid Simulation for Interactive Applications](https://matthias-research.github.io/pages/publications/sca03.pdf?ref=gorillasun.de)". Lague followed up with a second coding adventure, where he investigates [rendering the particle sim as a visually realistic fluid](https://www.youtube.com/watch?v=kOkfC5fLfgE&ref=gorillasun.de).
**3 —** [**Maths for GameDev**](https://www.youtube.com/watch?v=eRVRioN4GwA&ref=gorillasun.de): unsurprisingly much of the math required for game development is pretty much identical with the techniques frequently used in creative coding and generative art. After a seven month hiatus, another one of my favorite educative video makers, SimonDev, returns with a new video — a primer for game dev maths, covering linear interpolation, vectors, trigonometry, and all that fun stuff.
**4 —** [**The Mathematics of Spirograph**](https://aperiodical.com/2021/12/the-mathematics-of-spirograph/?ref=gorillasun.de): A Spirograph is not actually the spiral-y drawing that likely comes to mind reading the term, but rather a drawing device that lets you create the circular shapes — the drawings themselves are in fact called hypotrochoids and epitrochoids. Found this older post, back from 2021, while looking into the topic — an article by Katie Steckles that runs The Aperiodical, an online magazine and podcast about arts-y math related topics.
[The Mathematics of SpirographIf you’re the kind of person who’s interested in doodling and/or fun toys, you might have encountered the fun doodling toy Spirograph, or some unbranded equivalent. It sits somewhere on…The AperiodicalKatie Steckles](https://aperiodical.com/2021/12/the-mathematics-of-spirograph/?ref=gorillasun.de)
Highly recommend checking out the other articles by the Aperiodical, the magazine posts relatively frequently — about once a month.
The drawing device typically consists of a fixed outer ring and a smaller, movable wheel with several holes for a pen; by placing the pen in one of these holes and rolling the wheel along the inside or outside of the ring, one can produce a wide range of complex, looping designs.

Spirograph set (early 1980s UK version)
Obviously it's not required for simulating the patterns algorithmically with a computer, but it's kind of a beautiful way to visualize the maths behind the resulting patterns.
**5 —** [**Post-Processing Shaders as a Creative Medium**](https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium/?ref=gorillasun.de): throughout 2024 Maxime Heckel published a series of articles about post-processing shader techniques specifically geared towards creating aesthetic effects, such as dithering, painterly textures, and moebius style aesthetics. In contrast to these deep-dives that hone in on specific techniques, this time-round Maxime presents us with a whole swath of effects that he's explored over the past months, explaining each one in detail and providing us with interactive code to play around with.
[Post-Processing Shaders as a Creative Medium - Maxime Heckel’s BlogTBDMaxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium/?ref=gorillasun.de)
**6 —** [**Perceptions of Space**](https://x.com/getjonwithit/status/1886858295157383335?ref=gorillasun.de): Jonathan Gorard wrote a wonderful thread about how we quantify the distortion of space and time via measures of energy, momentum, pressure, etc. in just a few words Gorard offers us an alternative way to think about these concepts much more intuitively.
[](https://x.com/getjonwithit/status/1886858295157383335?ref=gorillasun.de)
[Link to Post](https://x.com/getjonwithit/status/1886858295157383335?ref=gorillasun.de)
## Tech & Web Dev
**1 —** [**Sam Rose on Technical Blogging**](https://writethatblog.substack.com/p/sam-rose-on-technical-blogging): I love me a good interview, and this one was excellent! Sam Rose, who's made several appearances on this newsletter already for his stellar interactive articles, was invited by Write that blog! — a blog that revolves around the practice of writing a blog. They ask Sam Rose how he got into blogging in the first place, how he writes his technical pieces, and what the biggest lessons he's learned over the years were.
[Sam Rose on Technical BloggingThe story behind Sam’s masterful interactive visualizationsWrite that blog!Write that blog!](https://writethatblog.substack.com/p/sam-rose-on-technical-blogging)
He closes out with some tips for those interested in starting out.
**2 —** [**Container Queries Unleashed**](https://www.joshwcomeau.com/css/container-queries-unleashed/?ref=gorillasun.de): Josh Comeau is also back with another new article, this time breaking down how container queries enable new avenues in UI design. Before digging into this one, you might want to first check out Josh Comeau's previous deep dive "[A Friendly Introduction to Container Queries](https://www.joshwcomeau.com/css/container-queries-introduction/?ref=gorillasun.de)".
[Container Queries Unleashed • Josh W. ComeauContainer queries expand the universe of designs that can be implemented, giving us whole new superpowers. Now that container queries are broadly available, I think it’s time we start exploring this potential! In this post, I’ll share the “killer pattern” I can’t stop using in my work, and explore what’s possible with this new capability.Josh W. Comeau](https://www.joshwcomeau.com/css/container-queries-unleashed/?ref=gorillasun.de)
If you're not familiar, **container queries** are a relatively new CSS feature that allows you to apply styles to an element based on the size (or other properties) of its containing element rather than the overall viewport - while media queries allow you to change the overall layout of elements on your page, they can't really be used to describe how the stuff within those elements should respond dynamically as the container's size changes. As always, Josh provides us with interactive examples to illustrate this.
**3 —** [**Coding with your Voice**](https://whitep4nth3r.com/blog/how-i-learned-to-code-with-my-voice/?ref=gorillasun.de): while going through Josh Comeau's archive of articles I found an interesting one from a couple of years ago in which he writes about [how he had to use his voice for coding](https://www.joshwcomeau.com/blog/hands-free-coding/?ref=gorillasun.de) during a period of six months, when he lost the ability to use his hands.
Purely by coincidence, I came across an article by Salma Alam-Naylor, aka whitep4nth3r, where she recounts a similar difficult situation after being afflicted by carpal tunnel syndrome. She provides a list of the tools that ended being useful to her, like [Talon](https://talonvoice.com/docs/?ref=gorillasun.de) and [Cursorless](https://www.cursorless.org/?ref=gorillasun.de), that let you write and navigate simply with your voice.
[How I learned to code with my voiceStruggling with severe hand pain, I learned to code by voice. This is my journey with Talon and Cursorless, plus practical tips for hands-free development.whitep4nth3r.comSalma Alam-Naylor](https://whitep4nth3r.com/blog/how-i-learned-to-code-with-my-voice?ref=gorillasun.de)
Just as I was writing this, I found through Salma's Bluesky that she'd been on Kevin Powell's YouTube channel to talk about her situation:
She points out that this condition is much more common than you might think, which became apparent when she turned to her following asking for advice. The big response she received showed that a surprising number of people struggle, or have struggled, with accessibility — browsing the web, using every-day tools, like Notion, as well as the UIs of different apps, many of them simply aren't geared towards accessibility.
**4 —** [**Why I still like Sublime Text in 2025**](https://ohdoylerules.com/workflows/why-i-still-like-sublime-text-in-2025?ref=gorillasun.de): I have to confess, I've never really spent much time customizing/optimizing my coding environment and editor to my needs — I generally just use things the way they come out of the box. This recent article by James Doyle makes me reconsider however, having been an avid Sublime Text user for the past 15 years, he shares why it continues to be his go-to editor in 2025.
[Why I still like Sublime Text in 2025 | OhDoyleRulesI still use Sublime Text in 2025 even after trying a lot of other editorsOhDoyleRulesjames2doylegmail.com James Doyle](https://ohdoylerules.com/workflows/why-i-still-like-sublime-text-in-2025/?ref=gorillasun.de)
**5 —** [**Smuggling Arbitrary Data through an Emoji**](https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/?ref=gorillasun.de): and to cap off, this cool post by Paul Butler on a trick that lets you encode arbitrary data in emojis and other text 🤯
[](https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/?ref=gorillasun.de)
[Link to Post](https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/?ref=gorillasun.de)
## AI Corner
**1 —** [**AI can't see the Gorilla in the Data**](https://chiraaggohel.com/posts/llms-eda/?ref=gorillasun.de): Itai Yanai and Martin Lercher explored how having specific hypotheses can limit people’s ability to notice obvious patterns in data. They found that students who were told exactly what to look for often missed unexpected trends, like a “gorilla in the data.” — this isn't a metaphor, but basically the plotted data appeared in the shape of an actual gorilla 😆
[Your AI can’t see gorillas – Chiraag GohelA comparison of LLMs’ ability to perform exploratory data analysisChiraag Gohel](https://chiraaggohel.com/posts/llms-eda/?ref=gorillasun.de)
To dig deeper, they compared how ChatGPT and Claude handled data analysis. Both models did a good job summarizing numbers but struggled to spot unusual patterns in visual plots unless shown the images directly. Even then, they didn’t recognize the hidden “gorilla” without extra prompting. This highlights that while large language models are great for crunching numbers, they might miss surprising insights during open-ended exploration.
**2 —** [**Deep Dive into LLMs**](https://www.youtube.com/watch?v=7xTGNNLPyMI&ref=gorillasun.de): if it comes from Andrej Karpathy, one of the leading minds in AI today, then it's probably the first and last video on LLMs you'll likely need for the foreseeable future — and it's a whopping three and a half hours long video at that.
**3 —** [**DeepSeek Drama Continued**](https://x.com/7etsuo/status/1886770680794104221?ref=gorillasun.de): maybe DeepSeek was in fact just a big media stunt after all, and isn't as revolutionary as it's claimed to be — to cap off the AI section, I leave you with tetsuo.ai that explain why DeepSeek could not have possibly been trained on just a $6 million budget.
[](https://x.com/7etsuo/status/1886770680794104221?ref=gorillasun.de)
[Link to Post](https://x.com/7etsuo/status/1886770680794104221?ref=gorillasun.de)
## Music for Coding
This is some of the absolute best Jazz I have heard in a hot minute — Matthew Halsall had me hooked with the first couple of notes that came through his trumpet. I can't remember the last time I've listened to an instrumental album where the trumpet takes the lead; but Halsall's buttery smooth notes are just ear candy.
Halsall is a British jazz trumpeter, composer, and bandleader that has earned critical acclaim for his innovative and soulful approach to modern jazz — the rich and introspective soundscapes in his third studio album *On the Go* are testament of this.
Looking at some of what others said about the album, it's been described as a musical journey, while that may be a cheesy way to put it, I couldn't agree more. Each track carries you away in a different manner, from soaring highs that sweep you off your feet to quiet stretches that let you regain your composure. Those heavily oriental sounding scales throughout even stirred a hint of nostalgia in me.
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 88Wrapping Up Genuary 2025 - Surface-stable Fractal Dithering - Automatic Wave Function Collapse - Kim Asendorf’s PXL DEX - Piter Pasma’s Impossible Sentinels - Tweet Sized Web Assembly Compiler - Modern Javascript Servers - Accessibility Essentials - DeepSeek R1 & o3-miniGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-88)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 88
URL: https://www.gorillasun.de/blog/gorilla-newsletter-88/
Last updated: 2025-02-03T06:00:53.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 88th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Before we get into this week's news — let's first wrap up Genuary 2025*** 👇
## Wrapping Up Genuary 2025
First things first — mad props to everyone who completed the 31 prompts this year round! Although I cheated and secretly prepared a couple of prompts ahead of time towards the end of December 2024, I still didn't manage to keep up 🤣 this actually makes it the first Genuary that I don't manage to finish all the prompts on time.
No biggie though — I'm simply going catch up in the coming days, and tackle the leftover prompts that inspire in the moment. In the meantime, here's a batch of sketches for some of the prompts I tackled this past week:

#14 Pure Black and white. No Gray | #19 OP Art | #21 Create a collision detection system (no libraries allowed) | #22 Gradients only | #25 One line that may or may not intersect itself | #27 Make something interesting with no randomness or noise or trig
You'll notice that I got quite obsessed with OP art this time round, a consequence of browsing Pinterest that provides boatloads of excellent visual references for the topic. My sketches for prompts #14, #19, and #25 are pretty similar in approach, they all redraw an underlying input image with a simple geometric shape, albeit in a slightly different manner. In #14 I crank up the number of dashes drawn on the brighter areas of the image (almost like a stippling effect), whereas in #19 and #25 I simply modulate the stroke width — turns out are our brains are really good tricking us into seeing images.
***In retrospect, it's kind of a sort of dithering... with extra steps?***
For the 25th prompt I came across this really cool thread on the code golf stack exchange, where folks have a crack at exactly this task — redrawing images simply with a single line, a cool rabbit hole you might want to explore for yourself:
[Redraw an image with just one closed curveInspired by vi.sualize.us Goal The input is a grayscale image and the output is a black and white image. The output image consists of just one closed curve (loop) that is not allowed to intersect…Code Golf Stack Exchangeflawr](https://codegolf.stackexchange.com/questions/36374/redraw-an-image-with-just-one-closed-curve?ref=gorillasun.de)
Beyond that I also released a project on the lovely EditArt.xyz, after Piero was so kind to hit me up and ask if I'd like to participate in the Genuary 2025 project marathon organized by Tezos. Collision detection algos are something that I've explored copiously in the past, and the project is in essence just an elaborate packing procedure that places rectangular shapes in a non-overlapping manner. I titled it [**Fït**](https://www.editart.xyz/series/KT1Er4LJTHHfGTMfitthgLxeKjCwivK8z7Je?ref=gorillasun.de), as a sort of spiritual successor to the previous project I had minted on EditArt back in 2023 **Blöck**.
The challenge here was optimizing the code so that the packing algo runs almost instantly — something that's necessary for EditArt due to the sliders that let collectors modify their iteration prior to collecting it. You can play with the artwork for yourself [here](https://www.editart.xyz/series/KT1Er4LJTHHfGTMfitthgLxeKjCwivK8z7Je?ref=gorillasun.de).
And that's about it for my own genuary shenanigans these past two weeks. Once I'm done with all of the prompts I might put together a recap post. Not promising anything at this point in time though, I might just end up being as busy 😅
As for my favorite sketches that popped up on my timeline — here's a few that stood out to me:

[Link to Stranger in the Q's post](https://x.com/stranger%5Fintheq/status/1883278834549838144?ref=gorillasun.de) | [Link to Pablo Andrioli's post](https://x.com/kali%5Fshade/status/1881549079941161164?ref=gorillasun.de) | [Link to Piter Pasma's post](https://x.com/piterpasma/status/1883998868830122209?ref=gorillasun.de)
Stranger in the Q's day 25 creation is in a way similar to what I did for #19 and #25, where the image emerges through the thickness of the line — zooming in on Stranger's sketch, it also appears to just be a single line that's perturbed when it coincides with darker areas of an underlying image. What's really is that the pattern itself also seems to just be a single line or 3D wire that fills out the scene.
Pablo Andrioli is a shader wizard that's been at it for several decades, and I have absolutely no idea how he conjures up the fractal architecture in his sketch — but it's absolutely stellar. Highly recommend checking out his profile for more shader/fractal explorations.
Then there's none other that the creator of Genuary himself, Piter Pasma, with his photo-realistic renderer: for day 27 "no randomness" he humorously generated two dice. I've thought about this before, but what if we make a full fledged, realistic physics simulation in which we roll a pair of dice, would that technically be pseudo-true-randomness? 😆
Two other creators that I want to highlight here are Kat, aka the Poet Engineer, and Torin Blankensmith, both of which are making cool interactive, gesture controlled sketches. Not only do they make me want to explore this myself, it seems that these sketches also have a big potential for virality, purely based off of the amount of engagement they rake in.

[Link to Kat's post](https://x.com/poetengineer%5F%5F/status/1882297032901329270?ref=gorillasun.de) | [Link to Torin's post](https://x.com/blankensmithing/status/1884523743428378821?ref=gorillasun.de)
And that's it for Genuery related things! With the month having come to an end, that's also going to be it for these special segments at the start of the newsletter — I might bring back this broader, ramblier starting segment from time to time whenever there's something that deserves its own section.
***That said — cue the news 👇***
## All the Generative Things
**1 —** [**Surface-Stable Fractal Dithering**](https://www.youtube.com/watch?v=HPqGaIMVuLs&ref=gorillasun.de): purely by chance I featured Rune Skovbo Johansen in issue [#86](https://www.gorillasun.de/blog/gorilla-newsletter-86/) of the newsletter for the procedural game that he's been working on for the past couple of years. This past week Rune made a splash on social media and Hacker News by publishing a video and [Github repo](https://github.com/runevision/Dither3D?ref=gorillasun.de) about a new dithering technique he created, he titled it Surface-Stable Fractal Dithering for its ability to dither moving scenes in a stable, non-flickering manner — while also having maintaining its density in a fractal like manner.
This new technique is essentialy the outcome of Rune's quest in creating a 3D dithering pattern that remains stable as the player moves around the world. Rune was originally inspired by Lucas Pope's **Return of the Obra Dinn** — which might've already come to mind seeing the above thumbnail ☝️
It's an iconic game that's famous for its unique dithered aesthetic. [Lucas wrote numerous articles documenting his explorations](https://forums.tigsource.com/index.php?topic=40832.msg1363742&ref=gorillasun.de#msg1363742) leading to the dithering technique that he ultimately used in the game; in his explorations he also found that standard dithering techniques are not particularly suitable for moving scenes, as they can cause a distracting flickering; arguably also nauseating to take in.
Lucas Pope ultimately ended up mapping dithered textures to a sphere around the player camera, so that the dither patterns are invariable as the player rotates, but still change during translation of the camera. This effect was visually acceptable and does not detract from the experience. Inspired by this approach, Rune wondered if it was possible to create a dithering technique that would stay consistent even during translation of the camera. I'll leave it to Rune and the excellent video he made to explain how the algorithm works — and why
As always it's worth checking out the [Hacker News thread](https://news.ycombinator.com/item?id=42808889&ref=gorillasun.de) on the topic where you'll find more links to interesting realted things — in particular [this discussion](https://news.ycombinator.com/item?id=42084080&ref=gorillasun.de) from not too long ago about the Lucas Pope's dithering technique.
**2 —** [**Wave Function Collapse**](https://www.youtube.com/watch?v=5iSAvzU2WYY&ref=gorillasun.de): Daniel Schiffman is back in the trenches, and revisits the Wave Function Collapse algorithm. He first covered in coding challenge #171 two years ago — you can find the [original video here](https://www.youtube.com/watch?v=rI%5Fy2GAlQFM&ref=gorillasun.de).
If you're not familiar, WFC is an algorithm that lets you procedurally generate tile-based patterns by automatically resolving adjacency rules. I wrote a little bit about it in issue [#70](https://www.gorillasun.de/blog/gorilla-newsletter-70/) of the newsletter, in addition to a newer more general technique by the same creator, Paul Merrell.
One aspect of the algorithm that Daniel Schiffman didn't cover in the original video revolves around an extension of the algorithm, wherein it can automatically detect adjacency patterns in an input texture, and then generate new similar patterns on its own — kinda what you can see in the thumbnail down below 👇
**3 —** [**Kim Asendorf's PXL DEX**](https://pxl.onl/dex?ref=gorillasun.de): Kim Asendorf made quite a splash in the genart scene with his newest work PXL DEX: an onchain generative artwork consisting of 256 editions, each an abstract 3D animation called a Deck that can be purchased as an NFT through a custom website. The innovative thing about the project is that it's tied to its own token — when collectors grab a Deck they also get 500,000 PXL, which they can then spend on the artwork to modify its aesthetics; essentially increasing the pixel density of the artwork.
This is a bit esoteric, hence I highly recommend checking out the custom PXL DEX website and exploring it a bit for yourself — it's really mind-boggling elaborate:
[PXL DEXKim Asendorf’s PXL DEX poses provocative questions about the simultaneously material and ephemeral nature of digital art, revealing surprising perceptual qualities of digital objects, demonstrating how artworks create their own internal systems, and functioning as a digital jewel box, a virtual object for collecting virtual objects. Asendorf lays bare the foundations of digital art on screens, offering insights into the nature of digital objecthood.Kim Asendorf](https://pxl.onl/dex?ref=gorillasun.de)
Naturally, Le Random are quick as always and already covered PXL DEX with their most [recent interview](https://www.lerandom.art/editorial?ref=gorillasun.de).
This is without a doubt the direction that the onchain genart space is heading towards in 2025\. The long-form paradigm that emerged in 2021, is now making way to a new breed of generative art on the blockchain that's much more tied to the underlying tech than before. With Bjørn Staal's Entangled last, and now Kim Asendorf's PXL DEX, the bar has been raised significantly — the generative artwork now needs to do more than just be a long-form if it wants to receive critical acclaim.
**4 —** [**Piter Pasma's Impossible Sentinels**](https://piterpasma.nl/impossible-sentinels/?ref=gorillasun.de): I might be biased here, but Piter Pasma's Impossible Sentinels is just such an impressive project, that I need to gush about it for a bit.

Impossible Sentinels. code on the left and output on the right.
Over the past two weeks I spent a lot of time writing about the Cure3 projects — that actually go live on fxhash today! In case you're not familiar, Cure3 is a charitable art fundraiser that supports Cure Parkinson's; in 2023, as well as this year, the fifth edition of the event, they're featuring a digital section where the sale of generative art on fxhash supports the cause. One of the participating projects is Piter's Impossible Sentinels — the backstory behind it is quite fascinating, I recounted it briefly in a [thread](https://x.com/fx%5Fhash%5F/status/1882775249063751830?ref=gorillasun.de) over on the main fxhash TwiX account!
Back in 2022 Piter developed a framework for his project Industrial Devolution, essentially an algorithm that lets him turn 3D scenes (generated by using SDFs) into plottable line drawings in SVG format — he wrote an [article](https://www.fxhash.xyz/article/rayhatching-evolution?ref=gorillasun.de) about this framework back in 2022, giving it the fitting name "Rayhatcher". Later this same idea evolved into The Universal Rayhatcher, where collectors could input their own SDF formulas that would then be rayhatched; culminated in this large large-scale collaborative artwork, with some really mindblowing outputs.

Universal Rayhatcher #9
Impossible Sentinels is in essence the latest evolution of this idea, with the additional twist that the shape is now traced with a single uninterrupted line, rather than a hatch pattern — Piter wrote a little bit about it, as well as the compressed, hyper-optimized code that powers the artwork, in a [post](https://piterpasma.nl/impossible-sentinels/?ref=gorillasun.de) over on his website.
**5 —** [**On Signed Distance Fields by Render Diagrams**](https://renderdiagrams.org/2017/12/28/signed-distance-fields/?ref=gorillasun.de): since we're talking about SDFs, here's a not-so recent article back from 2017 that explains how SDFs work for the purpose of approximating shapes. Signed distance fields are essentially shape defining mathematical functions — a technique that became popular after Valve (studio behind Half Life and Counter Strike) introduced them in a [paper of theirs](https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007%5FAlphaTestedMagnification.pdf?ref=gorillasun.de) in 2007 at SIGGRAPH, in particular for the purpose of text rendering. Highly recommend giving this post a read and playing around with the interactive examples — it really illustrates the idea excellently.
**6 —** [**Analytical Portrait**](https://ssbkyh.com/works/analytic%5Fportrait/?ref=gorillasun.de): I guess this week's issue is just about highlight cool projects — I discovered the work of Shinseungback Kimyonghun this past week that really spoke to me aesthetically. In particular their recent project Analytical Portraits, that reminds me a bit of fxFactune — I really love artworks that incorporate pseudo-scientific elements. In this case it's cool because those elements are traces of the process by which the artwork is created in the first place.

**SSB, Analytic Portrait*, AI system and camera, 2024\. | **Analytic Portrait* is a series of portraits created based on the way AI perceives humans. 14 AI vision algorithms\* are used to analyze the human subject, and the integrated results are recorded to construct the portrait image.
## Tech & Web Dev
**1 —** [**WASM Compiler that fits in a Tweet**](https://wasmgroundup.com/blog/wasm-compiler-in-a-tweet/?ref=gorillasun.de): my favorite find this week is this article about creating a WebAssembly compiler in just 269 bytes — code so short it fits in a Tweet! If you're not familiar with WebAssembly (WASM), it's a portable binary format that allows running compiled code, from languages like C, C++, Rust, and others, in web browsers — a WASM compiler translates this compiled code into a binary format that can be run in the browser.
[A WebAssembly compiler that fits in a tweetStarting with a 192-byte one-liner that implements a Reverse Polish Notation arithmetic compiler, we’ll work backward to transform it into readable JavaScript by removing one code golf trick at a timeWebAssembly from the Ground Up](https://wasmgroundup.com/blog/wasm-compiler-in-a-tweet/?ref=gorillasun.de)
Here's the tweet-sized compiler discussed in the article:
```JavaScript
let c=(b,l)=>WebAssembly.instantiate(new Int8Array(
[,97,115,109,1,,,,1,5,1,96,,1,127,3,2,1,,7,4,1,,,,10,
l=(b=b.split` `.flatMap(t=>t>-1?[65,t]:107+'-*/'.indexOf(t)))
.length+4,1,l-2,,...b,11]))
```
Interestingly it's broken down with a reverse approach, by unobfuscating the code step by step, rather than starting out from an understandable piece of code that's then slowly obfuscated. While the article doesn't go into too much detail about WebAssembly itself, it does cover many useful JavaScript code-golfing tricks — if you want to learn more about WebAssembly though, I recommend checking out this big [github](https://github.com/mbasso/awesome-wasm?ref=gorillasun.de) repo that collects more than enough resources to get started.
**2 —** [**The Modern Way to write JavaScript Servers**](https://marvinh.dev/blog/modern-way-to-write-javascript-servers/?ref=gorillasun.de): in a recent post of his, Marvin Hagemeister explains a new, simpler way to build JavaScript servers. When using Node.js, you have to set up a network connection (or “bind to a socket”) to make your server listen for requests — meaning that your code has to open a specific port and wait for data to come in; which makes testing slow and complicated.
His modern approach uses a style similar to the browser’s fetch API: instead of binding a socket, your server is just a function that takes a request and returns a response. Testing is now much faster because you can directly call your server function without setting up a network connection.
[The modern way to write JavaScript serversThe Request/Response-API is not just faster, but also makes writing tests easier.marvinh.dev](https://marvinh.dev/blog/modern-way-to-write-javascript-servers/?ref=gorillasun.de)
**3 —** [**Accessibility Essentials every Front-end Developer should know**](https://martijnhols.nl/blog/accessibility-essentials-every-front-end-developer-should-know?ref=gorillasun.de): accessibility in front-end development is not just about compliance; it's about improving user experience for all. Martijn Hols shares a fantastic resource that outlines essential accessibility principles — an cheat-sheet for when you're doing your next accessibility audit:
[Accessibility essentials every front-end developer should know by Martijn HolsEssential accessibility practices for front-end developers, including semantic HTML, alt texts, ARIA, and keyboard navigation tips to build inclusive components.Martijn Hols](https://martijnhols.nl/blog/accessibility-essentials-every-front-end-developer-should-know?ref=gorillasun.de)
**4 —** [**Tetris in a PDF Explainer**](https://th0mas.nl/2025/01/12/tetris-in-a-pdf/?ref=gorillasun.de): In the [last issue](https://www.gorillasun.de/blog/gorilla-newsletter-87/) I shared Thomas Rinsma's DOOM in PDF, and [prior](https://www.gorillasun.de/blog/gorilla-newsletter-86/) to that his Tetris in a PDF experiment. This past week he wrote a quick post on his blog that explains how these experiments work — spoilers: it's basically just JavaScript!
## AI Corner
Holy Moly, we got a lot of ground to cover this week in AI! 🤯
**1 —** [**DeepSeek is a Game Changer for AI**](https://www.youtube.com/watch?v=gY4Z-9QlZ64&ref=gorillasun.de): DeepSeek R1 is the new competitor in the AI arms race, that seemingly came out of nowhere from a small Chinese company; and somehow it's rivaling, if not outperforming, the multi-million dollar models of OpenAI, Anthropic, and Google — all while being [open-source](https://github.com/deepseek-ai/DeepSeek-V3?ref=gorillasun.de)! It's made quite a big buzz these past two weeks, and the the big AI companies are in shambles.
**What makes DeepSeek so good, while being trained at a fraction of the cost?** *Afaiu*, DeepSeek optimizes several parts of the LLM pipeline, from training to running on prompts out in the wild — for instance, it employs a technique called **Mixture of Experts**, where it activates only specific parts of its learned weights for different prompts/tasks, that are related to the specific subject, making it overall more efficient to train and run. A recent Computerphile video provides an excellent breakdown of this:
But that's not the only thing that people are excited about — it's mainly the **Chain of Thought** method that DeepSeek employs to arrive at conclusions, it's also why it's called a reasoning model in the first place. If you used o1, it's basically the same thing, where the LLM engages in a sort of reflection step before delivering answers.
Another key aspect of this kind of thought model, is that it allows for **Model Distillation**, which allows a large reasoning model to train a smaller, regular version of itself to solve the same tasks at an acceptable performance, while also being able to operate on standard hardware. This ultimately means that more people can access and use advanced AI without needing expensive equipment.
Some folks have also taken it upon themself to run the most powerful DeepSeek model on local hardware — here's a tutorial if you want to take a stab at it:
[How To Run Deepseek R1 671b Fully Locally On a $2000 EPYC Server – Digital SpaceportCheck Out My Other Posts](https://digitalspaceport.com/how-to-run-deepseek-r1-671b-fully-locally-on-2000-epyc-rig/?ref=gorillasun.de)
**2 —** [**OpenAI releases o3-mini**](https://openai.com/index/openai-o3-mini/?ref=gorillasun.de): the release of DeepSeek has definitely thrown OpenAI into a scramble, most likely forcing their hand to release their newest series of o3 models early — as well as opening up their previously 200$/month o1 model to copilot users free of charge. I played around with it a bit, and it's actually quite an improvement at their regular LLM models.
[](https://openai.com/index/openai-o3-mini/?ref=gorillasun.de)
[Link to announcement post](https://openai.com/index/openai-o3-mini/?ref=gorillasun.de)
**3 —** [**AI-generated Art can't get Copyright Protection**](https://www.theverge.com/news/602096/copyright-office-says-ai-prompting-doesnt-deserve-copyright-protection?ref=gorillasun.de): to cap off this crazy week in AI, there's also been a development with regards to copyright of AI generated art. In essence, the US copyright office declared in a [broad report](https://copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf?ref=gorillasun.de) that purely prompt based generated outputs can't be copyrighted, no matter how elaborate the prompt is, this doesn't however include art created with the partial assistance of AI, as far as I understand. The Verge covers this in detail in a recent article:
[Purely AI-generated art can’t get copyright protection, says Copyright OfficeAI prompts are different from Jackson Pollock’s paintings, apparently.The VergeLauren Feiner](https://www.theverge.com/news/602096/copyright-office-says-ai-prompting-doesnt-deserve-copyright-protection?ref=gorillasun.de)
Considering that in recent years many artists have made a career out of AI generated imagery, the implications are quite severe. I'm also wondering about the ramifications this could have for generative art as a whole (whether you subscribe to the idea that it's an umbrella term or not) — what does this mean for art created through autonomous systems in general?
I might have to throw the report into ChatGPT and have it answer that for me 😜
## Music for Coding
Jon Hopkins is a British musician and producer celebrated for his signature sound that blends ambient textures with pulsating rhythms. His innovative work—featured in albums like *Immunity* and *Singularity*—has earned him acclaim and collaborations with artists such as Brian Eno and Coldplay, marking him as a distinctive force in modern electronic music.
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 87Genuary 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 ReleaseGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-87)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 87
URL: https://www.gorillasun.de/blog/gorilla-newsletter-87/
Last updated: 2025-01-20T06:00:57.000Z
**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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***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:



[Link to Yann's Post](https://x.com/Yann%5FLeGall/status/1880667840199762033?ref=gorillasun.de) | [Link to Roni's Post](https://x.com/KaufmanRoni/status/1879513054679060973?ref=gorillasun.de) | [Link to Florian's post](https://x.com/flockaroo/status/1880305396537319776?ref=gorillasun.de)
- 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](https://medium.com/@jason.webb/2d-differential-growth-in-js-1843fd51b0ce?ref=gorillasun.de) — 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](https://x.com/gengeomergence/status/1875291140855099774?ref=gorillasun.de)
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:



[Prompt 12 Subdivision](https://x.com/gorillasu/status/1879577706251395399?ref=gorillasun.de) | [Prompt 16 Generative Palette](https://x.com/gorillasu/status/1880067819402064235?ref=gorillasun.de) | [Prompt 15 Design a Rug & 17 What if π = 4?](https://x.com/gorillasu/status/1880392437316907423?ref=gorillasun.de)
**#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](https://en.wikipedia.org/wiki/Taxicab%5Fgeometry?ref=gorillasun.de) — 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
**1 —** [**Honoring the Life and Legacy of Ruth Leavitt**](https://x.com/ragnar%5Fmeta/status/1880283950817353962?ref=gorillasun.de): Ruth Leavitt was among the pioneering figures in computer art, renowned for her contributions to early generative art during the 1960s and 1970s. She sadly passed away on the 17th of January 2025.
[](https://x.com/Noahbolanowski/status/1880334603975791068?ref=gorillasun.de)
[Link to Post](https://x.com/Noahbolanowski/status/1880334603975791068?ref=gorillasun.de)
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.
[](https://www.jstor.org/stable/1573115?ref=gorillasun.de)
[Link to Paper](https://www.jstor.org/stable/1573115?ref=gorillasun.de)
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.


Front & back cover of the book | The visionary quote on the back cover of the book still resonates strongly today, maybe more than ever before.
You can read the book in its entirety over in the [Atari Archives](https://www.gorillasun.de/blog/gorilla-newsletter-86/). 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.
**2 —** [**Generating Mazes with Recursive Subdivision**](http://weblog.jamisbuck.org/2011/1/12/maze-generation-recursive-division-algorithm?ref=gorillasun.de): Jamis Buck's "The Buckblog" is an incredible resource for programming related topics — particularly if you're looking to learn about programming maze generators: he's written about most of the popular graph algorithms that are generally used towards this end, such as Prim's, Kruskal's, Recursive Backtracking and many more, which you can all find over in the blog archive (scroll down to 2011).
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](http://weblog.jamisbuck.org/2015/1/15/better-recursive-division-algorithm.html?ref=gorillasun.de) 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.

**3 —** [**Generating Nonsensical Math Papers**](https://github.com/SylvanFranklin/nonsense?tab=readme-ov-file&ref=gorillasun.de): Sylvan Frankling made a Typst generator that creates deceivingly real looking math papers. If it's your first time hearing about [Typst](https://typst.app/?ref=gorillasun.de), it's an open-source typesetting language designed to create beautifully formatted documents — basically a friendlier, markdown-like alternative to LaTeX, that's technically also programmable.

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.
**4 —** [**Physical Fluid Simulation Pendant**](https://x.com/Mankaran32/status/1879556837810610352?ref=gorillasun.de): Tim Alex Jacobs creates silly, little, and impressive gadgets under the alias of mitxela. Among his most popular creations: [the world's tiniest MIDI synth](https://www.youtube.com/watch?v=bmFmsn6VZSM&ref=gorillasun.de), a [stylophone business card](https://www.youtube.com/watch?v=zHVrY%5FxLM3c&ref=gorillasun.de), and now a tiny fluid simulation pendant — essentially a wearable amulet that digitally mimics the motion of a responsive fluid. Besides creating write-ups for his projects, mixtela also breaks them down over on YouTube:
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.
**5 —** [**Generative Grids with Three.js**](https://tympanus.net/codrops/2025/01/15/creating-generative-artwork-with-three-js/?ref=gorillasun.de): Eduardo Fossas wrote a generative art tutorial for codrops, in which he shows how to create grid based artworks inspired by the Brazilian artist [Lygia Clarke](https://www.moma.org/artists/27445?ref=gorillasun.de) — the tutorial doubles as a great introduction to Three.js with React Three Fiber:
[Creating a Generative Artwork with Three.jsLearn 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.CodropsEduard Fossas](https://tympanus.net/codrops/2025/01/15/creating-generative-artwork-with-three-js/?ref=gorillasun.de)
## Tech & Web Dev
**1 —** [**DOOM in PDF**](https://github.com/ading2210/doompdf?ref=gorillasun.de): last week I shared Tetris in a PDF, and Art Galleries in DOOM — this week I present you with DOOM in a PDF; and it's exactly what you might think: a port of DOOM that runs inside of a PDF.
[](https://x.com/thomasrinsma/status/1878549178227269941?ref=gorillasun.de)
[Link to Post](https://x.com/thomasrinsma/status/1878549178227269941?ref=gorillasun.de)
I don't have much more to share here 😆 it's also worth noting that this has previously been done by X user [Reelix](https://x.com/Reelix/status/1878820602435518479?ref=gorillasun.de).
**2 —** [**Simple Masonry-like Composable Layouts**](https://piccalil.li/blog/a-simple-masonry-like-composable-layout/?ref=gorillasun.de): if you've been following the long masonry discussion that got quite heated during 2024, the fazit is that it's still going to take a long time before we're going to see CSS masonry become supported by all browsers ( `grid-template-rows: masonry;` is now supported as an experimental feature in FireFox and Safari).
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 layoutIt’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.PiccalilliAndy Bell](https://piccalil.li/blog/a-simple-masonry-like-composable-layout/?ref=gorillasun.de)
**3 —** [**Building Realtime Collaborative Apps with Yjs**](https://learn.yjs.dev/?ref=gorillasun.de): At the core of collaborative apps, in which you can see updates from other users in realtime (like Notion or Figma), are CRDTs (*Conflict-free Replicated Data Type)*. They’re a special kind of data structure that can take state stored on multiple different computers, and merge it all together without conflicts. What makes CRDTs special is that they don’t depend on centralized servers to merge the state — it can be done on any client! Throwback to this great [article on CRDTs](https://jakelazaroff.com/words/an-interactive-intro-to-crdts/?ref=gorillasun.de) by Jake Lazaroff!
[Yjs](https://github.com/yjs/yjs?ref=gorillasun.de) 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 JamsocketLearn 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.Y-Sweet](https://learn.yjs.dev/?ref=gorillasun.de)
## AI Corner
**1 —** [**Artificial Aesthetics Book Release**](https://manovich.net/index.php/projects/artificial-aesthetics?ref=gorillasun.de): I mentioned Lev Manovich's book already in issue [#69](https://www.gorillasun.de/blog/gorilla-newsletter-69/) of the newsletter, when he had just released the second chapter. In it he tackles the questions that arise around authorship in the advent of generate AI. Now the book's been completed and is freely accessible to everyone — skimming over the new chapters they strike me just as important:
[Lev ManovichLev Manovich: photos, bio, complete CV.manovich](https://manovich.net/index.php/projects/artificial-aesthetics?ref=gorillasun.de)
**2 —** [**How I Program with LLMs**](https://crawshaw.io/blog/programming-with-llms?ref=gorillasun.de): Before you roll your eyes and think to yourself "another one of those posts about using LLMs for programming", David Crawshaw presents a compelling perspective on how chat-oriented programming has improved his overall practice — while a big part of the productivity boost lies in LLMs being able to generate a lot of code very quickly, their potentiality also lies in making smart suggestions that would otherwise be difficult to come up with by yourself or through traditional search.
> 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](https://www.reddit.com/r/Odesza/comments/6yfaxf/a%5Fmoment%5Fapart%5Fmegathread/?ref=gorillasun.de) 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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 86Genuary 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 2024Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-86)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 86
URL: https://www.gorillasun.de/blog/gorilla-newsletter-86/
Last updated: 2025-01-13T06:00:37.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 86th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Let's kick things off with a quick recap of the second week of Genuary 2025*** 👇
## Genuary Week 2 Recap
Another week of Genuary has gone by, and we're now 12 prompts in! It definitely feels like the biggest edition of genuary thus far — it's all I've been seeing on my social feeds these past two weeks, and I ain't complaining! Wish it could be like that all year round 😄
There's no way for me to make an exhaustive list of what everyone's made, but at least I can point out my two favorites up till now — Roni Kaufman's day 6 "make a landscape using only primitive shapes" and Darien Brito's day 9 "the textile design patterns of public transport seating". Roni arguably has the best sense for consistently good aesthetics in the entire gen-art space, the 8-bit feel of his day 6 creation just really does it for me! As for Darien's textile pattern, it's hard for me to believe that this isn't actually a photo:


[Link to Roni's Post](https://x.com/KaufmanRoni/status/1876255485369954517?ref=gorillasun.de) | [Link to Darien's Post](https://x.com/DarienBrito/status/1877340324046995757?ref=gorillasun.de)
Beyond that, the standout prompt that everyone enjoyed enormously, was by far day 7 "use software that is not intended to create art or images" where you had to get inventive and come up with a way to repurpose some software for art-making purposes. I had a lot of fun reprogramming the same code I used for my isometric day 5 creation in Google Sheets!


[Link to Day 5 Post](https://x.com/gorillasu/status/1875714172534845539?ref=gorillasun.de) | [Link to Day 7 Post](https://x.com/gorillasu/status/1876764220416512139?ref=gorillasun.de)
Yes, you read that right: turns out Google Sheets actually has a scripting API, that's simply programmable with regular JavaScript, and lets you create custom extensions. It's limited in that you can't create animations (at least not that I know of), but essentially lets you treat the spreadsheet as a regular grid of pixels — meaning that you can pretty much make anything (naturally with some extra steps).
Day 11 was also quite fun: "Impossible day - Try to do something that feels impossible for you to do". I simply used the prompt as an excuse to attempt something I've been wanting to do for a long time: implementing a full-fledged neural network in vanilla JavaScript — and I somehow managed to make it work!
0:00
/0:43
1×
The programming part wasn't too difficult, but I struggled quite a bit to get the simple classifier to actually train and update its weights — I'm still not entirely sure that all parts are working as intended, but it seems to work decently well! I have a couple more ideas for it at this point — going the entirely custom route does open up quite a few interesting possibilities. Besides that, I think this has potential to be one of those viral tweets that could potentially explode (if I manage to figure out a good caption).
That said, while everyone's busy with Genuary, tutorials and articles have slowed down a little bit — but there's still been a bunch of interesting stuff I came across throughout the past week 👇
## All the Generative Things
**1 —** [**Practical Pigment Mixing for Digital Painting**](https://scrtwpns.com/mixbox.pdf?ref=gorillasun.de): If you're familiar with the [Mixbox](https://scrtwpns.com/mixbox/?ref=gorillasun.de) library you might've heard about this paper already — it essentially details the algorithm that makes the realistic color mixing of the library possible.

Digital painting softwares do not actually mix colors in a way that is true to real life—for instance, if you blend blue and yellow paint IRL, you get shades of green; when doing so in digitally however, most programs produce gray-ish colors. This is due to how the mixing is done numerically in the underlying color space that's used by the software.
But it turns out that we actually have a model that mimics real-world color mixing, namely the [Kubelka-Munk model](https://en.wikipedia.org/wiki/Kubelka%E2%80%93Munk%5Ftheory?ref=gorillasun.de)... we're just not using it! Apparently this is due to it being relatively computationally expensive — and isn't "practical to implement" as the paper states.
The K-M model is a mathematical approach to predicting how light interacts with layered, scattering materials such as the pigments in paint: it defines color mixing in terms of **absorption (K)** and **scattering (S)** coefficients, describing how the pigments physically reflect and transmit light.
[Mixbox](https://scrtwpns.com/mixbox/?ref=gorillasun.de) leverages this model in a way that allows for fast RGB-in/RGB-out operations, and simultaneously integrates easily into existing digital painting software. They have two wonderfully accessible explainer videos up on [Youtube](https://www.youtube.com/@secretweapons1199?ref=gorillasun.de) to demonstrate how all of this works:
**2 —** [**Developing "The Big Forest"**](https://blog.runevision.com/2025/01/2024-retrospective.html?ref=gorillasun.de)[ **an Infinite Procedurally generated Game**](https://blog.runevision.com/2025/01/2024-retrospective.html?ref=gorillasun.de): Rune Skovbo Johansen is one of the creators that's been popping up on-and-off in my reddit feed, or whenever I check the r/proceduralgeneration subreddit. For the past couple of years he's been developing a game titled "The Big Forest", an infinitely procedurally generated game that primarily revolves around exploration.
[2024 retrospectiveAnother year went by as an indie game developer and what do I have to show for it? In last year’s retrospective I wrote that apart from w…runevision](https://blog.runevision.com/2025/01/2024-retrospective.html?ref=gorillasun.de)
His 2024 recap documents the development progress throughout the year and points out the two big milestones that he's achieved. I mentioned the Everything Procedural Conference (EPC2024) that took place in Breda in issue [#70](https://www.gorillasun.de/blog/gorilla-newsletter-70/) of the newsletter — Rune actually gave a talk there where he explains the Layer-Based engine that he's developed for his game:
In another recent article, Rune writes about his progress, and struggles, in procedurally generating and animating creatures for the game, constituting the bigger task on which he spent the latter half of 2024\. This involved creating a parametric system in which all randomly generated outputs create visually valid 3D creatures, as well as making a system that animates their movement in a seamless manner.
[Procedural creature progress 2021 - 2024For my game The Big Forest I want to have creatures that are both procedurally generated and animated, which, as expected, is quite a resea…runevision](https://blog.runevision.com/2025/01/procedural-creature-progress-2021-2024.html?ref=gorillasun.de)
**3 —** [**Simple Fractal Rendering and the Deep Zoom Effect**](https://www.youtube.com/watch?v=uc2yok%5FpLV4&ref=gorillasun.de): Fractals are fascinating, endlessly self-repeating shapes governed by strikingly simple formulas. For instance, the formula for the Julia set simply is **zₙ₊₁ = zₙ² + c**, where z and c are complex numbers. We essentially compute this formula a set number of times over the complex plane (the pixels of the canvas in our case) until the computed value exceeds a certain threshold, or a given number of maximum iterations has elapsed.
To visualize the fractal, we assign each pixel's brightness based on how quickly that coordinate's calculations either exceed our threshold or reach the maximum iterations. This process then reveals an intricate pattern with spiraling structures:

A quick low-rez Julia fractal done with P5
The fascinating thing here is that many fractals actually share this same formula; simply by tweaking the starting conditions, or how we iteratively computed the z value yields very different fractal shapes.
YouTuber Pezzza breaks down how to do this in GLSL in just a few lines of code, in a really easy to understand way. He also explains how to create the mesmerizing deep zoom effect that makes it seem as if we're endlessly travelling into the fractal shape while it's expanding outwards:
I would be curious to see how an infinite zoom works — I'm assuming that this is only possible with specific types of fractals, and with some trick to line up the repeat?
**4 —** [**DOOM: The Gallery Experience**](https://bobatealee.itch.io/doom-the-gallery-experience?ref=gorillasun.de): for all of you artists that have been looking for the optimal way to present your portfolios, I present you with a DOOM powered art gallery! Instead of shooting up mobs, you now traverse a gallery space, sipping on wine and collecting munchable hors d'oeuvres — you can play it in your browser here:
[DOOM: The Gallery Experience by bobatealee, CreechMagooAn artistic parody of the ultimate classicitch.ioXGRiDEN](https://bobatealee.itch.io/doom-the-gallery-experience?ref=gorillasun.de)
This DOOM variant made the rounds, warranting a feature on the Ars Technica that sheds some light on the motivations behind the remake and how it came into existence in the first place. The developers state that their student project somehow culminated in "a parody of art gallery culture" — and I think it's actually not so far from reality 🤣
[Gentrified Doom remake trades chainsaw for cheese knifeRemake of 1993 classic lets you drink wine and eat hors d’oeuvres as you admire masterpieces from art history.Ars TechnicaBenj Edwards](https://arstechnica.com/gaming/2025/01/doom-marine-crashes-art-gallery-politely-sips-wine/?ref=gorillasun.de)
**5 —** [**An Unreasonable Amount of Time**](https://allenpike.com/2024/an-unreasonable-amount-of-time?ref=gorillasun.de): this short blog post by Allen Pike isn't directly related to generative art, but is solid advice for everyone that's aiming to get better at making art, writing, or acquiring a skill of any kind really — you simply need to invest an unreasonable amount of time until you get so good that it appears to others as if it were magic.
[An Unreasonable Amount of TimeA method for magic.Allen Pike](https://allenpike.com/2024/an-unreasonable-amount-of-time?ref=gorillasun.de)
## Tech & Web Dev
**1 —** [**Programming Tetris in a PDF**](https://x.com/thomasrinsma/status/1875923074635424250?ref=gorillasun.de): this one's a bit of a WTF inclusion — because I have no idea in which section this should go — it's too cool to leave out though. So, apparently it's possible to program an entire game of Tetris inside of a PDF file — Thomas Rinsma sheds some light on how he created the Tetris PDF in his Hacker News post, and also shares a Github repo with the code for it:


[Link to Post](https://x.com/thomasrinsma/status/1875923074635424250?ref=gorillasun.de) | [Link to Hacker News Item](https://news.ycombinator.com/item?id=42645218&ref=gorillasun.de)
**2 —** [**Ahmad Shadeed on Balancing Text in CSS**](https://ishadeed.com/article/balancing-text-css/?ref=gorillasun.de): Our favorite web designer is back with another deep-dive, this time tackling strategies for automatically balancing text with CSS. The article's a thorough and interactive explanation of how the `text-wrap` rule in CSS works, in particular the `balance` property, that distributes space evenly between lines. Ahmad also demonstrates this through a bunch of examples from websites he's found out in the wild.
[Balancing Text In CSSMake text look more balanced with text-wrap in CSS.Ahmad Shadeed](https://ishadeed.com/article/balancing-text-css/?ref=gorillasun.de)
**3 —** [**A Philosophy for Digital Longevity**](https://rishikeshs.com/file-over-app/?ref=gorillasun.de): in this article Rishikesh emphasizes the importance of creating lasting digital artifacts, that can be easily accessed in the future. He makes the cause for the long-term value of timeless file formats, and includes a personal recount of using local-first, and exportable note-taking tools like Obsidian, that directly endorse this philosophy, over apps like Notion.
[File Over App: A Philosophy for Digital LongevityMy take on the ‘file over app’ philosophy and why it’s essential for keeping my data resilient and built to last.Rishikesh SreehariAlgo Rithm](https://rishikeshs.com/file-over-app/?ref=gorillasun.de)
**4 —** [**VLC Media Player AI Subtitling Feature**](https://www.theverge.com/2025/1/9/24339817/vlc-player-automatic-ai-subtitling-translation?ref=gorillasun.de) **\+** [**24 Carat Gold GameBoy Competition**](https://x.com/videolan/status/1877875812050907277?ref=gorillasun.de): the VLC Media player team made an appearance at CES 2025 that took place last week. When asked why they were there, they simply stated that "we have nothing to sell, we just decided to show up"! I've personally been using VLC for a long time, not as much these days as some years ago, but it just has so many useful features that make it far superior to most of the default media players.
Their newest feature involves real-time AI subtitling and translation, that runs locally and offline in over 100 languages, using entirely open-source models — which I think is a super cool milestone, and super useful for those who rely on subtitles to consume popular media.
[VLC player demos real-time AI subtitling for videosThe video player is testing a new AI tool to create subtitles in over 100 languages.The Verge](https://www.theverge.com/2025/1/9/24339817/vlc-player-automatic-ai-subtitling-translation?ref=gorillasun.de)
The VLC team also celebrates hitting 6 billion downloads by kicking off a competition that involves beating a GameBoy game they've developed. The first to beat the entire game gets a 24 carat gold plated GameBoy — find the game [here](https://vlcstudio.itch.io/conefuse?ref=gorillasun.de)!
[](https://x.com/videolan/status/1877876237160300983?ref=gorillasun.de)
[Link to Post](https://x.com/videolan/status/1877876237160300983?ref=gorillasun.de)
Not sure if there's still time or if someone's already beat it.
## AI Corner
**1 —** [**Things we learned about LLMs in 2024**](https://simonwillison.net/2024/Dec/31/llms-in-2024/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de): If you want a big comprehensive review of the major LLM related developments throughout 2024, then Simon Willson's article is likely the only one that you'll need. He goes over the important points and provides commentary on them.
[Things we learned about LLMs in 2024A lot has happened in the world of Large Language Models over the course of 2024\. Here’s a review of things we figured out about the field in the past …](https://simonwillison.net/2024/Dec/31/llms-in-2024?ref=gorillasun.de)
Probably the most interesting advancement in the latter half of 2024 is that of inference-scaling and “reasoning” models, where instead of allocating more resources to improve the capabilities of LLMs, we simply let them engage in self-reflective loops to achieve better responses:
> This is that trick where, if you get a model to talk out loud about a problem it’s solving, you often get a result which the model would not have achieved otherwise.
**2 —** [**Orbit AI Summarizer**](https://orbitbymozilla.com/onboarding?ref=gorillasun.de): Orbit is basically a browser extension for firefox that runs an LLM directly in your browser for content summarization, and it does so completely locally! I tested it for a bit and it's pretty decent, obviously not as good as Claude or GPT 4, but good enough to get the job done. It also works on YouTube videos where it automatically looks at the transcript to generate the summarization!
[Orbit by MozillaOrbit by Mozilla](https://orbitbymozilla.com/?ref=gorillasun.de)
If you FireFox is your default browser, I recommend taking the extension for a spin!
## Music for Coding
Ólafur Arnalds is an Icelandic composer and musician that blends classical and electronic sounds into evocative ambient soundscapes. This last week I listened to his album *Some Kind of Peace*, and it took me a second to realize that I'd already heard the opening track "Loom", which is a collaboration with Bonobo, one of my favorite artists. If you need something captivating and introspective, this is the album you need.
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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 85Genuary 2025 - Painting with Plotters - Automatic ALife Discovery - PI’s Evil Twin - Recreating the Comanche Voxel Space Engine - Programming as Theory Building - Designing TinyUrl - Understanding B-Trees - 2024 AI RecapGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-85)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 85
URL: https://www.gorillasun.de/blog/gorilla-newsletter-85/
Last updated: 2025-01-06T18:47:42.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 85th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Let's get into the news*** 👇
## All the Generative Things
**1 —** [**Licia He's Painting with Plotters Course**](https://www.eyesofpanda.com/project/painting%5Fwith%5Fplotters/?ref=gorillasun.de): Licia He's plotter course kicked off mid-December, and the first two modules are now up on the course page! In the first two videos Licia gives an introduction to the world of plotters, going over many of the considerations around using plotters with water color painting, alongside other practical tips for plotting in general—even if you don't have a plotter (yet) it's a super insightful watch!
[Module 0: IntroductionThe Painting with Plotters Course](https://www.eyesofpanda.com/project/painting%5Fwith%5Fplotters/module%5F0/?ref=gorillasun.de)
The second video provides more glimpses into Licia's workflow; for instance, she what I found fascinating is that she uses a network of Raspberry Pis to control several plotters at once, while keeping her main computer free for other tasks. Licia also additionally gives a breakdown of her physical setup that uses a magnetic board to fix things in place—overall it looks like her course will save you a lot of headaches before you even get started with your plotter journey.
Super cool stuff, excited for the coming modules releasing over the next couple weeks/months—we're looking at around 20 videos! 👏
**2 —** [**Automating the Search for Artificial Life with Foundation Models**](https://sakana.ai/asal/?ref=gorillasun.de): the term "[Foundation Model](https://en.wikipedia.org/wiki/Foundation%5Fmodel?ref=gorillasun.de)" refers to all forms of large neural networks that can be used across a broad range of different tasks—think LLMs as well as the powerful text-to-image generators. A new paper from Sakana AI proposes an algorithm titled *Automated Search for Artificial Life* (ASAL), that basically makes use of a vision-text model to automatically discover new artificial life patterns that present certain interesting behaviors.
[Sakana AIAutomating the Search for Artificial Life with Foundation ModelsSakana AI](https://sakana.ai/asal/?ref=gorillasun.de)
> Our proposed approach aims to **(1)** find simulations that produce a specific target behavior, **(2)** discover simulations that keep generating novelty forever as you run it, and **(3)** illuminate all the different simulations that are possible.
Their method can somehow magically accomplish this task by simply providing an input text prompt, such as "a self-replicating pattern" for instance, and then automatically discovering a set of rules (within the constraints of the algorithm that it can use) that produces emergent behavior to visually satisfy the given prompt. I will admit that I don't fully understand how the entire algorithm works, but the labeled examples provided in the paper demonstrate that their method is mindbogglingly spot on with the given input prompts:

Whether or not they're cherry picked, this is super impressive. Later on down the page they demonstrate some larger ALife explorations, where multiple instances of cellular automata are first generated within their own small universes (cells in a grid) and then pitted against each other to see which of them will occupy the most space. If you're interested, check out the [official paper](https://arxiv.org/pdf/2412.17799?ref=gorillasun.de) and the [Github repo](https://github.com/SakanaAI/asal?ref=gorillasun.de) of the open sourced code.
**3 —** [**Algorithmic Pattern Conference**](https://2025.algorithmicpattern.org/?ref=gorillasun.de): *is a hybrid conference/festival that brings together researchers and practitioners curious about the practice and culture of algorithmic pattern-making*. The conference took place for the first time in November 2023 (was about to say last year \*slaps on hand\*) mainly as an online Salon, with a small gathering in Barcelona.
[Algorithmic Pattern – Sheffield and Online, September 2025](https://2025.algorithmicpattern.org/?ref=gorillasun.de)
It's organized by Alex McLean, who you might recognize for being part of the scene with his algorithmic music & live coding—alongside other individuals that make some cool stuff (there's a list on the conference page). If you're interested you'll probably want to sign up to their mailing list to get an update when there's more concrete information about the event.
Apparently, from what the website states right now, it will take place in Sheffield this year, 12-14th September. The page also states that a call for proposals will open this January with a deadline in May—it might be worth pitching an idea! I have a hunch that this year's installment will be overtaken by a horde of generative artists 😄
**4 —** [**Recreating the Comanche Voxel Space Engine**](https://github.com/s-macke/VoxelSpace?tab=readme-ov-file&ref=gorillasun.de): NovaLogic's 1992 [Comanche](https://en.wikipedia.org/wiki/Comanche%5F%28video%5Fgame%5Fseries%29?ref=gorillasun.de) is an iconic simulation game where the player flies military missions in a [RAH-66 Comanche](https://en.wikipedia.org/wiki/Boeing-Sikorsky%5FRAH-66%5FComanche?ref=gorillasun.de) [attack helicopter](https://en.wikipedia.org/wiki/Attack%5Fhelicopter?ref=gorillasun.de) over procedural landscapes.
The novelty of Comanche was the gigantic leap in graphics that it achieved in comparison to previous games—It's the first commercial flight simulation based on [voxel technology](https://en.wikipedia.org/wiki/Voxel?ref=gorillasun.de), via the company's proprietary [Voxel Space](https://en.wikipedia.org/wiki/Voxel%5FSpace?ref=gorillasun.de) engine (written entirely in [assembly](https://en.wikipedia.org/wiki/Assembly%5Flanguage?ref=gorillasun.de)). Sebastian Macke recreated this engine and published it as a repo over on his Github with some additional explanations and a breakdown of the [voxel](https://en.wikipedia.org/wiki/Voxel?ref=gorillasun.de) [raster graphics](https://en.wikipedia.org/wiki/Raster%5Fgraphics?ref=gorillasun.de) rendering engine that Novalogic invented at the time
[GitHub - s-macke/VoxelSpace: Terrain rendering algorithm in less than 20 lines of codeTerrain rendering algorithm in less than 20 lines of code - s-macke/VoxelSpaceGitHubs-macke](https://github.com/s-macke/VoxelSpace?tab=readme-ov-file&ref=gorillasun.de)
> The graphics were breathtaking for the time being and in my opinion 3 years ahead of its time. You see many more details such as textures on mountains and valleys, and for the first time a neat shading and even shadows. Sure, it's pixelated, but all games in those years were pixelated.
Check out Sebastian Macke's [simulationcorner.net](https://www.simulationcorner.net/?ref=gorillasun.de) page for other cool similar retro-recreations! And I also recommend checking out the Hacker News item for Sebastian's repo, there's an interesting discussion around novelty in past and present video games.

[Link to Hacker News Item](https://news.ycombinator.com/item?id=42588956&ref=gorillasun.de)
**5 —** [**5 Ways for Drawing 3D Outlines (in Unity)**](https://ameye.dev/notes/rendering-outlines/?ref=gorillasun.de): Alexandre Ameye shows us 5 different techniques for drawing 3D object outlines and goes pretty in depth on each one. The article is geared towards creating outline effects in Unity, but the methods are general enough to be applicable in any 3D setting—hence if you've been looking into creating this kind of effect, this is your starting point.
[5 ways to draw an outline🖍️ Explaining multiple techniques for rendering outlines and highlights for real-time applications. This includes vertex object-space as well as screen-space methods. This can be used to render outlines in Unity or Unreal. Outlines can be used for gameplay reasons or aesthetics.Alexander Ameye](https://ameye.dev/notes/rendering-outlines/?ref=gorillasun.de)
**6 —** [**PI's Evil Twin (the Lemniscate Constant)**](https://shorturl.at/TsbOS?ref=gorillasun.de): To cap off this section, John Carlos Baez made a cool in-depth thread over on Mastodon about a strange constant that's related to the infinity curve (the eight curve ♾️). This evil twin of PI has its own associated *mutant* trigonometric functions and properties—but I'll leave it to John's to explain what it's all about, it gets real math-y real quick though.
[](https://shorturl.at/TsbOS?ref=gorillasun.de)
[Link to Thread](https://shorturl.at/TsbOS?ref=gorillasun.de)
## Genuary 2025 & EOY Gifts
Before we get into some of the other notable finds of the past week—let's quickly talk about Genuary 2025 that's currently in full swing! It's already been a blast to see all of the cool creations that people are making for the prompts!
Personally I'm really happy that I prepared just a little bit ahead of time, and laid out some potential ideas for each prompt—so far I've been able to keep up with the dailies, and I'm happy with the batch of sketches that I've churned out so far—here's the ones I've made at the time of writing for the first 5 prompts.





As always, I'll put together my personal Genuary recap towards the end of the month where I'll explain what's going on in each one of these—if you're curious to learn a bit more about all the things that I end up making. If you're interested here's the one from last year:
[Genuary 2024: A Personal RecapGenuary 2024 is now officially over! And while we emerge with folders loaded with sketches and ideas to work on throughout the coming weeks, here’s my personal celebratory recap of everything I’ve made in Genuary.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/genuary-2024-personal-recap/)
Now it's already getting a bit tight time-wise; moving forward it'll be about being a bit more pragmatic, going with ideas that aren't too overly ambitious and can be realized in a reasonable amount of time. Might just have to pull something from the trick-bag!
Another notable thing I want to point out here, is that I received a little gift from none other than [Julien Gachadoat](https://x.com/v3ga?ref=gorillasun.de)! We chatted a bit during the Berlin summit, where I learned that he enjoys reading the newsletter—for the holiday season he was so kind to send over the beautiful black and white plot, here's a pic next to the blue mini plot he handed out in Berlin:

I will definitely have to get a small frame and hang it next to my desk! Thank you again Julien!
As for my EOY recap, it's taking a bit longer to put together this time, since I want to actually reflect a bit on what I've accomplished in 2024 and figure out how to actually best move forward in 2025\. Should be ready this coming week though!
With the housekeeping out of the way—**let's get into some other cool stuff I found this week** 👇
## Programming Corner
**1 —** [**Peter Naur's Programming as Theory Building**](https://pages.cs.wisc.edu/~remzi/Naur.pdf?ref=gorillasun.de): Peter Naur’s *“Programming as Theory Building”* is a seminal paper that challenges the prevailing view of programming as primarily a process of problem-solving or the production of code. Instead, Naur argues that programming is fundamentally an activity of building, evolving, and maintaining a mental theory about a problem domain—**essentially a theory that lives in the mind of the programmer.**
[](https://pages.cs.wisc.edu/~remzi/Naur.pdf?ref=gorillasun.de)
[Link to Paper](https://pages.cs.wisc.edu/~remzi/Naur.pdf?ref=gorillasun.de)
And this still very much holds true today, in contemporary discussions about technical debt, knowledge management, and the human factors of software development. His emphasis on the human understanding behind code highlights why codebases become hard to maintain—it’s not just about the code itself but about the loss of the underlying mental theory when developers leave or stop maintaining it. Also recommend checking out the associated Hacker news discussions that shed some more light on the paper.
[](https://news.ycombinator.com/item?id=42592543&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=42592543&ref=gorillasun.de)
> Peter Naur was a Danish computer science pioneer and 2005 Turing award winner. He is best remembered as a contributor, with John Backus, to the [Backus–Naur form notation](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur%5Fform?ref=gorillasun.de) used in describing the syntax for most programming languages.
**2 —** [**Designing TinyUrl as an Systems Design Problem**](https://x.com/GrantSlatton/status/1875087447920607675?ref=gorillasun.de): a recent tweet from Grant Slatton caught my attention, not just because it did some numbers, but because it's something I attempted to do earlier in 2024 when I undertook my little forray into Next.js, re-creating a simple (or so I thought) link shortener web app as an exercise. I didn't really get very far, just a simplistic interface, a database to store the input links, as well as a redirect function. Under the apparent simplicity of such an app actually hides quite a bit of depth; how do you design this system at scale?
[](https://x.com/GrantSlatton/status/1875087447920607675?ref=gorillasun.de)
[Link to Post](https://x.com/GrantSlatton/status/1875087447920607675?ref=gorillasun.de)
My general take-away from the discussions in the replies is that the answer to this question is "it depends on the number of users and traffic". Looking into it a bit more out of curiosity I found this in depth article from Sandeep Verma that details outlines the considerations for this kind of service.
[System Design : Scalable URL shortener service like TinyURLThe goal of this article is to discuss system design of services like bitly.com , tinyurl , t.c o etc. Innumerable articles are present on…MediumSandeep Verma](https://medium.com/@sandeep4.verma/system-design-scalable-url-shortener-service-like-tinyurl-106f30f23a82?ref=gorillasun.de)
Hence, if you have an upcoming job interview for you next system design job, this would be your starting point 😆
**3 —** [**Understanding B-Trees for Databases**](https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/?ref=gorillasun.de): A **B-Tree** is a type of search tree that holds multiple keys in each node, unlike a binary tree where each node only has two children. In a binary tree, searching can become slow if the tree becomes unbalanced (higher depth than required to hold all the data), but B-Trees keep their height small by splitting and merging nodes as needed.
[](https://en.wikipedia.org/wiki/B-tree?ref=gorillasun.de)
[Wiki Page on B-Trees](https://en.wikipedia.org/wiki/B-tree?ref=gorillasun.de)
B-Trees have an inherently more balanced structure making them efficient for handling large datasets, which is why they are widely used in databases and file systems for fast lookups. Ben Congdon explains this in an article of his, walking us through how this would work at scale.
[B-Trees: More Than I Thought I’d Want to KnowB-Trees are not boring, after allBen CongdonBen Congdon](https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/?ref=gorillasun.de)
Fun-fact, and if you were curious: the "B" in B-Tree doesn't actually have a universally agreed-upon meaning, but it most commonly stands for Balanced or Bayer, after Rudolf Bayer, who co-invented the structure in 1972.
## AI Corner
**1 —** [**The Batch 2024 AI Roundup**](https://www.deeplearning.ai/the-batch/issue-281/?ref=gorillasun.de): It's been a huge year for AI, things have made astronomic leaps since the start of the year, from LLM powered code editors to agentic crypto analysts—it's kind of a pretty crazy time to be alive. The iconic Andrew Ng's provides us with a summary of the interesting developments in 2024 and lets us in on his predictions for 2025.
[](https://x.com/AndrewYNg/status/1874191082436895002?ref=gorillasun.de)
[Link to Post](https://x.com/AndrewYNg/status/1874191082436895002?ref=gorillasun.de)
**2 —** [**Can LLMs write better code if you keep asking them to "write better code"?**](https://minimaxir.com/2025/01/write-better-code/?ref=gorillasun.de): you might remember the short-lived [AI Slop](https://en.wikipedia.org/wiki/AI%5Fslop?ref=gorillasun.de) phase where people used image generators to turn a starting image "more X", for example "[make this image of a metal head more metal](https://www.reddit.com/r/metalguitar/comments/185zdba/theres%5Fa%5Ffun%5Ftrend%5Fon%5Frchatgpt%5Fwhere%5Fyou%5Fask%5Fthe/?ref=gorillasun.de)"—with it always deteriorating (ascending?) into something cosmic. Max Woolf explores this idea in the setting of LLM generated code, what happens if you keep asking the chat-bot to make the code better?
[Can LLMs write better code if you keep asking them to “write better code”?Most coders want AI to write code faster: I want AI to write FASTER CODE.Max Woolf's Blog](https://minimaxir.com/2025/01/write-better-code/?ref=gorillasun.de)
And that ends up kind of working, until you hit that point of diminishing returns. Naturally the code also becomes bloated beyond recognition. Max then also explores the results with a expertly engineered prompt to guide the LLM, which obviously ends up working much better—this latter section is particularly interesting because it provides a couple of explanations of why he designed the prompt in a particular way that I wasn't previously aware of.
## Music for Coding
Kenmochi Hidefume's Shakespeare is an absolute masterpiece—and I can confidently say that after just one listen of the 2010 album! Hidefumi is a Japanese musician, songwriter, producer, and DJ—his early work caught the attention of [Nujabes](https://www.discogs.com/artist/194395?ref=gorillasun.de) who signed him to his label [Hyde Out Productions](https://www.discogs.com/label/30597?ref=gorillasun.de). In 2012, he became a founding member of [水曜日のカンパネラ](https://www.discogs.com/artist/4091793?ref=gorillasun.de) (Wednesday Campanella) as the songwriter and producer until his departure in 2021 to work on other projects.
You might recognize Wednesday Campanella from their hit song [Edison](https://www.youtube.com/watch?v=8tOIjOPZ5sA&ref=gorillasun.de), which I also recommend giving a listen to while you're at it! And that's it from me—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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 84Understanding Turing Machines - Quantifying Chaos: what is Entropy? - Roguelike Celebration 2024 - Luka Piskorec’s fxFacetune - Processing 4.3.1 - Century-Scale Storage - Ideas from A Philosophy of Software Design - The Flaws of JSON - Fish-eye Lens for Text - TRELLIS 3DGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-84)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 84
URL: https://www.gorillasun.de/blog/gorilla-newsletter-84/
Last updated: 2024-12-23T06:00:56.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 84th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
🎄
****PSA:** **Wishing you all a merry Christmas and a happy new-year! Next week, instead of the weekly newsletter, I'll be sending out my EOY recap. We'll have a look back at everything that's happened with the blog in 2024, both online and IRL!*
**That said, hope you're all having a lovely holiday season and get to spend some quality time with your loved ones ❤️*
***Apparently it's not "queue" but actually "cue"... so, cue the news*** 👇
## All the Generative Things
**1 —** [**What does it mean for something to be Turing Complete?**](https://samwho.dev/turing-machines/?ref=gorillasun.de): you've probably heard programming languages being described as 'Turing Complete.' It's a fancy way of saying they can compute anything that's computationally possible—in other words, anything that can be described algorithmically. But what does that actually mean?
This is what Sam Rose tries to answer in his most recent article; through interactive examples he demonstrates how a Turing Machine works, then also tackling the more theoretical aspects of Alan Turing's work, such as the famous Halting problem.
[Turing MachinesAn interactive introduction to Turing machines, the theoretical foundation of modern computing.](https://samwho.dev/turing-machines/?ref=gorillasun.de)
Back in 1936, Alan Turing came up with the original idealized model of a computer, he proposed a machine that could, in principle, perform any computation. And that with just 5 basic instructions. A computation in this setting is a well-defined set of steps (an algorithm) that can transform an input into an output, ranging from simple arithmetic to the much more complex tasks that modern computers can perform. In theory, Turing's original machine could run Fortnite, but probably not at a speed that you'd need it to. Sam also provides us with a [sandbox to create our own mini Turing Machines](https://samwho.dev/christopher/?ref=gorillasun.de).

Fun fact, not just computers and programming languages are Turing Complete, but other devices can also be attributed that quality, for instance Microsoft Excel, or Minecraft, and even Magic the Gathering! ([proven in this 2019 Paper](https://arxiv.org/abs/1904.09828?ref=gorillasun.de)).
**2 —** [**What Is Entropy? A Measure of Just How Little We Really Know**](https://www.quantamagazine.org/what-is-entropy-a-measure-of-just-how-little-we-really-know-20241213/?ref=gorillasun.de): the formal definition for entropy might at first glance seem a bit absurd: "entropy is the measure of disorder, randomness, or uncertainty in a system". The question here—how do you actually quantify chaos? Quanta magazine provides us with a deeply insightful piece on the topic, starting with a rich historic background, up until modernity where it is a fundamental notion in fields like thermodynamics, information theory, and computing.
[What Is Entropy? A Measure of Just How Little We Really Know. | Quanta MagazineExactly 200 years ago, a French engineer introduced an idea that would quantify the universe’s inexorable slide into decay. But entropy, as it’s currently understood, is less a fact about the world than a reflection of our growing ignorance. Embracing that truth is leading to a rethink of everything from rational decision-making to the limits of machines.Quanta MagazineZack Savitsky](https://www.quantamagazine.org/what-is-entropy-a-measure-of-just-how-little-we-really-know-20241213/?ref=gorillasun.de)
A better way to think about entropy is as a measure of unpredictability—which is a bit of a broad generalization—but in essence, the higher the entropy of a system is, the harder it is to predict what comes next, because there are more possible outcomes or states. As an example, picture a deck of cards. You're asked to pick cards at random from the deck and guess the order in which the cards are arranged. In a sorted deck you'll be able to tell after just a few tries, which means that the deck of cards has low entropy. We would also catch on pretty quickly if we were to sort the deck by card color or by pips for example.
On the other hand, were the deck to be randomly shuffled, you would never be able to tell the pattern because there simply is none—maximum entropy. The difference here is that in the sorted order each card actually also informs us about the entire arrangement of the deck. Quanta further demonstrates this with a number of interactive examples that accompany the article's text.
**3 —** [**Roguelike Celebration 2024**](https://www.youtube.com/@roguelikecelebration/videos?ref=gorillasun.de): is a yearly community-generated weekend of talks, games, and conversations about roguelikes and related topics. The 2024 edition took place back in October, and all of the recordings have since been uploaded on YouTube. As it is the case with these conferences/get-togethers, it's a treasure trove of information! Particularly for those interested in procedural generation and game design.
[Roguelike CelebrationRoguelike Celebration is a nonprofit community-generated conference that celebrates roguelike computer games and related topics, including procedural generation and game designYouTube](https://www.youtube.com/@roguelikecelebration/videos?ref=gorillasun.de)
If you're not familiar with the genre, Roguelikes are basically video games where you explore randomly generated dungeons, collecting items and fighting monsters, with the key feature being that when you die, you lose everything and have to start over from the beginning. In this manner the genre revolves entirely around replayability, with different randomized elements contributing to making each run unique. Naturally, there is usually also an element of progression that takes place between runs, so that you can get a little bit further each time.
Although the genre's been around since the 80s, I remember things really taking off in the early 2010s (I feel old) with games like the Binding of Isaac, and FTL: Faster than Light, both of which really defined the genre in the following years.
Another game that I also remember sinking more than a few hours into, back when it came out in 2015, is Crypt of the Necrodancer. The game is at its core a turn based rhythm game, with an unforgiving clock—I never really got very far in it. I was surprised to learn that the game still has a very vibrant community around it and that it's actively being updated: in one of the talks Adrian Zeyfang recounts the story of how his fan project, that arose to as a sort of challenge, ended up turning into the most recent DLC, adding an online multiplayer mode to the game which was previously thought impossible:
Bottom-line: these games aren't just art—they're also fascinating feats of programming! But maybe those two aren't so different after all.
**4 —** [**Luka Piskorec's fxFacetune**](https://x.com/LukaPiskorec/status/1868789740205654059?ref=gorillasun.de): every once in a while you come across a project that really blows you away—this past week I felt that way with Luka Piskorec's fxFacetune! It's a longform genart project on fxhash, that lets you turn a selfie of yours into a generative charicature stored directly on the blockchain. Not just the code that produces the artwork, but the image itself is stored onchain—and that's crazy impressive, because just storing a small amount of information onchain can quickly get pretty expensive. Luka sidesteps this however by leveraging a smart compression algorithm to bring the images down to a manageable size.
If you're curious about how this works, I recommend checking out the in depth thread that Luka made over on Twitter, giving us a glimpse behind the scenes where there's many more moving parts that make the artwork happen.


[Link to Thread](https://x.com/LukaPiskorec/status/1868789740205654059?ref=gorillasun.de)
The project is originally inspired by Gretchen Andrews Facetune Portraits, featured during the Berlin Art Week, if you want to learn a little more about that, Gretchen also made her own post.
[](https://x.com/gretchenandrew/status/1868946725756448936?ref=gorillasun.de)
[Link to Post](https://x.com/gretchenandrew/status/1868946725756448936?ref=gorillasun.de)
**5 —** [**The Year in Computer Science**](https://www.quantamagazine.org/the-year-in-computer-science-20241219/?ref=gorillasun.de): another article from Quanta recaps some of the important advancements in theoretical computer science during 2024, across a variety of different fields. Although not all-encompassing, I thought that it was an interesting selection, from quantum computing, to the discovery of the fifth busy beaver number, as well as a segment about AI it gives a brief overview of the past year.
[The Year in Computer Science | Quanta MagazineResearchers got a better look at chatbots’ thoughts, amateurs learned just how complicated simple systems can be, and codes became expert self-fixers.Quanta MagazineBill Andrews](https://www.quantamagazine.org/the-year-in-computer-science-20241219/?ref=gorillasun.de)
What I found most intriguing, was actually just a sidenote, about how [aperiodic tilings (like the Penrose tiling) have something to do with quantum correction](https://www.quantamagazine.org/never-repeating-tiles-can-safeguard-quantum-information-20240223/?ref=gorillasun.de)—not embarrassed to admit that I don't really get it—but naturally Quanta has an article on that topic as well! It's likely a rabbit hole in of its own that I might end up exploring.
## Tech & Web Dev
**1 —** [**Century-Scale Storage**](https://lil.law.harvard.edu/century-scale-storage/?ref=gorillasun.de): *If you had to store something for a 100 years, how would you do it?* is the opening question that this fascinatingly in depth piece by Maxwell Neely Cohen kicks off with (you might remember Maxwell as one of the co-creators of the HTML review). It's a massive article that explores the challenges and potential strategies for long-term digital data storage, over a seemingly arbitrary yet practically significant timeframe.
[Century-Scale StorageIf you had to store something for 100 years, how would you do it?Maxwell Neely-Cohen](https://lil.law.harvard.edu/century-scale-storage/?ref=gorillasun.de)
The challenge with data storage at this time scale is that technology can change significantly—making the task a dual battlefield of maintenance: not only the data has to be kept intact, but also the software/hardware environment that gives us access to the data. This has also been an increasingly acute problem in digital art preservation for instance.
Later on in the article Maxwell introduces "Archivism" as an ideology; a belief in the preservation of cultural and intellectual output for future generations—at the expense of anything else.
**2 —** [**Ideas from "A Philosophy of Software Design"**](https://www.16elt.com/2024/09/25/first-book-of-byte-sized-tech/?ref=gorillasun.de): in a quest to learn from and summarize a variety of books on software development, Eliran Turgeman starts us off with John Ousterhout's iconic *A Philosophy of Software Design*. Eliran presents us with his main three take-aways, explaining that the book largely revolves around combating complexity in software design by adopting a radical zero-tolerance policy towards it.
[Ideas from “A Philosophy of Software Design”Almost a month ago, I created a telegram channel with the goal of reading tech books consistently, and sharing summaries of them.This week, I have finished reading the first book - “A Philosophy of SoEliran TurgemanEliran Turgeman](https://www.16elt.com/2024/09/25/first-book-of-byte-sized-tech/?ref=gorillasun.de)
A comment over on the accompanying Hacker News item provides us with a concise summary that I found too beautiful to not include here; in essence, keeping code simple boils down to creating well-designed abstractions that are easy to understand and use.
[](https://news.ycombinator.com/item?id=42456492&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=42456492&ref=gorillasun.de)
**3 —** [**Nobody gets fired for picking JSON, but maybe they should?**](https://shorturl.at/ZGGoE?ref=gorillasun.de): who doesn't love JSON? It's simple, and it does the job. But, it seems it also has quite a few flaws—a recent article from Miguel Young highlights some of the fundamental issues of the light-weight data interchange format. He explains, that despite its widespread use in software development today, JSON suffers from serious technical limitations and inconsistencies.

The key takeaway here is that under the apparent simplicity hide interoperability and data integrity problems, that can lead to serious real-world consequences, such as potential privacy violations or compliance issues due to data corruption. Miguel also points out that these problems are fundamentally unfixable due to JSON's widespread adoption and the inconsistent ways different tools and languages implement it.
## AI Corner
**1 —** [**Fish-eye Lens for Text**](https://wattenberger.com/thoughts/fish-eye?ref=gorillasun.de): Amelia Wattenberger is back with a new post! Following in the same style of her previous explorations, she demonstrates that LLMs can be used in interesting and creative new ways, this time as a sort of fish-eye lens for text that enables a novel approach to presenting information at multiple scales simultaneously.
LLMs are really good a summarization, which can also be described as semantic compression. Often the same idea that's expressed over the span of a paragraph can also be conveyed through a single sentence. This is what Amelia leverages for her experiment: she presents a full text through an LLM powered fish-eye lens. Only the current portion that we're focused on is presented in full detail, whereas preceding and future passages are increasingly compressed the further away they are. Amelia demonstrates this with an interactive example:

In essence, this fish-eye lens effect for text mirrors how we naturally process information—our brains implicitly do this sort of semantic compression—but presenting information this way might just facilitates a deeper and more human understanding; it allows us to move between detail and context without losing sight of the whole picture.
**2 —** [**TRELLIS: High-Quality 3D Asset Generation**](https://trellis3d.github.io/?ref=gorillasun.de): TRELLIS is a novel method for generating high-quality 3D assets simply from an input prompt or an input image, and even allows for local editing by prompting—it made quite a splash since the quality of the models is astoundingly good. They even provide a huggingface playground for you to [try it out for yourself](https://huggingface.co/spaces/JeffreyXiang/TRELLIS?ref=gorillasun.de).

## Music for Coding
This week I discovered the music of Autechre, an iconic electronic music duo from the UK that finds its beginnings in the 1980s and is a cornerstone of the Warp Records roster. They rose to fame for their innovative approach to sound design and abstract compositions. Blending intricate rhythms, experimental textures, and atmospheric elements, their music spans a vast sonic spectrum and creates complex and often otherworldly auditory landscapes.
I learned about Autechre through this article that recounts the fascinating history of the band's album covers—which was just too good of a piece to not share here:
[A Brief History of Autechre’s Album CoversI’ve always hated minimalism. I don’t think that’s a blanket statement I’d make about any other artistic movement but I hate minimalism. From my perspective, it was audacious for like a year, and t…Art F CityRhett Jones](http://artfcity.com/2016/08/05/a-brief-history-of-autechres-album-covers/?ref=gorillasun.de)
And that's it from me—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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've also got a Discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **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 83Chemical Reactions with Cellular Automata – Hidden Code in PNGs – Generative Puzzles – Optimizing Truchet Tiles for Plotting – Demystifying Generative Autonomy – KIKK 2024 – CSS Wrapped 2024 – Writing Down Every UUID – AI makes Dev Skills more Valuable – Death of the Stubborn ProgrammerGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-83)
You can also find a backlog of all previous issues here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 83
URL: https://www.gorillasun.de/blog/gorilla-newsletter-83/
Last updated: 2024-12-16T06:00:44.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 83rd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
💡
****PSA:** [****The prompts for Genuary 2025 are out**](https://genuary.art/prompts?ref=gorillasun.de)****! In case you want to get a head start on organizing your January for the challenge.**
***Queue the news*** 👇
## All the Generative Things
**1 —** [**Programming the Belousov-Zhabotinsky Reaction**](https://www.youtube.com/watch?v=CicXI-WBgQ4&ref=gorillasun.de): The Belousov-Zhabotinsky (BZ) reaction is a special kind of chemical system in which the reaction repeats itself in cycles rather than reaching a stable equilibrium, also known as a chemical oscillator. Visually the BZ reaction presents itself as swirling, self-organizing spirals and waves that cyclically repeat over time—here's what this looks like:

In code this reaction can actually be captured as a cellular automaton that comes to life in just a few lines of code; Patt Vira tackles this in a recent video of hers, teaching us how to implement it in P5\.
Patt points out a [short paper by Alasdair Turner](https://discovery.ucl.ac.uk/id/eprint/17241/1/17241.pdf?ref=gorillasun.de) back from 2009, that she uses as a basis for the video, and that shows the formulas to create the swirly patterns. In essence each cell of the cellular automaton computes its state based on the values of the surrounding cells, similarly to how reaction diffusion can be modeled as algorithmically.
Over the weekend I ended up playing a little with the code, creating a few broken versions, as well as the animation you see above. As always, really appreciate Patt's efforts in breaking down these algorithms–felt very refreshing to do a coding tutorial for the first time in a while again!
**2 —** [**Hiding Code in PNGs with Jos Vromans**](https://www.josvromans.art/writing/2024/10/steganography/?ref=gorillasun.de): Steganography is the practice of concealing messages or information within other text or data. In generative art, a number of artists have adopted the idea of baking the source code that produces an image, into the image itself—partly to make the output a self-contained artwork, but also to be able to algorithmically reproduce the art in case version control goes out of hand.
This particularly makes a lot of sense in the case of SVGs, since SVGs are text based, the source code can simply be embedded as a ``. For bitmap based image formats, like PNGs and JPEGs, this becomes trickier, but is also feasible; Jos Vromans wrote about the topic in a recent article of his–explaining how source code can be hidden within a PNG file by leveraging a number of smart observations.
[Jos Vromans | Blog | SteganographyJos Vromans | Mathematical Art | Blog postSteganographyJos Vromans](https://www.josvromans.art/writing/2024/10/steganography/?ref=gorillasun.de)
A PNG is in essence a bitmap of pixel values, where pixels are composed out of three RGB values, each one of them represented by 8 bits. This means that one pixel holds 24 bits of information overall. In the article Jos points out that a change to the least significant bits (LSB) of each RGB component is visually imperceptible, demonstrating it with an interactive example—you need alter quite a few until the image devolves into something unrecognizable.
This basically means that we can substitute the LSBs of an image's pixels without anyone really noticing, and actually store meaningful information instead. If you put one and one together, we can now convert the characters that make up the code into an ASCII encoding and store them in the image. I recommend reading Jos' article for the full details.
**3 —** [**Programming a Puzzle Generator in Elm**](https://www.juricho.me/posts/puzzle-generator/?ref=gorillasun.de) **🧩**: Generating puzzles algorithmically is an interesting task, because it seems like something trivial at first but then turns out to be trickier than initially expected. Juri Chomé wrote about the topic, showing us how to program a jigsaw puzzle generator in Elm. In his case he used it to create SVG files to feed into a laser cutter that then cuts out the individual puzzle tiles from a block of wood.

Juri's approach is quite straightforward: he creates a grid, deforms it slightly—so that the edges between tiles are a little slanted—and then replaces these edges with the connector/knob-like shape that you commonly find between two puzzle tiles. To this day, I still don't know what they're actually called. If you aim to create plottable SVGs this is sufficient and does the job, it gets a bit trickier when you want the individual puzzle tiles to know their actual adjacency, as well as the inwardness/outwardness of their attached connectors.
This is what I tackled earlier this year, for a generative artwork I titled *Some Parts of Me*. The logic for creating the grid ended up being tricky, because I approached it in an object oriented manner; and I actually wrote an full fledged deep dive about the project... that never ended up seeing the light of day. Maybe I'll polish it up at some point and then release it, here's a sneak peak:

But I digress, check out Juri's article, it's insightful even if you aren't an Elm programmer, doubly so if you have a laser cutter at hand—I reckon that these custom puzzles make for an amazing gift!
**4 —** [**Creating and Optimizing Plottable Truchet Tile Patterns**](https://newsletter.revdancatt.com/p/050-kaleidoscopic-workflow?ref=gorillasun.de): while we're talking about laser cutting and plotting, catching up with Daniel Catt's newsletter, I learned that issue #50 is actually the third part of a series throughout which gives a detailed breakdown of a really cool Truchet tile generator, that's optimized for plotting purposes.
[📙 #050 - Kaleidoscopic WorkflowAt last, I’ve got my act together enough to post the third part of this little pen plotting adventure from newsletters #047 and #048 - with some online code, which I’ll link in just a moment.Drawing Machines & Notes from Art Studio RobotsDaniel Catt](https://newsletter.revdancatt.com/p/050-kaleidoscopic-workflow?ref=gorillasun.de)
Highly recommend subscribing to Daniel's newsletter ✨
In issue [#47](https://newsletter.revdancatt.com/p/047-no-such-thing-as-too-much-yellow?ref=gorillasun.de) Daniel explains how Truchet patterns work and how to go about programming them. In [#48](https://newsletter.revdancatt.com/p/048-truncated-optimisation?ref=gorillasun.de) he explains how to optimize the generated patterns for the plotter, so that the machine can trace out continuous lines rather than drawing out individual tiles one at a time. And in this most recent issue, he explains the grid based Truchet pattern can be turned into a snowflake kind of shape by leveraging a cool Kaleidoscope effect.
Really cool stuff, at this point in time I am strategically planning the acquisition of my first plotting device 🤞
**5 —** [**Demystifying Generative Autonomy**](https://www.lerandom.art/editorial/demystifying-generative-autonomy?ref=gorillasun.de): It's been a minute since I've featured a piece by Monk on here, but only because I've not had the bandwidth to keep up with the consistent stream of excellent writing over on Le Random. This one's important though because it's the fourth part in the Demystifying Generative Art series that Monk started last year, with which he aims to create a complete framework for understanding and evaluating generative art.
[Demystifying Generative AutonomyThis is Part IV in a series on building a framework for appreciating generative art. In Part I, “Demystifying Generative Art,” Peter Bauman (Monk Antony) builds the case for such a framework. In Part II, “Demystifying Generative Aesthetics,” Bauman examines generative outputs—the results of generative systems. In Part III, “Demystifying Generative Systems,” he examines generative systems themselves. Now in Part IV, Bauman investigates another framework component, autonomy—control within generative systems. The essay includes Bauman’s discussions with Christiane Paul, Matt DesLauriers, Sougwen Chung and Zach Lieberman.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/demystifying-generative-autonomy?ref=gorillasun.de)
In this massive analysis, Monk tackles the philosophical component of his framework, namely autonomy. A big part of what makes generative art special as an artform, has to do with how practicing artists relinquish control over the art making process to some extent. And this is reflected by how much of the contemporary discourse around the artform is about the machine as a collaborator rather than simply a medium. Monk provides a logical breakdown of everything that's involved.
**6 —** [**KIKK Festival 2024 Recordings**](https://www.youtube.com/@kikk%5Ffestival/videos?ref=gorillasun.de): [KIKK](https://www.kikk.be/?ref=gorillasun.de) is an international festival that celebrates the creative dimension of digital cultures and new technologies. The event takes places every year in Namur, Belgium, and brings together those that are interested in the intersection of art and technology. The recordings of the 2024 edition's talks have just been uploaded to YouTube a few days ago if you want to check them out.
One of the talks features [Marcin Ignac](https://x.com/marcinignac?ref=gorillasun.de), founder of [Variable.io](https://variable.io/?ref=gorillasun.de) a generative design and data visualisation studio, and co-creator of [Nodes.io](https://nodes.io/?ref=gorillasun.de)—naturally, that makes Marcin an accomplished generative artist. He showcases some of the projects he's worked on and lets us in on his practice, with more than a few really interesting nuggets in throughout.
He briefly talks about his 2022 fxhash project Urban Flora, which I remember being mesmerized by when it first came out. He provides some details about the algorithm that powers the project, explaining that it is in fact created with Nodes.io. He reveals that the hollow geometric structures, that are central to each artwork, are created according to [Conway's polyhedron notation](https://en.wikipedia.org/wiki/Conway%5Fpolyhedron%5Fnotation?ref=gorillasun.de).


[Link to Project](http://marcinignac.com/projects/urban-flora/?ref=gorillasun.de) | [Conway's Polyhedron Notation](https://en.wikipedia.org/wiki/Conway%5Fpolyhedron%5Fnotation?ref=gorillasun.de)
This notation essentially describes a family of symmetric 3D shapes that can be derived from a seed polyhedron (a starting shape) through modifications, such as slicing and cutting edges for example.
**7 —** [**6 Lessons I learned working at an Art Gallery**](https://shorturl.at/HMPle?ref=gorillasun.de): not directly related to generative art, but a worthwhile read for all the aspiring artists following along. Henrik Karlsson reflects on his three-and-a-half-year experience working at an art gallery, and explains how he turned, what many would consider a mediocre job, into a worthwhile opportunity to grow professionally.
## Tech & Web Dev
**1 —** [**CSS Wrapped 2024**](https://chrome.dev/css-wrapped-2024?ref=gorillasun.de)**:** It's been an amazing year for CSS, and just like last year, the Chrome DevRel team recaps all CSS developments over the past 12 months in a mega-compilation, where each feature is accompanied by an interactive codepen.
[CSS Wrapped 2024Join the Chrome DevRel team and a skateboarding Chrome Dino on a journey through the latest CSS launched for Chrome and the web platform in 2024.Adam Argyle](https://chrome.dev/css-wrapped-2024/?ref=gorillasun.de)
Here's the couple of the new features that I am personally excited about:
- [Cross-Document View Transition](https://developer.mozilla.org/en-US/docs/Web/API/View%5FTransitions%5FAPI?ref=gorillasun.de): I haven't used this one yet, but it seems like the most exciting one out of the bunch. You've probably visited a website before where transitions between different pages happens seamless, usually with a [quirky animation](https://allhero.co.jp/company/?ref=gorillasun.de). Previously this was difficult to do, or required an animation library like GSAP to take care of it, now it's possible to support it with CSS.
- [Scroll-Driven Animations](https://css-tricks.com/unleash-the-power-of-scroll-driven-animations/?ref=gorillasun.de): Scroll-driven animations on the other hand, is the new feature that I've seen being hyped the most this year. Now you can basically tie animations directly to a user's scrolling behavior—which you might want to keep in mind before you bust out GSAP the next time.
- **@property**: The `@property` rule made a big buzz this year, and were hailed as [next-gen CSS variables](https://web.dev/blog/at-property-baseline?ref=gorillasun.de). We had a look in issue # of the newsletter, but in brief its a more refined way to define CSS variables that allows the assignment of a specific type, and initial value, and inheritance rules! This subsequently enables things that were previously impossible to do, such as animating colored gradients for instance.
Sadly Firefox, my browser of choice, still lags significantly behind Chrome.
**2 —** [**What do the State of CSS and HTML surveys tell us?**](https://web.dev/blog/state-of-css-html-2024?ref=gorillasun.de)**:** on a related note, if you've missed the [State of CSS 2024](https://2024.stateofcss.com/en-US?ref=gorillasun.de) and the [State of HTML 2024](https://2024.stateofhtml.com/en-US?ref=gorillasun.de) surveys that came out earlier this year, you've got some catching up to do! If you only care about the notable findings that the two surveys bring forth, then the Google DevRel team got us covered again—Rachel Andrew provides a nice little compact recap:
[What do the State of CSS and HTML surveys tell us? | Blog | web.devA look at the survey results from the State of HTML and State of CSS surveys.web.devX](https://web.dev/blog/state-of-css-html-2024?ref=gorillasun.de)
**3 —** [**Writing down every UUID**](https://eieio.games/blog/writing-down-every-uuid/?ref=gorillasun.de)**:** if you enjoyed the esoteric One Million Checkboxes website from a few months ago, then you're in for a treat. Nolen Royalty is back with another interesting, *large scale* exploration: this time he created a [website to list out every possible UUID](https://everyuuid.com/?ref=gorillasun.de), and makes them searchable. For what purpose, you ask? Probably for the heck of it—he breaks down how he created this webpage in a complementary explainer.
[Writing down (and searching through) every UUID · eieio.gamesI couldn’t remember every UUID so I wrote them all downeieio.games](https://eieio.games/blog/writing-down-every-uuid/?ref=gorillasun.de)
## AI Corner
**1 —** [**Why AI is making Dev Skills mode Valuable, not Less**](https://www.builder.io/blog/ai-dev-skill?ref=gorillasun.de): having an AI powered coding assistant conjure up a fully working prototype at the snap of a finger feels like having superpowers—what previously took several hours now can be done in a matter of minutes. However, it all comes crumbling down when the smart assistant also hallucinates an esoteric bug, that it simply can't solve on its own again. When this happens, and the code spirals out of control, you're ultimately left with no other choice than jumping into the thicket and figure it out on your own.
A recent article by Steve Sewell describes this beautifully, as it perfectly captures this experience. Steve also provides a useful graphic to illustrate the problematic at hand:

The beautiful thing here is that it makes dev skills just that much more valuable—only if you have the necessary knowledge will you be able to go in and fix whatever is at the root of this *pit of death*. Also, let's not even get started talk about building maintainable codebases.
**2 —** [**The Death of the Stubborn Developer**](https://sourcegraph.com/blog/the-death-of-the-stubborn-developer?ref=gorillasun.de): another installment in the recent surge of articles discussing the impact or **Chat-Oriented Programming, or CHOP** as the author Steve Yegge calls it, on the programming landscape. The main problematic that CHOP introduces is that it automates much of the trivial tasks that previously were handed to junior devs, consequently breaking the *circuit* through which junior devs traditionally gain experience.
But the danger isn't limited to just those that are at the start of their career, but also those in higher positions, if they are reluctant to adopt the chat driven paradigm. This makes me think of something John Maeda stated about the transformative effect of AI, that I think is very relevant here.
> The good programmers will only get better and the novice programmers will have a chance at creating computational works that would have been previously impossible for them to achieve in their lifetime.
[The death of the stubborn developerHow stubborn developers are getting left behind by refusing to adopt chat-oriented programming (CHOP) as their primary development approach.Sourcegraph](https://sourcegraph.com/blog/the-death-of-the-stubborn-developer?ref=gorillasun.de)
The key take-away: developers and companies must adapt to CHOP to stay competitive in the evolving software landscape, as it represents a major shift in how coding is done today and in the near future.
## Music for Coding
This week I've been listening nonstop to *Sempiternal*, Bring Me the Horizon's fourth studio album. It's definitely on the heavier side and might not be for everyone, but I found it incredibly refreshing. From what I’ve read, the album is quite polarizing actually—it marks a major shift in the band’s sound, with them adopting a more melodic approach. I can’t speak to the contrast with their earlier work since I have yet to listen to their other albums, but this one really resonated with me:
And that's it from me—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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've got also got a discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **If you've read this far, thanks a million!** If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:
[Gorilla Newsletter 82Punch Out Model Synthesis - Analytical Anti-Aliasing - Mathematical Art Exhibition - The Aesthetics of Source Code - Graphics Programming Conference 2024 Recordings - RYBitten - Painting with Plotters - Advent of Code - Native Dual Range Input - Creators vs. AIGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-82)
And a backlog of all previous issues can be found here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 82
URL: https://www.gorillasun.de/blog/gorilla-newsletter-82/
Last updated: 2024-12-09T06:00:23.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 82nd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***Queue the news*** 👇
## All the Generative Things
**1 —** [**Punch Out Model Synthesis**](https://zzyzek.github.io/PunchOutModelSynthesisPaper/?ref=gorillasun.de): **Punch Out Model Synthesis (POMS)** is a new constraint based method for automatically creating tile-grids, similarly to what the Wave Function Collapse (WFC) algorithm accomplishes. By providing an initial tilemap it can arrange these tiles in a logical manner, lining them up in such a way that they match at the edges, resulting in congruent tile grids.


Given a tile constraint set, find a realization respecting those constraints in a large tiled grid. Here, the tile constraint set is from the **Pill Mortal* tile set. Punch Out Model Synthesis is run, progressively realizing sub-blocks and reverting regions or eroding resolved boundaries as a backtracking measure when it fails to find a sub-block realization.
POMS works differently from WFC. The WFC algorithm tries to fill in the entire grid in one go, choosing the "best" tile for each spot based on probabilities, causing it to get stuck if it has no way to resolve problematic spots. When that happens, WFC has to restart the entire process. POMS, on the other hand, is more flexible in that regard; as the animation above reveals, the algorithm doesn’t need to start over if it runs into trouble—instead, it just "punches out" the problematic area and reworks that area.
[Punch Out Model Synthesis: A Stochastic Algorithm for Constraint Based Tiling GenerationPunch Out Model SynthesisZ. Zzyzek](https://zzyzek.github.io/PunchOutModelSynthesisPaper/?ref=gorillasun.de)
As the results section informs us, this makes POMS better for larger grids or cases where the rules are complex, since it can work with fewer initial assumptions about the grid.
*I'm highlighting this one as the top feature this week since it was directly dropped over in the discord by the author themself, the mysterious Z. Zzyzek; about whom I couldn't really find much except for their Github—*[*here's the repo for POMS*](https://github.com/zzyzek/PunchOutModelSynthesis?ref=gorillasun.de)*. Super cool stuff, thanks for sharing!*
**2 —** [**Analytical Anti-Aliasing**](https://blog.frost.kiwi/analytical-anti-aliasing?ref=gorillasun.de): In computer graphics aliasing occurs when digital images display jagged, stair-stepped edges, in this setting also referred to as ***jaggies***, instead of smooth lines, especially on diagonal or curved edges. This happens because there's simply no way to actually display a smooth diagonal line or curve on a display that's made out of a grid of square pixels. With anti-aliasing we refer to a family of techniques that aim to remedy this problem, or at least these visual artifacts. Here's an example:

In anti-aliasing we often try to soften harsh edges by blending the colors of adjacent pixels, just like you see in the above pic, we added additional gray pixels adjacent to the black ones to trick our brain into seeing a smoother curve. This one's an exaggerated example, on higher resolutions it makes a huge difference. Fun fact, when you draw graphics to the canvas with P5 (which I think a lot of you use) it automatically applies an anti-aliasing filter to the canvas. The function [noSmooth()](https://p5js.org/reference/p5/noSmooth/?ref=gorillasun.de) lets you turn it off; sometimes that can be used for creative effects at lower resolutions!
If you're now curious about how these algorithms work, and want to see some of the different flavours that they come in, then this anti-aliasing magnum opus by Wladislav Artsimovich (aka Frostkiwi) is your entry point (and maybe even the only article you'll need to read on the topic):
[AAA - Analytical Anti-AliasingHow to fix jaggies the analytical way with some juicy secretsAnalytical Anti-AliasingWladislav Artsimovich](https://blog.frost.kiwi/analytical-anti-aliasing/?ref=gorillasun.de)
After a thorough introduction to all the different anti aliasing techniques that have been devices over the past decades, the article explains analytical anti-aliasing which approaches the problem backwards—but I'll leave it to Wladislav to provide a break down. Fantastic article, chapeau!
**3 —** [**Mathematical Art Digital Exhibition (MADE) at Queens College**](https://www.qc.cuny.edu/academics/math/made-gallery/?ref=gorillasun.de): kicking off for the first time year, MADE is an initiative to highlight the artistic dimension of mathematics, showcasing 22 different artworks that are inspired and directly underlined by mathematical notions.


I particularly enjoyed the texts accompanying each artwork, shedding light on how each of the individual pieces were created. Among good company, we unsrprisingly find Simone Conradi, who you might be familiar with from issue [61](https://www.gorillasun.de/blog/gorilla-newsletter-61/) & [66](https://www.gorillasun.de/blog/gorilla-newsletter-66/#complex-roots-of-polynomials-as-generative-art) of the newsletter; he creates really mesmerizing parametric art by visualizing the complex roots of polynomial functions. In issue 66 I even took a stab at recreating them, but only with moderate success.
**4 —** [**The Aesthetics of Source Code**](https://source.enframed.net/?ref=gorillasun.de): This thesis by Pierre Depaz, from the Université Sorbonne Nouvelle, investigates the formal characteristics of code, and how its aesthetics play a part in the way it's written and understood in different fields by diverse groups of people. The text inspects the ***art*** of programming through different lenses, and explores what we actually mean with ***beautiful*** code.
[The aesthetics of source codeThe aesthetics of source code is a PhD thesis on the role that formal presentation plays in machine languages.](https://source.enframed.net/?ref=gorillasun.de)
Skimming through some of the chapters reveals that it's a fascinatingly unique text, that I can only recommend to all of you that are subscribed, assuming that you likely have an interest in the art-centric avenues of code.
Towards the end of the Thesis, Pierre relates the introduced notions to Nelson Goodman's theories on Aesthetics. Goodman is a philosopher who thought about art as a "cognitively effective symbol system", which pretty much describes what code really is. If you want to learn a bit more about that, I found this [page](https://plato.stanford.edu/entries/goodman-aesthetics/?ref=gorillasun.de#TheSymSysLanArt) to be a really good introduction.
**5 —** [**Graphics Programming Conference Recordings**](https://www.youtube.com/@GraphicsProgrammingConference/videos?ref=gorillasun.de): Some months ago I mentioned the Graphics Programming Conference, that then took place in Breda this November. This past week I discovered, in a relatively timely manner, that the recordings were uploaded to YouTube. And it's an absolute treasure trove of information.
The talks feature devs of some of highly acclaimed video games that came out this year, such as the wonderful Tiny Glade, Baldur's Gate 3, Ghost of Tsushima, and many more—hence if you're curious about the cutting edge techniques that sit behind the games of today work under the hood, these are a must watch.
**6 —** [**RYBitten: Color tool inspired by Johannes Ittens'**](https://github.com/meodai/rybitten?ref=gorillasun.de): back in issue [#56](https://www.gorillasun.de/blog/gorilla-newsletter-56/) of the newsletter I featured our favorite color hacker David Aerne, with his project titled RYBitten—while the website is still currently a work in progress, the API has now been released and is publicly available.
[GitHub - meodai/RYBitten: Implementation of pseudo RYB color conversions derived from Johannes Itten’s color wheel.Implementation of pseudo RYB color conversions derived from Johannes Itten’s color wheel. - meodai/RYBittenGitHubmeodai](https://github.com/meodai/rybitten?ref=gorillasun.de)
If you need a quick refresher what it's about, it's essentially a color library that allows you to convert RGB colors to a custom RYB color space based on Johannes Itten's idea of the color wheel—I recommend reading the previous issue to learn a bit more about it. If you want to get access to the tool in the browser when it comes out, you can now sign up to a waiting list [here](https://rybitten.space/?ref=gorillasun.de). Excited to see how it turns out!
**7 —** [**Licia He's Painting with Plotters Course launching Dec. 15th**](https://x.com/Licia%5FHe/status/1861795835131887791?ref=gorillasun.de): And to wrap up this section, there's an update regarding Licia He's plotter course: the release date is now set! And while I still am a plotterless individual, I am still excited for what Licia has to teach us!
[](https://x.com/Licia%5FHe/status/1861795835131887791?ref=gorillasun.de)
[Link to Tweet](https://x.com/Licia%5FHe/status/1861795835131887791?ref=gorillasun.de)
## Tech & Web Dev
**1 —** [**Advent of Code**](https://adventofcode.com/?ref=gorillasun.de)**:** *Looking at the calendar, I can’t help but wonder—how is it already the 9th of December?*
It’s that time of year when we’re all just counting down the days to the holiday break... and to make the wait feel just a little shorter, we’ve conjured up all sorts of clever (and slightly chaotic) ways to pass the time; I call it the **Advent-pocalypse**. From code challenges to creative countdowns, there's more than a few festive advent-inspired events happening in the programming world. Pretty much every programming language has its own version of a programming advent-calendar, a quick google should probably help in that regard.
[](https://adventofcode.com/?ref=gorillasun.de)
Naturally, top of the list is the iconic Advent of Code, that's been running since 2015 and just been getting more popular with every passing year. For the 25 days leading up to Christmas you're presented each day with a different programming puzzle for you to solve. You can then submit your answer directly on the website—which also grants you a spot on the leaderboard if you're among the fastest to solve the puzzle, but it's kinda really competitive. 😅
**2 —** [**Native Dual-Range Input**](https://muffinman.io/blog/native-dual-range-input/?ref=gorillasun.de): Muffin Man has been featured before on the newsletter for his cool generative art, recently published an article and a repo revolving around a cool dual slider input, built with vanilla native browser tech. It's essentially a slider track with two heads that let you easily specify a range of values instead of having to input those two extremes individually—the blog post explains the very little 50 lines of code behind how it works:
[Native dual-range inputTwo native range inputs and fifty lines of JavaScript to make them work together.Muffin Man](https://muffinman.io/blog/native-dual-range-input/?ref=gorillasun.de)
You can find the github repo with the code that makes it possible [here](https://github.com/stanko/dual-range-input?ref=gorillasun.de).
**3 —** [**Investigating Malicious Hardware with Industrial CT**](https://www.lumafield.com/article/investigating-malicious-hardware-with-industrial-ct?ref=gorillasun.de): this one isn't directly programming related but was nonetheless super interesting. Lumafield is a company that provide industrial grade CT (basically 3D x-ray) services for companies to get scans of their products and see what their innards look like.
[Last year they inspected Apple's USB-C cable](https://www.lumafield.com/article/usb-c-cable-charger-head-to-head-comparison-apple-thunderbolt-amazon-basics?ref=gorillasun.de), that sparked outrage with its $129 price tag—their scans revealed the elegant, almost microscopic, design that's hidden inside of it. If it warrants the price tag is still ultimately up to the consumer, but it showed that it's not comparable to an Amazon Basics cable.

Hidden elements of malicious hardware such as the O.MG Cable escape the scrutiny of most inspection tools, but industrial CT yields comprehensive volumetric data that can help stop threats in their tracks.
In this most recent article they investigate the curious O.MG Cable, an innocent looking USB cable that's designed for malicious purposes, from what I understand it's almost like a mini computer embedded in the socket of the cable. The article goes into detail what's going inside of it. The also share an interview with the engineer and designer behind the cable.
**4 —** [**Emoji 1997 SVG Icons**](https://buninux.gumroad.com/l/emoji1997?ref=gorillasun.de): And to cap off the Tech & Web Dev section this week, here's *the original Softbank JP Emoji set from 1997, restored as SVG icons for Figma and Sketch*. They look cool and I might end up using them for some projects! Licensed under CC BY 4.0.
## AI Corner
**1 —** [**Creators vs AI: Navigating the Copyright Crisis**](https://journal.everypixel.com/creators-vs-ai-navigating-the-copyright-crisis?ref=gorillasun.de): as generative AI continues to grow more powerful, the copyright law surrounding the development of these models remains unsolved. The current state of affairs is that the companies at the forefront of it are raking in large amounts of profit, and that generally on the back of the small creator's efforts, while simply claiming that these endeavors fall under fair use. In a recent article of his Dmitry Shironosov tackles this issue, and tries to get to the root of the conflict.
[Creators vs. AI: Navigating the copyright crisis - Everypixel JournalIn this blog post, we share thoughts on legal disputes between tech companies and rights holders from the entrepreneur, investor, CEO & co-founder of Everypixel Dmitry Shironosov. After a few years of euphoria over the potential of AI and admiration for increasingly complex technologies and solutions, AI is now frequently at the center of legal disputesEverypixel Journal - Your Guide to the Entangled World of AIDmitry Shironosov](https://journal.everypixel.com/creators-vs-ai-navigating-the-copyright-crisis?ref=gorillasun.de)
Dmitry points out the mutual reliance between creators and AI: creators provide the data AI needs, and AI can ultimately be a powerful tool to enhance their work. To him the solution is finding a compromise in the meantime, while the involved copyright laws are revisited and adjusted, so that creators also obtain a share of the generated revenue. He presents some examples where this has worked out.
He also states, that it isn't a sustainable solution however, especially in certain industries where AI completely outperforms manual labor; for instance the stock image market that's now to large extents been rendered obsolete.
**2 —** [**The 70% Problem: Hard Truths about AI-assisted Programming**](https://addyo.substack.com/p/the-70-problem-hard-truths-about): Addy Osmani is back with another great article, this time about something we actually talked about last week (and on several other occasions), it's the discussion around whether AI helps us develop projects faster or not. AI can often get us 70% of the way there, but the resulting code is usually not really by any means production ready. Adam stresses that programmers need to stay true to their standards in the advent of AI-powered programming assistants, but also ends with the positive note that programmers are likely on the much safer end of the spectrum of obsolescence.
## Music for Coding
Luiz Bonfá (1922–2001) was a Brazilian guitarist, composer, and singer, renowned for his role in shaping the bossa nova genre. He gained international acclaim for his contributions to the soundtrack of the 1959 film *Black Orpheus*, particularly with the iconic compositions *Manhã de Carnaval* and *Samba de Orfeu*.
His 1972 album *Introspection* (1972) showcases his virtuosic guitar skills in a deeply personal and experimental work and is a departure from his earlier bossa nova roots. For *Introspection* he starts incorporating elements of jazz, folk, and avant-garde elements; the album’s sparse, contemplative sound invites the listener to an intimate musical journey.
And that's it from me—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](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've got also got a discord now, let me shamelessly plug it here again.](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) **If you've read this far, thanks a million!** If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:
[Gorilla Newsletter 81Gearing up for Genuary 2025 - Threading Knots through the Menger Fractal - Electric Dreams at Tate - Anna Lucia’s Talk at Responsive Dreams - Sub-Pixel-Art A New Web Performance Score - Hosting a Website on Bluesky - 1kx Botto Analysis - On not using CopilotGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-81)
And a backlog of all previous issues can be found here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 81
URL: https://www.gorillasun.de/blog/gorilla-newsletter-81/
Last updated: 2024-12-02T06:00:30.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 81st 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
---
**Before we get into the news this week, I want to use the small reach I have with the newsletter to share the current DMCA situation that OpenProcessing is facing.**
Roughly a month ago Sinan from OpenProcessing received a take down notice from ARS—short for the [Artists Rights Society](https://arsny.com/about/?ref=gorillasun.de), that describes itself as *the preeminent copyright, licensing, and monitoring organization for visual artists in the US.*
Currently it appears they are also protecting Vera Molnár's work, which was the cause for the take-down notice that Sinan that runs OP received; it's no surprise that her work is a big inspiration to many in the creative coding scene, myself included.
[](https://x.com/openprocessing/status/1851232065397596445?ref=gorillasun.de)
[Link to Post](https://x.com/openprocessing/status/1851232065397596445?ref=gorillasun.de)
It's a bit of an absurd situation overall, I'm certain that Molnár herself would have celebrated these works rather than have them taken down. It's unclear at this point if much can be done to have this notice retracted, from an [update](https://x.com/openprocessing/status/1862537621215273145?ref=gorillasun.de) Sinan posted it seems that it was not possible to prevent it.
---
*That said, hope that you're all having a good start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
**1 —** [**Genuary 2025 Page is Up**](https://genuary.art/?ref=gorillasun.de) 🔗: and as always, Piter has outdone himself with the animated banner, this time the headline seamlessly emerges from a tessellated and shattered polygonal region that iteratively fills in the canvas.
[](https://genuary.art/?ref=gorillasun.de)
[Link to Genuary Page](https://genuary.art/?ref=gorillasun.de) | Prompt: Disregard December and skip to January
And just like in previous years, [Piter shares the code for us to learn from](https://genuary.art/logo.js?ref=gorillasun.de). The prompts are not yet finalized, but I can definitely say that I'm already waiting for them with great anticipation. At this point my daily coding chops are quite rusty, and from what it looks like right now, the start of 2025 is going to be quite loaded in terms of work—so I'm not entirely certain if I'll be able to manage the dailies this year! How are you feeling about it?
**2 —** [**Finding Knots in the Menger Sponge**](https://www.quantamagazine.org/teen-mathematicians-tie-knots-through-a-mind-blowing-fractal-20241126/?ref=gorillasun.de) 🪢: Back in 2021 Malors Espinosa and three of his high school students managed to make a significant breakthrough in mathematics by revisiting a century-old theorem. ***They proved that all knots can be found within a fractal called the Menger sponge.***
In mathematics, a **knot** is a closed loop in 3D space, like a piece of string twisted and tangled, with its ends joined so it has no breaks or loose ends. Knots can have intricate shapes but are defined by their ability to loop back to the starting point without intersecting themselves. They are studied to understand properties like how they can be untangled or represented.
[](https://en.wikipedia.org/wiki/Knot%5F%28mathematics%29?ref=gorillasun.de)
A table of all [prime knots](https://en.wikipedia.org/wiki/Prime%5Fknot?ref=gorillasun.de "Prime knot") with seven [crossings](https://en.wikipedia.org/wiki/Crossing%5Fnumber%5F%28knot%5Ftheory%29?ref=gorillasun.de "Crossing number (knot theory)") or fewer (not including mirror images)
The **Menger sponge** on the other hand is a fractal, a shape made by repeating a simple process infinitely. Starting with a cube, you divide it into 27 smaller cubes (like a Rubik’s cube), remove the middle cube, and also the middle cube of each face. This leaves 20 smaller cubes. Repeating this process infinitely creates a sponge-like structure with exponentially increasing pores, giving it counterintuitively paradoxical properties: **its volume shrinks to zero, but its surface area grows infinitely**.

After Karl Menger had come up with the fractal, he proved in 1926 that the sponge could in fact contain any conceivable curve, like lines, circles, or tree-like structures. Meaning that these curves could follow the sponge’s intricate contours without breaking or intersecting themselves. For this reason, Menger called the sponge a **“universal curve.”** However, at the time he didn’t consider more complex objects like **knots**—tangled loops equivalent to a circle in that they have no loose ends and always return to their starting point.
This is basically what Malors Espinosa explored with his students, asking if the sponge could contain all possible knots, while keeping their twists and loops intact. Meaning that the knots could exist fully within the sponge’s structure without falling into its empty holes. The students succeeded ultimately succeeded at this, and extended Menger’s original theorem; in the aftermath their work was praised for revealing a new relationship between knots and fractals.
[Teen Mathematicians Tie Knots Through a Mind-Blowing Fractal | Quanta MagazineThree high schoolers and their mentor revisited a century-old theorem to prove that all knots can be found in a fractal called the Menger sponge.Quanta MagazineGregory Barber](https://www.quantamagazine.org/teen-mathematicians-tie-knots-through-a-mind-blowing-fractal-20241126/?ref=gorillasun.de)
Yet again, it's none other than Dave Whyte that made the [animated banner](https://x.com/beesandbombs/status/1861463975927382093?ref=gorillasun.de) for the article.
**3 —** [**Electric Dreams: How Artists Pioneered Tech Art Before the Internet**](https://www.tate.org.uk/whats-on/tate-modern/electric-dreams?ref=gorillasun.de) 🔌💭: a new exhibition at Tate Modern celebrates the early innovators of optical, kinetic, programmed, and digital art between the 1950s and the early 1990s, and offers a rare opportunity to experience vintage tech art in action. The exhibition showcases the artists who experimented with early home computing systems to mediate machine-made art and that imagined the visual language of the future.

Suzanne Treister *Fictional Videogame Stills/Are You Dreaming?* 1991
Of course also make sure to check out [Le Random's interview with Suzanne Treister](https://www.lerandom.art/editorial/suzanne-treister-on-critical-futurism?ref=gorillasun.de), one of the artists featured in Electric Dreams.
**4 —** [**The Women Who Pioneered Early Computer Art**](https://news.artnet.com/art-world/women-who-pioneered-computer-art-2570283?ref=gorillasun.de) [💻](https://news.artnet.com/art-world/women-who-pioneered-computer-art-2570283?ref=gorillasun.de): a new ArtNet article shines a light on six of the unsung early heroes that paved the way for the computer art of today, and that contributed meaningfully to the field in the 1960s and 70s.

Samia Halaby in her studio. Photo: Lara Atallah. | [Link to Article](https://news.artnet.com/art-world/women-who-pioneered-computer-art-2570283?ref=gorillasun.de)
**5 — Anna Lucia's talk at Responsive Dreams** 🧣: I was happy to see that Anna Lucia's talk at the Responsive Dreams festival was actually recorded and uploaded to YouTube. It's a great intro to her work, what inspires her generative art, and her most recent series Oefenstof, also giving an overview of some of the projects that she's tackled over the past couple of years.
She explains that she draws inspiration from traditional crafts like weaving, quilting, and embroidery, and explores how these physical practices can be translated into an algorithmic form. Anna describes her process as iterative and playful, balancing between structure and randomness when refining her ideas and embracing unexpected outcomes when they occur.
Moreover she sees her work as a bridge between the digital and the physical, and as means to highlight and honor the historical and cultural significance of textiles, simultaneously experimenting with modern computational tools—that share many properties to
**6 — How to make Sub-Pixel Art** 🟥🟩🟦: In a recent video Japhy Riddle shows us how to make sub-pixel art—a thing that admittedly isn't really a notion outside of his video. Japhy shows that it's possible to turn on and off the individual color channels of pixels, and in this manner hacking the screen's resolution to be larger than it technically is. Japhy also demonstrates how to achieve this with photoshop.
## Tech & Web Dev
**1 —** [**Designing a New Web Performance Score for Fair and Meaningful Comparisons**](https://csswizardry.com/2024/11/designing-and-evolving-a-new-performance-score/?ref=gorillasun.de) 🌐: web performance consultant Harry Roberts designed a new web performance scoring system to simplify competitor analysis for clients and stakeholders. Recognizing the limitations of Core Web Vitals for direct comparisons across websites, he sought a way to create a single, comparative score that respects both the thresholds (e.g., Good, Needs Improvement, Poor) and the continuity of metrics.
The new scoring system, called CrRRUX, simplifies web performance evaluations into a single number while balancing simplicity and fairness. It achieves this by normalizing Core Web Vitals metrics to a comparable scale, aggregating them, and incorporating thresholds and passingness for a more representative view. The method enables intuitive and accurate cross-site performance comparisons, making it useful for both technical and non-technical audiences.
[Designing (and Evolving) a New Web Performance Score – CSS WizardryWhy design another new performance score?! Good question…CSS WizardryHarry Roberts](https://csswizardry.com/2024/11/designing-and-evolving-a-new-performance-score/?utm%5Fsource=thecollectivenewsletter.beehiiv.com&utm%5Fmedium=newsletter&utm%5Fcampaign=the-collective-887)
**2 — Bluesky sees massive influx of new users**:— t̶o̶ ̶a̶ ̶l̶a̶r̶g̶e̶ ̶e̶x̶t̶e̶n̶t̶ mainly due to the political events that transpired earlier this month. This sudden growth has forced the platform to drastically increase their moderation team, they address this in a massive post of theirs.
[](https://bsky.app/profile/safety.bsky.app/post/3lbsqm7kfns23?ref=gorillasun.de)
[Link to Post](https://bsky.app/profile/safety.bsky.app/post/3lbsqm7kfns23?ref=gorillasun.de)
**3 —** [**How to Host Websites on Bluesky**](https://danielmangum.com/posts/this-website-is-hosted-on-bluesky/?ref=gorillasun.de) 🌐: turns out that the decentralised protocol that Bluesky is built on, namely the AT protocol, allows for creative use cases, such as hosting a simple website. Daniel Magnum reports on how he hacked the protocol for this purpose in an article of his.
Bluesky primarily uses two data types: **records** (structured data like posts) and **blobs** (unstructured files like images or HTML pages). While blobs are typically hidden unless linked to records, Daniel managed to upload and make a webpage accessible by creating a custom record type, bypassing the usual constraints of Bluesky’s system.
**4 —** [**Paul Butler's Treeverse, a Bluesky Conversation Viewer**](https://github.com/paulgb/treeverse?ref=gorillasun.de) 🌳: another cool Bluesky thing I came across, from 2014-2023, Treeverse was a bookmarklet and later Chrome/Firefox extension for visualizing Twitter conversations as exploded tree views. That version was killed by changes to Twitter's API, Paul Butler has however revamped the tool since and made it to work with the Bluesky API.

[Link to Repo](https://github.com/paulgb/treeverse?tab=readme-ov-file&ref=gorillasun.de) | Hovering over the tree reveals the conversation on the right sid
**5 —** [**Art Blocks on On-Chain Preservation for Genart**](https://www.artblocks.io/curated/articles/true-on-chain-preservation-a-four-year-journey?ref=gorillasun.de) 🎨: for the occasion of Art Blocks' 4 year anniversary, they made a big announcement that now 90% of projects across its ecosystem can be fully generated from the blockchain—simply using a web browser. While projects were already on chain previously, supporting scripts, and external assets/libraries still had to be hosted off-chain. This has now been amended, simultaneously being open sourced, and marking a step forward in genart preservation.
**6 —** [**Botto: Redefining the Concept of Art through AI, Token Networks, and Community Governance**](https://mirror.xyz/1kx.eth/wxdYULL5-mu2WYrBt6IKMhQLQ0ohzebjrWxzMxzkGm4?ref=gorillasun.de) **🤖:** In a recent analysis, the crypto investment firm 1kx, shares why Botto is one of the most important digital art projects of the past decade and explains its facets in detail, from an investment POV. Botto is a conception by Mario Klingemann (Quasimondo), and to put it mildly, has made a splash in the art world over the past couple of years.
Botto combines AI, blockchain technology, and community governance to not just power a decentralized autonomous artist (DAA), but essentially to create a sustainable and autonomous artistic entity. It essentially emerges as a community driven entity that's challenging traditional notions of artist-hood, and introduces a new blockchain paradigm that mediates a form of multiplayer creativity.
**7 —** [**David Aerne's CSS Color Shooter**](https://t.co/oKehuna84W?ref=gorillasun.de) **🔫**: our favorite color hacker shared an old CSS experiment where mouse clicks shoot out colorful splatters across the canvas. By popular demand he shares a [codepen](https://x.com/meodai/status/1861483145419239458?ref=gorillasun.de) with the code that makes it happen.
[](https://x.com/meodai/status/1861068150642540663?ref=gorillasun.de)
[Link to Post](https://x.com/meodai/status/1861068150642540663?ref=gorillasun.de)
## AI Corner
**1 — Evolving an AI worm for 1000 years** 🪱: cozmouz's YouTube channel revolves in its entirety around training AI agents to perform different tasks, such as outrun the police, do parkour, or spar in boxing matches. In a recent video that went quite viral, he evolved an worm-like creature to seek and move towards a target in its vicinity.
At some point I'd like to try and recreate one of these experiments—these videos always make it look so fun an easy— ***famous last words...*** 😄
**2 —** [**On not using Copilot**](https://macwright.com/2024/11/20/not-using-copilot?ref=gorillasun.de) [🧑✈️](https://macwright.com/2024/11/20/not-using-copilot?ref=gorillasun.de): Tom MacWright questions if our AI powered coding assistants truly lead to productivity gains or just shift the dynamics of labor. Are they actually saving us time, or are we simply doing a different kind of work? And from my own experience this thought resonates with me; overall my sentiment is that writing code via an AI assistant just becomes a different kind of programming.
## Music for Coding
Guys, it's happened... AI won. The playlist I shared last week was actually AI generated—and I absolutely didn't notice 😅 let's amend that this week (not that I mind AI music, but prefer featuring artists in the flesh).
This week I enjoyed the second album from Colorado based folk/alt-rock band Richy Mitch & The Coal Miners, where the YouTube version comes *with an exclusive track on no other streaming service* as the description states! At 18k views this album is heavily underrated, it's easily one of the best things I've listened to in the past couple of months after sifting through more than a couple dozen albums:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans! Oh and btw, before I forget it, here's the official article that Trilitech posted over on the official Tezos website about the workshop—it's an absolute honor to be featured on there.
[Creative Coding on Tezos: A WorkshopA fusion of coding and art took place at the Trilitech London office last week, showcasing the Tezos ecosystem’s appetite for exploring diverse creative mediums.TRILITECHTezos](https://spotlight.tezos.com/creative-coding-on-tezos-a-workshop/?ref=gorillasun.de)

Spreading the good word of creative code, one of the few pics where I look passably photogenic 😆
> 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 over on [TwiX](https://x.com/gorillasu?ref=gorillasun.de), [Mastodon](https://mastodon.social/@gorillasun?ref=gorillasun.de), or [Bluesky](https://bsky.app/profile/gorillasun.bsky.social?ref=gorillasun.de) and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**And if you've read this far, thanks a million!** If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:
[Gorilla Newsletter 80Matt DesLaurier’s BITFRAMES - Rayhatching with Piter Pasma - SVG Exporter for P5 - Random Mazes with JS - Everything in Math is a Set - Analysis of Title Drops in Movies - CSS New Logo - Shopify BFCM Animation Breakdown - LLMs For Curious Beginners - LLMs & ChessGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-80)
And a backlog of all previous issues can be found here:
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 80
URL: https://www.gorillasun.de/blog/gorilla-newsletter-80/
Last updated: 2024-11-25T06:00:22.000Z
**Hey everyone, after a much needed two week break—I'm back!**
You'll quickly notice that this week's issue has a bit of a different format! Shorter than usual, but still just as many interesting things as before. If you're curious about the ***why*** for this change, I share some reasons and thoughts on this matter at the end of the post.
> That said—welcome back to the **80th** 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.***
[We also have a discord server, come and say hi!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
Let's get into the news👇
### All the Generative Things
**1 — Matt DesLauriers' BITFRAMES**: arguably the biggest thing that's happening in genart this week. BITFRAMES is an open source project and crowdfund, where 100% of the proceeds support the creation of [a generative art documentary](https://www.generativefilm.io/?ref=gorillasun.de) that Matt is working on simultaneously.
I actually met Matt briefly in Berlin for the Genart Summit, and by chance chatted with one of the two production people that were accompanying him, telling me that they were working on a movie—it was mentioned that it was a documentary. It makes sense now though, they were likely interviewing some of the pioneers that were present at the summit.
The project is really interesting—both conceptually and how it is technically executed. Matt built his own [custom project page](https://bitframes.io/?ref=gorillasun.de), from which collectors can create their own individual editions and then mint them. Matt also shared some tech notes on the project in this [tweet](https://x.com/mattdesl/status/1860451567163576817?ref=gorillasun.de). Of course it's also aesthetically really nice, here's two outputs I saw on my timeline:

[Link to Tweet #1](https://x.com/lerandomart/status/1860115943898423785?ref=gorillasun.de) | [Link to Tweet #2](https://x.com/MattKaneArtist/status/1860024097000018060?ref=gorillasun.de)
If you want to learn more about the project, Le Random naturally already covered Matt's documentary effort in a recent article of theirs, where Monk sits down with Matt to talk about [a Generative World](https://www.lerandom.art/editorial/matt-deslauriers-on-a-generative-world?ref=gorillasun.de).
**2 — Piter Pasma on Rayhatching** 🧵: another accomplished generative artist that I got to chat with during the Berlin summit is Piter Pasma—back then he gifted me a mini print of his [Epihyperderpflardioids](https://www.instagram.com/piterpasma/p/B-PDx3HnHeK/?img%5Findex=1&ref=gorillasun.de), and told me a bit about how they work. Now it sits on my desk where I often admire when I'm procrastinating.
To get to the point though, recently the banner for warpcast's genart channel has been on a rotation, with artists throwing their artwork into the ring—this week it's been one of Piter's rayhatched pieces that adorns the top of the channel:
[](https://warpcast.com/piterpasma/0xcc07fd8b?ref=gorillasun.de)
For the occasion he posted a big [thread about how he made the rayhatched piece](https://warpcast.com/piterpasma/0xcc07fd8b?ref=gorillasun.de). The thread links to many useful articles, one of which is Piter's own, which I wasn't aware of previously; published back in October 2022 it explains [the evolution of his rayhatching algorithm](https://www.fxhash.xyz/article/rayhatching-evolution?ref=gorillasun.de) and provides some big insights into how the he iteratively refined it. If you've been meaning to implement something similar, this is your starting point.
**3 — A Plotter-Oriented SVG Exporter for p5.js** ✏️: Golan Levin released a SVG exporting library for our beloved P5 that is in essence directly meant to be used for plotter work—specifically tailored for path-based vector output devices like the Axi-Draw. One of the most popular articles on the blog is about [exporting P5 sketches as SVG](https://www.gorillasun.de/blog/svg-export-for-p5-and-js-rendering-context/), hence this is probably of interest to you guys.
[](https://github.com/golanlevin/p5.plotSvg?ref=gorillasun.de)
**4 — Generating Random Mazes with JavaScript** [🔗](https://cloudfour.com/thinks/generating-random-mazes-with-javascript?ref=gorillasun.de): Paul Herbert wrote a tutorial for generating random mazes with JS, in which he essentially programs a random walk, with backtracking, that finds a path through a grid, and then constructs a maze around it.

I really loved these hand-drawn sketches that Paul included. The last one gives a pretty good idea of how the algo works—you basically create branching paths for the main one through the maze.
Yours truly has written something similar, not for generating mazes per se, but that you could equivalently use for that purpose: [An Object Oriented Approach to Random Walkers](https://www.gorillasun.de/blog/an-object-oriented-approach-to-random-walkers/).
**5 — Everything in Math is a Set** 📐: this one's for the math nerds. Mateusz Kubusok wrote a super, super in depth [article that explains how any mathematical object can be defined using sets](https://kubuszok.com/2018/in-the-beginning-there-was-the-empty-set/?ref=gorillasun.de), simply by "*wrapping up empty sets and merging it with more wrapped empty sets in various degree of wrapping"* as he puts it.
**6 — Creating Your Own Programming Language** 💻: In a recent Computerphile video, Dr Laurie Tratt teaches us how to make our own programming language—who doesn't want to program their own programming language at some point?
### Tech & Web Dev
**1 — An Analysis of Title Drops in Movies** 🎬: Dominikus Baur is yet another cool dude I met in Berlin—joined by Alice Thud, he published a large-scale data visualization of title drops in 73,921 movies that have been released over the past 80 years.
[Full of Themselves: An analysis of title drops in moviesA title drop is when a character in a movie says the title of the movie they’re in. Here’s a large-scale analysis of 73,921 movies from the last 80 years on how often, when and maybe even why that happens.Dominikus Baur + Alice Thudt](https://www.titledrops.net/?ref=gorillasun.de)
A title drop is essentially when the the dialogue of the movie contains the name of the movie itself. It's a really fascinating article, and an impressive feat of work; the website even reached top spot on Hacker News!
**2 — CSS got a New Logo** 💻: After well over a decade of using the “CSS3” badge, there’s now a new CSS logo that fits nicely next to the JS, TS and friends logo’s—[Kilian Valkhof provides an outline version](https://michaelcharl.es/aubrey/en/code/new-rebeccapurple-css-logo?ref=gorillasun.de). The backstory behind the logo's color —***namely #663399 rebeccapurple***—is surprisingly sad and heartwarming: It's named after Eric Meyer's daughter that passed away from a brain tumor at the age of 6.
[rebeccapurpleOn the proposal to add the named color rebeccapurple (equivalent to #663399) to the CSS specification.](https://meyerweb.com/eric/thoughts/2014/06/19/rebeccapurple/?ref=gorillasun.de)
**3 — How Shopify built its BFCM 2023 Globe** 🌐: Every year for Black Friday Cyber Monday (BFCM), Shopify puts together a real-time visualization of purchases made through Shopify-powered merchants worldwide—last year they represented this as a globe that would shoot fireworks out at the location where a purchase happened. Leading to this year's BFCM, they published an [in depth write-up of how it was done](https://shopify.engineering/how-we-built-shopifys-bfcm-2023-globe?ref=gorillasun.de).
[How We Built the BFCM 2023 Globe (2024) - ShopifyEvery year for Black Friday Cyber Monday (BFCM), we put together a real-time visualization of purchases made through Shopify-powered merchants worldwide. This year we’re cooking up something big, and in anticipation we wanted to show you how we built the globe last year. Video of BFCM 2023 Globe Besides going for better visuals, a big focus was performance. We’ve put together an interactive deep dive into how we built and optimized the 3D visuals using technologies such as Three.js and React-three-fiber. Before we jump in, here’s the globe with simulated data that you can play with. Arcs The arcs flying around are the most important component. Each one represents an order being placed in real time, and they travel from the merchant to the buyer’s location. These can be defined as a Bézier curve with 4 control points. Each point is a 3-dimensional vector. P0: located at start position P1: located 25% of the way between start and end P2: located 75% of the way between start and end P3: located at end position Arc height can be adjusted by moving control points P1 and P2 away from the surface. To render the arc, we create a mesh that is a strip of triangles moving along the curve. This gives us the ability to control thickness and have better flexibility for stylizing it with shaders. You’ll notice however that as you move the mesh around, it disappears from certain angles. We needed a way to make it always face the viewer. The solution was surprisingly simple. The red lines along the curve represent the tangent at those points. Taking the cross product of the tangent with the direction of the camera gives a new vector. This is used in the vertex shader to offset the position so the mesh always faces the viewer. To texture the arcs, the UVs of the mesh are defined with v going from 0 at the start to 1 at the end. So a vertex in the middle of theShopifyDiego Macario Bello](https://shopify.engineering/how-we-built-shopifys-bfcm-2023-globe?ref=gorillasun.de)
[Daniel Beauchamp also wrote a more condensed TwiX thread on it](https://x.com/pushmatrix/status/1856340314757206353?ref=gorillasun.de).
### AI Corner
**1 — LLMs For Curious Beginners** 🤖: Grant Sanderson shares a new video as a lighter-weight, but still substantive, intro to Large Language Models, complementing the more technical breakdowns of the underlying architecture that other videos of the channel cover.
**2 — Something weird is happening with LLMs and chess** ♟️: Making LLMs play chess is not a new idea—there's been a bunch of [hilarious attempts at matching up two different models](https://www.youtube.com/watch?v=FojyYKU58cw&ref=gorillasun.de) and letting them hallucinate all sorts of fantasy moves—but apparently [something strange is happening](https://dynomight.net/chess/?ref=gorillasun.de), according to Dynomight: surprisingly ***gpt-3.5-turbo-instruct*** beats all other models in its chess abilities! Dynomight also has a hunch for the why, but we'll have to wait for another article to get our answer here.
***And that pretty much wraps up the news this week. Now for some other stuff that I want to address 👇***
### So... why the new format?
***We are the architects of our own cages.*** If something doesn't work anymore—you change it. Simple as that.
I started this newsletter in search of a more sustainable way for producing a piece of writing every week, that still was valuable in some way to the blog's readership without it being a super in-depth researched tutorial. Back then I also had a lot more time on my hands. This hasn't been the case for the past couple of months or so, not really because of the work at fxhash—it's been a really great experience overall—but basically because the newsletter had started feeling like a chore rather than an enjoyable thing that I do on my weekends.
**I also have this really bad habit of overdoing things**. A newsletter's purpose is to provide a quick update about things, and also be an enjoyable read—however, I tried turning it into some sort of abomination that attempts to go in depth on several topics at once, and to somehow outdo myself every week.
Over the past weeks it started feeling like I was not really giving any one of the topics the attention it deserved—hence why I will not try to do that anymore, simply because it doesn't work, and isn't fun for me anymore. I know that for some of you guys it felt like a ***mixed bag of candies***, informing about a lot of new things at once, but I'd much rather reserve these writing juices of mine that I have left at the end of the week to go towards more in depths pieces and tutorials—which there has been a big lack of this past year. I want to change that in 2025\. 🤞
Moving forward, the newsletter will be more concise—I'll still share the same amount of links/things I find interesting throughout the week, but I'm imposing a stricter word limit on myself, and will not spend more than a morning/afternoon on writing it. I believe this new approach will still fulfill the same purpose in our creative coding niche, but with the advantage of giving me more time for the other endeavors that I want/should tackle. Like doing some more sketching again (I did some today 😄), posting more on social media, being active in the discord, and maybe even just going on an additional mental health walk occasionally. 😬
Anyway, let me know what you think about this new format—it'll likely change a little bit throughout in the coming weeks as I fine-tune it!
### What have I been up to?
While I took a break from the newsletter, I've still been quite busy—in the last issue that came out before this mini break I announced that I'd be traveling, and not just for fun, but for creative coding purposes! Friday the 8th of November I was kindly invited by Helge Rhodin, a professor, lecturer and researcher at the university of Bielefeld, to give a guest lecture for his Video Game Programming course and introduce the undergrads there to creative coding. Big thanks go out to Dave Pagurek for putting me in touch with Helge—[check out Dave's blog, he's got a few really cool posts](https://www.davepagurek.com/blog/creative-coding-2002/?ref=gorillasun.de)!
The following week I found myself for a couple of days in London to give not one, but two creative coding workshops for the lovely folks at Trilitech. The first one was public for everyone to attend, and another internal one for the devs there. While I don't have pics for the guest lecture, I do have some pics for the workshop that you already saw in the banner—but sharing again here:

We didn't expect there to be that many people, 30 had RSVP'd and usually that means that a third will actually show up, but in this case it was probably more than 20.
I was also told some more profesh pics and a short post about it are on the way. Big thanks to Vincianne and Beata for inviting me—the idea for this came together after the workshop I gave in Ghent, and I'm really happy that it happened! Definitely going down as a highlight of this year for me!
### Some progress on the re-design
When I woke up Saturday morning after the workshop, I felt like a lot of weight had come off my shoulders. It was the first day in a while where I didn't set an alarm to wake me up—but I still ended up opening my eyes around 9:00AM. I felt really well rested then.
When I eventually mustered the strength to peel the covers off of me, and splash my face with some cold London water; I packed my laptop and headed downtown again—somehow I really enjoyed the bustling vibes of Soho. I picked one of those hipster coffee shops in one of the alleways, plugged in my airpods like all the other cool kids, and allowed myself to just do whatever I felt like on my mac—I ended up working for a couple of hours on the blog before my grumbling stomach notified me that it was lunchtime.
Long story short, I ended up making quite a bit of progress on the new theme for the blog, that's also hopefully quite functional when it comes out—I am aiming for the end of the year, with where I'm at, and with what I have right now it is a realistic timeline for me.

Here's a sneek-peak of potentially the new articles/archive page! Might potentially even add a bookmark feature like you can make out here, that lets you save articles for later, and stores them as a cookie in your browser. Still need to figure out a couple of things here though!
Anyway, that's it from me this week—any before I forget it, here's my music recommendation:
Okay, let's roll the credits! **If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 79Crafting Painterly Shaders - Djikstra’s Algorithm Universally Optimal - Poisson Point Process on Infinite Grids - Ahmad Shadeed on CSS Masonry - A Modern CSS Reset - Democratising Publishing with Ghost - Github Spark - Building Things with Claude ArtifactsGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-79)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 79
URL: https://www.gorillasun.de/blog/gorilla-newsletter-79/
Last updated: 2024-11-04T06:00:42.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 79th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
💡
****Quick PSA:** The Newsletter is going on break for the next two weeks, as I'll be traveling—for creative coding purposes! ****See you on the 25th of November** ✨ I also want to take some time and rethink the format and direction of the newsletter moving forward 🙏
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
***...and other creatively computational thingamajigs!***
### **On Crafting Painterly Shaders**
Developed in 1976 by the Japanese researcher Hiroshi Kuwahara, the Kuwahara filter is an image processing technique that’s primarily used for edge-preserving smoothing and reducing noise while maintaining sharp boundaries in an image. It also turns out to be the secret sauce for *painterly shaders*—shaders that mimic paint, watercolor, and aquarelle textures when used as a post-processing filter. Maxime Heckel describes how this works in detail with his newest massive deep dive:
[On Crafting Painterly Shaders - Maxime Heckel’s BlogA detailed essay on my research and process of building a shader to mimic paint, watercolor, and aquarelle by exploring various implementations of the Kuwahara image smoothing filter.Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/on-crafting-painterly-shaders/?ref=gorillasun.de)
The kuwahara filter essentially works by inspecting a square region around each individual pixel, splitting it into four overlapping smaller squares. In each of these squares, the filter calculates the average color and the amount of variation in color. Then, it picks the region with the least variation, meaning it’s the smoothest or most uniform area assigning it to the pixel in the center. This filtering technique has the effect of preserving edges but also manipulates the image in a way that makes it look ***painterly***.
Maxime doesn’t stop at implementing a simple Kuwahara filter however, but also explains further improvements to really take the effect to the next level. One of them is a modification Giuseppe Papari proposed in his 2007 paper [Artistic Edge and Corner Enhancing Smoothing](https://www.cs.rug.nl/~imaging/artisticsmoothing/TIP%5Fartistic.pdf?ref=gorillasun.de), that replaces the square filter with a circular area. I won’t spoil too much more however and leave you to read through the article by yourself.
### Djikstra’s Algorithm proven Optimal
***TLDR: This past week a new paper from a group of researchers at INSAIT shows that with an elegant modification Djikstra’s shortest path algorithm can become universally optimal!***
[Universal Optimality of Dijkstra via Beyond-Worst-Case HeapsThis paper proves that Dijkstra’s shortest-path algorithm is universally optimal in both its running time and number of comparisons when combined with a sufficiently efficient heap data structure. Universal optimality is a powerful beyond-worst-case performance guarantee for graph algorithms that informally states that a single algorithm performs as well as possible for every single graph topology. We give the first application of this notion to any sequential algorithm. We design a new heap data structure with a working-set property guaranteeing that the heap takes advantage of locality in heap operations. Our heap matches the optimal (worst-case) bounds of Fibonacci heaps but also provides the beyond-worst-case guarantee that the cost of extracting the minimum element is merely logarithmic in the number of elements inserted after it instead of logarithmic in the number of all elements in the heap. This makes the extraction of recently added elements cheaper. We prove that this working-set property guarantees universal optimality for the problem of ordering vertices by their distance from the source vertex: The sequence of heap operations generated by any run of Dijkstra’s algorithm on a fixed graph possesses enough locality that one can couple the number of comparisons performed by any heap with our working-set bound to the minimum number of comparisons required to solve the distance ordering problem on this graph for a worst-case choice of arc lengths.arXiv.orgBernhard Haeupler](https://arxiv.org/abs/2311.11793?ref=gorillasun.de)
***There’s a bunch of stuff to unpack here: for those that aren't familiar, what actually is Djikstra’s Algorithm and what does it do? What’s the modification this new paper makes? And what does it actually mean for an algorithm to be universally optimal?***
The famous shortest-path algorithm can not only be considered as a cornerstone of Djikstra’s fame, but also as a cornerstone of computation itself; it’s become a staple in undergraduate computer science curricula around the world. Unsurprisingly, I learned about it for the first time in my algorithms and data sctructures course, and looking back it was one of the most rewarding and fun materials that we learned about in the course. Years later I rediscovered graph traversal algorithms for generative art purposes—Djikstra’s algo being one of them—here’s two things I made where the algo plays an important role:


As the name suggests, shortest path algorithms are methods for finding the shortest path from a starting node to a target node, usually in a network—a weighted graph—where nodes can be connected in arbitrary mannes. A weighted graph simply means that each edge between two nodes has a numerical value, or "weight," associated with it, representing a cost, distance, or other quantity. In this setting the shortest also means ***least costly***.
Nodes in this setting are usually modeled in an object oriented manner, where each node is its own instance holding references to the nodes it is connected to—basically its neighbors. The graph then emerges in an implicit manner by means of connecting nodes with each other. I won't regurgitate the individual steps of the algorithm here, since there's like a million posts about it, but the [Wikipedia page provides a pretty good description](https://en.wikipedia.org/wiki/Dijkstra%27s%5Falgorithm?ref=gorillasun.de).
Edsger Dijkstra came up with his shortest-path algorithm in a surprisingly casual way—in an [interview](https://dl.acm.org/doi/pdf/10.1145/1787234.1787249?ref=gorillasun.de) he gave in 2010 towards the end of his life, he gives a beautiful recount of how the idea for the algorithm came to be:
> One morning I was shopping in Amsterdam with my young fiancée, and tired, we sat down on the café terrace to drink a cup of coffee and I was just thinking about whether I could do this, and I then designed the algorithm for the shortest path. As I said, it was a 20-minute invention.
He published his idea three years later in 1959 in a paper titled “A Note on Two Problems in Connexion with Graphs”, and after the algorithm gained widespread popularity, a lot of research went into finding optimizations. In 1984 the two scientists Michael Fredman and Robert Tarjan demonstrated that Djikstra’s algorithm can actually be worst-case optimal with a modification, in their paper “[Fibonacci Heaps and Their Uses in Improved NetworkOptimization Algorithms](https://web.eecs.umich.edu/~pettie/matching/Fredman-Tarjan-Fibonacci-Heaps.pdf?ref=gorillasun.de)".
In this setting **Worst-case Optimal** means that no algorithm could possibly solve a given problem faster in the most difficult situation. It's like saying "even in the hardest possible case, this is as fast as anyone could ever make it." Fredman and Tarjan showed this for Dijkstra's algorithm by using a clever heap data structure to store and update distances, which they call a Fibonacci heap and describe in an earlier paper of theirs. If you're curious about it, here's a really good explainer by SithDev:
In essence, using a Fibonacci heap improves Dijkstra's algorithm by making it faster to select and update the node with the smallest distance. In steps where Dijkstra’s algorithm finds the closest unvisited node and updates distances to neighboring nodes, a Fibonacci heap handles these tasks more efficiently than a regular heap, and can quickly find the minimum, allowing for fast updates when shorter paths are discovered.
Tarjan continued to make a number of important contributions to graph papers over the years, and his name is also on this newest paper, that goes a step beyond and proves that Djikstra’s algorithm is not only worst-case optimal, but universally optimal. U*niversally Optimal* means that the algorithm is as efficient as possible across all different types of graphs, not just in the worst-case scenarios. I’m not going to claim that I exactly understand how this works—but in essence they use a new smarter version of the Fibonacci heap that adapts based on how the algorithm is accessing nodes, further optimizing these operations. Naturally there's also the mathematical part that proves this claim.
I hope this was relatively informative—the reason I'm writing about the topic is because I came across this article by Ben Brubaker for Quanta Magazine, tackling the very same paper, for which the animation in the banner was made by none other than Dave Whyte aka beesandbombs:
[Computer Scientists Establish the Best Way to Traverse a Graph | Quanta MagazineDijkstra’s algorithm was long thought to be the most efficient way to find a graph’s best routes. Researchers have now proved that it’s “universally optimal.”Quanta MagazineBen Brubaker](https://www.quantamagazine.org/computer-scientists-establish-the-best-way-to-traverse-a-graph-20241025/?ref=gorillasun.de)
### Uniform Point Distribution on an Infinite Grid
Poisson Disk Sampling is a popular technique for generating aesthetically pleasing, ***seemingly*** uniform point distributions. In a Poisson Disk Sampling points are distributed on a surface in such a manner that each point is separated from its neighbors by at least a specified minimum distance. This results in a well-spaced and visually appealing pattern that avoids clustering or large gaps.

In creative coding and generative art Bridson’s algorithm is probably the most common approach to achieve a Poisson Disk Sampling—the algorithm works by first placing an initial random point and then attempts to iteratively place new points in the proximity of existing points in random directions, enforcing the minimum distance constraint. There’s many resources that cover the topic: an iconic one is [Sighack’s write-up about implementing the algo in Processing](https://sighack.com/post/poisson-disk-sampling-bridsons-algorithm?ref=gorillasun.de), naturally [the coding train’s also covered the topic](https://www.youtube.com/watch?v=flQgnCUxHlw&pp=ygUWIHBvaXNzb24gZGlzayBzYW1wbGluZw%3D%3D&ref=gorillasun.de), as well as [Sebastian Lague](https://www.youtube.com/watch?v=7WcmyxyFO7o&pp=ygUbc2ViYXN0aWEgbGFndWUgcG9pc3NvbiBkaXNr&ref=gorillasun.de).
Overall the algorithm is really potent in a procedural setting, either for the placement of things, or for using it as an underlying structure to create triangulations, and/or other kinds of grids. The caveat however, is that it relies on a spatial data-structure to remember the position of the already placed points and enforce the minimum distance requirement. It also isn’t really a true uniform distribution, but rather a kind of blue noise distribution.
True uniform point distributions on the other hand, might not be as visually pleasing, but are still quite useful in for procedural generation purposes. In a recent article, Boris Brave explores an approach geared towards that end, in a infinite setting, by using a ***Poisson Point Process***—which turns out to be a techniques that hasn’t actually previously been documented before:
[Infinite Uniform Point DistributionsRune’s recent talk on layered procedural generation has got me thinking about procedural generation again, so I wanted to share a technique I found about doing a uniform distribution of point…BorisTheBrave.ComBoris](https://www.boristhebrave.com/2024/10/30/infinite-uniform-point-distributions/?ref=gorillasun.de)
[Link to Tweet](https://x.com/boris%5Fbrave/status/1851678092919558646?ref=gorillasun.de)
By subdividing the plane into square chunks, and then distributing points inside of the cells, the illusion of an infinite point distribution is made possible. The number of points in each cell is determined by a poisson distribution, where the index of the square chunk serves as a seed, in turn making it possible to remember what the random points in any given chunk are. Boris explains the maths behind this in the post and demonstrates that by hiding the underlying grid it makes it seem like a very organic distribution.
### Other Cool Generative Things
1. When this newsletter comes out then it'll already be to late to participate in this jam event—[Proc Jam 2024](https://itch.io/jam/procjam?ref=gorillasun.de) took place over the course of October, and somehow I completely missed it. But I still wanted to point it out as we may see some cool creations submitted to the event.
2. In an article of his [Matt Greer explains how he crammed a full featured recreation of Solitaire he programmed onto a Nintendo E-Reader](https://mattgreer.dev/blog/cramming-solitaire-onto-a-nintendo-ereader-card/?ref=gorillasun.de)—a Game Boy Advance peripheral that Nintendo released in 2002 and allows you to run mini games and other apps.
3. Sergey Borovikov shares a codepen sketch on how to pack spheres such that they do not intersect when viewed on any axis—not sure how to describe other than this, check out the [video he posted over on Twitter](https://x.com/upo11o/status/1852388823990153290?ref=gorillasun.de), self-explanatory when you see it. Jeff Clark pitches his own sketch in the replies, with a take on the idea where there additionally are shapes cut out of the packing area.
## Tech & Web Dev
### Should Masonry be Part of CSS Grid
[Last week we saw the WebKit blog publish an update post on the CSS Masonry debate](https://www.gorillasun.de/blog/gorilla-newsletter-78/), in which Jen Simmons talks us through the current state of affairs asking for help to decide on the final syntax of CSS Masonry. She explains that the implementation has now been figured out, but what remains is whether or not Masonry should actually be integrated with the Grid spec or become its own layout mode.
This week CSS expert Ahmad Shadeed weighs in on the discussion with an insightful article that's as always chockfull with interactive examples:
[Should masonry be part of CSS grid?An exploration of examples showing masonry as both a part of CSS Grid and as its own display type.Ahmad Shadeed](https://ishadeed.com/article/css-grid-masonry/?ref=gorillasun.de)
Shadeed believes that integrating masonry as part of the Grid spec is more practical than making it a separate layout module for a couple of reasons: having masonry as part of the grid spec would reduce code duplication and simplify progressive enhancement—considering that it will take a while for browsers to roll-out support for masonry, devs could simply fall back on the standard grid layout in browsers that do not yet support it yet. Otherwise you’d require separate styling ruels.
Shadeed also argues that masonry is essentially a form of a grid layout, so it doesn’t make sense to treat it as an entirely new module. This way it also becomes possible to dynamically switch between normal grid and masonry layouts based on conditions like viewport size or the number of items in the grid.
### Jake Lazaroff’s Modern CSS Reset
I’ve mentioned CSS resets in a couple of issues at this point, but I never actually explained what it exactly is! A **CSS reset** is basically a set of CSS rules that eliminates the default styling applied by web browsers to HTML elements. Browsers usually have built-in styles for elements like margins, padding, and headings, and they often annoyingly vary between different browsers which can lead to inconsistencies your web designs. That’s why it makes sense to start with a clean slate and use a CSS reset as a baseline for styling purposes.
The first CSS reset was proposed by Eric Meyer in 2007\. It gained widespread popularity as a practical solution for managing browser inconsistencies and became a staple in web developer toolkits. His reset was designed to address the significant inconsistencies in styling across browsers, that were prevalent at the time. Meyer’s reset removed all default margins, padding, and other stylistic properties from HTML elements, making cross-browser compatibility easier to manage, you can find it here if you’re interested in reading it:
[Reset ReasoningThe reset styles are undergoing yet another overhaul, but in the meantime, I thought I’d answer a question several people have asked: why?!?](http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/?ref=gorillasun.de)
While it’s become a bit of a tradition for web devs to postulate their own CSS resets, I’m bringing this up, because in last week’s issue I briefly pointed out Josh Comeau’s custom CSS reset, due to Josh making an update to it. This week, Jake Lazaroff (who you probably won’t remember making an appearance in issue #26 of the newsletter) published his own Modern CSS Reset that’s based in part on Comeau’s, with a couple of interesting modifications that he explains in a post over on his blog:
[My Modern CSS Reset | jakelazaroff.comA CSS reset I’ve been using for new projects.Jake Lazaroff](https://jakelazaroff.com/words/my-modern-css-reset/?ref=gorillasun.de)
A special thing about Lazaroff’s reset is that it’s "classless", meaning that it applies styles only to elements without a class via the `:not([class])` selector. This is to ensure base styles are only applied to unstyled elements, which makes it easier to customize elements with class-based styles. The goal here is to create a solid styling foundation while keeping the flexibility that makes it easy to override or extend styles without too much hassle.
### Ghost CEO on Democratising Publishing
If you’ve been a reader of the newsletter for a while, you’ll have noticed that I’m somewhat of a Ghost fanboy—the open source software that powers the Gorilla Sun Blog. When I first migrated the blog from my own Jekyll+Github pages setup over to Ghost, I wrote a little bit about the reasons behind it in an article titled [Goodbye Jekyll](https://www.gorillasun.de/blog/goodbye-jekyll/). At the time I did the switch relatively quickly, and while the pragmatic reasons for switching over to Ghost at the time are still valid—with time it became more and more clear that it is the ideal tool for my Blog.
It’s quite remarkable that Ghost is a self-sufficient non-profit building an open source tool in this day and age, when many other organizations have to rely on enshittifying their products to be profitable. In light of the wordpress drama, John O’Nolan, co-founder of Ghost, shares his thoughts on how they set themself apart from the others out there.
[Democratising publishingThoughts on open source governance and how to create trust within technology, communities, and media.John O'NolanJohn O’Nolan](https://john.onolan.org/democratising-publishing/?ref=gorillasun.de)
> Our setup is pretty different to most, and while I certainly don't think we've got it all figured out — I think our model is especially relevant at this particular moment in time.
### Other Cool Tech Things
1. Chris McCully has been hard at work going down the solo dev route. [He recently made a new write-up about some of the things he's made and shares his thoughts on product design as a solo dev](https://medium.com/@chriswmccully/product-design-as-a-solo-developer-a5549dd33742?ref=gorillasun.de).
2. After purchasing a domain name for his side project, [Bryan Braun discovers that this domain name is haunted and has a problematic backstory](https://www.bryanbraun.com/2024/10/25/before-you-buy-a-domain-name-first-check-to-see-if-its-haunted/?ref=gorillasun.de). He enumerates some steps to avoid getting spooked like he did.
## AI Corner
### Github Spark
Github Spark is a new AI platform that lets anyone build their own personalized micro apps—simply by describing them in natural language. Spark then also lets you run these apps in a hosted environment, that has access to the internet to make use of various APIs (as far as I understood from the demos they showcase), in addition to data storage, and LLM powered capabilities:
[GitHub Next | GitHub SparkGitHub Next Project: Can we enable anyone to create or adapt software for themselves, using AI and a fully-managed runtime?GitHub Next](https://githubnext.com/projects/github-spark?ref=gorillasun.de)
Right now Spark is only available via a waitlist, and it was a bit tricky to figure out how to actually get on the waitlist—[here](https://github.com/github%5Fspark%5Fwaitlist%5Fsignup?ref=gorillasun.de) is the signup link if you're interested. Then you also have to head over to the [Github Next (the folks developing Spark) discord server](https://discord.gg/tjKcQf4XW8?ref=gorillasun.de) and drop your Github username in the “Let me Spark! Megathread!” thread of the Spark channel. I'm currently still waiting for access 🤷
### Building things with Claude Artifacts
Last week we saw Claude roll out the analysis tool that now makes it possible to run code. Their artifacts feature however had already allowed for the generation of various types of content in a sidepanel next to the chat interface. Simon Willison wrote a big post about all of the single page web apps he’s built thus far with Claude Artifacts—if you need some inspiration while waiting for your access to Github Spark, check it out, some of them are actually quite useful:
[Everything I built with Claude Artifacts this weekI’m a huge fan of Claude’s Artifacts feature, which lets you prompt Claude to create an interactive Single Page App (using HTML, CSS and JavaScript) and then view the result …](https://simonwillison.net/2024/Oct/21/claude-artifacts/?ref=gorillasun.de)
## Music for Coding
I can’t believe this track is 9 years old at this point—I remember listening to Alabama Shakes ***Sound & Color*** on repeat back when it came out, at a time I was still living with my parents in Lebanon. Back then I was really trying to write and play my own music, and the opening track of the album was a huge inspiration. How I discovered the track eludes me at this point, probably some new release aggregator site.
I’m not going to lie, even though it’s a cheerful track it’s a bit difficult listening to it again—lots of emotions thinking back to some of these *simpler* days of my life, and it’s also sad to read that the band went on an indefinite hiatus in 2018\. Regardless however, Brittany Howard, the lead singer, has still to this day one of my favorite voices—do yourself a favor and listen to the entire Sound & Color album when you’ve got an hour to spare:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 78Wolfram’s Theory of Everything - Flow-Lenia Universes - The Fascinating History of Cymatics - Category Theory Illustrated - State of CSS 2024 Survey Results - Solar-Powered Self-Hosted Website - CSS Masonry Update - Anthropic Analysis Tool - Infinite Generative GamesGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-78/)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 78
URL: https://www.gorillasun.de/blog/gorilla-newsletter-78/
Last updated: 2024-10-28T06:00:54.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 78th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
***...and other creatively computational thingamabobs!***
### Wolfram's Theory of Everything
***Might the universe just be one big generative system?***
Stephen Wolfram is arguably one of the most influential figures in computational sciences over the past couple of decades. While he's widely known for his entrepreneurial endeavours as the creator of *Mathematica* and *Wolfram Alpha*, he's also published quite a bit of influential writing as well. His 2002 magnum opus, *A New Kind of Science*, is his most ambitious contribution: a 1,200-page book proposing his "theory of everything" that attempts to unify physics under a single computational model. And the book's actually freely available in its entirety over on Wolfram's website:
[Stephen Wolfram: A New Kind of Science | Online—Table of ContentsThe latest on exploring the computational universe, with free online access to Stephen Wolfram’s classic 1,200-page breakthrough book.Wolfram Media, Inc.Stephen Wolfram](https://www.wolframscience.com/nks/?ref=gorillasun.de)
And Wolfram's theory is quite fascinating: it suggests that the universe operates as one big computational system where space, time, and matter emerge from simple, underlying rules—much like the patterns we see in cellular automata, where basic, deterministic operations can generate remarkably complex patterns. Furthermore, he claims that these rules operate within what he calls a hypergraph structure: a sophisticated network of nodes and connections that evolve according to precise mathematical principles. In this sense, Wolfram proposes that the complex physical phenomena that the universe operates under emerge as computational properties rather than fundamental physical laws. (as far as I understand it)
While the book was a best seller and got significant attention from the public, his ambitious framework faced considerable skepticism from the scientific community. Largely for the speculative nature of it. What didn't help was the book's self-publication, and it not being peer reviewed. Besides that, some also simply didn't like Wolfram, for his bold presentation style, and his sweeping claims that sometimes appeared to downplay the significance of established physics research.
[Physicists Criticize Stephen Wolfram’s ‘Theory of Everything’The iconoclastic researcher and entrepreneur wants more attention for his big ideas. But so far researchers are less than receptiveScientific AmericanAdam Becker](https://www.scientificamerican.com/article/physicists-criticize-stephen-wolframs-theory-of-everything/?ref=gorillasun.de)
In 2020, Wolfram published a substantial follow-up paper titled "A Class of Models with the Potential to Represent Fundamental Physics." The 448-page work iterates and expands on his original theory, demonstrating that he still holds on to it:
[Finally We May Have a Path to the Fundamental Theory of Physics… and It’s Beautiful—Stephen Wolfram WritingsHow does our universe work? Scientist Stephen Wolfram opens up his ongoing Wolfram Physics Project to a global effort. His team will livestream work in progress, post working materials, release software tools and hold educational programs.Stephen WolframDavid Terr](https://writings.stephenwolfram.com/2020/04/finally-we-may-have-a-path-to-the-fundamental-theory-of-physics-and-its-beautiful/?ref=gorillasun.de)
The implications of Wolfram's work extend into philosophical territory. The question of whether the universe's complexity can be reduced to simple computational rules touches on fundamental debates about the nature of physical laws and our ability to comprehend them.
After having been asked for years to provide her perspective on the long running debate, theoretical physicist and science communicator Sabine Hossenfelder finally complied and addressed Wolfram's ideas in one of her YouTube videos—which is also why I ended up going down this rabbit hole. In her video, titled "This Theory of Everything Could Actually Work: Wolfram’s Hypergraphs", she breaks down Wolfram's idea explains a little what she thinks about it:
Whether there is merit or not to Wolfram's theory, it's a fascinating perspective on the fundamental nature of our universe. And while Wolfram might be a polarizing character for his worldview, it's undeniable that his work continues to spark important discussions in theoretical physics about our understanding of the universe and the potential modii under which it operates.
### Flow-Lenia Universes
And while we’re already on the topic of simulating the universe, I’d like to highlight a post that caught my attention where Flow-Lenia are used in the context of artificial life simulations. In [issue #61](https://www.gorillasun.de/blog/gorilla-newsletter-61/) of the Newsletter we talked about particle Lenia, where I also briefly brought up Smoothlife, a smooth approximation of Conway’s game of life, which then later inspired Lenia as a further, smoother generalization of the CA—I did however miss that there was another variant called Flow-Lenia, which we'll get to in just a second.
Last week Pierre-Yves Oudeyer, research director at INRIA, gives us a sneak-peek into a new research project that's being worked on, showcasing a simulation where Lenia are somehow self-assembling into different life-like organisms:
[](https://x.com/pyoudeyer/status/1846564316532691143?ref=gorillasun.de)
[Link to Post](https://x.com/pyoudeyer/status/1846564316532691143?ref=gorillasun.de)
The short trailer immediately reminded me a lot of Christian Heinemann’s A.L.I.E.N. project, which is probably the most elaborate artificial life simulation to-date (this year’s A-Life virtual creatures competition winner, covered in [issue #69](https://www.gorillasun.de/blog/gorilla-newsletter-69/) of the newsletter), with the difference however that it’s a particle based simulation. Which is why I find it quite interesting to see Lenia used in this context: one limitation of Lenia is that the emergent patterns are bound by the parameters of the context they exist in, meaning that two different creatures can't coexist in the same environment. So how does this actually work then, are the emergent entities/creatures actually self aware in a stateful manner?
While Pierre-Yves doesn’t reveal too much just yet, he points out the previous research that they base their work on, namely last year’s A-Life best paper award winner, Erwan Plantec’s paper “[Flow Lenia: mass conservation for the study of virtual creatures in continuous cellular automata](https://arxiv.org/abs/2212.07906?ref=gorillasun.de)” which answers my question:
[](https://x.com/eplantec/status/1604825334591160320?ref=gorillasun.de)
[Link to Tweet](https://x.com/eplantec/status/1604825334591160320?ref=gorillasun.de) | [Recording of the talk given at A-Life 2023](https://www.youtube.com/watch?v=605DcOMwFLM&ref=gorillasun.de)
Flow-Lenia is in essence an evolution-focused extension of Lenia. We’ve seen that Lenia are capable of generating life-like, self-organizing patterns resembling artificial life forms, that are however limited to specific constraints, such that different "creatures" cannot emerge or interact within the same environment as I just mentioned.
Flow Lenia addresses this limitation by adding two key features: mass conservation and parameter localization. I’m not going to claim that I entirely understand how it works, but from what I understood mass conservation is used to ensure that matter is redistributed rather than accumulating indefinitely, which is the restricting mechanism that makes patterns spatially stable, and creates localized forms in a sort of organic manner. Parameter localization then allows for different species to coexist and interact, with each creature being governed by locally adaptive update rules.
These two modifications make it possible to simulate ecosystems with multiple types of entities exhibiting diverse, life-like behaviors. I recommend giving Erwan Plantec’s talk a watch for this:
The paper then also shows that it is possible to evolve creatures with specific behaviors, like moving in straight lines, navigating obstacles, or following a gradient towards a "food" source. In larger simulations, creatures with different parameter sets form diverse interactions, from symbiotic relationships to territorial dynamics. In this manner, by embedding parameters within the cellular dynamics, Flow-Lenia allows for open-ended, intrinsic evolutionary processes without predefined objectives.
In this new exploration, Flow-Lenia are thencombined with autotelic exploration algorithms, which are described as efficient diversity search algorithms. Pierre-Yves also explains them as "curiosity-driven exploration mechanisms" that enable agents to invent and sample their own goals, he talks about in [this presentation](https://www.youtube.com/watch?v=6a80g%5FKm2ik&ref=gorillasun.de) of his.
### The Fascinating History of Cymatics
In other news, I’ve done a ton of research and reading on Cymatics and Chladni patterns this week, primarily due to the current project that the team at fxhash is working on—you might’ve seen some teasers already over on social media, it’s Erika Weitz and Thomas Noya’s CYMATIC: Patterns of the Pentatonic that will be presented at the Paris Photo Fair 2024\. If you're in Paris at the time you might want to check out the fair, it's essentially one of the most important photography events that happens every year; so it's really cool that generative art makes an appearance there!
While I was looking into the history behind cymatic patterns, I ended up going down a rabbit-hole of trying to figure out how they are implemented algorithmically. And it turned out to be a quite tricky, but after a couple of evenings I did end up figuring it out—you can see the fruits of my work in the banner of this week's issue. I also made an animated interactive version, of which you can see a teaser here:
0:00
/0:40
1×
I'll still have to work on the behaviour of the particles a bit to make it seem that they're actually physical grains of sand, but we're getting there.
Cymatic patterns aren’t just fascinating from a computational point of view, but also due to the rich scientific history behind them. There were actually quite a few that discovered cymatic patterns before Chladni formally described them in his famous 1787 book "Discoveries in the Theory of Sound". Many others then also contributed later on, most notably Hans Jenny who actually coined the term ***cymatics***. Here's a thorough resource that lists all influential characters in that regard:
[Cymatics History - CymascopeCymatics History Cymatics is an aspect of Nature that has been known for centuries, possibly millennia, and it has a rich and fascinating history with many twists and turns. Direct ocular viewing of vibrations typically involves exciting inorganic matter such as particulate matter, pastes (both magnetic and non magnetic) and liquids under the influence ofCymascope - Cymatics and the Cymascope Device for Sound Research](https://cymascope.com/cymatics-history/?ref=gorillasun.de)
I encourage you to try and recreate the patterns for yourself, there's a few resources about it online—but it was interesting to figure out that they're kind of a type of SDF. That said, I'm working on a tutorial and I'll have more to share quite soon!
### Category Theory Illustrated
To cap of this section of the newsletter this week, I'd like to briefly venture into a topic that's a bit more mathematical at heart, and highlight a book I discovered about Category theory, written by Jencel Panic it's an illustrated and accessible introduction to the topic:
[Category Theory Illustrated - indexindex](https://abuseofnotation.github.io/category-theory-illustrated/?ref=gorillasun.de)
In brief, Category Theory can be described as a branch of mathematics that focuses on the relationships and structures within different mathematical concepts. Instead of studying individual objects, it examines how objects interact through *morphisms* or *arrows*, which represent functions or transformations. So you also shouldn't conflate it with set theory, although category theory can be considered a generalization of set theory, as Jencel Panic states at the beginning of the first chapter, that preliminarily introduces set theory.
In this setting, a "category" consists of objects and arrows that follow specific rules, like how arrows can be combined (composed) in a consistent way. This approach allows us to find commonalities across various areas of math by abstracting out details and focusing on the structures and relationships between them, to later better understand and unify different mathematical theories.

One of the Jencel's illustrations found in the book.
We also see category-theory make an appearance in functional programming, where functions are treated as first-class entities, and composition is very similar to *morphisms* in category theory. Concepts like *monads* and *functors* are also inspired by category-theoretic structures. I found a cool 2 part series on this topic back from 2016 by Nikolay Grozev:
[Functional Programming and Category Theory \[Part 1\] - Categories and FunctorsThis series of tutorials defines and illustrates the Category Theory concepts which are most widely adopted in FP. We will use simple Scala and pseudocode ex…Nikolay GrozevMarch 14, 2016](https://nikgrozev.com/2016/03/14/functional-programming-and-category-theory-part-1-categories-and-functors/?ref=gorillasun.de)
### Other Cool Generative Things
- I completely forgot to mention it in last week’s issue, but the [BIG Entangled article](https://shorturl.at/0K3ag?ref=gorillasun.de) went out as an fx(text) last week. If you want to learn more about the project, the numerous conversations that Bjorn's initial tweet sparked, and details around the exhibition that happened over in Ghent, you can now read up on it.
- [The Art Blocks weekend is making a return, and it's taking place from the 14th to the 17th of November in Marfa.](https://x.com/artblocks%5Fio/status/1780642650158170311?ref=gorillasun.de)
- Steve, who you might know from the awesome Steve's Makerspace YouTube channel, has been on a personal foray into shader coding. Last week he showcases a cool [warp shader applied to his webcame](https://x.com/SteveMakerspace/status/1849505484929167399?ref=gorillasun.de) and shares the code for it.
As a little addendum to this first section, I want to talk a little bit about its content; I might have been a bit too ambitious when I started being more serious about the Newsletter, but recently there haven't really been too many new resources about generative art and creative coding in general, and I don't know why that is. Maybe it's just that time of the year where people are most busy? Or maybe it's due to me not having too much time anymore to spend on scouring various social media feeds for interesting things—I can only dedicate my weekends for writing these newsletter.
You might've noticed that I've started casting a wider net and featuring a broader spectrum of resources, leaning a bit more into mathematics and science based topics, that might not always be inherently generative, but are still in some way tangentially related. I also don't want to change the title of the section out of the blue—so for now you'll see that little additional subtitle. Maybe you have some thoughts on this? I'd really appreciate any feedback I can get on this, especially from those who've been subscribed for a while: how do you feel about the weekly selection?
## Tech & Web Dev
### The State of CSS 2024
The State of CSS 2024 survey results were released a few days ago, and there's a ton to unpack! As mentioned in a previous issue of the newsletter, 2024 has arguably been the most exciting year for CSS in a long time; in the foreword to this year's results, Sacha Greiff describes it as the year we'll look back on as the turning point between "CSS Classic" and "New CSS"—and I couldn't agree more. This sentiment is also echoed by Ahmad Shadeed in the concluding statement, who's excited by the possibilities and experimentation that the big amount of newly introduced features open up.
If you just want to explore the results for yourself you can do so here, I also believe that you can still fill out the survey itself to contribute to the statistics:
[State of CSS 2024The 2024 edition of the annual survey about the latest trends in the CSS ecosystem.Google Chrome– Sacha Greif](https://2024.stateofcss.com/en-US/?ref=gorillasun.de)
I really love the granularity of the results: the graphs in the demographic section have additional tabs that offer complementary breakdowns of the same data, and also let you set your own filters, whereas the feature section breaks down each CSS rule in terms of usage, where respondents could indicate if they “used it”, “heard of it”, or “never heard of it”, and then for each of these responses can additionally indicate their sentiment "postiive", "neutral", or "negative":

Additionally respondent can leave a little comment explaining their answer, which you can view by clicking on the little speech bubble icon. If you're interested in doing some visualization experiments, or compare the results to previous years, the survey also makes available a GraphQL endpoint.
While not the most used feature overall, the [:has()](https://developer.mozilla.org/en-US/docs/Web/CSS/:has?ref=gorillasun.de) pseudo-class is unsurprisingly the most popular new addition. If you somehow haven't heard of it yet, it allows you to select elements based on their child elements, meaning that it provides a way to target a parent element if it contains a specific child element—which is particularly handy for creating more specific and context-aware styles. For example, you can style a parent element differently if it contains a specific child element.
It's also this year's superstar in terms of discussion; we saw more than a few in depth articles addressing it over the course of the year, here’s [Ahmad Shadeed interactive guide](https://ishadeed.com/article/css-has-guide/?ref=gorillasun.de) and [Josh Comeau’s massive article](https://www.joshwcomeau.com/css/has/?ref=gorillasun.de) on it just to name two, but a quick google reveals a ton more. If you want a much more nuanced and expert review of the survey results, you should check out Josh Comeau’s in-depth article:
[Email newsletter issue • Josh W. ComeauFriendly tutorials for developers. Focus on React, CSS, Animation, and more!Josh W. Comeau](https://www.joshwcomeau.com/email/2024-10-22-css-survey/?ref=gorillasun.de)
Josh also points out the new `text-wrap: pretty` rule, that I also thought was kind of underrated for what it does. It basically improves the visual appearance of text by preventing single words (orphans) from appearing alone on a new line at the end of a paragraph; it does so by subtly adjusting line breaks and hyphenation making text overall more pleasing to look at.
### DIY Solar-Powered & Self-Hosted Website
In an exploration of more environmentally friendly web hosting, Dries Buytaert created a solar-powered setup that allows him to self-host a website on a Raspberry Pi. You can read about the technical details on the solar-powered website itself (with a [hosted backup copy](https://dri.es/my-solar-powered-and-self-hosted-website?ref=gorillasun.de) available 24/7)—naturally, on cloudy and rainy days, the website might go offline when the battery powering the raspberry Pi is depleted, so you’ll have to check back in after a while. You can also check the status of the battery via a handy dashboard that Dries makes readily available [here](https://dri.es/sensors/solar?ref=gorillasun.de).
[Solar-powered, self-hosted website\>Solar-powered, self-hosted websitedriesbuytaert.net](https://solar.dri.es/?ref=gorillasun.de)
In the write-up, Dries explains that his setup is deliberately larger than needed to handle long periods of low sunlight, which results in unused energy once the battery is full. Dries finds this frustrating as it could be put to better use, helping offset the setup’s costs.
He points out that this problem isn’t limited to his personal DIY project, but also highlights a larger issue in web hosting: providers over-allocate resources to ensure uptime, leaving much hardware idle and increasing environmental costs. A solution to this could be that non-critical websites could embrace occasional downtime, reducing hardware needs and making the web more sustainable. For many personal sites, the 99.9% uptime standard actually isn’t necessary.
Dries points out the [Low-Tech magazine](https://solar.lowtechmagazine.com/?ref=gorillasun.de) as a solar-powered inspiration to his experiment, that also has some [resources on building small solar powered systems](https://solar.lowtechmagazine.com/2023/12/how-to-build-a-small-solar-power-system/?ref=gorillasun.de) if you’re curious about the topic now, among other interesting things.
### Final Chapters of CSS Masonry
Maybe a bit of a dramatic headline for this section, but the big CSS Masonry saga seems to be nearing a conclusion (maybe that’s a bit optimistic however). And we've followed along with the saga in a number of previous issues whenever the discussion picked up again. This week, Jen Simmons updates us on the current state of affairs, informing us that the WebKit engineers at Apple have been hammering out the details in close collaboration with colleagues over at Google and the CSS Working Group (CSSWG):
[Help us choose the final syntax for Masonry in CSSBack in April 2024, we wrote about “Masonry” layout in CSS and the ongoing work to bring this feature to browsers.WebKitJen Simmons and Elika Etemad, with Brandon Stewart](https://webkit.org/blog/16026/css-masonry-syntax/?ref=gorillasun.de)
Jen states that it is in fact possible to integrate Masonry layout with the full power of CSS Grid, and that in an performance efficient manner. Now the remaining debate—which is basically kinda the main issue still—is whether to integrate masonry as a new display type with its own properties or simply add a new value to existing CSS Grid properties.
Jen argues in favor of the latter approach, to create a unified and extensible layout system that is both efficient and user-friendly. Creating a separate display type might appear simpler in isolated examples, but introduces redundancy and complexity in the larger context. She also addresses concerns around the proposed default value for masonry-style layouts, and suggests that it could lead to unexpected and undesirable outcomes.
### Other Cool Tech Things
1. Joery Sebrecht, whom I featured on last week's Newsletter for his stellar resource on building web components with vanilla tech, published an important follow up post to explain his no-build, no-framework [setup for developing vanilla web components](https://plainvanillaweb.com/blog/articles/2024-10-20-editing-plain-vanilla/?ref=gorillasun.de).
2. [Dave Ruperts explains the pros and cons of web components](https://daverupert.com/2024/10/super-web-components-sunshine/?ref=gorillasun.de); how they excel in diverse scenarios, like design systems and low-memory projects, but face challenges with Shadow DOM intricacies and limited server-side rendering, making them versatile yet occasionally tricky tools.
3. And more content from Josh Comeau, he recently made an [update to his modern CSS reset](https://www.joshwcomeau.com/css/custom-css-reset/?ref=gorillasun.de), with the `text-wrap: pretty` rule mentioned earlier!
## AI Corner
### Claude can now run Code
Anthropic introduces an analysis tool, a new built-in feature that lets write and run JavaScript code! They describe it as a built-in code sandbox, where Claude can do complex math, analyze data, and iterate on different ideas before sharing an answer. You can read more about it in their official announcement here:
[Introducing the analysis tool in Claude.aiWe’re introducing a new built-in feature for Claude.ai, the analysis tool, that enables Claude to write and run code. With the analysis tool, Claude can process data, conduct analysis, and produce real-time insights.](https://www.anthropic.com/news/analysis-tool?ref=gorillasun.de)
I didn't have too much time to play around with it yet, but I'm already impressed, I dropped in a sketch I'm working in P5 and asked if it could run it, and it answered with: "I'll help you create a similar visualization using HTML5 Canvas since p5.js isn't directly available." and it worked like a charm! Maybe that's due to the improved version of Claude 3.5 sonnet though, that boasts even better programming capabilities. They also released an announcement about it [here](https://www.anthropic.com/news/3-5-models-and-computer-use?ref=gorillasun.de).
You can also drop in a CSV file and it'll automatically create a visualization for you—here I used the demographics data from the State of CSS 2024 survey:

### Infinite Generative Games
Developed by a team of researchers at Google and UNC, *Unbounded* is a new kind of AI-based game that ditches the typical start-and-finish structure for something much more open-ended; it aims to make all aspects of gameplay feel spontaneous—Nataniel Ruiz provides a breakdown in this thread:

[Link to Post](https://x.com/natanielruizg/status/1849807021131874583?ref=gorillasun.de)
The innovative thing about this project, is the consistency of visuals and narrative during play, by using a custom LLM and image generator pipeline—based off of their results section it seems that their approach works much better when compared related previous works. However, I'm not entirely convinced about the game-play aspect of it, from what I understand it feels like I could also simply chat with a regular LLM prompt interface and pretend that I'm playing a text based game. But maybe I'm missing something? You can read the write-up for yourself here:
[Unbounded: A Generative Infinite Game of Character Life SimulationUnbounded: A Generative Infinite Game of Character Life SimulationJialu Li1,2](https://generative-infinite-game.github.io/?ref=gorillasun.de)
This also reminds me of the research project from a few weeks ago, where an interactive generative image model was used to run DOOM—it was also a discussion to really call the model a *game engine*. The same thing is true here.
I'm not entirely convinced that this is the future of gaming, I'd argue that one of the most enjoyable things about games is the hand-crafted aspect of them—since there are no set rules, paths, or end goals, it might feel a bit aimless and lack a "sense of achievement". I could equally ask ChatGPT to endlessly generate a bunch of fantasy stories for me, and keep me entertained forever—but at some point it's gonna start to feel a bit pointless. That's just my 2 cents however, what do you think?
## Music for Coding
Fujii Kaze is a Japanese singer-songwriter and pianist that started gaining significant popularity in 2022 with the viral success of his song "Shinunoga E-Wa" on TikTok—while he'd been releasing music since 2019, it was this song that brought him international attention. His music is a laid-back blend of soulful R&B with elements of jazz and pop, often driven by catchy melodies—I thoroughly enjoyed this Tiny Desk concert of his:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 77Honoring Lillian Schwartz - λ-2D New Esolang - Genetic Algorithms for Creative Coding - Enshittification of the Modern Web - Are Web Components the Future? - HTML for People - NotebookLM - AGI24Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-77)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 77
URL: https://www.gorillasun.de/blog/gorilla-newsletter-77/
Last updated: 2024-10-21T05:00:28.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> This is the 77th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Honoring Lillian Schwartz
This past week we mourn the loss of Lillian Schwartz, a pioneering figure in computer art. She passed away on October 12 at the age of 97\. While Schwartz has only recently gained more recognition in the broader art world, she was undeniable a trailblazer in digital art for her technology based approach, and the many timeless contributions that she’s made over the span of her career.
[LILLIAN SCHWARTZ (1927–2024)Trailblazing computer artist Lillian Schwartz, whose jittery, color-saturated, digital films burst onto screens at a time when computers were still massive mainframes laboriously programmed with punch cards, died on October 12 at her home in Manhattan.ArtforumNews Desk](https://www.artforum.com/news/lillian-schwartz-dies-19272024-1234720358/?ref=gorillasun.de)
Schwartz believed that computers could serve as powerful tools for understanding and interpreting the complexities of modern society. One of her most notable works, is her 1968 kinetic sculpture *Proxima Centauri*, which was one of nine E.A.T.-affiliated works chosen by curator Pontus Hultén for his landmark exhibition “The Machine as Seen at the End of the Mechanical Age” held at the Museum of Modern Art.
The sculpture allowed visitors to step on a mat which would then trigger a mechanism to raise a plastic dome displaying animated, glowing visuals, meant to represent a sort of tiny galaxy. This piece later made an appearance in a *Star Trek* episode as a prison for the brain of the human-Vulcan character Spock.
Through her participation in this exhibition Lillian Schwartz met Leon Harmon, who would proceed to invite her to the renowned Bell Labs in New Jersey, where she'd become a resident-visitor just a week after. She continued to work there until 2002\. This residence provided her with access to cutting-edge technology and a supportive environment, enabling her to make numerous important contributions over the years.
Schwartz's early short film experiments at Bell Labs, such as "Pixillation" (1970) and "UFOs" (1971), pushed the boundaries of what was possible with computer graphics and animation. In [issue #73](https://www.gorillasun.de/blog/gorilla-newsletter-73/) I featured Schwartz's 1976 short film titled "The Artist The Computer," that explores her relationship with this new technology, and how artists can harness it as a new creative medium—which I believe is an essential watch, not only if you're interested in learning more about Schwartz's work, but also for anyone interested in how computer art arrived at where it finds itself today:
### λ-2D New Esolang
LingDong Huang’s λ-2D (*lambda-2D*) is a new esoteric programming language in which programs can be drawn instead of being typed. Inspired by other non-verbal stateless programming languages, like Piet (that we’ve covered in [issue #57](https://www.gorillasun.de/blog/gorilla-newsletter-57/) of the newsletter), or [Befunge](https://esolangs.org/wiki/Befunge?ref=gorillasun.de), λ-2D is designed as functional programming language inspired by lambda calculus, which is in essence a mathematical framework that describes how functions… function; functional programming in its most primitive form. It makes it such that function definitions and applications can be expressed entirely in a symbolic manner, which is leveraged for the purpose of λ-2D.
LingDong recounts the challenges and joys of creating the esoteric language in this article published on the MIT Media Labs’ website, which also sheds some light on how the language is meant to be parsed via a computer vision model:
[Project Overview ‹ λ-2D: An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda Calculus – MIT Media Lab An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda CalculusMIT Media Lab](https://www.media.mit.edu/projects/2d-an-exploration-of-drawing-as-programming-language-featuring-ideas-from-lambda-calculus/overview/?ref=gorillasun.de)
An additional early design consideration that LingDong embarked with, was that programs created with λ-2D needed to be visually appealing “such that someone would want to put a frame around them and hang them on the wall”. In this manner, programs in λ-2D come to life as intricate line diagrams that represent functions feeding into other functions, visually describing certain computations. LingDong also provides us with an [online demo editor](https://l-2d.glitch.me/?ref=gorillasun.de) that allows for the creation of these diagrams and also provides some out-of-the-box examples to play around with:


You might also recognize LingDong from his earlier creative works, such as [{Shan, Shui}\*](https://github.com/LingDong-/shan-shui-inf?ref=gorillasun.de) where traditional Chinese landscape paintings come to life as endlessly generative side scrolling tapestries, or [fishdraw](https://github.com/LingDong-/fishdraw?ref=gorillasun.de) a project where plottable line drawings of fish are procedurally generated. A good overview of all his works can be found over on his [Github profile](https://github.com/LingDong-?ref=gorillasun.de).
### Genetic Algorithms for Creative Coding
JSConf 2024 took place a couple of months ago in Budapest, and I just recently stumbled across the talks that had been uploaded to YouTube—Here’s a [playlist of all the talks](https://www.youtube.com/playlist?list=PL37ZVnwpeshEczPCbFGVGd-hj1DR7%5FSKy&ref=gorillasun.de) that were given, that in some way or another revolve around JS. I think I'll have to start marking my calendar for all of the different conferences that are taking place all of the time, because, seriously how are you supposed to keep track? 🤣 JK, as always, I'm super grateful for the documentation efforts!
One talk that stood out to me in particular, was Kevin Mays' presentation on genetic algorithms (GAs) and their applications in various settings. The second half of the talk showcases an example that demonstrates how to program your own GA and using it for creative coding purposes in JS with our beloved HTML Canvas Element:
If you're not familiar with GAs, they're essentially computational methods inspired by the principles of natural selection and genetics. They’re used to solve optimization and search problems by mimicking the process of evolution. In a GA, potential solutions to a problem are represented as individuals in a population, that undergo nature inspired processes like selection, crossover (recombination), and mutation to produce new generations of solutions. Over time, the population then "evolves" toward better solutions, as fitter individuals (those closer to the desired outcome) are more likely to be selected for reproduction.
GAs are especially useful for solving complex problems where traditional methods may struggle, but they can also be used as a tool to simulate artifical environments, we covered a very iconic project in that regard in [issue #69](https://www.gorillasun.de/blog/gorilla-newsletter-69/) of the newsletter. Another good intro to them is the following Computerphile video, that demonstrates an application of GAs in the setting of the Knapsack problem:
Genetic algorithms also have a fascinating history; their foundation was laid by the pioneering work of Lawrence Fogel in the 1960s, who introduced the concept of evolutionary programming. Later followed by John Holland who is widely regarded as the father of genetic algorithms.
In the 1970s, Holland built upon Fogel's ideas to create genetic algorithms as we know them today. Holland was inspired by Charles Darwin's theory of evolution by natural selection and sought to apply biological processes like selection, crossover, and mutation to artificial systems. His groundbreaking work, published in 1972, detailed the theory and set the stage for the widespread adoption and development of genetic algorithms across various fields in the following decades. If you're interested about this original work, you can find it here:

[Link to Paper](https://www.geos.ed.ac.uk/~mscgis/12-13/s1100074/Holland.pdf?ref=gorillasun.de)
### Other Cool Generative Things
1. In a recent article titled [Transforming colors with matrices](https://lisyarus.github.io/blog/posts/transforming-colors-with-matrices.html?ref=gorillasun.de), Nikita Lisitsa shows us an efficient technique for color manipulation that relies on matrix multiplications. By representing colors as vectors and transformations as matrices it becomes easy to compose and apply various color operations like darkening, lightening, blending, and hue shifting.
2. The [newest issue of Chris Reid's generative art newsletter](https://newsletter.generatecoll.com/p/computation-using-fractions-shader?ref=gorillasun.de) shares an article on [Fractran, an esoteric programming language that's entirely based on the multiplication of fractions](https://wiki.xxiivv.com/site/fractran.html?ref=gorillasun.de). What's equally interesting is that the brilliant mind behind the language is yet again John Conway, a PDF of the original paper can be found [here](https://www.cs.unc.edu/~stotts/COMP210-s23/madMath/Conway87.pdf?ref=gorillasun.de).
3. Reddit user [awesomegraczgie21](https://www.reddit.com/user/awesomegraczgie21/?ref=gorillasun.de) built a fully functioning [Raycaster in Excel using VBA](https://www.reddit.com/r/GraphicsProgramming/comments/1g3mjan/excel%5Fthe%5Fbest%5Fgame%5Fengine%5Fa%5Fsimple%5Fraycaster/?share%5Fid=UhhjjX8tOcY5msdg08HZ9&utm%5Fcontent=1&utm%5Fmedium=android%5Fapp&utm%5Fname=androidcss&utm%5Fsource=share&utm%5Fterm=1) (Visual Basic for Applications). An additional comment explains that the demo uses the DDA algorithm for raycasting purposes, and even supports transparency as well as per column texture mapping
4. [OGLDEV made a video tutorial that shows how to program an endless grid in OpenGL](https://www.youtube.com/watch?v=RqrkVmj-ntM&ref=gorillasun.de), which is generally useful for debugging purposes.
5. Last but definitely not least, Japanese creative coder FumiSA created an [in depth 21 part tutorial series on building a complete beat/drum machine with P5JS](https://note.com/fumisa2821/m/m6f37532aff20?ref=gorillasun.de). The articles are in Japanese, but as always you can use your browser's translate function to help with that. You can also try out the synth for yourself [here](https://editor.p5js.org/FumiSA/full/KfbrJZo05?ref=gorillasun.de).
## Tech & Web Dev
### Enshittification of the Modern Web
In November 2022 Cory Doctorow coined the term “enshittification” as a neologism to describe a pattern in which online services and platforms gradually deteriorate in quality, due to the prioritization of profit at the expense of user experience.
[Enshittification - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/Enshittification?ref=gorillasun.de)
Doctorow explains that this process essentially happens in three phases: platforms start out by providing the user with a lot of value to attract them in a early growth phase, then slowly shift their focus to benefiting businesses, such as advertisers or sellers, and finally focus on extracting as much profit as possible out of both parties at the expense of everyone involved. Cory Doctorow makes a passionate appearance at last month's DEF CON 32 addressing the current state of platforms, and explains some of the ways that users and developers can act against it:
### Are Web Components the Future?
Some weeks ago the creator of SolidJS published an article that caused a bit of an uproar in the Web Development scene: titled "Web Components are not the Future", Ryan Carniato contends the opinion that Web Components actually make web development more complicated, and while there are ergonomic benefits in certain scenarios, their cost generally outweighs their advantages:
[Web Components Are Not the FutureA few years ago I wrote an article suggesting that Web Components might not be the most beneficial…DEV CommunityRyan Carniato](https://dev.to/ryansolid/web-components-are-not-the-future-48bh?ref=gorillasun.de)
Carniato's article comes by no means from a place of dissent, but simply to advocate for a more nuanced approach that gives room for a wider variety of tools for their own particular tasks. The standardization of higher-level mechanisms like Web Components risks stifling innovation and exploration of alternative solutions, as developers tend to gravitate towards established standards, even when they are suboptimal.
> If too many assumptions are made it becomes harder to explore alternative space because everything gravitates around the establishment.
Last week Baldur Bjarnason chimes in with his own article, a massive one at that, not as an answer to Carniato's piece, but to provide further context, a historical recount of "*Why Web Components cause online web developer communities to erupt in anger and argument?*", and a critical analysis of the current state of things:
[Liskov’s Gun: The parallel evolution of React and Web ComponentsBecause this essay is over 11 000 words long(!) I’ve made a convenience EPUB file for offline reading. (EPUB only! No PDF this time.) You can download it over on the fulfilment service I use, Lemon Squeezy, with the option to pay what you want if you feel the urge to support my writing.Baldur Bjarnason](https://www.baldurbjarnason.com/2024/liskovs-gun/?ref=gorillasun.de)
### HTML for People
And to cap things off, I wanted to share this resource by Blake Watson: a non-technical introduction to HTML, that assumes zero prior knowledge. Essentially the perfect resource to send to your creative DIY friends that have been meaning to create their own websites from scratch:
[HTML for PeopleHTML isn’t only for people working in the tech field. It’s for everyone. Learn how to make a website from scratch in this beginner friendly web book.](https://htmlforpeople.com/?ref=gorillasun.de)
## AI Corner
### NotebookLM
NotebookLM has been making a buzz over on social media lately, and since it's become a bit of tradition for me to do a test-run whenever a new fancy AI tool comes out—I dove in over the weekend and had a look.
*So, what's NotebookLM?* It describes itself as "a tool that allows users to organize, analyze, and understand information" and that in an LLM augmented manner. It essentially lets you create your own notes as *sources*—these can be anything really, PDFs, text files, URLs, etc.—and then lets you ask questions about them via the familiar LLM chat interface. This means that the AI has knowledge about the content of the added sources.
[NotebookLM | Note Taking & Research Assistant Powered by AIUse the power of AI for quick summarization and note taking, NotebookLM is your powerful virtual research assistant rooted in information you can trust.Note Taking & Research Assistant Powered by AI](https://notebooklm.google/?ref=gorillasun.de)
Besides that it also has a bunch of other features, like being able to save responses from the chat as notes that get pinned to your notebook
This seems super useful, I've actually been using LLMs quite a bit for all sorts of different writing tasks. I think that many of us are. For example, sometimes I like to drop in a URL to an article into ChatGPT/Gemini and ask it to provide me with a quick summary of the content. I usually do this in the case when I'm not entirely certain if it's a piece that I actually want to read. It doesn't always have the ability to access the page, but when it does, it's usually a big time saver—then I can also continue asking it other questions about the content. So that's definitely something I'd use NotebookLM for, especially since it can keep track of multiple sources at the same time.
Besides that I can also think about a bunch of use-cases to improve my own writing, turning it into my own personal mini, smart search engine. For instance, at some point I want to go back over all the pieces I've written and improve the writing, to fix typos and grammatically incorrect sentences—which would be quite laborious if I'd do it manually. Hence, as a test, I made a fresh notebook and dropped in the past 10 issues of the newsletter asking it to list out all typos that it can find, and it kinda did the trick:

That's just something I thought of, off of the top of my head though—here it would probably tell me that the phrasing of the preceding sentence is pretty terrible. But to defy my hypothetical AI overlords I will keep it in. NotebookLM does come with some limitations, for example, you can only add 50 sources at this point. Each source can be up to 500,000 words. So I could technically just dump all of my newsletters in one huge file and then ask it questions about it. I'm not entirely sure at this point how I will end up using it, but I know that I will definitely be using it.
### François Chollet's Keynote Talk at AGI24
Francois Chollet makes an appearance the AGI24 conference that took place back in August. His keynote talk was released last week in which he discusses the limitations of Large Language Models and proposes a new approach to advancing artificial intelligence. He argues that current AI systems excel at pattern recognition but struggle with logical reasoning and true generalization:
> LLM performance depends entirely on task familiarity, and not task complexity. \[...\] Skill is not intelligence, and displaying skill at any number of tasks does not show intelligence. **\~13:48 in the talk**
## Music for Coding
This week’s music recommendation is a blast from the past, it’s Curtis Mayfield’s 1974 Sweet Exorcist, that I had the joy of listening to for the first time this past week. Curtis Mayfield was a highly influential American singer, songwriter, and guitarist, known for blending soul, funk, and socially conscious lyrics–his music often addressed civil rights, social justice, and Black empowerment. While *Sweet Exorcist* didn't reach the same level of commercial success of previous work the album still showcases Mayfield's signature socially conscious themes and smooth, yet funky sound reflecting his ability to merge groove-driven music with thoughtful and political lyrics:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 76Generative Floor Plan Design with Voronoi Diagrams - Reversing Conway’s Game of Life - What it means to be Open - Plain Vanilla Web Components - Wordpress Drama Recap - Learning Vulkan - Physics Nobel Prize 2024 - Can LLMs actually reason?Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-76/)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 76
URL: https://www.gorillasun.de/blog/gorilla-newsletter-76/
Last updated: 2024-10-14T05:00:11.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 76th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Generative Floor Plan Design via Voronoi Diagrams
This week's highlight is a research paper that was presented at the Pacific Graphics 2024 conference by a team of researchers from the University of Tokyo. Titled **"Free-form Floor Plan Design using Differentiable Voronoi Diagrams,"** the paper introduces an innovative method for the automatic generation of floor plan designs. Here's some of the visualizations that shared over in the Github repo accompanying the research paper:

[Link to Github repo](https://github.com/nobuyuki83/floor%5Fplan?ref=gorillasun.de) where you can see a few more figures and animated examples.
Similar to **Lloyd’s algorithm**, the method is based on the fact that each Voronoi cells can be entirely defined by their centroid—meaning that the polygonal region of a cell is implicitly defined by its distance to the centroid. The challenge is then to figure out how to move the centroids such that rooms (represented by clusters of same-colored cells) take shape, and the boundaries between them align with the coordinate axes.
The procedure starts by randomly assigning room types to each cell in the diagram (represented by a color here), where the number of cells per room is based on the room’s relative size compared to the overall area that is meant to be subdivided. The method then iteratively adjusts the centers of the Voronoi cells until a meaningful floor plan takes shape. The only input required is an adjacency graph that defines the rooms and their relative sizes.

The paper treats this relaxation task as an **optimization problem**. If you're not familiar, in an optimization problem the goal is to find the best solution by adjusting certain variables (in this case, the positions of the Voronoi centroids) to minimize or maximize a specific objective, called a "loss function." In this case we have multiple objectives (multiple loss functions), to control various aspects of the desired emergent floor plan, such as the individual room sizes, the wall alignment between them, and how they connect.
By minimizing these losses, we can then determine how to nudge the positions of the centroids such that the system generates a well-organized and functional layout (by minimizing the loss function we compute a gradient that tells us in which direction the centroids need to be moved). In this case the authors actually end uses five different losses to guide the process:
- An **Area Loss** ensures that each room matches its target size by minimizing the difference between current and desired areas, while
- A **Wall Loss** simplifies and aligns the walls between rooms.
- A **Lloyd Loss**, inspired by Lloyd’s algorithm, that keeps the Voronoi sites evenly distributed to avoid distorted room shapes.
- A **Topology Loss** that maintains room connectivity, preventing adjacent rooms from disconnecting or splitting.
- A **Fix Loss** that locks certain key locations in place during the optimization process, such as the entrance of the plan.
There's a lot more to optimization problems that I'm glossing over here, but in essence these 5 indicators provide sufficient information for the self-assembly of a floor plan. The optimization then runs for several iterations until the loss function converges, where the cells stabilize and no further improvements are needed, which is when we should have arrived at a coherent layout. I actually couldn't resist trying my hand at re-implementing the algorithm, I believe that the technique could be quite a potent pattern generator—but turns out that it's going to take me a bit longer than just one Saturday afternoon.
### Differentiably Reversing Conway’s Game of Life
Computing the next state for a given configuration of Conway’s Game of Life is trivial, you only need to determine what rule applies to each cell given the state of its neighbours. But have you ever wondered if it’s possible to compute the previous state for a given random configuration? This is the topic of a recent article that picked up speed over on Hacker News, where Kartik Chandra, aka Comfortably Numbered, investigates how to find predecessors of Life configurations that visualize portraits:
[Conway’s Gradient of Life - Comfortably NumberedComfortably Numbered](https://hardmath123.github.io/conways-gradient.html?ref=gorillasun.de)
Turns out that this is quite a difficult computational problem: a given configuration can have multiple possible previous states (predecessors) or even none at all. This happens because the rules of the game lead to many-to-one transitions, where different initial states can evolve into the same configuration. Add to that, that certain patterns can “fizzle” out, where one or more cells simply die and remain inactive, this means that information was lost in an irretrievable manner.
Quite a bit of research has gone into the topic—one notable resource in that regard is a transcript of a talk from Neil Bickford back from 2012, given at the Gathering for Gardner biennial conference (that is organized by none other than Martin Gardner himself, we covered his Mathematical Games column back in issue [#73](https://www.gorillasun.de/blog/gorilla-newsletter-73/) of the newsletter):
[Link to Transcript](https://nbickford.wordpress.com/2012/04/15/reversing-the-game-of-life-for-fun-and-profit/?ref=gorillasun.de)
Luckily, we can actually cheat to achieve the effect Kartik describes, such that we don't need to treat it as a search problem at all! But rather, as an optimization problem where we use gradient descent to find a predecessor, iteratively nudging a starting configuration into something that could result in the desired portrait configuration. Here's how it works:
1. We start with a random Life configuration, which we’ll call **b**.
2. After applying the game's rules to **b**, we get a new configuration, **b'**. At this point in time **b'** looks nothing like the target image, at best it's just a random configuration.
3. But we can make **b'** resemble a target image (like a portrait of John Conway as a Life configuration). To do so, we measure the difference between **b'** and the target image **t**.
4. Using this difference, we compute a gradient that tells us how to adjust **b** to get **b'** closer to **t**.
5. We then make small changes to **b** based on this guidance, run the Game of Life again to get a new **b'**, and repeat the process.
6. By continuously refining **b** through this iterative method, we gradually transform it to match the target image more closely.
Since Life’s rules aren’t directly differentiable (because it’s based on binary “alive” or “dead” cells), Kartik creates a **differentiable approximation** of the game by representing the grid with real numbers (0 for "dead," 1 for "alive"), then applies a smooth, continuous version of the rules, using Gaussians to approximate the conditions where cells come to life or stay alive. The resulting pattern look somewhat like Turing patterns.
### What it means to be Open
[Lu, aka Todepond](https://x.com/TodePond?ref=gorillasun.de), is one of the very first creatives that I started following over on TwiX when I joined the platform back in 2020, at a time when it was still known as the blue bird site. I followed because I was intrigued by the cellular automata experiments that Lu had been sharing—it seemed that Lu was exploring different code-based experiments on a daily basis.
I still frequently think about this mind-boggling exploration from time to time:
Now, years later, I learned that these were actually part of a daily coding practice, and has been ongoing for several years now, similarly to what Saskia Freeke is doing.
Back in September Lu gave a talk at Clojure 2024, that was recently uploaded to Youtube. It's by far my favourite watch of this week, not only because it gives insight into Lu's creative practice, but also because it's a beautiful tale about opening up and sharing one's creations online:
### Other Cool Generative Things
1. Frank Force is hosting an online [Game Jam for the LittleJS game engine](https://itch.io/jam/littlejs-game-jam?ref=gorillasun.de), accepting submissions from the 11th of November till the 12th of December. The topic will be announced at the launch of the jam.
2. 3Blue1Brown recorded an hour long sit down with Ben Sparks (who you might know from the Numberphile channel) where [Grant Sanderson shows us his workflow for his Manim python library](https://www.youtube.com/watch?v=rbu7Zu5X1zI&ref=gorillasun.de), that he uses for creating the stunning visualizations in most of his videos.
3. [John Maeda is in the process of reprinting his iconic 2019 book “How to Speak Machine” in paperback](https://x.com/johnmaeda/status/1844975744767885465?ref=gorillasun.de). He mentions an interview that he gave back in 1999 for NYT about him combining computer science with the visual arts—turns out this interview still exists (as part of an ACT exam prep site) and he links to it [here](https://exam.actexam.net/exam/explanation.php?type=reading&examid=200901&no=27&ref=gorillasun.de).
4. The talks given at the [XOXO Festival](https://xoxofest.com/?ref=gorillasun.de) (an experimental festival for independent artists) are in the process of being [uploaded over on YouTube](https://www.youtube.com/@xoxofest/videos?ref=gorillasun.de), and while they don’t really revolve around creative coding, there’s more than a few interesting nuggets about creativity in there.
5. Some week ago I shared the upcoming Graphics Programming Conference taking place in Breda November 12th-14th. They just updated their website with the [schedule for the talks that will be given](https://www.graphicsprogrammingconference.nl/schedule/?ref=gorillasun.de).
## Tech & Web Dev
### **Plain Vanilla Web Components**
My personal highlight of this week is a tutorial series by Joeri Sebrechts titled Plain Vanilla. It revolves around building Web Components with vanilla web tech, without relying on any external framework:
[Plain Vanilla - ComponentsAn explainer for doing web development with vanilla web components.Components](https://plainvanillaweb.com/pages/components.html?ref=gorillasun.de)
A web component is in essence a reusable, self-contained piece of code that encapsulates HTML, CSS, and JavaScript to create custom elements on a webpage. This approach to building UIs goes a long way when it comes to creating consistent and maintainable web projects, having the advantage that each component can be developed and tested independently. The concept of web components has been a bit elusive to me up until this point—I’d erroneously assumed that it is something entirely reserved to frameworks like React and Vue, but it turns out that you can also harness this ability with native web technologies. Joeri states:
> The plain vanilla style of web development makes a different choice, trading off a few short term comforts for long term benefits like simplicity and being effectively zero-maintenance. This approach is made possible by today's browser landscape, which offers excellent web standards support.
### **Recap of the Wordpress Drama**
And it wouldn’t be a week in tech if there wasn’t at least a little bit of drama—here’s a quick TLDR of the Wordpress situation as it is unfolding. In short, **the founder of WordPress, Matt Mullenweg, is having a public disagreement with the managed WordPress hosting company WP Engine.** Mullenweg has criticized WP Engine for profiting from WordPress without contributing significantly to its development. WP Engine has defended its business model, arguing that it provides valuable services to WordPress users.
If you want a quick recap in video format, I recommend FireShip's coverage of the story:
And here's the long version. If you’re for some reason not familiar with WordPress ([Wordpress.org](http://wordpress.org/?ref=gorillasun.de)), it’s a widely-used free and open-source content management system (CMS) that allows you to create and manage websites easily. Created in 2003 by Matt Mullenweg and Mike Little, it rose to popularity due to the fact that it doesn’t require any programming knowledge. Now it boasts an extensive plugin and theme eco-system, making it power over 43% of webpages on the internet today according to statistics.
Wordpress itself has a commercial branch ([Wordpress.com](http://wordpress.com/?ref=gorillasun.de)), that provides hosting and all other services required to publish a Wordpress website for a fee. This commercial branch exists under the company Automatic, of which Matt Mullenweg is the CEO and apparently contributes significantly towards the development of the open source software. **WP Engine** on the other hand was founded later on in 2010, offering a similar managed hosting service that takes care of all the technical aspects of running a Wordpress website, however with less contribution to the open source software.
Now the Drama started on the 20th September when Automatic requested WP Engine to sign a “Trademark License Agreement” with which WP Engine would essentially agree to give up 8% of their revenue to Automatic on a monthly basis. WP Engine naturally declined however, which then led Mullenweg to further escalate the situation the very next day, publishing an article criticizing the way in which WP Engine reuses the software, straight out calling it as a cancer to WordPress:
[WP Engine is not WordPressIt has to be said and repeated: WP Engine is not WordPress. My own mother was confused and thought WP Engine was an official thing. Their branding, marketing, advertising, and entire promise to cus…WordPress NewsMatt Mullenweg](https://wordpress.org/news/2024/09/wp-engine/?ref=gorillasun.de)
A long-winded legal back and forth ensued that culminated in [Mullenweg banning WP Engine from accessing the resources of WordPress.org](https://techcrunch.com/2024/09/25/wordpress-org-bans-wp-engine-blocks-it-from-accessing-its-resources/?ref=gorillasun.de), in other words, WP Engine can no longer use the service to fetch plugins and themes, which is a service that is not covered under the open source WordPress license. On October 1st WP Engine deployed its own services for this purpose, and a good summary can be found here:
[The WordPress vs. WP Engine drama, explained | TechCrunchThis story has been updated throughout with more details as the story has developed. We will continue to do so as the case and dispute are ongoing. TheTechCrunchIvan Mehta](https://techcrunch.com/2024/10/10/wordpress-vs-wp-engine-drama-explained/?ref=gorillasun.de)
### Learning Vulkan by Elias Daler
Vulkan has a bit of a bad rep in the graphics programming scene due to it being notoriously difficult to get into. It's quite complex and requires a lot of setup compared to simpler graphics APIs like OpenGL or DirectX—which is why there’s so many memes about the difficulty of just conjuring a simple triangle onto the screen:

[Meme Sauce](https://www.reddit.com/r/GraphicsProgramming/comments/1bxo2cr/my%5Fteacher%5Ftold%5Fthat%5Fi%5Fwas%5Fcrazy%5Fto%5Fdo%5Fa/?ref=gorillasun.de)
On the flipside however, those who do end up getting into Vulkan end up really appreciating its powerful features. Elias Dahler is one of them, and wrote a super in-depth recount of his own Vulkan journey, from learning the basics all the way to building his own game engine in it, in addition to two small game demos in the short span of 3 months.
[How I learned Vulkan and wrote a small game engine with itThe personal website of Elias Daler about programming, technology and videogames](https://edw.is/learning-vulkan/?ref=gorillasun.de)
I really appreciate the introductory section that provides a quick explainer about the current state of graphics APIs in 2024, including a little comparison between OpenGL and WebGPU. If you’ve ever thought about getting into Vulkan, this is likely the first thing you should sink your teeth into.
## AI Corner
### 2024 Nobel Prize in Physics goes to Geoffrey Hinton & John Hopfield
In October of every year the Nobel prize winners are announced, which are then awarded later on December 10th. This year the Nobel prize in Physics is jointly given to Geoffrey E. Hinton and John J. Hopfield for their contributions in artificial intelligence—their work in the 1980s has indubitably laid the foundation for today’s AI boom.
[The Nobel Prize in Physics 2024The Nobel Prize in Physics 2024 was awarded jointly to John J. Hopfield and Geoffrey E. Hinton “for foundational discoveries and inventions that enable machine learning with artificial neural networks”NobelPrize.org](https://www.nobelprize.org/prizes/physics/2024/press-release/?ref=gorillasun.de)
In 1982 John Hopfield created a type of artificial neural network, called the Hopfield network, that works like a memory system in which a grid of "neurons" (or nodes) can store and retrieve patterns. When you show it an incomplete or blurry version of something it has seen before, the network adjusts itself step by step to try to fill in the missing parts and give you the complete version—kind of like how your brain remembers and completes an image even when parts are missing.
Geoffrey Hinton built on Hopfield's idea and developed something called the Boltzmann machine. It learns to spot common features in data, like recognizing familiar objects in pictures. Which later became a big part of how AI systems can classify images or even create new ones. But this is just one of the things that Geoffrey Hinton has worked on in his career, he also contributed in developing the back propagation algorithm, that is arguably one of the most important notions in training neural networks today.
In recent years Geoffrey Hinton has also stood out for his advocacy of the controlled and secure development of AI technologies, which he also addresses in his speech. He states that he considers the prize as “a recognition of a large community of people who worked on neural networks for many years before they worked really well”:
Congrats to both Geoffrey Hinton and John Hopfield, well deserved.
This also prompted a return of the Schmidhuber meme—there’s a running gag in the AI community centered around Schmidhuber's frequent claim to be the “father” of many foundational ideas in AI:

[Link to Tweet](https://x.com/Plinz/status/1843690678267851051?ref=gorillasun.de)
### Can LLMs actually Reason?
Victor Taelin, who you might recognize as the creator of the Bend programming language covered in issue [#57](https://www.gorillasun.de/blog/gorilla-newsletter-57/) of the newsletter, made an interesting post about AI with a strong argument against the ability of LLMs to actually truly reason. He demonstrates this with a modified version of a simple binary tree inversion problem, where just a few simple modifications are sufficient to push the problem outside of the "memorized solution zone”:

[Link to Tweet](https://x.com/VictorTaelin/status/1844886809005687270?ref=gorillasun.de)
This essentially emphasizes that the perceived intelligence of large language models stems entirely from their vast scale and the extensive data they have been trained on, effectively "memorizing" a significant portion of the internet. While LLMs can produce solutions based on existing knowledge, they cannot engage in abstract reasoning and would therefore not be able to contribute to research in the way that humans can.
## Music for Coding
OMA, pronounced oh-em-ay, has gained significant recognition over the past year for its innovative reinterpretations of classic hip-hop tracks. I found myself listening to the following performance after the algo recommended it to me while listening to last week’s recommendation—it probably thought I’d enjoy another one of those live sessions recorded out in nature—and alas it was right. And while giving it a listen, it took me a moment to realize that each tune was actually a cover:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 75The Curious History of Vectors and Tensors - Mathtober 2024 - Weekly Demoscene Report - Nicole Sullivan on CSS Masonry - CSS Module Level 5 - Writing Code for Humans - RNNs make a Return - Bas Djikstra is tired of AIGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-75)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 75
URL: https://www.gorillasun.de/blog/gorilla-newsletter-75/
Last updated: 2024-10-07T05:00:42.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 75th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### The Curious History of Vectors and Tensors
Vectors and tensors are ubiquitous concepts in modern mathematics, physics, and computation—much of our current technology would be impossible without them. While the elegant notation that allows us to express many real-world phenomena seems obvious today, the mathematical history behind it is fascinating, and to some extent, dramatic—perhaps even controversial.
Two pioneers who enter the ring in this regard, with differing philosophical views on mathematical representation and notation, are the Irish mathematician William Rowan Hamilton and the American scientist Josiah Willard Gibbs.
In 1843 Hamilton proposed Quaternions for solving problems in 3 dimensions that regular algebra struggled to handle easily. Quaternions are in essence “a form of hypercomplex number with four components” and can be thought of a precursor generalized version of vectors. The notation essentially represents a rotation in 3D space using four components: one real part and three imaginary parts. It's written as `q = a + bi + cj + dk`, where `a` is the scalar part (magnitude) and `b`, `c`, and `d` are the imaginary parts that handle the rotation (the direction).
[History of quaternions - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/History%5Fof%5Fquaternions?ref=gorillasun.de)
Later on in the century, Gibbs, alongside Oliver Heaviside, introduced a more intuitive system and simpler notation that laid the foundation for the modern notation that we are familiar with today. Vector notation simplifies things by having one component for each dimension, directly representing the magnitude along the respective axis.
The existence of these two approaches sparked a debate in late 19th-century mathematics and physics. While quaternions had supporters, including Hamilton himself, Gibbs and Heaviside advocated for the simpler vector approach. Overall, this debate reflected deeper differences in mathematical representation philosophies, and despite the elegance of quaternions in certain applications, vectors ultimately prevailed due to their practicality in calculations. However, quaternions remain valuable in computer graphics and robotics for representing 3D rotations today.
If you’d like to learn more about this, John Schutt wrote a lengthy article that shines some light on this historical mathematics debate. He does so in context of a paper that he's written about the topic back in 1986 titled “Quaternions: A Case Study in the Selection of Tools for Mathematical Physics”:
[The great vectors-versus-quaternions debateWhat? You’ve never heard of it? A big knock-down, drag-out fight between great minds of its day over, more-or-less, the philosophy of ho…John Shutt](http://fexpr.blogspot.com/2014/03/the-great-vectors-versus-quaternions.html?ref=gorillasun.de)
This segment is inspired by a book review that I came across over on SIAM News, the Society for Industrial and Applied Mathematics' website—an excellent resource that I plan to scan more frequently in the future. The book in focus is "Vector: A Surprising Story of Space, Time, and Mathematical Transformation" by award-winning science writer *Robyn Arianrhod*, published in May of this year.

[Link to Review](https://www.siam.org/publications/siam-news/articles/the-curious-history-of-vectors-and-tensors?ref=gorillasun.de)
I’ve since ordered it and am eagerly awaiting its delivery on Wednesday! I might do my own review after I've gone through it, but for the time being, the SIAM review gives a fair picture of the book, also warning that some parts might be way too complex for someone not familiar with certain materials.
### Mathtober 2024 in full Swing
And since we’re already talking about Mathematics; it’s that time of the year again—no, not Halloween, but Mathtober! The month-long bonanza where math enthusiasts from around the world can virtually flock together and participate in creating daily sketches for each one of the 31 prompts:
[Mathober 2024Mathober is just around the corner, and I can’t wait to see everyone’s creative take on this year’s prompts! If you’ve never participated before, now’s the perfect time to jump in! The goal of Math…Fractal Kitty](https://fractalkitty.com/2024/09/10/mathober-2024/?ref=gorillasun.de)
There's already been quite a few entries since the start of the month, and you can check them out via the [#Mathtober](https://x.com/search?q=%23Mathober&src=typed%5Fquery&ref=gorillasun.de) and/or [#Mathober2024](https://x.com/search?q=%23Mathober2024&src=typed%5Fquery&f=top&ref=gorillasun.de) hashtags over on social media.
### Psenough's Demoscene Report
You might remember psenough as one of the hosts from the yearly Lovebyte size coding competition; we covered this year’s installment in issue [#43](https://www.gorillasun.de/blog/gorilla-newsletter-43/) and [#44](https://www.gorillasun.de/blog/gorilla-newsletter-44/) of the Newsletter; this week I discovered that psenough has his own YouTube channel on which he does a weekly Demoscene report. This vlogged newsletter highlights all of the important things that are transpiring in the current active demoscene:
From current events and competitions, to interesting writeups and articles, psenough really does a very thorough job at finding the important bits and pieces. My personal highlight that he points out in this week’s recap is an article about Boris Vallejo, a renowned fantasy artist, whose art seemingly also played an important part in the demoscene where artists would frequently recreate his pieces as pixelart:
[Boris Vallejo and the Pixel Art of the DemosceneBoris Vallejo is an epic fantasy painter, who has had an immense influence on fantasy book covers, computer game box art, and even the demoscene. Throughout the decades, his works have often been replicated by pixel artists, leading to controversy. I rediscovered Vallejo’s great work for myself, looked into the demoscene’s love for his pictures and decided to recreate one of his paintings using only four colors and record it on video. My little article here features fantasy art history, demoscene drama, and a lot of pixel art fun.Marin ComicsMarin Balabanov](https://marincomics.com/vallejo-pixelart.html?ref=gorillasun.de)
[The article also sparked a gigantic discussion over on Hacker News.](https://news.ycombinator.com/item?id=41703213&ref=gorillasun.de)
### Other Cool Generative Things
1. [Rohan Paul](https://x.com/rohanpaul%5Fai?ref=gorillasun.de) shared some cool mathematics resources over on TwiX: MIT's [Mathematics for Computer Science](https://www.gorillasun.de/blog/gorilla-newsletter-74/) as well as Carnegie Mellon's [An Infinite Descent into Pure Mathematics](https://infinitedescent.xyz/dl/infdesc.pdf?ref=gorillasun.de). Both are quite chonky, but at the same time freely accessible to anyone.
2. Following [last week's segment on the JS13K competition](https://www.gorillasun.de/blog/gorilla-newsletter-74/); they've just got done with selecting the winners for each one of the respective categories. You can check them out [here](https://js13kgames.com/2024/blog/winners-announced?ref=gorillasun.de).
3. The [myriad exhibition](https://rethread.art/projects/myriad/?ref=gorillasun.de) is currently taking place at in Stockholm till the 12th at the R1 Reactor Hall. It is organized by [re|thread](https://rethread.art/?ref=gorillasun.de), a collective of software researchers, artists, and designers. Roni Kaufman made a cool [thread](https://x.com/KaufmanRoni/status/1840442238125633560?ref=gorillasun.de) explaining the artworks showcased at the venue.
4. Maxim Heckel is working on a new article, in which he'll teach us how to create painterly shaders. He recently made a [post revealing that the Kuwahara Filter is an essential method towards that end](https://x.com/MaximeHeckel/status/1842582517528088838?ref=gorillasun.de).
5. [CAX is a high-performance library designed to accelerate cellular automata simulations in JAX](https://t.co/0T5i2CRuJC?ref=gorillasun.de). Maxence Faldor over explains it in a [thread](https://www.siam.org/publications/siam-news/articles/the-curious-history-of-vectors-and-tensors?ref=gorillasun.de) over on TwiX.
## Tech and Web Dev
### Another Chapter in the CSS Masonry Discussion
While I assumed that all CSS Day 2024 talks had been uploaded, when I wrote about [a couple of weeks ago](https://www.gorillasun.de/blog/gorilla-newsletter-70/), it turns out that there were still quite left over at that point. They have been uploaded over the past couple of weeks, and I highly recommend checking them out, they're all very insightful, and given by experts in their respective domains.
With this segment I’d like to highlight the closing keynote by Nicole Sullivan, who you might recognize as the creator of the OOCSS paradigm (Object Oriented CSS), besides many other formative CSS concepts. In her talk she tackles a topic that’s become more and more important over the course of the past year, namely the CSS Masonry conundrum, and whether it should become part of the CSS Grid spec, or rather its own thing. We’ve followed along closely with the topic here on the newsletter and covered it on several occasions ([#54](https://www.gorillasun.de/blog/gorilla-newsletter-54/), [#55](https://www.gorillasun.de/blog/gorilla-newsletter-55/), [#56](https://www.gorillasun.de/blog/gorilla-newsletter-56/), [#57](https://www.gorillasun.de/blog/gorilla-newsletter-57/), [#58](https://www.gorillasun.de/blog/gorilla-newsletter-58/), [#70](https://www.gorillasun.de/blog/gorilla-newsletter-70/)).
Nicole’s talk is especially insightful since it aggregates much of the feedback that’s been received thus far, and picks up the conversation from that point of view:
Nicole goes over the entire issue up thus far, showcasing some of the Masonry layouts that can currently be found out in the wild and what they accomplish. She then explains the pros and cons behind both approaches. Receiving first-hand feedback from David Desandro, the creator of Masonry.js that he’s maintained for years now, states that flexible column is not such an important feature based off of the input he’s received—meaning that `display: masonry` could be entirely sufficient.
Nicole argues against this however, as that would limit the possibilities of what can be done with a masonry layout, especially in the case when we want items that are sometimes irregular and span multiple columns, or in the setting where the columns don't have the same widths.
This plays into another piece of content that we're graced with this week; about the same topic, which I believe might even be inspired by Nicole’s talk—Geoff Graham from CSS-Tricks pretty much summarizing the entire story so far, and goes into more detail on the opposing points of view around the issue:
[CSS Masonry & CSS Grid | CSS-TricksAn approach for creating masonry layouts in vanilla CSS is one of those “holy grail” aspirations. I actually tend to plop masonry and the classic “Holy Grail”CSS-TricksGeoff Graham](https://css-tricks.com/css-masonry-css-grid/?ref=gorillasun.de)
### **New Values and Functions in CSS**
Last month, the CSS Working Group released the first Public Working Draft of the CSS Values and Units Module Level 5\. This module describes the values and units that CSS properties typically accept as input and introduces some exciting new features. Alvaro Montoro, a frequent appearance on this newsletter, digs into the draft and explains some of these new additions in a recent article of his:
[New Values and Functions in CSSThe CSS Working Group released the first Public Working Draft for the CSS Values and Units Module Level 5\. It describes the common values and units that CSS properties accept and the syntax used for them, and it comes with some interesting new features. A review of some new functions and values that you will see in CSS (hopefully soon) :: Blog post at Alvaro Montoro’s Personal Website.Alvaro Montoro (alvaromontorogmail.com)](https://alvaromontoro.com/blog/68062/new-values-and-functions-in-CSS?ref=gorillasun.de)
Here’s a super quick run-down of the new features:
- **Enhanced `attr()` Function**: Use any attribute in any CSS property, with optional type and fallback.
- **`calc-size()` Function**: Enables calculations with intrinsic values like `auto` or `fit-content`.
- **`first-valid()` Function**: Chooses the first valid value from a list, simplifying custom property handling.
- **`-mix()` Functions**: Mix various properties (e.g., colors, lengths) efficiently.
- **Randomization**: New `random()` and `random-item()` functions generate random values from a list or range.
- **Sibling Functions**: `sibling-count()` and `sibling-index()` return sibling order and count for styling based on position.
- **`toggle()` Function**: Cycles through values for nested elements, reducing complex rules.
- **New Functional Notation**: Introduces semicolons for clearer separation of argument lists.
- **Flow-relative Positioning**: Allows positioning relative to text flow (e.g., `x-start`, `block-end`).
And some of these are actually kind of bonkers—we're getting a `random()` function in CSS! Which is huge for generative art!
### **It’s hard to write Code for Humans**
Erik Bernhardsson shares his thoughts on crafting joyful frameworks, libraries, and APIs in a recent article. When building developer tools, one faces not only technical challenges in implementing functionality, but also the task of creating an intuitive and accessible mental model for users. The article tackles the broader question of how to build a tool that can be easily grasped:
[It’s hard to write code for computers, but it’s even harder to write code for humansHow to build developer tools for happiness and productivity.Erik BernhardssonErik Bernhardsson](https://erikbern.com/2024/09/27/its-hard-to-write-code-for-humans?ref=gorillasun.de)
[What people had to say about Erik’s article over on Hacker News.](https://news.ycombinator.com/item?id=41668304&ref=gorillasun.de)
The points enumerated by Erik are also in many ways applicable to educating about code in general, something that I’m attempting with this blog of mine. One of the big questions I always ask myself when I get started on a new tutorial (it’s been a minute) is “How do I explain this without it being overwhelming?”
My approach is usually to explain everything from the ground up, in minute detail, so that the only assumed requirement is the reader’s ability to read. But now I’m coming around to thinking that this might not be the best way actually. Erik shares a Tweet by Chris Albon that captures an alternative approach:
[](https://x.com/chrisalbon/status/1831497223076770217?ref=gorillasun.de)
[Link to Tweet](https://x.com/chrisalbon/status/1831497223076770217?ref=gorillasun.de) | [What people had to say about Erik’s article over on Hacker News.](https://news.ycombinator.com/item?id=41668304&ref=gorillasun.de)
From personal experience, I’ve noticed that this also works quite well. Being dropped right into the midst of things, and then working your way outwards, in the direction you desire (learning the things that you are interested in basically) instead of having to climb the mountain from the bottom. Although, this second approach generally doesn’t give me as much of a clear overview.
Anyway, great article, the other points are also quite valid. Which way do you usually learn best? Maybe another completely different approach?
### Other Cool Tech Things
1. Amelia Wattenberger continues her philosophical foray into exploring the possibilities of what user interfaces *could be*, by asking the question "[H*ow should our interfaces handle the transition from the hard logic of machines into the soft logic of humans?*](https://wattenberger.com/thoughts/hard-and-soft?ref=gorillasun.de)*"*
2. Piccalilli is back with another [article](https://piccalil.li/blog/a-guide-to-destructuring-in-javascript/?ref=gorillasun.de)[ that tackles destructuring in JavaScript](https://piccalil.li/blog/a-guide-to-destructuring-in-javascript/?ref=gorillasun.de). Yours truly has also written an [article](https://www.gorillasun.de/blog/introduction-to-the-javascript-spread-operator/) about the topic a while ago, that showcases some of the more obscure things that you can do with the JavaScript spread operator.
3. [Jhey Tompkins is a CSS wizard](https://x.com/jh3yy?ref=gorillasun.de) that frequently shares cool web experiments over on his TwiX, alongside the source code for them as codepens.
## AI Corner
### Were RNNs all we needed?
With the omnipresent transformer architecture in LLMs, that is currently being hailed as the be all-end all architecture, RNNs have essentially become an extinct type of architecture. You might remember the important article Andrej Karpathy wrote back in 2015, titled “[**The Unreasonable Effectiveness of Recurrent Neural Networks**](http://karpathy.github.io/2015/05/21/rnn-effectiveness/?ref=gorillasun.de)” that showcases their effectiveness in a wide variety of applications.A recent paper titled “[Were RNNs All We Needed?](https://arxiv.org/abs/2410.01201?ref=gorillasun.de)” revisits the architecture and demonstrates an efficient method for training them that wasn’t possible before.
If you’re curious you can give it a read, but the important point here is brought up in a tweet by Francois Chollet. I haven’t seen him grace my timeline in a long while, although he is one of the first people I followed in the early days of my Twitter account. He points out a notion that’s been becoming more apparent in deep learning research: model architecture is not actually that important in the grand scheme of things, given enough data every kind of architecture can achieve the same performance.

This is at the same time a sobering but also depressing realization: does that in fact mean that all of Deep Learning is in fact just a big charade of function approximation? This also brings up the question if we’re actually on the right track towards AGI; if data is in fact so much more important, are the current methods actually capable of some sort of AGI, or will it require a completely different approach that we just haven’t discovered yet?
### I am tired of AI
With an article of his, Bas Djikstra laments the ever increasing presence of AI in almost every area of our current digital existence—a sentiment that is arguably shared by many at this point—while AI accelerates many tasks related to writing and programming, it still requires human expertise and effort to turn whatever the AI spits out into something useful.
[I am tired of AIUnless you have been living under a rock for the last few years, you probably have seen the same massive surge I’ve seen in the application of artificial intelligence (AI) to pretty much every problem out there, in software testing, in software development, and in life in general.On Test AutomationBas Dijkstra](https://www.ontestautomation.com/i-am-tired-of-ai/?ref=gorillasun.de)
And it’s definitely something that I'm also feeling more and more; what was at one point an impressive feat of computation is now less than mundane, annoying even in certain scenarios. I don’t think I really want to see another AI generated image, or read another sentence that’s obviously LLM generated.
Just like the ad-pocalypse trained my brain to entirely censor out anything that looks remotely like a cheap ad-banner, the same is happening with when I just catch a whiff of something having been AI generated, I click away and move on with my life, because it’s probably not worth spending time on.
Dr. Amy Clukey echoes this with a Tweet of hers that became quite viral:
[](https://x.com/AmyClukey/status/1842342623295533117?ref=gorillasun.de)
[Link to Tweet](https://x.com/AmyClukey/status/1842342623295533117?ref=gorillasun.de)
## Music for Coding
This week's music recommendation is the young band Yuuf, who released their first EP "In the Sun" earlier this year. The EP has been quite successful, with a live recording posted on YouTube amassing over 700,000 views in just one month. The band has already celebrated several important gigs, including a performance on KEXP. Yuuf's sound can be best described as a blend of instrumental soul and ambient retro psychedelia:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 74Visiting Bjørn Staal’s Entangled - JS13K Competition - Electric Op at Buffalo AKG - Licia He Plotter Workshop & FEMG3N - Ghost CMS Developments - Josh Comeau’s New Blog - Jonas Hietala on 15 Years of Blogging - OpenAI becomes For-ProfitGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-74)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 74
URL: https://www.gorillasun.de/blog/gorilla-newsletter-74/
Last updated: 2024-09-30T05:00:32.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 74th 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## Visiting Bjørn Staal's Entangled
Maybe you caught a glimpse of it already over on TwiX, but last week I managed to catch the Entangled exhibition over at the Wintercircus in Ghent. Which is also the reason why I did not have time to send out the weekly newsletter—but we're making up for it with this special segment.
Now it's already been a week that the exhibition concluded, but it's still been on my mind over the past couple of days. I am genuinely incredibly grateful to have been able to see it in peron; the Wintercircus is really a venue like none other—and you really had to be there to *feel* the space. *#nofomo*


I really think that it was a perfect venue for the project.
In the short time that I've been with fxhash now, I really need to give a big kudo to the team for the effort and dedication that went into putting all of it together over course of several months. From the amazing custom project page, to the project's release, as well as the complicated logistics behind the actual installation—so much work went into it all, that goes a bit unnoticed when you just see the end product in form of a tweet in your timeline.
I maybe feel just a tad bit guilty to be able to join in for the good bits after all of the hard work has already been done; but on the other hand, its awesome to see this part of generative art history come to life in person. I even got to hang out with Bjørn a bunch, who's a really nice, down to earth kinda guy, and got to chat with him not just about the project, but also about all sorts of other things:

Getting a private tour from Bjørn. Also me contemplating my next trip to Turkey, colorized.
You should actually keep your eyes peeled, there's an article coming up that aims to capture the entire story behind the project.
Also worth mentioning, is that the exhibition concluded with a couple of workshops, which is in part why I was actually in Ghent. I got to give an intro to creative coding and generative art workshop, where I gave a whirlwind tour of the entire current scene and community around it, and also live-coded a couple of examples. I think the few that attended really enjoyed it, I even got a bunch of messages afterwards.


I posted a tweet during the workshop, showing how easy it is to export an animated looping GIF with p5, and for some reason the Tweet got quite a few likes. [Tweet for reference](https://x.com/gorillasu/status/1837456727194620224?ref=gorillasun.de). Thanks Olha for the pic!
I also got to enjoy Bjørn's workshop where he provided an overview of the code behind Entangled. It ended up being a 4 hour long tour de force, but I learned a lot about Three.js and how to manipulate millions of particles on the GPU—we'll definitely have to think about bringing the workshop contents to the community, either in form of written tutorials or an online workshop.
Besides all of this, Ghent is also really just such an absolutely beautiful city, wish I would have been able to see more of it. But that simply means that I'll have to visit again!
## All the Generative Things
### The JS13K Coding Competition
JS13K is a yearly coding competition for **web game developers**, where submissions need to adhere to a **13KB** size limit. The competition runs throughout the month of August, from the 13th till the 13th of September—meaning that it's already concluded this time around, but there were a couple of cool things I wanted to point out with this segment.
For starters, this year marks the 13th anniversary of the virtual game-jam. For this occasion, the theme was fittingly chosen to be [triskaidekaphobia](https://medium.com/js13kgames/js13kgames-2024-start-and-theme-announcement-5d734f77da68?ref=gorillasun.de), a term that essentially stands for a fear or avoidance of the number 13\. You can read the announcement here:
[js13kGames 2024 start and theme announcement!The thirteenth, anniversary edition of the online js13kGames competition starts… NOW! Build a Web game on a given theme within the next…js13kGamesAndrzej Mazur](https://medium.com/js13kgames/js13kgames-2024-start-and-theme-announcement-5d734f77da68?ref=gorillasun.de)
Every year size coders from all around the world virtually flock together to show their chops and participate in the game-jam, and naturally one of the participants is none other than the prolific Frank Force. His submission for this installment is an Outrun inspired racing game that also incorporates a procedural element in how the visual assets are generated during the game's startup—you can play it for yourself [here](https://killedbyapixel.github.io/Drive13K/?ref=gorillasun.de), and learn a bit more about how the game works through Frank's tweets:


[Link to Tweet](https://x.com/KilledByAPixel/status/1836115337705656523?ref=gorillasun.de) | Do you think you can beat my time? Let me know if you do 😆
Crazy how much you can do in just 13kb. Besides being an impressive feat of programming, the game actually turns out to also be quite addictive, even though it's relatively simple—I didn't think that I'd end up playing it as much as I did. Right now I'm still trying to crack that sub 6 minute speed-run, but that's gonna take me a couple more tries at least.
With the number of times I've mentioned Frank Force on the Newsletter at this point, I might as well rebrand it to "Frank Force Fanletter"—I'm not complaining though, keep' em coming 😄 Also make sure to check out some of the other games that folks have submitted to the challenge, it was a joy going through [the submissions page](https://js13kgames.com/2024/games?ref=gorillasun.de) and playing through a few.
### Electric OP at the Buffalo AKG + Stan VanDerBeeks OP Art
**Op Art**, short for **Optical Art**, is a style of visual art that uses optical illusions to create a sense of movement, flashing, vibrating patterns, or other effects that trick the eye. The art form emerged in the 1960s and is closely associated with geometric abstraction and minimalism, but with a specific focus on how patterns, shapes, and colors can deceive the human eye.
Currently there's a huge exhibition taking place at the Albright-Knox Art Museum, located in Buffalo, New York, that revolves in its entirety around Op Art, tracing the artform's 60 year old history and featuring most of the significant pieces of art in that regard over the years. If you're in that part of the world, you should definitely try and catch the exhibition, it's going to be on till the 27th of January 2025, so you still have ample time:
[Electric Op | Buffalo AKG Art MuseumPlease note: Electric Op contains many artworks with intense optical effects and illusions that may cause vertigo, migraine, or nausea. The show is not recommended for anyone with photosensitive epilepsy (PSE) or severe vertigo.Buffalo AKG Art Museum](https://buffaloakg.org/art/exhibitions/electric-op?ref=gorillasun.de)
Two famous artists that you might know in that regard are [Victor Vasarely](https://buffaloakg.org/person/victor-vasarely?ref=gorillasun.de), who's often regarded as the father of Op Art, as well as[Bridget Riley](https://buffaloakg.org/person/bridget-riley?ref=gorillasun.de)**,** known for her black-and-white and later colorful works that create the sensation of movement and visual tension.


Vega from the portfolio Cinétique III by Victor Vasarely, 1950-1960 | Coloured Greys III by Bridget Riley, 1972
The exhibition shines a light on many more artists though, that might not be as recognized, for instance I wasn't familiar with Stan VanDerBeek's Op art, particularly his 1970 short film titled Moirage—[this obscure article](https://www.johncoulthart.com/feuilleton/tag/stan-vanderbeek/?ref=gorillasun.de) I found describes the short film as "*an abstract work that animates the kinds of patterns that would have been deemed Op Art in the few years before LSD use became widespread*". I believe that the short film can actually be viewed at the exhibition.
Unarguably Op Art has deep ties with algorithmic art, in both cases, **geometry, repetition, and structure** are fundamental components. But beyond the aesthetics, the methods by which Op artworks are produced present similarities, often requiring precise calculations and automated means for creating patterns. [In issue 47 of the newsletter I wrote about Akiyoshi Kitaoka's mesmerizing algorithmically generated optical illusions](https://www.gorillasun.de/blog/gorilla-newsletter-47/#optical-illusions-by-akiyoshi-kitaoka) and his documentation thereof, in case you'd like to explore an extensive resource on the topic.
To wrap up this segment, here's a Tweet from the renowned art collector Michael Spalter explaining the significance of the exhibition:
[](https://x.com/michaelspalter/status/1840431920854782154?ref=gorillasun.de)
[Link to Tweet](https://x.com/michaelspalter/status/1840431920854782154?ref=gorillasun.de)
### Licia He's Plotter Workshop + Third installment of FEMG3N
Licia He gave this wonderful workshop, that I really wish I could have attended; taking place at the Victoria and Albert Museum in London, Licia hosted a participatory event where folks could join in to make their own plotter drawings—Licia posted a bunch about it over on TwiX, and there's also some updates about her upcoming plotter course:


[Link to Tweet #1](https://x.com/Licia%5FHe/status/1833174194047041800?ref=gorillasun.de) | [Link to Tweet #2](https://x.com/Licia%5FHe/status/1837611775098781851?ref=gorillasun.de)
What's more is that she'll also take part in the third installment of FEMG3N that's taking place on the 12th of October, alongside generative artist Anna Ridler, to talk about how *new generative approaches are redefining the relationship between art and technology—*if you're based in London you can RSVP here:
[FEMG3N: Expanding the Art World with New Digital Practices - Talk at V&A South Kensington · V&AJoin artists Licia He and Anna Ridler in conversation as they discuss how new generative approaches are redefining the relationship between art and technology. Chaired by Charlotte Kent and with contributions from Peter Bauman and Melanie Lenz.Victoria and Albert Museum](https://www.vam.ac.uk/event/aKJWbELqpo/femg3n-expanding-the-art-world-12-october-2024?ref=gorillasun.de)
And if you want to learn more about FEMG3N, you should check out this [article](https://www.rightclicksave.com/article/femgen-and-the-brave-new-art-world?ref=gorillasun.de) from the RCS magazine published back in 2023.
### Other Cool Generative Things
1. Last Week, [Jeff Davis](https://x.com/jeffgdavis?ref=gorillasun.de) and [Erick Calderon](https://x.com/ArtOnBlockchain?ref=gorillasun.de) announced the launch of their [Generative Art Fund](https://x.com/jeffgdavis/status/1836794933392359768?ref=gorillasun.de), an initiative that aims to *elevate generative art in all its forms and promote creative coding as a meaningful artistic practice*. For instance, it is currently supporting the Electric Op exhibition. If you would like to pitch an idea for a grant request, or contribute with a donation, you can do so over on [the fund's website](https://www.generativefund.org/?ref=gorillasun.de).
2. Version v1.11 of P5.JS was just released, and as always it introduces a bunch of [bug fixes as well as a couple of new features](https://github.com/processing/p5.js/releases/tag/v1.11.0?ref=gorillasun.de). Most notably, it includes a cool new way to extend and modify existing P5 shaders with a hook—[Dave posted a demo of how this works over on TwiX](https://x.com/davepvm/status/1840194540545687618?ref=gorillasun.de).
3. [Data through Design put out their 2025 open call](https://datathroughdesign.com/?ref=gorillasun.de). They're looking for participants to pitch their ideas in a wide range of media and formats with the one requirement to reference or useat least one [NYC Open Data dataset](https://opendata.cityofnewyork.us/data/?ref=gorillasun.de) in their project.
4. The [Web Game Dev Newsletter](https://www.webgamedev.com/newsletter/022?ref=gorillasun.de) is a cool resource that gets sent out every 3 months summarizing everything noteworthy in the space, from framework updates, to new tool releases, as well as articles and videos about implementing specific algorithms. The latest issue just came out this past week—my favorite mention is probably the [Rune Blog](http://developers.rune.ai/blog/building-a-scalable-multiplayer-game-architecture?ref=gorillasun.de), that's publishing an impressive number of posts about developing multiplayer games.
5. [Humanbydefinition is releasing a new project in just a couple of days on fxhash](https://x.com/humanbydes1gn/status/1837836998200963362?ref=gorillasun.de). Similarly to the previous project it features mesmerizing shifting ASCII pattern. If you would like to get insight into how the piece works from a technical point of view, come check out the discord (shameless plug), they left [a chonky explainer in the creative-coding channel](https://discord.com/channels/1168651116855173161/1233785303429288047/1289361021953249362?ref=gorillasun.de).
## Tech & Web Dev
The good thing about taking a break from the Newsletter is that the number of cool things to talk about quickly adds up—this week I had absolutely no trouble finding interesting things to feature in the Tech & Web dev section. If you're a fan of blogging, building blogs, or reading blogs, then you're in for a treat!
### Developments with the Ghost CMS
Over the past couple of weeks there's been a bunch of exciting developments with the Ghost CMS—all of which have been really exciting to follow. This isn't a sponsored segment, but as somewhat of an independent writer, I'm really happy to be using the open source tool that Ghost provides, especially considering that they are putting in a lot of effort into improving their tool in all aspects.
It is invigorating to see a company actually care about their product and their users—considering that it is currently a trend for platforms to blatantly exploit the latter.
But let's get to some actual updates here. Recently they teased a new analytics dashboard in a tweet of theirs titled "WIP 👀". And if the attached image is actually what the stats dashboard will be like, then I'm actually super excited about it—it would mean that I could simply ditch Google Analytics at some point and have visitor stats natively in the Ghost admin dashboard without going through a third party service—this is even better for those that are self-hosting their Ghost instances:

[Link to Tweet](https://x.com/Ghost/status/1836827009990938906?ref=gorillasun.de)
I'm really hoping that this will also enable querying of this data directly on the blog itself. For instance, displaying a visitor counter on posts is something I've been wanting to do for ages, but haven't really found a solution to at this point (without using yet another third party service that is).
A second big update, is that Ghost is slowly, but surely coming to the Fediverse. In their dedicated Fediverse newsletter, they recently announced that they reached a big milestone: users in the Fediverse can now leave comments on posts that were sent out from Ghost, and vice-versa, replies on Fediverse enabled Ghost blogs will also show up in the Fediverse. Their recent newsletter states that a private beta is now only a few weeks away:
[They say conversation is the music of the mindIt’s time we had a talkBuilding ActivityPubGhost](https://activitypub.ghost.org/they-say-conversation-is-the-music-of-the-mind?ref=gorillasun.de)
Am I being unreasonable to be this excited? Every Ghost blog can then by default reach an audience directly in the social feeds of Fediverse clients.
Lastly, and on a related note, Ghost is now also partnering up with The Social Web Foundation that recently launched on the 24th of September. Their mission is "a growing, healthy, financially viable and multi-polar Fediverse"—I'm not entirely sure what it entails at this point, but it feels important, and I'm interested to see what will come of it:
[](https://x.com/Ghost/status/1838627561632317606?ref=gorillasun.de)
[Link to Tweet](https://x.com/Ghost/status/1838627561632317606?ref=gorillasun.de)
### How Josh Comeau built his Blog
The CSS wizard Josh Comeau recently re-built his blog, and in tandem published a big article documenting the tech that now powers his site; turns out that there's an impressively complex custom tech stack sitting behind the scenes—in essence the blog is one big Next.js app, that's been rebuilt to use the modern App Router, in favor of the previous Pages Router.
[How I Built My Blog • Josh W. ComeauI recently launched a brand new version of this blog, and in this post, I share how it’s built! We’ll examine the tech stack and see how all of the pieces fit together, as well as dig into some of the details to see how they work.Josh W. Comeau](https://www.joshwcomeau.com/blog/how-i-built-my-blog-v2/?ref=gorillasun.de)
If you're not familiar with Next.js, it's basically a React framework (the most popular one actually) for building fast and scalable web apps. Its main appeal is that it makes routing super easy (what to show users when they visit a specific URL) and allows the rendering of pages on the server before showing them to users. The cool thing about the App Router I mentioned, is that it now lets you render specific parts of a web page on the server before sending them to the client, via React Server Components (there's a big buzz around them right now).
But that's just scraping the tip of the iceberg, Josh goes into much more detail, on content management with MDX (that lets you embed JavaScript directly in the markdown files), syntax highlighting, code snippets, as well as interactive code playgrounds, and much more. All in all it's incredibly impressive—a must read if you want to learn about a true class act of building a your own personal blog. Some companies' blogs are much less elaborate than that...
Earlier this year I spent a bit of time on learning Next.js, and I even made a couple of mini apps with it, but the entire eco-system is still a big mystery to me. Once I'm a bit less busy again I'll try to get back into it.
### Why I still blog after 15 years
Jonas Hietala wrote a beautiful post in which he explains why he still blogs after 15 years—besides enumerating a bunch of reasons why blogging is a worthwhile personal endeavor, all of which I wholeheartedly agree with, he also provides a quick timeline visualizing how the tech stack that powered his blog has evolved over the years. Crazy to see that Jekyll was already a thing in 2009:
[](https://www.jonashietala.se/blog/2024/09/25/why%5Fi%5Fstill%5Fblog%5Fafter%5F15%5Fyears/?ref=gorillasun.de)
[Link to Article/Blog](https://www.jonashietala.se/blog/2024/09/25/why%5Fi%5Fstill%5Fblog%5Fafter%5F15%5Fyears/?ref=gorillasun.de)
I've been directing my efforts into this very blog for over 3 years now, which is far longer than any other project I've ever worked on; somehow, miraculously, I've managed to keep at it all this time, no matter the other things that were going on in my life. Evidently, 15 years is a much longer time span than 3 years—5 times longer to be precise. Pretty much all of the points that Jonas mentions throughout, are all ones that also resonate with me—there's two that I want to highlight and add onto:
1. **Looking at a log of things I’ve done makes me feel better**: this might sound silly, but for the longest time I would feel incredibly depressed every New Years eve—almost suffocated by existential dread—with a feeling that I have accomplishing nothing at all throughout the year. Writing my yearly recap (for the past 3 years now) has completely wiped out that feeling. Looking back at all the things that I've done throughout the year, all the projects I've worked on, all the articles I've written, **with documented proof**, makes it hard for my brain to gaslight myself into feeling that I haven't accomplished anything.
2. **Writing helps me think more clearly and helps me flesh out ideas**: to a big extent that's also true for me. Writing things down allows me to get them out of my brain—the ideas now live in on the paper or the digital document that I wrote them on, and some quiet can now take over the vacant space. I know that there's some arguments against to-do/idea lists, but they help me tremendously to bring structure into the chaos.
All of that said, I think everyone should blog, at least for themselves. I often make fun of my younger sister for writing her diary every single day—like she basically documents every detail of each day (I guess we're a weird kind of family 😆)—but looking at it now, I think that I'm not so different; I also obsessively put together this Newsletter every week 🤷
### Other Cool Things
1. A couple of weeks ago I shared Oskar Wickström's cool minimal design exploration titled the Monospace Web. Last week he published an insightful [article](https://wickstrom.tech/2024-09-26-how-i-built-the-monospace-web.html?ref=gorillasun.de) explaining the most significant bits of CSS that contribute to aligning all elements to a grid. Fun fact, the idea for the exploration started from [a simple tweet in which Oskar yearns for a simpler web](https://x.com/owickstrom/status/1825200136873501136?ref=gorillasun.de).
2. It seems that it's currently "rework your personal blog" season: Ahmad Shadeed, another repeat offender on this newsletter, also recently wrote about [how he redesigned his blog](https://ishadeed.com/article/redesign-2024/?ref=gorillasun.de).
3. [The State of HTML 2024](https://survey.devographics.com/en-US/survey/state-of-html/2024?ref=gorillasun.de) survey is now up and running, awaiting your feedback. Go and fill out the survey, so that I have something to write about when the results come out. Jokes aside, I actually really enjoy seeing the outcome of these whenever they come back around.
## AI Corner
### OpenAI becomes For-Profit
Last week we observe OpenAI make a huge shift in their corporate structure, leaving behind its nonprofit roots to become a for-profit benefit corporation under CEO Sam Altman’s control. Altman now holds significant equity worth billions—in stark contrast to earlier claims of being financially independent from the company’s profits—and now ultimately holds control over the company:
[OpenAI as we knew it is deadThe maker of ChatGPT promised to share its profits with the public. But Sam Altman just sold you out.VoxSigal Samuel](https://www.vox.com/future-perfect/374275/openai-just-sold-you-out?ref=gorillasun.de)
In an ever dwindling number of executive figures in OpenAI, shortly before the news broke about OpenAI's restructuring, current CTO Mira Murati announced that she would be leaving the company after 6 and a half years. OpenAI chief research officer Bob McGrew and vice president of research Barret Zoph then also announced their resignations in the aftermath.
### Cursor AI Efficiency Hack
McKay Wrigley shares a trick to improving the efficiency of Cursor's AI powered code completion, turns out that you simply need to add a ton of comments that explain the code:
[](https://x.com/mckaywrigley/status/1838321570969981308?ref=gorillasun.de)
[Link to Tweet](https://x.com/mckaywrigley/status/1838321570969981308?ref=gorillasun.de)
I did end up taking Cursor AI for a test run a couple of weeks ago, and while I'm positively impressed, I do have some mixed feelings about how the AI copilot changes the way that I write code—it frequently feels like I'm less in control and I end up relying on it too much. But I'll probably have to write about it in more detail at some point.
## Music for Coding
I've been desperately looking for other psych-rock bands that hit the same way Yīn Yīn and Altın Gün, and I finally discovered Glass Beams that fits into the same category with their experimental sound. Based in Australia, the three members hide anonymously behind masks during their live performances. The band gained attention with their debut EP *Mirage*, released in 2021, which was praised for its rich textures, blending vintage and contemporary influences, as well as its instrumental focus, which avoided traditional vocals and instead relied on atmospheric and instrumental storytelling.
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 73Hexaflexagons and other Mathematical Diversions - Roni Kaufman’s Portrait Robot - Computer Art Pioneer Lillian Schwarz - Personal Update: I’m Joining the fxhash Team - How to Monetize your Blog - Stripe’s New Website - PHP is the New Javascript - OpenAI’s New o1 ModelGorilla SunAhmad Moussa](https://gorillasun.de/blog/gorilla-newsletter-73?ref=gorillasun.de)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\~ Gorilla Sun 🌸**
### Gorilla Newsletter 73
URL: https://www.gorillasun.de/blog/gorilla-newsletter-73/
Last updated: 2024-09-16T05:00:37.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 73rd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Hexaflexagons and Other Mathematical Diversions
**Flexagons** are flat, geometric shapes, usually made of paper, that can be folded and "flexed" to reveal hidden faces. In essence, they're a particular type of topological structure that appear to be flat polygons, like hexagons or triangles, but have more faces hidden within their interior. Unfolding these structures then lets you reveal these hidden faces, that you wouldn't expect by just by looking at them.
Describing flexagons with words probably makes little sense—I definitely had trouble conjuring up a mental image of how these *magic* paper tricks work when I first read about them—so here's a little visual aid:


[Wikipedia Article on Flexagons](https://en.wikipedia.org/wiki/Flexagon?ref=gorillasun.de)
The shape that you see above is called a trihexaflexagon. As its name suggest, a trihexaflexagon is a hexagon that can potentially display three different faces, of which the third is always hidden within its interior.
This particular configuration is apparently also the first flexagon that was initially discovered. And the story how this discovery came to be is also quite fascinating. During his studies at Princeton University in 1939, British mathematician Arthur H. Stone had to trim off the protruding lengths of his American papers to fit into his English binder. He then started folding the leftover strips into different shapes, eventually forming a trihexaflexagon.
The notion of Flexagons was later brought to the public through Martin Gardner in the December 1956 issue of the Scientific American. Gardner was in charge of writing a recreational mathematics column for the magazine that generally covered a wide range of topics:


You should be able to find a PDF version of the book by giving the title of the publication a google 😜
Gardner's text on Hexaflexagons was so successful, and received so many mail ins, that it became a regular column which subsequently ran for the next 25 years. Over on Wikipedia you can actually find a complete list of all mathematical games that Martin Gardner authored throughout those years—definitely an instant bookmark, as it's a treasure trove of ideas for creative code related purposes:
[](https://en.wikipedia.org/wiki/List%5Fof%5FMartin%5FGardner%5FMathematical%5FGames%5Fcolumns?ref=gorillasun.de)
[List of Martin Gardner's Mathematical Puzzles](https://en.wikipedia.org/wiki/List%5Fof%5FMartin%5FGardner%5FMathematical%5FGames%5Fcolumns?ref=gorillasun.de)
If this has peaked your interest, and want to make your own physical paper flexagons, you might also want to check Vihart's very popular video on the topic that explains how to put fold your own flexagons:
***No flexagons were harmed during the writing of this segment.***
### Roni Kaufman's "Portrait Robot"
While we're already talking about paper cutouts and making creative things with them, I'd like to highlight [Roni Kaufman](https://x.com/KaufmanRoni?ref=gorillasun.de)'s shortlisted submission for Combine24, "Protrait Robot", that puts a creative generative spin on dadaist inspired collages:


[Link to Thread](https://x.com/KaufmanRoni/status/1821885378837561385?ref=gorillasun.de)
When I first caught wind of [the open call](https://combine24.alusta.art/?ref=gorillasun.de) I spent some time trying to figure out a creative approach to remix the dataset provided by the Finnish national gallery. Being a mix of artworks that primarily consisted of portraits and landscape paintings, alongside some other miscelanious artworks, it felt like a tough nut to crack—working with data, or any sort of input, is not really my fortée.
I thought that Roni's project was really refreshing, particularly because collages and photomontages, have become a bit frowned upon in the genart scene in recent years—mainly due to fact that the technique is frequently used for uninteresting PFP projects. Culturally however, collages played an integral part in the 1920s Dadaist art movement that tried to subvert and reject established aesthetic norms. Using fragments of mundane, everyday materials allowed artists to create entirely new things, as a means to critique conventional values. And I think that Portrait Robot captures the essence of the movement brilliantly.
Worth pointing out here, is that it actually isn't the first time that Roni tries his hand at image manipulation/processing - a work of his that I frequently find myself coming back to is his personal Poetical Computer Vision challenge back from July 2021, where the same image of Ada Lovelace is transmogriphied in 31 different ways:

[GitHub - ronikaufman/poetical\_computer\_vision: 31 portraits of Ada Lovelace made with code31 portraits of Ada Lovelace made with code. Contribute to ronikaufman/poetical\_computer\_vision development by creating an account on GitHub.GitHubronikaufman](https://github.com/ronikaufman/poetical%5Fcomputer%5Fvision/tree/main?ref=gorillasun.de)
Besides that, Roni's also an awesome dude (we hung out a bunch at the Berlin Summit)—if you get the chance you should try to catch the [Stockholm creative code meetup](https://x.com/KaufmanRoni/status/1834556145534370099?ref=gorillasun.de) that he's organizing once a month. Also make sure to check out the other [shortlisted projects for Combine24](https://combine24.alusta.art/?ref=gorillasun.de), they're all very smart.
### Computer Art Pioneer Lillian Schwartz
Noah Bolanowski frequently shares interesting computer art history threads over on his TwiX profile. In a recent one he highlights a post that Le Random shared earlier this year in April, revolving around MoMa's 1968 landmark exhibition "The Machine as Seen at the End of the Mechanical Age". Curated by Pontus Hultén, the exhibition aimed to reflect on the profound changes brought by machines and mechanization in the modern world, especially as society was transitioning from the mechanical to the electronic age.
Noah's thread adds further context around the genart pioneer Lillian Schwarz that participated in the exhibition with a piece of hers, sharing two short video sequences that provide a glimpse into the exhibition:


[Link to Noah's Thread](https://x.com/Noahbolanowski/status/1834580586595328032?ref=gorillasun.de) | Noah also points out a [Tweet](https://x.com/nf%5Fsuzanne/status/1712031916625653785?ref=gorillasun.de) from SuzanneNFT that recaps Lillian Schwartz's career.
You can explore the entire exhibition catalogue over on [the MoMa website](https://www.moma.org/calendar/exhibitions/2776?ref=gorillasun.de). Schwartz initially worked in more traditional art forms, but her groundbreaking work in digital media and her collaborations with scientists, engineers, and researchers helped to establish the foundation for the field of computer art. Working at the famous Bell Laboratories gave her access to cutting-edge technology, including early graphics software and hardware, which she used to create her digital artworks.
The first video Noah shares is an excerpt from Lillian Schwartz's 1976 documentary "The Artist The Computer" in which she showcases how computers can be used as creative tools by artists. Schwartz essentially demonstrates how algorithms and programming can be used to generate artistic images and animations, emphasizing the creative potential of computers:
The documentary underscores the idea that, rather than replacing the artist, the computer becomes a powerful extension of artistic expression. You might want to give Noah over on TwiX for more educative updates like this one.
### Other Cool Generative Things
- [The second part of Patt Vira's Quadtree powered flocking simulation tutorial is now up on YouTube](https://www.youtube.com/watch?v=AMugNCfP1NA&ref=gorillasun.de).
- [Two Stop Bits is basically a Hacker News type website for retro computing and gaming.](https://twostopbits.com/?ref=gorillasun.de) Might be worth checking every now and then.
- Freya Holmér posted a useful infographic that explains the proper way for visualizing XYZ axes and how to think about them in terms of handedness - discussions ensue in the thread's replies:
[](https://x.com/FreyaHolmer/status/1834989650236015036?ref=gorillasun.de)
[Link to Tweet](https://x.com/FreyaHolmer/status/1834989650236015036?ref=gorillasun.de)
## I'm joining the fxhash Team!
Last week marked a huge personal milestone for me: I joined the fxhash team as a generative art educator! Check out the announcement Tweet that was posted, it sums things up pretty succinctly:

[Link to Tweet](https://x.com/fx%5Fhash%5F/status/1834668118159114658?ref=gorillasun.de)
In essence I'll be helping out with bringing more regular updates to the community, and keeping you guys informed on generative art related things.
What implications does that have for the blog? Moving forward, my main priority will definitely be the work at fxhash—which simply means that you'll be seeing more of me, just in a different place. My weekends will still be spent putting together the newsletter, so no worries about that. Might mean that future issues are going to be a tad bit shorter in the first couple of weeks, as I'll be trying to balance between all of these new experiences and finding a sustainable rhythm.
## Tech & Web Dev
### How to Monetize a Blog
*How to Monetize a Blog* is a biting satire of modern blogging culture, particularly the erosion of content quality in pursuit of monetization. The post seemingly starts out like a genuine informative piece, explaining how blogs are commonly monetized—but it's just a bait and switch—the piece gradually devolves into an absurd web experience:
[How to Monetize a BlogA guide on turning your diary into dollars.](https://modem.io/blog/blog-monetization/?ref=gorillasun.de)
I have a love/hate relationship with display ads, while they are one of the few options to monetize content on the web that simultaneously allow the content to be freely available, they are also generally frowned upon.
The problem with advertising on the web are mainly the ethics attached to it. The root cause of it all: traffic being the main metric measured to determine ad revenue. This has the consequence that in many cases the actual content becomes secondary—content is no longer king, and quantity becomes more important that quality. That's the reason why "Clickbait" emerged as a phenomenon in the first place. While people are nowadays less susceptible to it, we see predatory algorithms exploit our brains in other ways.
YouTube is an example of a platform, that seems to have struck a good balance. Creators that post their content on the platform, have the option to get compensated for their efforts when they agree to have ads shown on their videos—in other words, when they agree to have their content used as promotional vessels. On the other hand, the platform also provides you with the option to pay a monthly subscription fee to avoid being presented ads; meaning that you can pay a convenience fee, to avoid being inconvenienced. It's debatable if this is ethically questionable, because you could also compare it to a sort of highway toll - you're using YouTube's service after all, and they need to generate revenue to keep operations going.
For the individual creator, the ethical considerations of advertising is more nuanced. Having ads on your personal blog is kind of frowned upon; it can be intrusive, it detracts from the actual content, makes things seem unauthentic, and by matter of association with the flood of low quality websites out there, it can make things seem *cheap.* However, as mentioned, ads provide a potential revenue stream and offer compensation for the time and effort that's invested in creating the content—which is generally crucial for independent platforms to sustain themselves.
On the other hand though, introducing ads risks compromising the very qualities that attract and retain an audience. It seems that creative integrity often comes at the expense of financial sustainability, especially in the modern "creator economy" bubble where content is often expected to be free. Every cent earned comes with a twinge of guilt, every ad-free post with a pang of missed opportunity.
Tangentially related, last year I wrote an article about predatory social media algorithms, and I believe much of it still holds true:
[The Current State of Social MediaSocial media has changed significantly over the past two decades: from networks that aimed to connect people, to content-centric devices that mainly care about engagement and user retention. Many issues arise that are not immediately evident to the user.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-current-state-of-social-media/)
I'll likely have to revisit this topic in depth again at some point though.
### Stripe's New Website
If you're not familiar with Stripe, it's an online payment processing platform. It enables businesses to accept payments and manage transactions through a suite of different APIs. In the last week they made a big buzz with the launch of their new website—and it really is a work of art. The designer behind the new interface Devin Jacoviello compiled a thread in which he goes over the inspirations for this new design:


[Link to Tweet](https://x.com/devinjacoviello/status/1833521766146445830?ref=gorillasun.de) | [Link to Stripe Website](https://stripe.dev/?ref=gorillasun.de)
Maybe it's just me, but even if you don't use Stripe, I'd say that it's still worth checking out the site for a couple of minutes and playing around a bit—there's a bunch of cool easter-eggs. Coolest thing is that there's a console, that lets you execute a bunch of commands, to change the theme for instance, play background music, and even has a playable snake game. Another stand out thing, that probably is of interest to the Gorilla readership, is that many parts of the website are infused with minimal animated sketches:

Web-design at its finest! 👏
### PHP is the new Javascript
I have faint memories of using PHP when they first taught us about web development back in Uni, but I haven't interacted with it ever since, nor have I really tried to keep up with it, but apparently the PHP of 2024 is leaps and bounds better than it was a decade ago. A recent article from Dave Kiss chronicles his rediscovery of PHP and newfound potentials with the Laravel framework:
[Look out, kids: PHP is the new JavaScript | MuxWhat would it take to switch back to PHP after years of full-stack JavaScript? A boy and his AI-enabled IDE set off to find out.Mux LogoDave Kiss](https://www.mux.com/blog/php-is-the-new-javascript?ref=gorillasun.de)
Laravel is to PHP what Node.js is to Javascript, describing itself as "The PHP Framework for Web Artisans" it provides much of the functionality required for putting together an MVP straight out of the box. In his Article Dave is surprised to discover the potence of Laravel.
PHP's initial appeal was its low barrier to entry, but this also led to its reputation for poor code quality and scalability issues. Even in 2024, the server side scripting language still gets a really bad rep - and with the rise of Node.js it's been abandoned by many web devs at this point, especially considering that the job market is also dominated by the Javascript eco-system. I guess the final take-away here is that Laravel is a potent one-in-all solution that might be worth exploring.
### Other Cool Tech Things
- [Philipp Opperman wrote a massive guide to programming a complete OS in Rust](https://os.phil-opp.com/?ref=gorillasun.de).
- [Scott Chacon a co-founder of Github wrote about how the platform became the dominant force that it is today.](https://blog.gitbutler.com/why-github-actually-won/?ref=gorillasun.de) He provides a quick TLDR summary of the two reasons he thinks were important towards that end; he states that GitHub started at the right time, and had good taste when it came to the developer experience.
- Josh Comeau is back with another article, this time he writes in depth about [the CSS :has pseudo class](https://www.joshwcomeau.com/css/has/?ref=gorillasun.de).
## AI Corner
### OpenAI's New o1 Model
OpenAI released their new series of o1 models, and the benchmarks indicate that they're magnitudes more powerful than previous installments of Gippity based models—Sam Altman boasts with stats over on TwiX:
[](https://x.com/sama/status/1834283100639297910?ref=gorillasun.de)
[Link to Tweet](https://x.com/sama/status/1834283100639297910?ref=gorillasun.de)
This new series of *deep reasoning* o1 models differentiates itself from the previous GPT installments as they engage in a sort of self-reasoning feedback loop before yielding a response. While this comes at the cost of a longer delay before an answer is returned—where the chat interface lets you know that the model is *thinking*—it lets the LLM avoid, and amend, hallucinations to ultimately provide a more thoughtful answer, even for relatively complicated tasks.
Right now o1 models are reserved for those that subscribed to OpenAI's services on a plus plan, and that at a very limited weekly rate, but you can still get a taste of how it works however through the complementary [technical write-up](https://openai.com/index/learning-to-reason-with-llms/?ref=gorillasun.de) that the OpenAI team shared last week. They showcase how the model constructs a chain-of-thought in the context of different tasks.
As always, also do check out Fireship's entertaining recap:
### Google's DataGemma
That's just the tip of last week's LLM iceberg though, Google also came out with 2 new models last week: by embedding the Data Commons knowledge graph, that contains over 240 million data points from trusted sources, DataGemma also aims to be more factually accurate:
[DataGemma: Using real-world data to address AI hallucinationsIntroducing DataGemma, the first open models designed to connect LLMs with extensive real-world data drawn from Google’s Data Commons.GooglePrem Ramaswami](https://blog.google/technology/ai/google-datagemma-ai-llm/?ref=gorillasun.de)
## Music for Coding
And to wrap things up, my music recommendation this week is the Hermanos Gutiérrez. I randomly came across a track of theirs listening to a playlist, and was immediately hooked—the duo’s use of reverb-drenched guitars creates a lush, expansive sound that is both intimate and spacious, and evokes a sense of nostalgia, with an almost mystical atmosphere. If I had to put a label on it, it's a slow, moody, and atmospheric blend of Latin folk, blues, and even a touch of flamenco and surf:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 72Completion of Le Random’s Genart Timeline - Computational Life: Self-Replicating Programs - The Art of Finishing - TC39 New Stage in Feature Pipeline - A Fast JS Color Library - Stephen Wolfram on Machine Learning - The Current State of AIGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-72)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 72
URL: https://www.gorillasun.de/blog/gorilla-newsletter-72/
Last updated: 2024-09-09T09:52:00.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 72nd 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Le Random Completes their Genart Timeline
Last Monday, September 2nd, marked the completion of Le Random's expansive generative art timeline. After nearly two years in the making, the massive documentation project catches up to the present day, and in over a 1000 distinct moments it captures all important and influential instances that contributed to the evolution of generative art as we know it today. You can explore the timeline for yourself here:
[Timeline - Le RandomExplore the 70,000-year history of generative art through hundreds of milestones and ten chapters.Timeline - Le Random](https://timeline.lerandom.art/?ref=gorillasun.de#/chapter-10)
The final 10th chapter focuses on the most recent history of generative art - technically only the first half of the current decade - but arguably the most transformative and explosive era that really accelerated the global discourse around the artform, particularly in context of blockchain technology that has opened many new avenues for code as an artistic medium.
As per usual, the release of each chapter is commemorated with a panel that features the most influential characters of the era, and this time is no different, in their podcast Le Random invites [Lauren Lee McCarthy, Erick Calderon, Itzel Yard, Rafael Lozano-Hemmer](https://art.us9.list-manage.com/track/click?u=b6abc6e595e4a0d8b24b5cb25&id=ca85c43bc0&e=6e6e6c4c9f&ref=gorillasun.de):
Monk explains that this should not be considered the end of the timeline though, but rather as a big milestone in Le Random's efforts. The team will continue to refine the content of the timeline, with a planned UI overhaul to make things more user-friendly. It's also revealed that a book is in the making - which I must say, is something that I'm quite excited for.
### Computational Life: Self-Replicating Programs
A recent research paper from the *Google Paradigms of Intelligence* Team shows that a primordial soup of randomly stringed together characters using the esoteric [Brainfuck](https://en.wikipedia.org/wiki/Brainfuck?ref=gorillasun.de) programming language gives rise to self-replicating machines (programs):
[Computational Life: How Well-formed, Self-replicating Programs Emerge from Simple InteractionThe fields of Origin of Life and Artificial Life both question what life is and how it emerges from a distinct set of “pre-life” dynamics. One common feature of most substrates where life emerges is a marked shift in dynamics when self-replication appears. While there are some hypotheses regarding how self-replicators arose in nature, we know very little about the general dynamics, computational principles, and necessary conditions for self-replicators to emerge. This is especially true on “computational substrates” where interactions involve logical, mathematical, or programming rules. In this paper we take a step towards understanding how self-replicators arise by studying several computational substrates based on various simple programming languages and machine instruction sets. We show that when random, non self-replicating programs are placed in an environment lacking any explicit fitness landscape, self-replicators tend to arise. We demonstrate how this occurs due to random interactions and self-modification, and can happen with and without background random mutations. We also show how increasingly complex dynamics continue to emerge following the rise of self-replicators. Finally, we show a counterexample of a minimalistic programming language where self-replicators are possible, but so far have not been observed to arise.arXiv.orgBlaise Agüera y Arcas](https://arxiv.org/abs/2406.19108?ref=gorillasun.de)
Released back in June of this year it's not an entirely new paper, but I only just found the time to look into it - it's arguably one of the most interesting computational experiments that I've read about this year.
Artificial life has been a topic of research for many decades now; with John von Neumann being recognized as a pioneering researcher of the field in the 1940s. He was the first to propose a formal model of a self-replicating machine\- a device that when run, could create a copy of itself. To describe this machine in more detail von Neumann simultaneously laid the groundwork for what we know today as Cellular Automata, later even leading to Conway defining the famous Game of Life.
[](https://en.wikipedia.org/wiki/Von%5FNeumann%5Funiversal%5Fconstructor?ref=gorillasun.de)
The **von Neumann Universal Constructor*[Link to Wiki](https://en.wikipedia.org/wiki/Von%5FNeumann%5Funiversal%5Fconstructor?ref=gorillasun.de)
Even if a cellular automaton may seem simplistic in its nature when compared to the complexity of real life, they're still in many ways revelatory about the mechanisms of entropy and emergence. In the Google research paper this topic is explored by creating an artificial setting in which self-replicating machines can emerge by themself without any man-made precedent. The creative twist here is that this is achieved by leveraging the Brainfuck programming language.
If you've never heard of it, [Brainfuck is an esoteric programming language created in 1993 by Urban Müller](https://en.wikipedia.org/wiki/Brainfuck?ref=gorillasun.de), that is widely known today for its obscure minimalism. The language features only eight commands (`>`, `<`, `+`, `-`, `.`, `,`, `[`, and `]`) and operates by manipulating an array of memory cells, that is initialized to zero. A memory pointer is used to move left or right, and increment or decrement the value at the current cell, and even input or output data. Loops are also possible and controlled using brackets (`[` and `]`). All of this allows for complex behavior despite the simplicity of the command set, for instance, the "Hello World" program in Brainfuck would look as follows:
```brainfuck
>++++++++[<+++++++++>-]<.>++++[<+++++++>-]<+.+++++++..+++.>>++++++[<+++++++>-]<++.------------.>++++++[<+++++++++>-]<+.<.+++.------.--------.>>>++++[<++++++++>-]<+.
```
Conveniently this means that any random collection of these symbols makes for a valid program. While the language is Turing-complete (meaning that you can theoretically perform any type of computation with it), using it in any kind of practical setting is virtually impossible due to its low-level and highly abstract nature.
In the paper a modified version of the language (referred to as BFF) is used, where data and instructions share the same tape - such that both the program's code (the instructions basically) and the data it manipulates are stored in the same memory space, meaning that the system can alter its own code as it is running, allowing for *self-modification*. The paper describes a larger system that is made out of many small programs (64 bytes long) containing random instructions from a simple set of operations. These programs are placed in a "soup" where they interact, concatenate, and execute each other’s code - the underlining point being that this is happening entirely at random.
While the expectation here is that the primordial soup will simply do nothing, *as it has no incentive to do anything*, the surprising observation is that after a while self-replicating programs start to emerge slowly overtaking the entire system. And this despite specifying any explicit fitness landscape, guiding selection pressures, or external incentives, but merely through random interactions and self-modifications. In this setting a self-replicator can be defined as a program who's self-modifying operations happen to copy itself (or part of itself) accurately, allowing it to spread to other regions of the soup - leading to a more complex dynamic where the replicators compete for space and resources. In the paper this is likened to autocatalytic chemical reactions.
That's as far as I understand it - I might be getting some things mixed up however. A great video that explains the paper in simple terms is from Anton Petroc, which also shows some visualizations of the primordial soup and the behavior it exhibits when it gets overtaken by a self-replicating mechanism:
One of the comments left on the video was also quite intriguing and worth including here:
[](https://www.youtube.com/watch?v=L%5FIWVZPmc-E&ref=gorillasun.de)
### The Art of Finishing by Tomas Stropus
Starting a new project is always infinitely easier than getting back into a half-baked thing that's been gathering dust for a while. In many ways it's a cognitive and emotional challenge: picking up the mental state that you were in, back when a particular project was first coming together, is not an easy feat to achieve, as the initial driving motivations might have waned, or because you might have moved on to other ideas in the meantime. And that's besides the technical debt and unresolved issues that the project was left off with.
While determination can go a long way in this kind of scenario - à la "I won't get up from my desk until it's done" - it's better to actually have a meaningful gameplan. Tomas Stropus talks about this in an article of his titled "The Art of Finishing" - although the article isn't really about generative art in particular, I believe that it's applicable to all sorts of creative endeavors and a universal feeling shared by many artists, makers and creatives. Tomas first identifies some of the reasons why we get stuck in this kind of "never finishing anything loop" and then enumerates some strategies to remedy the problem:
[The Art of Finishing | ByteDrumMy endless battle with the “Project Hydra”: why I can’t seem to finish projects, and the strategies I’m exploring to finally complete what I start. A personal journey through productivity’s thorniest challenge.ByteDrumTomas Stropus](https://www.bytedrum.com/posts/art-of-finishing/?ref=gorillasun.de)
One paragraph in particular struck a chord, it's something I've felt at many points throughout my creative endeavors - an accumulating feeling of not being able to get anything done at all:
> The costs of never finishing extend far beyond just missed opportunities. \[...\] it’s in the act of finishing — of solving those last, trickiest problems — where real *skill growth* often occurs. Each unfinished project can chip away at your confidence.
The most noticeable personal growth I've experienced was from finally releasing my projects out into the world - it's difficult to describe, but you always see the project in a different perspective afterwards.
Maybe one of the best tips he gives throughout is "separating ideation from implementation" which is something that I've personally also been trying to adopt; basically allocating time for meaningful progress driven work "implementation", and some time for messing around "ideation". In a practice like generative art, or even web design, it's easy to lose yourself in the details, and start fine-tuning things when there's more pressing things to work on first. I assume that my ADHD brain is probably particularly prone to this, but it's simply a really bad habit that creeps back in sometimes and can cause a lot of time loss.
### Other Cool Generative Things
1. Alexandre Villares has been making one sketch a day since 2018 - and he's documented all of it over on [his website](https://abav.lugaralgum.com/sketch-a-day/?ref=gorillasun.de), where you can explore the entire archive and even find code for each individual sketch.
2. The second installment of the [Responsive Dreams](https://x.com/ResponsiveDream/status/1820749276001006022?ref=gorillasun.de) generative art festival took place last week in Barcelona (5th to 7th), featuring many familiar faces of the genart crowd that had their works on display. You can learn more about it over on [the official website](https://responsivedreams.com/?ref=gorillasun.de).
3. Next week, in another part of Spain, [Digital Art Day Málaga 2024](https://x.com/DigitalArtDay/status/1823035429513269340?ref=gorillasun.de) is taking place, a conference celebrating not only generative art, but digital art in general. Another group of established generative artists will by making an appearance, and I'm hoping that the presented talks will be recorded in some manner.
4. Pikuma shares an open source, *bare metal,* [raycaster written in x86 assembly](https://x.com/pikuma/status/1831567408416403955?ref=gorillasun.de) \- that boots from a floppy disk and doesn't require an OS to run. Made by [Stillwwater](https://github.com/stillwwater?ref=gorillasun.de).
5. [Pulsar](https://muffinman.io/pulsar/?ref=gorillasun.de) is a tiny creative coding website that lets you explore grid SDFs by writing a mathematical formula to control the visualized animation.
## Tech & Web Dev
### TC39 Introduces New Stage into Feature Pipeline
The TC39 committee that's in charge of developing the ECMAScript specification language recently introduced a new stage into their 5 step feature development pipeline, namely stage 2.7\. It finds itself between the Draft and Candidate stage, and addresses the challenge of ensuring that proposals are thoroughly tested before implementation in browsers and runtimes:
[Inside ECMAScript: JavaScript Standard Gets an Extra StageAfter nine years of annual JavaScript updates, the TC39 committee has tweaked the process to make rolling out new features faster and smoother.The New StackMary Branscombe](https://thenewstack.io/inside-ecmascript-javascript-standard-gets-an-extra-stage/?ref=gorillasun.de)
Previously, proposals sometimes had to revert to earlier stages when design changes necessitated rewriting tests, resulting in wasted effort. Stage 2.7 is now a marker that a feature's design is stable and requires only testing and validation before moving to full implementation in Stage 3 — this separation allows for smoother transitions and reduces redundant work, particularly for large or complex proposals like [ShadowRealm](https://github.com/tc39/proposal-shadowrealm/blob/main/explainer.md?ref=gorillasun.de#Introduction). Here the numbering was carefully chosen to reflect the position of the stage in the pipeline.
### The Fastest JS Color Library
You might remember romgrk from [issue #50](https://www.gorillasun.de/blog/gorilla-newsletter-50/) of the newsletter, where we had a look at their insightful article on various methods for optimizing JavaScript code. They recently made a return with an article that introduces their very own JS color library called "color-bits" - boldly claiming that it is the fastest JS color manipulation library out there. In the complementary article romgrk explains why this is the case, and in a way also documents the development process of the lib:
[The fastest JS color libraryromgrk’s personal blog](https://romgrk.com/posts/color-bits/?ref=gorillasun.de)
romgrk points out a number of inefficiencies in common methods for representing and manipulating RGBA colors, that are commonly stored as objects like `{red: 0, green: 0, blue: 0, alpha: 1.0}` \- while this approach is generally readable, it also results in heavy garbage collection due to object creation. To remedy this, rmgrok suggests encoding RGBA values into a single 32-bit number using bitwise operators, which significantly reduces memory overhead.
After a lengthy exploration of how different JavaScript runtimes deal with 32-bit numbers, romgrk ends up embracing JS's signed number system, recognizing that the underlying bit patterns remain correct for their needs, even if the values are interpreted as negative numbers.
### Other Cool Tech Things
1. [When Regex Goes Wrong](https://www.trevorlasn.com/blog/when-regex-goes-wrong?ref=gorillasun.de) is a case study by Trevor Lasn examining a regex backtracking mishap that caused StackOverflow to experience a downtime of 34 minutes in 2016\. He also brings up other instances where regex happened to be the critical point of failure.
2. Andy Bell is back with yet another article for the Picalilli blog, this time teaching us how to [create breakout elements with container queries](https://piccalil.li//blog/building-a-breakout-element-with-container-units/?ref=gorillasun.de), which was also a part of the Picalilli redesign.
## AI Corner
### What's really going on in Machine Learning?
I wasn't aware that Stephen Wolfram, who you might know as the creator of Mathematica and Wolfram|Alpha, was actually publishing writings over on his website - and that fairly regularly (at least once a month or so). Towards the end of August Wolfram published a massive deep dive in which he takes a fascinating reductive approach to explaining the inner workings of neural networks, via his own minimal toy models - and ends up making a deeply interesting observation during the endeavor:
[What’s Really Going On in Machine Learning? Some Minimal ModelsStephen Wolfram explores minimal models and their visualizations, aiming to explain the underneath functionality of neural nets and ultimately machine learning.Stephen WolframDavid G. Stork](https://writings.stephenwolfram.com/2024/08/whats-really-going-on-in-machine-learning-some-minimal-models/?ref=gorillasun.de)
One surprising result is that neural nets can be simplified to a great extent while still retaining a big part of their capabilities - Wolfram makes use of a structurally simpler and discretized type of neural network for this purpose. The other very surprising observation is that models don't actually end up relying on any sort of structured mechanism to achieve the tasks that they're trained on, but rather tap into "[the general richness of the computational universe](https://www.wolframscience.com/nks/chap-3--the-world-of-simple-programs/?ref=gorillasun.de)", which sounds a bit esoteric - and I don't fully grasp how that can be - but is in essence related to a Wolfram's previous notion of Computational Irreducibility.
[Computational Irreducibility](https://www.wolframscience.com/nks/p737--computational-irreducibility/?ref=gorillasun.de) is the idea that some systems, especially those that follow simple rules, can produce behavior so complex that no shortcut or simplified method exists to predict their outcomes. To know the result, you'd have to let the system run its full course, as there’s no faster way to determine what will happen than by performing the actual steps. This suggests that even though the ruleset is simple, the complexity it generates is irreducible and cannot be easily predicted or simplified.
If you only have time for one article this week, this is the one - will most likely give it a couple more reads to fully grasp everything that Wolfram tackles throughout.
### Tobias van Schneider on the AI Hype
Another insightful read this week, about the current state of AI, is a think-piece by Tobias van Schneider. He contemplates the rapid rise of AI in recent years and makes a couple of predictions for where he thinks we're headed with the tech:
[AIAIAIHow tired are we collectively about AI? Are we over it yet? Can you even hear about it anymore? I’m sorry if you can’t, because this essay will be entirely about it.The DESK MagazineTobias van Schneider](https://vanschneider.com/blog/aiaiai/?ref=gorillasun.de)
AI has unarguably catalyzed a moral and technological shift, comparable to that of the industrial revolution – particularly in areas like copyright, intellectual property, and privacy. This shift is also reshaping societal norms and aggravating a growing generational divide on AI acceptance. The most interesting point that Tobias makes however, is his prediction of a counter wave against AI; an eventual turning point in the content creation meta that'll focus on more personalized, human-driven experiences—where craftsmanship and human connection will serve as a response to the hyper-efficient but boring AI content.
## Music for Coding
*Kikagaku Moyo* is japanese and means as much as "Geometric Patterns" - which make the band a no-brain inclusion for the Newsletter, they're a psychedelic band founded in Tokyo in 2012 - unfortunately now on an indefinite hiatus since 2022\. Mammatus Clouds is comprised of just 3 songs, with the first takes up more than half of the records' time. Their sound is a mix of atmospheric, tribal sounds with a psychedelic element:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 71Non-Euclidean Geometry in Video Games - Planar Graphs for City Map Generation - Quadtrees for Flocking Simulations - OKLCH in Web Design - Regular Expressions in JS - Re-Implementing React from Scratch - DOOM in a Diffusion Model - 3Blue1Brown Deep Learning Chapter 7Gorilla SunAhmad Moussa](https://gorillasun.de/blog/gorilla-newsletter-71?ref=gorillasun.de)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 71
URL: https://www.gorillasun.de/blog/gorilla-newsletter-71/
Last updated: 2024-09-02T05:00:51.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers who joined in the past week!**
> **This is the 71st 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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Non-Euclidean Geometry in Video Games
In recent years the term "Non-Euclidean" has been appropriated in video game lingo to refer to types of games where space doesn't behave the way it does in reality - such that the game space becomes traverse-able in impossible manners. There's a very iconic video from the CodeParade YouTube channel, that demonstrates some of the ways of how Non-Euclidean geometry can come to life in a video game setting - such that the outward appearance of spaces is deceptive and does not reflect the interior dimensions:
The video also introduces a [game engine](https://github.com/HackerPoet/NonEuclidean?ref=gorillasun.de) that makes the creation of these types of experiments more accessible.
Thrown around to describe any type of strange geometry in games, the term Non-Euclidean might have come to be miss-appropriated when compared to its definition in mathematics, where it generally refers to spaces that are of a hyperbolic (space is curved negatively - the angles of a triangle sum to less than 180°) or elliptic (space is curved positively - the angles of a triangle sum to more than 180°) nature. An insightful article on the topic is from Zeno Rogue, dating back to 2019, it gives a historic perspective on the notion and showcases some of the different flavors that these unconventional spatial experiments come in:
[Non-Euclidean geometry and gamesThe term “non-Euclidean” is often used by gamers to mean any kind of game where geometry does not work exactly as in our world. While such…MediumZeno Rogue](https://zenorogue.medium.com/non-euclidean-geometry-and-games-fb46989320d4?ref=gorillasun.de)
Arguably the most iconic example of a video game with a Non-Euclidean mechanic is Portal (& Portal 2); as the player you have the ability to create your own hyper connections - portals - between surfaces to creatively traverse space and solve the puzzle of each level. A less obvious example is Sid Meier's Civilization series: by traversing the map horizontally you can loop around the world seamlessly, which implies that the tile map is wrapped around a cylinder (the poles can't be traversed).
Besides many more examples, the author also mentions their very own game titled [Hyper Rogue](https://www.youtube.com/watch?v=xAFrKKApHTY&t=69s&ref=gorillasun.de), a dungeon crawler that takes place on an endless heptagonal tile grid - the ***bitruncated order-3 heptagonal tiling of the hyperbolic plane***, to be precise. On the Hyper Rogue site, Zeno also shares an in depth piece (an absolute gem of a resource) that explains the tiling in detail:
[HyperRogue - Experiments with geometrypuzzle roguelike on a hyperbolic planeExperiments with geometryZeno Rogue](https://roguetemple.com/z/hyper/geoms.php?ref=gorillasun.de)
The reason I find myself writing about this topic was actually a Reddit post from Sean Dewhirst, that I also want to highlight here while we're at it. Sean showcases procedurally generated labyrinthic pathways, that are seemingly connected in a way that defies the 2D space they exist in - multiple rooms can occupy the same physical space, and can also unexpectedly loop back on themself. In a lengthy comment Sean elucidates how this is achieved:

[Link to Reddit Post](https://www.reddit.com/user/Sean%5FDewhirst/comments/1f5qjv5/persistent%5Fnoneuclidean%5Fmaze%5Fthat%5Fgenerates%5Fas/?ref=gorillasun.de) | [Link to Explanation](https://www.reddit.com/user/Sean%5FDewhirst/comments/1f5qjv5/comment/lkuu7rn/?utm%5Fsource=share&utm%5Fmedium=web3x&utm%5Fname=web3xcss&utm%5Fterm=1&utm%5Fcontent=share%5Fbutton)
Here the T-junctions, that appear to have many dead ends, are actually passages to other corridors that only become apparent when they fall in line of sight with the character (the green dot). I generally pride myself with a good sense of direction, but it seems that this talent is not applicable to Non-Euclidean geometry - after watching the GIF over a dozen times I still wasn't able to make a mental map of the different corridors. This also raises the interesting question of what a visualization of the spaces in form of a mini-map would look like - if the concept were to be employed in an actual game setting.
### City Map Generation with Planar Graphs
Two weeks ago, in [issue #69](https://www.gorillasun.de/blog/gorilla-newsletter-69/) I featured an interesting paper that leverages tensor fields for the purpose of generating city-like road networks; this week, in another episode of procedural city map generation, I came across a creator that goes under the alias of WorldSmith who's started a series of articles documenting their own approach to the task.
[The Worldsmith Project - City map generationOverview of an algorithm to generate a network of city streets, using planar graphs and some simple constraints.City map generation](https://zero.re/worldsmith/roadnet/?ref=gorillasun.de)
Worldsmith's method is based on planar graphs, in the first article it's describes how the procedure goes aboout constructing the graph such that it produces a distinct pattern resembling that of a road network. This is primarily achieved by enforcing constraints on how the initial nodes are allowed to connect with each other, for instance, by restricting the angle that edges connected to a same node can form, as well as how many connections each node is allowed to make. Tuning those constraints then leads to different aesthetic variations. More than just a technique for pattern generation, the article can also serve as a mini crash course on graphs.

In the second article tackles the interesting problem of Zoning, which essentially involves the assignment of a type to each face in the previously constructed graph (a face is a polygon enclosed by 3 or more edges - essentially a house/building/structure in the city). While this might not seem like a difficult problem — like, just assign a type duh — mimicking the manner in which cities naturally segregate themself into particular areas, where buildings serve a specific purpose (residential, commercial sectors, etc.), is not as easy at it may seem. WorldSmith describes an interesting voting mechanism such that adjacent faces can agree on a type in a relatively organic manner. Worldsmith shares a demo of his code in action over on YouTube:
Looking forward to the next installments!
### Introduction to Quadtrees by Patt Vira
Spatial hashing is probably one of the most useful optimization techniques to have in your programming toolbox, it's handy whenever you need to determine the proximity of two objects in a scene of some sort, be it in 2D or 3D. In a nutshell, spatial hashing involves partitioning the scene into a number of buckets/regions that allow for the efficient querying of spatial data - in this setting the buckets know which items they contain, and vice-versa the items know which bucket they are in.
These types of partitioning come in many flavors, and a very popular one is the Quadtree that's frequently used in video games as well as generative art. Last week Patt Vira published an in depth video on exactly this topic; inspired by a [sketch](https://www.instagram.com/p/C-QHx2ASmWx?ref=gorillasun.de) from [Chris Barber aka @code\_rgb](https://www.instagram.com/code%5Frgb/?ref=gorillasun.de) that demonstrates a flocking simulation with a quad tree like structure running in the background - that I assume is employed to optimize the Boyd proximity calculations. Patt tackles the implementation of this structure, from inserting points into the data structure, all the way to querying them in an efficient recursive manner:
### Other Cool Generative Things
1. Amit Patel shares [a post](https://x.com/redblobgames/status/1828568863216382040?ref=gorillasun.de) about an algorithm called [Probabilistic Roadmap Planning](https://en.wikipedia.org/wiki/Probabilistic%5Froadmap?ref=gorillasun.de): a [motion planning](https://en.wikipedia.org/wiki/Motion%5Fplanning?ref=gorillasun.de) algorithm in robotics, that solves the problem of determining a path between a starting configuration of the robot and a goal configuration while avoiding collisions. This is done by creating a random graph around a set of obstacles and then finding the shortest path that allows an agent to efficiently traverse the space.
2. Keijiro Takahashi has made a number of [experiments using Unity's VFX Graph that can now run on WEBGPU ready browsers](https://www.keijiro.tokyo/WebGPU-Test/VFXCustomCode/?ref=gorillasun.de) (Desktop and Mobile). He's generously shared the [source code](https://x.com/%5Fkzr/status/1820093845125923230?ref=gorillasun.de) for these experiments over on his GitHub.
3. Via Agoston Nagy I learned about a cool book titled [Live Coding a User's Manual](https://direct.mit.edu/books/oa-monograph/5495/Live-CodingA-User-s-Manual?ref=gorillasun.de) that was published in 2022; it's a comprehensive reference for live coding as a performance art, what's special is that it's published under a creative commons license, making it freely accessible to everyone.
4. Not generative art per se - but with generative potentiality - catching up on the other talks given at the CSS Day 2024, another one that stood out was from Julia Miocene, that makes stunning digital illustrations as well as animations in pure CSS. In her talk she walks us through how she made a couple of them, and over on her own channel she's also posted more than a few tutorials on the topic.
## Tech and Web Dev
### OKLCH Color Space in CSS
The [CSS Color Module Level 4](https://www.w3.org/TR/css-color-4/?ref=gorillasun.de) is now a nearly final specification and finds itself in the Candidate Recommendation stage since November 2022; many major browsers already adopt some of the new features it introduces. This last week Andrey Sitnik from Evil Martians (a product development consultancy) published a deep dive that focuses on one new feature in particular, the OKLCH color space. The article explains all of the ways in which it improves on the RGB and HSL color spaces and also points out some of the challenges of working with it:
[OKLCH in CSS: why we moved from RGB and HSL—Martian Chronicles, Evil Martians’ team blogCSS Color Module 4 adds oklch(), and we gain P3 wide-gamut support, boost code readability, and improve developer-designer communication.Evil MartiansAndrey Sitnik](https://evilmartians.com/chronicles/oklch-in-css-why-quit-rgb-hsl?ref=gorillasun.de)
In brief, the perceptual uniformity of OKLCH helps tremendously when it comes to picking and generating colors, in addition to working well with modern displays that are capable of displaying a wider range of colors. While native color modification is not an option yet in Color 4 (the Color Module Level 5 will introduce it), OKLCH is actually the best space for effectuating dynamic color changes due to the predictability of the results - the article provides an example to demonstrate this, where the functional `oklch()` notation easily allows for the change of an accent color:
[](https://developer.mozilla.org/en-US/docs/Web/CSS/color%5Fvalue/oklch?ref=gorillasun.de)
[Link to MDN Docs of the feature.](https://developer.mozilla.org/en-US/docs/Web/CSS/color%5Fvalue/oklch?ref=gorillasun.de)
But that's just one of the cool things the article covers - highly recommend checking out all of it. What's also of note here, is that Evil Martians published an article earlier in the year on the same topic, where they introduce a color picker tool of theirs that's aimed at helping you "think perspectively" when working with OKLCH:
[OK, OKLCH: a color picker made to help think perceptively—Martian Chronicles, Evil Martians’ team blogWe designed the UI of the OKLCH Color Picker & Converter with education in mind as the driving design principle. Beyond being a handy tool, we aim to speed up familiarity and adoption of OKLCH and perceptual color spaces.Evil MartiansRoman Shamin](https://evilmartians.com/chronicles/oklch-a-color-picker-made-to-help-think-perceptively?ref=gorillasun.de)
### The History And Future Of Regular Expressions In JavaScript
Regular expressions are a longstanding polarizing topic: notorious for being difficult to read and write, they are at the same time incredibly powerful at what they do - especially when its for pattern matching tasks that are not easily accomplished with regular programming languages.
Last week, Steven Levithan published an article for Smashing Magazine, where he provides a comprehensive overview of the evolution and current state of regular expressions in JavaScript, tracing the journey from JS' early regex limitations, all the way to showcasing modern capabilities in action, while also addressing some of the persisting limitations:
[Regexes Got Good: The History And Future Of Regular Expressions In JavaScript — Smashing MagazineAlthough JavaScript regexes used to be underpowered compared to other modern flavors, numerous improvements in recent years mean that’s no longer true. Steven Levithan evaluates the history and present state of regular expressions in JavaScript with tips to make your regexes more readable, maintainable, and resilient.Smashing MagazineSteven Levithan](https://www.smashingmagazine.com/2024/08/history-future-regular-expressions-javascript/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
To some extent, JS can nowadays stand its ground compared to other regex flavors. Notably, ES2018 and ES2024 have substantially elevated its regex capabilities, incorporating features like lookbehind assertions, named capture groups, and Unicode property escapes, aligning JavaScript more closely with the modern regex standards that can be seen in languages like Python and Ruby. Despite these improvements however, it seems that JS regexes still lack certain features - towards the end of the article Steven Levithan introduces a library with extended functionality that aims to bridge those remaining gaps:
[GitHub - slevithan/regex: Regex template tag for readable, high-performance, native JS regexes, with context-aware interpolation and always-on best practicesRegex template tag for readable, high-performance, native JS regexes, with context-aware interpolation and always-on best practices - slevithan/regexGitHubslevithan](https://github.com/slevithan/regex?ref=gorillasun.de)
### Building React from Scratch
React has unarguably revolutionized modern web development, by making UI code declarative it abstracts away direct DOM manipulation, and its component-based architecture lends itself perfectly to more scalable, modular and maintainable development approaches.
If you've ever wondered how the leading frontend framework works internally, Robby Pruzan wrote a no frills deep dive on re-implementing React from scratch, not only exposing its inner workings, but also offering valuable insights into the library's architecture and some of the design decisions that influenced it—caution though, it's quite a technical read, Robby throws us in the deep end right off the bat:
[Implementing React from scratchA detailed explanation of the architecture I used to rebuild react](https://www.rob.directory/blog/react-from-scratch?ref=gorillasun.de)
### Other Cool Tech Things
1. CSS has made some big strides in past years; with a constant stream of new features, and many ongoing discussions, the language's progress has been more noticeable than ever. This makes the return of the [State of CSS 2024](https://survey.devographics.com/en-US/survey/state-of-css/2024?ref=gorillasun.de) survey more exciting than ever, as it'll be interesting to see how this march of progress is being perceived, and what the current trends are.
2. Oskar Wickström made a big buzz on social media with his minimalist design exploration titled [The Monospace Web](https://github.com/owickstrom/the-monospace-web?ref=gorillasun.de), a project in which he perfectly aligns all elements of a website to a monospace grid. [Wickström open sources the design under the MIT license for everyone to use. ](https://github.com/owickstrom/the-monospace-web?ref=gorillasun.de)
[](https://x.com/owickstrom/status/1828469089666298315?ref=gorillasun.de)
[Link to Tweet](https://x.com/owickstrom/status/1828469089666298315?ref=gorillasun.de)
## AI Corner
### Doom Running in a Diffusion Model
Running DOOM on various devices, from graphing calculators and printers, to oscilloscopes, and even ATMs, has become a popular challenge among hackers and in many ways a modern cultural meme - so much so that there's actually a [big community around the practice](https://www.reddit.com/r/itrunsdoom/?ref=gorillasun.de). In a most recent development we see DOOM run entirely through a diffusion based neural network called GameNGen, not just as a generated simulation, but supporting full fledged user input and control:
[Diffusion Models Are Real-Time Game EnginesWe present GameNGen, the first game engine powered entirely by a neural model that enables real-time interaction with a complex environment over long trajectories at high quality. GameNGen can interactively simulate the classic game DOOM at over 20 frames per second on a single TPU. Next frame prediction achieves a PSNR of 29.4, comparable to lossy JPEG compression. Human raters are only slightly better than random chance at distinguishing short clips of the game from clips of the simulation. GameNGen is trained in two phases: (1) an RL-agent learns to play the game and the training sessions are recorded, and (2) a diffusion model is trained to produce the next frame, conditioned on the sequence of past frames and actions. Conditioning augmentations enable stable auto-regressive generation over long trajectories.arXiv.orgDani Valevski](https://arxiv.org/abs/2408.14837?ref=gorillasun.de)
This is an interesting modality - is the neural network actually *running* the game, or has it just memorized the entirety of it? The original DOOM is not that expansive of a game after all. Taking on the role of reviewer #2 over on Twix, Dr. Jim Fan criticizes the usefulness of the model, stating that the concept isn't easily extrapolate-able due to a lack of data. He also points out that the model is grossly overfitting on 9 billion frames of the game, meaning it's very likely that it's not generating an *original* world - making GameNGen behave more like a NERF model for a particular game; a type of neural network that can predict a different perspective given an image of an object:
[](https://x.com/DrJimFan/status/1828813716810539417?ref=gorillasun.de)
[Link to Tweet](https://x.com/DrJimFan/status/1828813716810539417?ref=gorillasun.de)
I've mentioned it in the past, but I believe that there's exciting applications for video games, especially when it comes to computer graphics. Once we have consumer hardware that's powerful enough to run these beefy models (or they've been made much more efficient) I believe that they could serve as potent rendering engines. Besides that, we've already seen some cool experiments where LLMs power the dialogue of NPCs.
### How Might LLMs store Facts?
Over 6 years ago, at a time when LLMs didn't exist, Grant Sanderson aka 3blue1brown published the first four videos in his Deep Learning series, where he introduces neural networks and back propagation. Earlier this year he published chapter 5 and 6 that introduce the fundamental building block of LLMs, explaining the inner workings of transformers - just yesterday he uploaded the latest installment of the series in which he tackles how transformers, and LLMs in general, might store knowledge in their internal representation:
## Music for Coding
Following up on last week's recommendation of the iconic Mexican fusion band Sacbé, I recently discovered another impressive South American jazz fusion group that you need to hear. Ekathe, a young band from Argentina, released their debut album just last year and is already doing some great things; they heavily remind me of Snarky Puppy's groove-driven, genre-blending style. From mellifluous jazz passages to the occasional distorted guitar riff, what Ekathe offers is a bit of a mixed bag of sonic treats:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 70Beyond Wave Function Collapse - Markov Junior: A Probabilistic Programming Language - The Sweep-and-Prune Algorithm - Visualizing Sound - A Font with Code Highlighting Built In - CSS Day 2024 and CSS Accessibility - The Process behind Redesigning Piccalilli - The Advent of AI Powered Code EditorsGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-70/)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 70
URL: https://www.gorillasun.de/blog/gorilla-newsletter-70/
Last updated: 2024-08-30T15:10:01.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 70th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Beyond Wave Function Collapse + EPC 2024
EPC 2024 (Everything Procedural Conference) took place earlier this year in April, and over the weekend I discovered that the talks given at the conference had been published in their entirety a while ago already - unsurprisingly they turn out to be a treasure trove for all sorts of different cutting edge generative and procedural techniques.
You can find a run-down and descriptions for them over on [the official website](https://www.everythingprocedural.com/?ref=gorillasun.de), as well as and the complete archive of recordings (also including talks from past years) over on YouTube:
[BUas GamesBreda University of Applied Sciences’ games programme is known worldwide as one of the best. Whether you want to become a game developer, designer, character artist or producer of a Triple-A game, we will help you on your way. We use our YouTube channel to showcase some of our students’ work.YouTube](https://www.youtube.com/@BUasGames/videos?ref=gorillasun.de)
For generative art purposes, one talk in particular stands out this year, it's by Paul Merrell who you might recognize as the brain behind the original series of papers that introduced the *Model Synthesis* algorithm for procedural pattern generation, a technique that we more commonly know today as *Wave Function Collapse* in genart and game dev circles. While Merrell had a hunch early on that his method would find great application in video games, *WFC* only gained traction after Maxim Gumin published a Github repository that provides a tangible implementation of the algorithm:
[GitHub - mxgmn/WaveFunctionCollapse: Bitmap & tilemap generation from a single example with the help of ideas from quantum mechanicsBitmap & tilemap generation from a single example with the help of ideas from quantum mechanics - mxgmn/WaveFunctionCollapseGitHubmxgmn](https://github.com/mxgmn/WaveFunctionCollapse?ref=gorillasun.de)
In a nutshell, WFC is essentially a procedural content generation algorithm that's primarily used to create textures, patterns, and game levels (assembling tilemaps) in a way that looks coherent and follows certain rules or constraints. The algorithm operates by determining the state of each cell in a grid (like a tile or pixel, but can also be extended to irregular grids) based on constraints derived from example input patterns. It "collapses" possibilities for each cell into a single outcome that aligns with its neighbors, ensuring the generated output matches desired properties - for a digestible introduction you should check out Coding Challenge #171 in which Daniel Shiffman tackles a full implementation of the algo:
Famous instances of the algorithm in action, out in the wild, are the iconic Townscaper and the lesser known mobile game Bad North, both developed by Oskar Stålberg. It's important to note here that Stålberg additionally extended the method by applying it to an irregular grid (I wrote about a bit about the construction of such grids in [issue #59](https://www.gorillasun.de/blog/gorilla-newsletter-59/)). A more recent example is Tiny Glade that I believe to also employ wave function collapse for adjoining textures. In this manner WFC is arguably a revolutionary technique for video game aesthetics. In generative art there's also a very cool recent example for it, loackme's and Karim Safa's Nullmachines also leverages WFC to create the animated endlessly looping conveyor belts:


A limitation of WFC however is that it's tile based and confined to a grid - and as the title of the Paul's conference talk reveals it revolves around a new method to achieve procedural patterns without relying on tiles at all. Having worked on this for over 2 decades since the publishing of the Model Synthesis paper, Paul introduces us to Graph Grammars:
I highly recommend watching the talk, while quite technical, the notions can be understood quite easily. Merrell explains that there are actually already many procedural techniques that rely on *shape grammars*—rules that dictate how certain shapes can combine with each other into new shapes. The caveat of these previous methods is that these combinatory rulesets are generally manually designed by experts. In contrast, Merrell's proposed method generates the shape grammar automatically, based off of an example texture and/or sample shape - and that without relying on a grid of tiles for the assembly of new patterns, but rather modeling the result as a graph. I'll leave it at that though, if you only have time for a single video this week, this is the one!
### Markov Junior: A Probabilistic Programming Language
By chance, I discovered another important Github repo from Maxime Gumin - not by going through his GitHub profile, but rather through a post from the [@algoritmic](https://x.com/algoritmic/status/1827045721695994229?ref=gorillasun.de) TwiX account that showcased intriguing procedurally generated voxel towers, linking back a repo from Gumin titled Markov Junior:
[GitHub - mxgmn/MarkovJunior: Probabilistic language based on pattern matching and constraint propagation, 153 examplesProbabilistic language based on pattern matching and constraint propagation, 153 examples - mxgmn/MarkovJuniorGitHubmxgmn](https://github.com/mxgmn/MarkovJunior?ref=gorillasun.de)
To put it simply, Markov Junior is a sort of esoteric programming language that draws inspiration from Markov Algorithms, and is in essence a general purpose tool geared towards procedural content generation. Not to be confused with Markov Chains, probabilistic mathematical models used to describe state transition systems - Markov algorithms on the other hand are abstract symbol manipulation and transformation machines.
An algorithm in this setting is comprised of two things: an alphabet of symbols, accompanied by a set of rules or instructions to perform string transformations and rewrites on the symbols in the alphabet - more formally this is described as a scheme; a finite ordered set of *substitution formulas*. This sounds more complicated than it actually is, to give an example, a rule could simply be "replace the letter a with the letter b" - Wikipedia provides a more sophisticated example:
[](https://en.wikipedia.org/wiki/Markov%5Falgorithm?ref=gorillasun.de)
[From the Wikipedia page on Markov Algorithms](https://en.wikipedia.org/wiki/Markov%5Falgorithm?ref=gorillasun.de)
The github repo itself provides a brief explanation of Markov Algorithms, and also showcases a more practical example, converting the binary representation of a number to its unary equivalent:

With Markov Junior these rewrite protocols gain application in procedural content generation - in the 2D and 3D settings programs essentially describe types of cellular automata, some of which might look very familiar at first glance, like maze generators for instance. The distinction is that these procedural patterns become very easy to define with just a couple of substitution rules:

### On Collision Detection Algorithms by Lean Rada
Lean Rada wrote, not one, but two articles on collision detection; the first article talks us through how sorting objects can go a long way for the purpose of reducing the number of collision checks that need to be computed, all while introducing us to the elegant and efficient Sweep-and-Prune algorithm - followed up by a second installment where Lean fills in the missing parts and explains a more complete implementation of the algorithm:
[](https://leanrada.com/notes/sweep-and-prune/?ref=gorillasun.de)
[Link to Part 1](https://leanrada.com/notes/sweep-and-prune/?ref=gorillasun.de)
The common issue with naive approaches to collision detection is the number of checks required to determine if any two shapes in the simulated world intersect or not—in the worst case, each shape needs to be checked against every other shape, leading to a computationally expensive O(n^2) problem.
The Sweep-and-Prune algorithm is one of the methods that reduces the number of necessary checks. In essence, this is done by sorting objects based on their positions along a chosen axis and creating intervals that represent the space each object's axis-aligned bounding box (AABB) occupies along that axis. This allows the algorithm to focus only on checking collisions between objects whose intervals overlap, thus quickly narrowing down the number of object pairs that might be colliding. The algorithm then tracks the minimum and maximum extents of each object’s AABB as separate points in a sorted list, and then sweeps a line across this list. As the sweep progresses, it keeps track of which objects' intervals are currently active (overlapping with the sweep line) and checks for potential collisions only between those objects, efficiently identifying pairs of shapes that could potentially intersect. Then we can fire-up a more accurate collision check for the shape we're dealing with to determine if there is in fact a collision.
Now I'm oversimplifying this with my explanation; make sure to check out both of Lean's articles, they're wonderfully written and accompanied by more than a few nice interactive snippets to exemplify the ideas throughout - the latter part of the second article discusses further optimizations that we can apply to further speed up the overall procedure:


[Link to Part 2](https://leanrada.com/notes/sweep-and-prune-2/?ref=gorillasun.de)
While I've implemented spatial hashing (grid/quadtree lookups basically) on several occasions, I've never actually used Sweep-and-Prune - what's interesting is that the two can actually be combined, for instance you could do a sweep check on each grid cell to potentially further reduce the number of collision checks that need to be made. I'm not entirely certain if it would lead to that much more of a performance gain however.
### On Visualizing Sound - Are.na Editorial
Be it Spectrograms produced by passing a sonic signal through the Fourier Transform, or the geometric compositions that visualize different chords and melodies on an instrument - representing sound in the visual domain via graphical notation, as a form of translation between the senses, has long been a fertile ground for creative expression. A recent Are.na editorial piece highlights this relationship through Travess Smalley and Daniel Lefcourt's work with graphic notation, offering a compelling look at its contemporary relevance, and how it lends itself as a perfect playground for building interpretational systems:
[Visualizing Sound | Are.na EditorialArtists Travess Smalley and Daniel Lefcourt on graphic notation.Are.na](https://www.are.na/editorial/visualizing-sound?ref=gorillasun.de)
Both artists agree that the applications of graphic notation extends beyond that of mere artistic expression, and can serve as a powerful educational tool for teaching abstraction, as a rule-based approach to creativity; rather than relying solely on intuitive or subjective decision-making, students have to derive form and composition from a systematic computational process that can translate between the sonic and visual domain. Make sure to check out Travess Smalley's [Visualizing Sound: Tools, Notations, Drawings, Graphics, and Paintings channel](https://www.are.na/travess-smalley/visualizing-sound-tools-notations-drawings-graphics-and-paintings?ref=gorillasun.de) and Daniel Lefcourt's [Graphic Traces channel](https://www.are.na/daniel-lefcourt/graphic-traces?ref=gorillasun.de) towards that end, they're chock-full of creative music and sound visualizations examples, some of which are talked about in more detail throughout the article itself.
If you're not familiar with Are.na, I briefly wrote about it in issue #47 and #48 of the Newsletter, but in essence it is a social networking platform designed for collaborative curation, organization, and sharing of content. It was created to provide a space for thoughtful and creative individuals to collect and organize information in a more structured and intentional way than typical social media platforms.
### Other Cool Generative Things
1. Chris Ried is back with another issue of his fantastic newsletter, he seemingly always manages to find interesting things that I miss - [go check it out and give it a ried](https://substack.com/@generatecoll/p-148095672?ref=gorillasun.de).
2. It seems that there is no end to Nolen Royalty's creative experiments, less than 48 hours after giving a talk about his 1 million checkbox website, he gives second talk, at another conference, about a different project of his. If you're curious about [programming flappy bird in the MacOS finder](https://x.com/itseieio/status/1827400773317415247?ref=gorillasun.de), you should catch up with what Nolen's been up to.
3. And for our weekly installment of mini code shenanigans, I want to highlight a post from Michael Rostoki, whom I am a big fan of ever since discovering his stuff during Genuary - he frequently shares short [tweet sized Lua sorceries](https://x.com/von%5Frostock/status/1827020229085413815?ref=gorillasun.de) for the beloved Pico 8 fantasy console.
4. To not reinvent the wheel, the P5 sound library is being revisited following the 2023 sound fellowship, such that it'll act as a thin wrapper around tone.js - which is already designed with creative coding in mind. You can [read more about this endeavour here](https://github.com/processing/p5.sound.js-pre-release?ref=gorillasun.de).
## Tech and Web Dev
### Font with Built in Syntax Highlighting
If you've ever started your own programming blog, you probably found yourself in a situation where you want to showcase some code snippets on your page, and actually have them highlighted as proper syntax, and not just as plain text. And in that scenario there's no way around using some third party library that takes care of code and syntax highlighting. This blog uses the popular highlight.js as a solution towards that end.
While these libraries are super handy, they also come with some downsides. For instance, they add an additional overhead to the pageload, either because they're additional resources that need to be loaded in from an external place, or by making your page's size more bloated by being directly included. That's also beside the code itself running to modify the DOM and color the syntax accordingly - and in these modern times we care a lot about making our pages blisteringly fast to load.
A recent article from the Glyph Drawing Club Blog, explores an intriguing approach to syntax highlighting without relying on JavaScript at all — but rather by building syntax highlighting directly into the font itself, and this through certain OpenType font features. The method uses colored glyphs and contextual alternates to identify and highlight different elements of code syntax:
[Font with Built-In Syntax HighlightingAn experiment in javascript-free syntax highlighting, made possible by opentype contextual alternates and COLR tableGlyphDrawing.Club -blog](https://blog.glyphdrawing.club/font-with-built-in-syntax-highlighting/?ref=gorillasun.de)
This approach obviously comes with its own set of pros and cons. The most impressive thing about it is how simple it makes code highlighting - you just have to specify the modified font via the `font-family` css rule and apply it to the `code` html tag. An added benefit is that it also make syntax highlighting possible in the `textarea` and `input` tags that were previously impossible to style in that manner. On the flipside, the limited pattern-matching capabilities compared to regex-based solutions may also result in less accurate syntax highlighting in complex scenarios — although... the Hacker News comment section argues otherwise, bringing up that it might just be possible to implement that:
[](https://news.ycombinator.com/item?id=41245159&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=41245159&ref=gorillasun.de)
Another minus is that it requires one to modify the font file itself, which is not a very straightforward thing to do, firstly because specific software is needed for that, and secondly because many font licenses simply don't actually allow for modification. From a broader perspective however, it's a really cool project - while it may not replace traditional syntax highlighting libraries just yet, it's an interesting alternative to keep in mind for scenarios where you need something simple and performant, without caring too much about extensive customization.
### CSS Day 2024 Talks + Sara Soueidan CSS Accessibility
The talks given at CSS Day 2024, held earlier this year in July, have been gradually published over the past couple of weeks on the [Web Conference Amsterdam YouTube channel](https://www.youtube.com/@WebConferencesAmsterdam/videos?ref=gorillasun.de) \- all of them are gems and worth queuing into your to-watch list. One talk that I want to highlight in particular, is by none other than Sara Soueidan, who's arguably become a CSS superstar at this point given her contributions over the years. In her talk she tackles CSS from an accessibility perspective, and how certain rules can have a severe impact on the accessibility of the elements in the user interface that they style, all while providing remedies and alternatives to those faux-pas:
CSS does not only affect the visual presentation of elements, but also indirectly impacts the information that is exposed by elements in the accessibility tree, and whether it's exposed at all. For instance, lists are crucial for screen readers because they convey important structural information about grouped items, and are often used to indicate sequences of related interface elements, like navigation links. For visual purposes, however, developers might use `list-type: none` to remove visual list markers, particularly for navigation elements - this also inadvertently strips them of their semantic accessibility labels in certain browser/screen reader pairings. A better solution here is to use `list-style-type: ""`. Sara points out an [interesting article on that matter here](https://piccalil.li/links/removing-list-styles-without-affecting-semantics/?ref=gorillasun.de).
Another example is relying on the popular `display: none` CSS hack as a solution to visually hide elements from a webpage, not only does it achieve that, but also completely removes it from the accessibility tree - no bueno - using a utility class to this end, for visually hiding content, while keeping it accessible is a better approach:


But that's just scratching the tip of the iceberg though, she covers many more considerations, referencing many more interesting resources, and is overall a must-watch if you want to get better at designing for accessibility. Bottom-line is that you should always fire-up a screen reader and test rigorously.
### The Process behind Redesigning Piccalilli
And to cap off the tech section this week, I'd like to highlight an article from one of my favorite tech blogs, Picalilli. More precisely, it's a publication that is run by Set Studio, with Andy Bell acting as the primary writer. Picalilli's made a couple of appearances on the newsletter in the past, in [issue 57](https://www.gorillasun.de/blog/gorilla-newsletter-57/) where [they pitch in on the CSS Masonry Grid debacle](https://piccalil.li/blog/masonry-and-tabbing/?ref=gorillasun.de) (that is still an ongoing debate at this point), as well as in [issue 24](https://www.gorillasun.de/blog/gorilla-newsletter-24/) with a follow up to their iconic CSS reset article, [A more Modern CSS Reset](https://piccalil.li/blog/a-more-modern-css-reset/?ref=gorillasun.de).
This week they make a return with a very special article, the third and final in a series of three, documenting the redesign of the blog, from the ground up to finishing touches, in an ongoing effort to become a more frequent and serious online publication overall:
[Redesigning Piccalilli: the build processIn the final part of this redesign series we break down our approach to aspects of the production build of the incoming, new front-end.PiccalilliAndy Bell](https://piccalil.li/blog/redesigning-piccalilli-the-build-process/?ref=gorillasun.de)
[Link to First Article](https://piccalil.li/blog/redesigning-piccalilli-the-first-part-of-the-design-process/?ref=gorillasun.de) | [Link to Second Article](https://piccalil.li/blog/redesigning-piccalilli-the-second-part-of-the-design-process/?ref=gorillasun.de)
And this three part series is just absolute gold, since it documents the entire process it's especially insightful for my own purposes as I'm still working on the redesign of this very blog you are currently reading (I promise it'll be ready at some point), and because I've never done something like it before I'm trying to actively collect each and every piece of advice I can come across. In particular when it comes from a web design firm. I found that I'm actually doing some things the right way, such as mood boarding to find potential design direction of the project, as well as using Figma to prototype, etc. But equivalently, there's also a lot of things that I've missed. Anyway, big must-read!
### Other Cool Tech Things
1. Stefan Judis covers a [cool and mind-boggling clipboard *copy-paste* magic trick](https://www.stefanjudis.com/notes/a-clipboard-magic-trick-how-to-use-different-mime-types-with-the-clipboard/?ref=gorillasun.de) that was originally shared by Cyrus Roshan in [a post back from 2022](https://blog.cyrusroshan.com/post/explaining-copy-paste-magic?ref=gorillasun.de). Stefan explains how it works in detail, and I might just turn this one into a proper section in the next newsletter.
2. [Another update from the Ghost team on their efforts of integrating the CMS with the activity pub protocol](https://activitypub.ghost.org/archive/?ref=gorillasun.de) \- and they've made some big strides since they got started a couple of months ago. I've genuinely been eagerly awaiting their newsletter every Sunday.
## The Advent of AI Powered Code Editors
The AI powered code editor *Cursor* has been making a buzz over on social media in the past weeks: it's a direct fork of VS Code that extends its capabilities with AI features, directly built into the editor itself. This essentially replaces the need for running Github copilot separately, as code completion and edits are now provided out of the box, in addition to a contextual chat that *sees* your codebase and lets you directly apply the LLM generated suggestions to your code:
[Features | Cursor - The AI-first Code EditorCursor is the AI code editor.logo-words](https://www.cursor.com/features?ref=gorillasun.de)
It does come at a cost though, but lets you try it out for 2 weeks free of charge, so it might be worth checking out. It also runs all the existing VS Code extensions that can be found on the marketplace, so you're really not missing out on anything from the regular VS Code. I have yet to try it out, but it's on my to-do list this week, I have a hunch however that it'll probably be a no-brainer since I already use LLMs on a daily basis for all sorts of tasks - recently I've been especially impressed by Claude Sonnet 3.5 for programming purposes.
But I'm not alone with that, unarguably many programmers already use LLM's for programming purposes - the StackOverflow Developer Survey that came out earlier this year shows that 61% of programmers are already using AI in their development process, so it just makes sense to directly incorporate AI within the code editor and perfectly fill out this latent market gap:
[](https://survey.stackoverflow.co/2024/ai/?ref=gorillasun.de)
[Link to the AI section of the StackOverflow Developer Survey](https://survey.stackoverflow.co/2024/ai/?ref=gorillasun.de)
Cursor's already been labeled as the "VS Code Killer" - and that might just be the case considering that it's raised 60$ million in funding in the first 2 months after launching, with the majority of funding coming directly from OpenAI. Regardless of that however, I can definitely see that this will be the new status quo when it comes to the code editors of the future.
The influential Andrej Karpathy voices his thoughts on that matter with a Tweet of his, basically stating that he can't imagine going back to programming without AI powered assistance - it does however also raise concerns about the future generations of programmers that don't have to go through learning how to code "the hard way":


****I basically can't imagine going back to "unassisted" coding at this point** | [Link to Thread](https://x.com/karpathy/status/1827143768459637073?ref=gorillasun.de)
## Music for Coding
This week I've got an album with historic significance for you; Sacbé is Mexico's very first fusion band, and their titular album is nothing short of a masterpiece that holds very strong even in 2024 - I found an [interview with Enrique Toussaint](https://www.favoriterec.com/2020/08/sacbe-interview/?ref=gorillasun.de) that recounts the initial days of the band, and how they arrived at their very tight and dynamic sound, a perfect read while listening to the album:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 69Artificial Life Simulations - Tensor Fields for City Map Generation - Who is an Artist in the Software Era - Tiny Glade Release - Random Injections in Sorting Algorithms - The Free Mint Meta - 10 Years of Dear Imgui - The CSS5 Era - Trainable Neural Network in tldrawGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-69)
*And a backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 69
URL: https://www.gorillasun.de/blog/gorilla-newsletter-69/
Last updated: 2024-08-24T15:39:59.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 69th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Artificial Life Environment aka A.LI.EN
ALIEN is not only the most massive artificial life simulation out there, but also one of the longest ongoing software projects of that kind that I'm aware of; finding its beginnings with a [paper](https://link.springer.com/article/10.1007/s00287-007-0205-1?ref=gorillasun.de) of the same name back in 2008, it's been Christian Heinemann's brainchild ever since. A timeline over on the project's official page indicates that the first version of the software was released to the public in 2018, a decade after the initial paper had been published:
[artificial life environmentArtificial LIfe ENvironment (ALIEN) is an artificial life simulation tool based on a specialized 2D particle engine in CUDA for soft bodies and fluid-like media. Each simulated body consists of a network of particles that can be enriched with higher-level functions, ranging from pure information processing capabilities to physical equipment (such as sensors, muscles, weapons, constructors, etc.) whose executions are orchestrated by a signaling system. The bodies can be thought of as agents or digital organisms operating in a common environment.](https://www.alien-project.org/index.html?ref=gorillasun.de)
To explain ALIEN in a few words, it's essentially a massive particle based simulation engine that models digital organisms within an artificial ecosystem. The digital organisms in these simulations are modeled as particle clusters (networks/graphs of connected nodes) that emerge in an entirely evolutionary manner, replicating and re-configuring themselves autonomously to adapt to the environmental conditions that they're faced with.
While I won't claim to understand a lot of the complexities of the project, skimming over the [docs](https://alien-project.gitbook.io/docs?ref=gorillasun.de) does reveal a little bit more about the technical details behind how it all works. The engine that powers ALIEN is structured in multiple layers, each of which handles a particular aspect of the simulation. For instance, the computation of physical interactions between particles is entirely decoupled from the information processing layer that's required for modeling the more complex behaviors that can arise between the different types of particles:
[Simulation model | ALIEN DocumentationWarning: This documentation is out of date and does not describe the behavior of the latest major version 4, which implements a new model. An up-to-date documentation can be found in the program help.ALIEN Documentation](https://alien-project.gitbook.io/docs/fundamentals/simulation-model?ref=gorillasun.de)
The software can handle millions of particles at a time, by virtue of being programmed in OpenGL and being CUDA accelerated. As for the digital organisms themself, the particles that composite them are unsurprisingly called cells, that are made out of programmable properties and functions:
[](https://alien-project.gitbook.io/docs/fundamentals/basic-notion?ref=gorillasun.de)
But that's just scraping the tip of the iceberg, there's a lot more cool stuff to it, I recommend exploring the docs for yourself (they might be a bit out of date because the latest version of the software just introduced a number of new updates). A recent big milestone for the project that put it on my radar again, was it winning the Virtual Creature Competition prize at this year's [ALIFE conference](https://2024.alife.org/?ref=gorillasun.de) \- and deservedly so, the trailer video is nothing short of stunning, also showcasing many of the fascinating emergent virtual creatures:
Beyond that, the software is also open-source and available under the BSD-3-Clause license - you can find the GitHub repo here:
[GitHub - chrxh/alien: ALIEN is a CUDA-powered artificial life simulation program.ALIEN is a CUDA-powered artificial life simulation program. - chrxh/alienGitHubchrxh](https://github.com/chrxh/alien?ref=gorillasun.de)
### Procedural Street Modeling with Tensor Fields
Coincidentally, this week I also came across another interesting paper back from 2008 titled [Interactive Procedural Street Modeling](https://www.sci.utah.edu/~chengu/street%5Fsig08/street%5Fproject.htm?ref=gorillasun.de), that revolves around leveraging tensor fields for the purpose of modeling realistic road networks that resemble real-life city maps. This rabbit hole ensued from a post over on the r/procedural subreddit that showcases a short GIF where a tensor field is transformed into such a city map:
[](https://www.reddit.com/r/proceduralgeneration/comments/1etyjbh/city%5Fmap%5Fgeneration%5Fusing%5Ftensor%5Ffields/?ref=gorillasun.de)
[Link to Reddit Post](https://www.reddit.com/r/proceduralgeneration/comments/1etyjbh/city%5Fmap%5Fgeneration%5Fusing%5Ftensor%5Ffields/?ref=gorillasun.de)
Here you might ask, what are Tensor fields? And how do we actually turn them into road maps?
Starting with a single tensor, it's basically a small 2x2 matrix that draws its values from an angle in an underlying scalar field. Arranging many of these tensors together, we get a tensor field—nothing more than a grid where each point holds its own tensor. The interesting part here is that each one of these tensors describes its own eigenvector, which reveals the principal directions in which the tensors have the most influence - in other words, the direction in which the tensor is exerting some amount of force. If we now follow these directions, we can trace lines through the tensor field more commonly referred to as hyperstreamlines.
This probably sounds a lot like a flowfield at this point, but there's some differences; in a regular vector field a streamline is a curve that is tangent to the vector field at every point. Meaning that streamlines show the path that a particle would follow if it moved along the flow of the vector field. Attaching "hyper" as a prefix to the term extends the concept of a streamline to more complex fields, where individual points can describe multiple directions and magnitudes, and in turn require more complex representations. Long story short, hyperstreamlines are tangent to one of the principal directions indicated by a tensor at each point in the field - we then use these lines to define the layout of roads and blocks in the city map.
If you want a comprehensive resource about eigenvalues and eigenvectors in video format, I highly recommend 3blue1brown's in depth explanation:
The use of tensor fields is thus an elegant solution for the purpose of city maps, as it naturally accommodates the dual-directional nature of urban street layouts. Looking into the topic a bit more I came across another reddit post, from 4 years ago, that tackles the same topic but with the added perk of having a comment section where some of the involved notions are discussed in more detail:


[Link to Post](https://www.reddit.com/r/proceduralgeneration/comments/g22yhy/city%5Fmap%5Fgeneration%5Fusing%5Ftensor%5Ffields%5Fnow%5Fwith/?ref=gorillasun.de)
Just as an interesting aside, before explaining their own approach the authors of the paper also point out a previous method described in a 2001 paper, which leverages L-systems for the purpose of modeling cities procedurally:
[](https://cgl.ethz.ch/Downloads/Publications/Papers/2001/p%5FPar01.pdf?ref=gorillasun.de)
[Link to Paper](https://cgl.ethz.ch/Downloads/Publications/Papers/2001/p%5FPar01.pdf?ref=gorillasun.de)
### Who is an “Artist” in Software Era
I was going to cram this one into the AI Corner section based entirely on the title of the post, but after giving it a read it definitely pertains to generative art in general. [Dr. Lev Manovich](https://manovich.net/index.php/about?ref=gorillasun.de) shares the second Chapter of a book that he's currently in the process of writing, titled "Artificial Aesthetics: Generative AI, Art and Visual Media" it tackles several of the contemporary issues and open ended questions that arise around these related fields.
Titled "Who is an “Artist” in Software Era?" the second chapter of the book raises important questions around the nature of creativity in this digital age, in particular the role that AI plays in it. Manovich explains that we need to reconsider the criteria by which we judge artistic achievement, especially as digital tools increasingly mediate the creative process - today's digital media externalize the creative process into discrete, programmable steps, fundamentally altering how art is produced and learned:
[](https://x.com/manovich/status/1824451812814160124?ref=gorillasun.de)
[Link to Tweet](https://x.com/manovich/status/1824451812814160124?ref=gorillasun.de)
Given this context, Manovich also questions what it would mean for an AI to compete with human artists. Should AI strive to replicate the creative processes and outcomes of a pre-digital era, or should it be measured against contemporary digital practices? Furthermore, should we consider AI that assists human creativity as part of the evaluation? Manovich implicitly calls for a broader, more nuanced discussion about the intersection of technology, creativity, and aesthetics in the 21st century. I also recommend checking out his website where he shares more of his writing:
[Lev ManovichLev Manovich: photos, bio, complete CV.manovich](https://manovich.net/index.php/projects/who-is-an-artist-in-ai-era?ref=gorillasun.de)
### Tiny Glade Release + Graphics Programming Conference 2024
If you're a fan of Townscaper, a relaxing town building sandbox game, that I believe to be well known in the genart scene, you'll have to mark your calendar, because a new game of this kind is coming to... town! (ba-dum-ts 🥁) Tiny Glade! Being one of the most anticipated games over on Steam with over a million wishlists at this point in time, it's bound to be a gigantic hit right from day one!

[Link to Tweet](https://x.com/PounceLight/status/1824117060953088420?ref=gorillasun.de)
I've been following Tiny Glade's development for the past couple of years now; whenever one of its two creators Tomasz Stachowiak ([@h3r2tic](https://x.com/h3r2tic?ref=gorillasun.de)) & Anastasia Opara ([@anastasiaopara](https://x.com/anastasiaopara?ref=gorillasun.de)) showcase a progress video on Twitter, I've just been completely blown away by the seemingly magical proceduralism of the game and the incredibly satisfying manner in which geometries adjoin each other seamlessly.
If you'd like to learn about the story behind Tiny Glade, the early days, some of the challenges the duo has faced and a little bit about the technical bits, like the game-engine that's used and how it works, an interview with them was published earlier this year over on the 80 level website:
[Tiny Glade Developers on Bevy, Proceduralism, Publishers & Cozy GamesTo celebrate the release of Tiny Glade’s demo version, Pounce Light’s Anastasia Opara and Tomasz Stachowiak have joined 80 Level to discuss the game’s history, proceduralism, Bevy, Rust, self-publishing, and the “cozy games” genre.80lvPounce Light](https://80.lv/articles/exclusive-tiny-glade-developers-discuss-bevy-proceduralism-publishers-cozy-games/?ref=gorillasun.de)
As an added bonus, through Tiny Glade's upcoming launch I also learned about the Graphics Programming Conference that's going to be held later this year in November - and from what it looks like it's going to include more than a few interesting talks about computer graphics, one of them about some of the tech behind Tiny Glade, you can learn more here:

[Link to Tweet](https://x.com/h3r2tic/status/1813197502411092186?ref=gorillasun.de)
[Graphics Programming ConferenceGraphics Programming Conference (GPC) is a new, international conference for real-time and interactive graphics programming.Graphics Programming Conference](https://www.graphicsprogrammingconference.nl/?ref=gorillasun.de)
### Matt Henderson's Algorithmic Experiments
On this week's episode of how to torture your sorting algorithm; Matt Henderson probes how different sorting algorithms react to injections of random values, while they are in full swing. The resulting animations are surprisingly satisfying to watch, as the algos eagerly try to bring order to the seemingly unsatisfyable data that they're operating on:
0:00
/0:27
1×
[Link to Tweet](https://x.com/matthen2/status/1824454320215167346?ref=gorillasun.de)
I believe it a big missed opportunity to not have made a sonified version of these as well for endless procedural music 😛. While you're at it, make sure to check out Matt's profile, there's more than a few interesting experiments worth taking a second to look at.
### Other Cool Generative Things
1. Quick reminder that most [talks given at the July 2024 genart summit in Berlin](https://x.com/Foundation%5FHWF/status/1824877625271259448?ref=gorillasun.de) have now been released over on Youtube.
2. [Inigo Quilez has also been making YouTube shorts](https://youtube.com/shorts/6fgqQ65YFqU?si=QQjW5iZq%5FllYC0Rs&ref=gorillasun.de) to showcase interesting tidbits; his most recent shows the interesting patterns that emerge when the pixels of an image, in raster order, are re-ordered along a Hilbert curve.
3. [Yohei Nishitsuji](https://x.com/YoheiNishitsuji/status/1787226428079292903?ref=gorillasun.de) is yet another Japanese code golfing wizard, who's Tsubuyaki GLSL tweets have made quite the buzz - check out some of them.
4. [Lygia's ](https://x.com/patriciogv/status/1824817561495580958?ref=gorillasun.de)[p5js](https://x.com/patriciogv/status/1824817561495580958?ref=gorillasun.de) [raymarching demo gets an update](https://x.com/patriciogv/status/1824817561495580958?ref=gorillasun.de).
## The Free Mint Meta
In light of Foundation's Rodeo taking off in the past weeks, a big polarized discussion around this type of micro-mints has taken shape; while some artists have wholeheartedly embraced free mints, others have expressed themselves negatively towards the paradigm. After all it makes sense, distributing your work with a virtually limitless supply and at a negligible fee does not bode well for the value of past and upcoming works. The question then is, what purpose do free mints actually serve?
Bruce voiced his thoughts on the matter and tries to answer this question, he explains that free mints can actually be approached as a means to enhance the value of an artist's body of work, instead of being a detriment to it, when leveraged the right way - community building and long-term engagement being key in this scenario:
[](https://x.com/StudioYorktown/status/1824542036269342755?ref=gorillasun.de)
[Link to Bruce's Tweet](https://x.com/StudioYorktown/status/1824542036269342755?ref=gorillasun.de)
Some of the lengthy replies to Bruce's post remain skeptical however. Others have chimed in as well and pitched their own thoughts: Marius Watz provides a different point of view, explaining that artists can repurpose these platforms to express a different body of work from what they usually do, Sofia Garcia and Jamie Gourlay also ask interesting questions on that matter:


[Link to Marius Watz' Thread](https://x.com/mariuswatz/status/1824740767169966275?ref=gorillasun.de) | [Link to Jamie Gourlay's Tweet](https://x.com/jamiegourlay/status/1824533851915296794?ref=gorillasun.de) | [Link to Sofia Garcia's Tweet](https://x.com/sofiagarcia%5Fio/status/1824508020577144884?ref=gorillasun.de)
## Tech and Web Dev
### 10 years of Dear ImGUI
If you're not familiar with Dear ImGui,it's an open-source, lightweight, and highly customizable graphical user interface library that's primarily used in the development of tools and applications where a quick and flexible UI is needed. With nearly 60k stars, it currently is the 13th most bookmarked Github repo overall - and is pretty much the industry standard when it comes to create editor tools, debug interfaces, and in-app menus.
The term imgui is short for Immediate-Mode Graphical User Interfaces which was first conceived by Casey Muratori - [there's a famous talk from him back from 2005](https://www.youtube.com/watch?v=Z1qyvQsjK5Y&ref=gorillasun.de) where he explains the paradigm, but in essence it means that the interface elements are constructed and rendered in real-time, every frame, based on the current state of the application
The initial version of Dear ImGui was released exactly ten years ago, on August 11th 2014, it's creator [Omar Cornut](https://www.miracleworld.net/?ref=gorillasun.de) ([@ocornut](https://x.com/ocornut?ref=gorillasun.de)) wrote a lengthy and deeply insightful post to commemorate and celebrate this milestone - naturally in form of a Github issue on the repo itself - where he shows some stats, recounts the early days, and provides reflections on the past 10 years of maintaining a software project of this scale:
[10 years of Dear ImGui (long post) · Issue #7892 · ocornut/imgui10 years of Dear ImGui 🎉 On August 11, 2014, I published v1.00 of Dear ImGui on GitHub. I thought I would take the occasion to reflect about it, share some data points and stories, and generally th…GitHubocornut](https://github.com/ocornut/imgui/issues/7892?ref=gorillasun.de)
### It's Time to Talk about CSS5
A recent article published over on Smashing Magazine titled "It's time to talk about CSS5" immediately hooked me — what do you mean CSS5? What happened to CSS4? Wasn't CSS3 the last major update to the language in... wait, let me check my calender — 2012?
Those are the questions that Brecht De Ruyte tries to address with his article, pointing out the lack of a cohesive and recognizable way to define the evolution of the tech since the CSS3 era — some of the features that were introduced over 10 years ago are still frequently described as being "modern", which is to say that the term CSS3 is a bit meaningless nowadays:
[It’s Time To Talk About “CSS5” — Smashing MagazineHave you ever wondered what happened after CSS3? It’s common knowledge that we never saw CSS4 come after it, yet we have a plethora of new features that have no similar way of defining when they were introduced. The W3C CSS-Next community group is actively searching for better approaches for how we describe the evolution of CSS over time and identify feature sets as effectively as we did with CSS3 way back in 2009 — and you can help.Smashing MagazineBrecht De Ruyte](https://www.smashingmagazine.com/2024/08/time-to-talk-about-css5/?ref=gorillasun.de)
This is where CSS-Next comes in; the article introduces it as a community driven initiative to create CSS "eras" and categorize the features that have been introduced over the past decades by the eras in which they have been introduced. By defining these eras, it becomes easier for everyone involved in web development to keep up with CSS changes, much like how CSS3 once encapsulated a significant leap forward in web styling capabilities. This proposal is therefore not just about versioning for the sake of it; it's about creating a framework that developers, educators, and employers can easily understand and use. This would also acknowledges that CSS is a living language, constantly evolving with new features that need to be recognized in a structured way.
The overarching challenge will be in the adoption of these new terms however. The success of CSS3 was partly due to its strong branding and the significant leap it represented at the time. For CSS4, CSS5, and beyond to gain similar traction, the community will need to see value in these distinctions. This is where marketing and education will play a crucial role—ensuring that these new "eras" are not just technically accurate but also widely recognized and adopted.
The article ends with a call to action, asking developers to weigh in with their own thoughts on the matter and join the CSS-Next group. If you want to read more about this, two important posts are Jen Simmons issue that was opened back in 2020 over on the w3c repo:
[Let’s Define CSS 4 · Issue #4770 · w3c/csswg-draftsIt’s come up quite a few times recently that the world of people who make websites would greatly benefit from the CSS Working Group officially defining ”CSS 4”, and later “CSS 5“, etc. Chris Coyier…GitHubw3c](https://github.com/w3c/csswg-drafts/issues/4770?ref=gorillasun.de)
As well as this article over on CSS-Tricks, fittingly titled CSS4:
[CSS4 | CSS-TricksWhat is CSS4? Is it a real thing? I hate to break it to you, but not really. But maybe we could make it a thing? CSS3 was successful, so why not keep that train rolling like they do in JavaScript?CSS-TricksChris Coyier](https://css-tricks.com/css4/?ref=gorillasun.de)
## AI Corner - Trainable Neural Network in tldraw
If you're not familiar with [tldraw](https://github.com/tldraw/tldraw?ref=gorillasun.de), it's a library for creating infinite canvas experiences for the web - basically a digital whiteboard onto which you can scribble down diagrams as well as create flowcharts of all sorts, and is simultaneously very customizable. TwiX user Dennis is the creator of [holograph.so](https://www.holograph.so/?ref=gorillasun.de); a visual programming language that is built on top of tldraw - it's a bit reminiscent to Samuel Timbo's [Unit](https://x.com/io%5Fsammt?ref=gorillasun.de), minus the physics part, that I featured in [issue #38 of the newsletter](https://www.gorillasun.de/blog/gorilla-newsletter-38/).
In his most recent endeavor Dennis succeeds at the impressive feat of creating a fully functioning and trainable neural network, entirely within the constraints of the visual framework he's created:
[](https://x.com/dennizor/status/1824075908120035460?ref=gorillasun.de)
[Link to Tweet](https://x.com/dennizor/status/1824075908120035460?ref=gorillasun.de)
On a related AI note, last year tldraw released an AI powered feature that made quite a buzz, titled "[make real](https://makereal.tldraw.com/?ref=gorillasun.de)" it let you magically generate websites from your hand-drawn diagrams. You can [read about it here](https://tldraw.substack.com/p/make-real-the-story-so-far).
## Music for Coding
Artifacts is a real treat of an album, blending soulful jazzy sounds with hip-hop elements to create a thick lo-fi vibe that's hard not to get lost in. After some digging, I found out that SLUG isn't just one artist but rather a collective of musicians from the US and Europe, that work together under their own record label called Coleslaw Records - and they’ve already got a [solid catalogue over on Bandcamp](https://www.youtube.com/watch?v=eenLTTYn%5Fxw&ref=gorillasun.de) if you want to listen to more of them. But anyway, that's beside the point, enjoy these phenomenally jazzy sounds:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 68Interactive Physarum Simulation - Visualizing the Olympics - WebGPU Unleashed - Sound & The Fourier Transform - AutoAlbers, Nectar, and a Gradient Generator - Metamagic of Mathematics - Pxlshrds Conversations - The Secret Mechanisms of CSS - EU AI ActGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-68)
*And backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 68
URL: https://www.gorillasun.de/blog/gorilla-newsletter-68/
Last updated: 2024-08-12T16:35:55.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 68th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Interactive Physarum Simulation by Deniz Bicer
Physarum simulations are a popular type of particle-based algorithm in digital morphology, designed to recreate the behavior of [slime mold](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de)[s](https://en.wikipedia.org/wiki/Physarum%5Fpolycephalum?ref=gorillasun.de) in a digital setting. The algo was originally described by Jeff Jones in his 2010 paper titled "[Characteristics of pattern formation and evolution in approximations of Physarum transport networks](https://uwe-repository.worktribe.com/output/980579/characteristics-of-pattern-formation-and-evolution-in-approximations-of-physarum-transport-networks?ref=gorillasun.de)", and later brought to popular attention in the generative art/creative coding space by Sage Jenson ([@mxsage](https://x.com/mxsage?ref=gorillasun.de)), with an iconic [blog post](https://cargocollective.com/sagejenson/physarum?ref=gorillasun.de) of his published in 2019.


[Jeff Jones 2010 Paper](https://uwe-repository.worktribe.com/output/980579/characteristics-of-pattern-formation-and-evolution-in-approximations-of-physarum-transport-networks?ref=gorillasun.de) | [Sage Jenson's 2019 Blog Post](https://cargocollective.com/sagejenson/physarum?ref=gorillasun.de)
Recently a Tweet by Deniz Bicer made the rounds over on Twitter, in which she shares her own version of the growth pattern sim with the additional twist that it can be fine-tuned with 3 intuitive sliders that control the behavior of the agents tracing out the emergent patterns. [In a thread](https://x.com/ojelibalon/status/1820839257793233164?ref=gorillasun.de) of hers she explains all of the details:
0:00
/0:22
1×
[Link to Thread](https://x.com/ojelibalon/status/1820839257793233164?ref=gorillasun.de)
If you're curious about how the Physarum algorithm works, here's a quick breakdown. Similarly to other particle based simulations that model a collective behavior, say a flocking algorithm à la Boyd, the individual agents in the Physarum sim also follow a few simple rules:
1. **Sensing:** Each agent (representing a part of the slime mold) senses its environment by detecting the concentration of a substance (often referred to as "food" or "nutrients") in its vicinity. The agent typically samples the environment in multiple directions (in a specific radius in front of it) to determine where the highest concentration of the substance is located.
2. **Movement:** Based on the sensing step, the agent moves toward the direction with the highest concentration of the substance. This movement is often biased towards areas with more nutrients but can also include randomness to simulate natural exploration. The movement is also be influenced by a trail of a chemical substance (like pheromones) left behind by other agents, creating a feedback loop where the slime mold reinforces paths that lead to abundant resources.
3. **Deposition:** After moving, the agent deposits a small amount of a chemical substance (often called "slime" or "pheromones") onto the trail it has just traveled. This trail influences other agents by guiding them toward regions with higher concentrations of the deposited substance. And over time, the slime mold forms a network of trails that efficiently connects the resource points.
Naturally, this becomes slightly more complicated in code as it is stated here in natural language. This parametric system then creates intricate, vein-like networks, as agents reinforce successful paths and abandon less efficient ones, leading to the emergence of complex, organic patterns. In Deniz's version of the algo, the sliders let you control the sensor angle and radius (by which the agents determine where to go next) as well as the step size of their movement. And it's actually quite addictive to play with, here's a pattern I configured:
[](https://denizbicer.com/202408-UnderstandingPhysarum.html?ref=gorillasun.de)
You can try out the interactive simulation for yourself over on Deniz's blog, here's a [link](https://denizbicer.com/202408-UnderstandingPhysarum.html?ref=gorillasun.de)
If you'd like to have an explainer in video format however, you should check out Patt Vira's tutorial on the topic - fun fact, it is now headlining the new P5 site's tutorial section:
### Krisztina Szűcs Visualizing the Olympics
Although I'm not big on sports, I couldn't help noticing Krisztina Szűcs recent data visualizations that summarize some of the events at the 2024 Olympic games held in Paris. For someone like me, that doesn't have the patience to sit through the entirety of these events, I really appreciated the creative and condensed manner in which Krisztina's visualizations convey the final results - my favorite probably being the one she did for the women's high jump final, where the choreographed animation also introduces some of the suspense and anticipation that you'd normally feel watching the event live:
0:00
/0:32
1×
[Link to Tweet](https://x.com/szucsi/status/1820218352251666762?ref=gorillasun.de)
And this isn't actually the first time that Krisztina attempts this, here's a post of hers back from 2022 where she shares some of her previous sports visualizations she's made for events in recent years:
[Animated sport results - Krisztina Szucs - Data Visualization Designer PortfolioThis post is a summary of the animated data visualizations I’ve created for UEFA Euros 2020, Copa America, Tokyo 2020 Summer Olympics (fencing, swimming), 19th FINA World Championships Budapest 2022 (swimming), Beijing 2022 Winter Olympics (ice hockey), Handball World Championship 2021, Roland Garros and Wimbledon 2022 (tennis).Animated sport results by Krisztina SzucsKrisztina Szucs](https://krisztinaszucs.com/blog/20220829%5Fgif/index.html?ref=gorillasun.de#swimming)
While data viz is in of itself already a big challenge, where the visuals need to capture the essence of the data, it becomes even more interesting with these different sports categories; since each sport has its own set of rules and unique way of being scored, there's no "one-fits-all" type of plot that can be re-used. In a way they create their own data viz affordances.
For instance, Krisztina leverages the fact that Handball, Soccer and Fencing are scored in relatively similar manner, as a chronology of points attributed to the two teams/opponents, creating an entirely new type of chart that she calls "timeline triangles". With these types of visualizations even I might come to enjoy the Olympic games - definitely also check out [Krisztina](https://x.com/szucsi/?ref=gorillasun.de)'s twitter for more data viz goodness.
### WebGPU Unleashed by Shi Yan
If you've for some reason been in a coma in the past two years and this is the first time that you hear about WebGPU, buckle up! It's a modern, low-level graphics API designed to provide high-performance access to GPU resources for rendering 3D graphics and performing general-purpose computing tasks (including machine learning and/or complex calculations) directly on the GPU. It is developed as part of the W3C initiative and is meant to be a successor to WebGL, offering overall more advanced features and better performance. The [MDN web docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGPU%5FAPI?ref=gorillasun.de)[ provide a comprehensive resource](https://developer.mozilla.org/en-US/docs/Web/API/WebGPU%5FAPI?ref=gorillasun.de) to that end.
If you want something a little bit more accessible though than MDN, you'll have to check out this free book recently published by Shi Yan (which is also the entire reason for this section) that goes over the in and outs of the tech:
[WebGPU Unleashed: A Practical TutorialWebGPU Unleashed, your ticket to the dynamic world of graphics programming. Dive in and discover the magic of creating stunning visuals from scratch, mastering the art of real-time graphics, and unlocking the power of WebGPU - all in one captivating tutorial.](https://shi-yan.github.io/webgpuunleashed/?ref=gorillasun.de)
Skimming a little through the different sections it immediately gave me big "Book of Shaders" vibes; it's written in a very approachable manner and seems to explain things in a way such that it doesn't get too overwhelming. It also provides a copious amount of examples throughout that you can run a tweak directly as code playgrounds. Did I mention that it's free?
### Sound & The Fourier Transform
Sebastian Lague is back with another installment in his coding adventure series, this time the video revolves entirely around processing sound in various manners; from reading .wav files, to simulating a virtual microphone, all the way to generating signals and implementing the Fourier transform that visualizes the constituent frequencies of an audio signal. Sound processing is a fascinating and challenging task for computers due to how densely audio signals need to be represented in their discretized form for them to make sense to the human ear - as always, Sebastian's video is an educative treasure trove in that regard:
You can also support Sebastian on Pateron to get access to the source code of his experiments.
My personal highlight of the video was definitely the simulated virtual speaker + microphone where he repurposes his fluid simulation ([covered in a video from a few months back](https://www.youtube.com/watch?v=rSKMYc1CQHE&ref=gorillasun.de)) so that the particles behave more like air. The virtual speaker then vibrates causing the particles to move along with the pressure waves emitted, to have the microphone sample this simulated pressure to recreate the original signal. I don't think I've ever seen something like it, and it's crazy that it actually works (regardless of how slow it needs to be run).
### A Bunch of New Color Tools
David Aerne, who you might remember from [issue #56](https://www.gorillasun.de/blog/gorilla-newsletter-56/) in which I featured his RYBitten project, is back, with not one, but two new color tools - the first one is called AutoAlbers, and puts creative generative spin on color generation with a visual twist inspired by the Albers effect.
The **Albers effect** refers to a visual phenomenon described by the artist and educator Josef Albers in his book *"Interaction of Color"* (1963). In his work he illustrates how the perception of color is relative and influenced by surrounding colors, leading to changes in how a color appears based on its context:
> If one dips one's left hand into cold water, the other into warm water and then both hands into lukewarm water, one will perceive this water with the right hand as cold, the left hand as warm. It is the same with color. \~ [Sarah Wittig](https://www.kunstpalais.de/en/147/Josef-Albers:207.html?ref=gorillasun.de)
David's tool generates a band of colors that bleed into each other mesmerizingly with an interesting sort of blur - I don't have the first clue as to how that effect is achieved:
[Exploring Color and Perception: A Generative Art ProjectDive into a generative art project inspired by Josef Albers’ study of color perception. Experience dynamic, algorithmically generated color compositions.AutoAlbersDavid Aerne / Meodai](https://albers.elastiq.ch/?ref=gorillasun.de)
As for the other tool, David basically made a classic image color picker, that lets you samples colors directly in your browser, without having to upload the image to some server - your browser itself does all of the heavy lifting which is pretty neat:
[Nectar - Extract Colors from ImagesCreate stunning color palettes from your images. Nectar extracts colors and generates a harmonious color scheme.Nectar](https://nectar.color.pizza/?ref=gorillasun.de)
The other tool that I want to highlight is from Eric Kennedy that lets you generate beautiful gradients and easily copy them in CSS & SVG format. The cool thing about this particular generator is the manner in which these gradients are generated without having dead "gray-zones" - Eric explains how his generator achieves this in the text underneath the tool:
[Gradient Generator ToolCreate & export linear, radial, & conic gradients. Automatically creates vivid, colorful gradients. One-click CSS or SVG (drag-and-drop into Figma, Sketch, Canva, etc).](https://www.learnui.design/tools/gradient-generator.html?ref=gorillasun.de)
### Other Cool Generative Things
- Similarly to Sebastian Lague, Maxime Heckel also updates us every few months with one of his stellar deep dives - his most recent article revolves around [dithering with shaders and how to apply them as a post processing filter to existing scenes](https://blog.maximeheckel.com/posts/the-art-of-dithering-and-retro-shading-web/?ref=gorillasun.de).
- Barney Codes posted a [new video that breaks down image distortion effects with shaders](https://www.youtube.com/watch?v=ZcRptHYY3zM&ref=gorillasun.de) in a beginner friendly way.
- [Monk made a (moderately controversial) diagram that categorizes/hierarchizes some of the terms that we use today for the different generative practices](https://x.com/monkantony%5Ftez/status/1821463834139275733?ref=gorillasun.de) \- while not everyone agreed it sparked a number of interesting discussions.
- On September 6th the [Weaving Past & Present Pattern Language Symposium](https://kunstbygda.no/pattern-language?ref=gorillasun.de) will be held at Norsk Reiselivsmuseum in Balestrand Norway, including a few familiar generative artists. If you're there you might want to stop by.
## Web3 News
### The Matemagic of Mathematics
In [issue #62](https://www.gorillasun.de/blog/gorilla-newsletter-62/) I mentioned the "Awaken, MetaMagic Hands" exhibition that's currently in full swing at the Gazelli Art House over in London. It brings together a number of the second wave pioneers of genart to showcase their works, under the co-curation of none other than John Maeda. The exhibition also serves as a critical lens to address a number of important topics related to the current state of the generative art market - in an insightful RCS interview Bronac Ferran lets us in on some of the participating artists' thoughts:
[The Metamagic of MathematicsA pioneering generation of artists discusses the creative power of computation with Bronac FerranRCS](https://www.rightclicksave.com/article/the-metamagic-of-mathematics-generative-art-interview-john-maeda-joshua-davis-golan-levin-lia-gazelli-art-house?ref=gorillasun.de)
To give a brief recap:
- Joshua Davis states that NFTs have arguably been the catalyst for the generative art explosion that we've witnessed in recent years, but also expresses concerns over the commercialization thereof - many players might have only joined for the "gold rush" but not the art movement. But on the flip-side, Joshua Davis also seems to be generally enthusiastic about the affordances that NFT tech has created around generative art and how it has enabled.
- LIA echoes both the positive and negative sentiment, lamenting that the commercial aspect has also stifled experimental freedom.
- Golan Levin critiques the current state of software art in relationship to the commercial aspect: "I prefer to think about the art itself, independent of its saleability, and I don’t like the way that art warps itself to accommodate marketplaces."
- As for John Maeda, [we've already covered his views](https://www.gorillasun.de/blog/gorilla-newsletter-66/) in a recent issue, he finds advancements in AI exciting as they reduce the necessity for mathematical expertise in computational art.
But that's just a few of my own takeaways from the interview, highly recommend reading through all of it.
### Pxlshrd's Conversations
Pxlshrd makes a big return with a new genart project titled [Conversations](https://x.com/pxlshrd/status/1820849909131542816?ref=gorillasun.de) that's bound to release on Verse soon. With this segment I'd like to highlight the beautiful narrative that's spun around the project; Pxlshrd wrote a wonderful [essay](https://pxlshrd.xyz/conversations-essay.html?ref=gorillasun.de) that captures his thoughts, influences, and state of mind behind the project - it's a beautifully written piece about change, nature, music and how all of these play a role in the artwork:
[](https://pxlshrd.xyz/conversations-essay.html?ref=gorillasun.de)
Pxlshrd's beautifully nostalgic website | [Link to the Essay](https://pxlshrd.xyz/conversations-essay.html?ref=gorillasun.de)
Besides that, he also released music video with an original track of his, that I highly recommend giving a listen to, quality of the video and sound is absolutely stellar:
Now that I'm done gushing - you might also remember that I did an interview with Pxlshrd back in October of last year, covering his artistic process at the time and the important role that music played in it. I felt that we hit it off pretty well back then, and I've continuously enjoyed seeing his code explorations on my timeline:
[In conversation with pxlshrd - Between Music and GenartPxlshrd is a generative artist that draws inspiration from music. Having created an impressive number of generative pieces on fx(hash), he has a lot of insights to share on the process. This is the story of pxlshrd.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/)
Anyway, congrats on the new release! 🎉
## Tech and Web Dev
### The Secret Mechanisms of CSS
If you only have time for a single video this week, I'd highly recommend watching Josh Comeau's "The Secret Mechanisms of CSS": a deeply insightful talk he gave at Web à Québec 2024 (that took place back in May), but was only released a couple of days ago:
[Josh Comeau](https://x.com/JoshWComeau?ref=gorillasun.de) describes himself as an "Indie hacker and educator" in his TwiX bio; but I think that it's much too humble considering how he's mastered many of the different web technologies at this point in time - I discovered his blog around a year ago and it's been a big source of inspiration and learning ever since:
[CSS articlesFriendly tutorials for developers. Focus on React, CSS, Animation, and more!](https://www.joshwcomeau.com/tutorials/css/?ref=gorillasun.de)
With his talk he tries to provide "a set of mental models you can use to better understand CSS, so that it stops feeling so unpredictable and inconsistent" the latter part of which I think is something that many struggle with when it comes to CSS - just like Josh describes it, CSS is often treated like a big box of different tools that get thrown together haphazardly until the desired layout is achieved, when there's actually better ways to go about it.
### Designing Depth by Rauno Freiberg
Adding depth is arguably one of the more challenging tasks when it comes to making a design really "pop", and many websites fall short in that regard. Rauno Freiberg wrote a piece on this topic, explaining a number of inconspicuous techniques that can be utilized to create an illusion of depth in design as well as motion:
[Designing DepthJuly 2024Rauno FreibergRauno Freiberg](https://rauno.me/craft/depth?ref=gorillasun.de)
He brings up a technique used in filmmaking that's often utilized for this purpose called "Dirtying the Frame", which refers to the layering of elements in the foreground to make shots seem deeper - basically, "when there are people and/or objects between you and the key subject of the frame". He showcases how this can also be achieved in software design by introducing background and foreground elements.
### Designing Design Systems
Design systems are crucial for modern product development, as they provide a structured approach to creating and maintaining a consistent user experience across a product or a suite of products. Isabelle Hamlin recently wrote about the challenging task of redesigning and evolving the iconographic part of Adobe's design system.
Isabelle goes over the lifecycle that this kind of project needs to undergo, from a planning and experimentation phase, to beta testing and ultimately finalizing decisions before production work begins. Isabelle enumerates and highlights the important steps to focus on during each one of those phases:
[Designing design systems: Constructing an icon systemA process for creating a unified brand experience through iconographyIsabelle Hamlin](https://adobe.design/stories/design-for-scale/designing-design-systems-constructing-an-icon-system?ref=gorillasun.de)
## AI Corner
### EU puts into effect the AI Act
I've already featured Alvaro Montoro in [issue #66](https://www.gorillasun.de/blog/gorilla-newsletter-66/), sharing an article of his about 10 useful CSS one-liners; this week he makes a swift return with another update tackling an important development in AI - this last week we saw the [EU put into effect the AI Act](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=OJ%3AL%5F202401689&ref=gorillasun.de): a legal framework that will impose a number of much needed regulations on AI powered technologies in the coming years:
[AI Act is HereThe European Union enabled the Artificial Intelligence Act, the first-ever legal framework on AI, addressing its risks and positioning Europe as a leader in AI legislation. This article reviews the AI Act, the different risk categories, and how (and when) it will impact development. :: Blog post at Alvaro Montoro’s Personal Website.Alvaro Montoro (alvaromontorogmail.com)](https://alvaromontoro.com/blog/68057/ai-act-is-here?ref=gorillasun.de)
As far as I understand, the Regulatory Framework categorizes AI systems into four risk categories, defining a spectrum of regulations for different AI applications, ranging from permissible to unacceptable - such that the use of AI systems in the latter is outright banned - whereas a strict auditing process is imposed on high-risk applications. Two diagrams found on the official post illustrate this categorization:


[Link to Official Article](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai?ref=gorillasun.de)
This act will come fully into effect in about 2 years time - Alvaro provides another diagram in his post to visualize this timeline.
### AI Powered Sketch Descriptions
Alexander Chen made a cute sketch that combines P5 and Google's Gemini LLM in a creative way: scribbling something onto the canvas prompts the LLM to describe the sketch in a single word, then printing that word to the canvas — essentially playing a game of "What am I?" with the smart chatbot:
0:00
/0:15
1×
Alexander provides additional information in a thread underneath the Tweet | [Link to Tweet](https://x.com/alexanderchen/status/1819939988676440241?ref=gorillasun.de)
Credit where credit's due though, this was originally inspired by [a sketch from Pitu](https://x.com/pitaru/status/1819797112399511625?ref=gorillasun.de) on TwiX that attempts the very same thing. Check them out, they both share the source code as well if you'd like to play around with this idea.
### Other Cool AI Things
- Of note for the educators here is a new AI powered learning tool called [Little Language Models by CoCo](https://medium.com/mit-media-lab/little-language-models-empowering-children-to-be-future-ai-modelers-a30e1a5f020a?ref=gorillasun.de) that aims to teach a younger audience about the underlying ideas of AI and probabilistic thinking in a playful manner.
- [WebLens](https://weblens.ai/?ref=gorillasun.de) is a cool AI powered tool that audits your website simply via a link to it, suggesting potential ideas for A/B testing and optimizations to improve your search rankings. Seems useful to bookmark for the Gorilla Blog.
## Music for Coding
This week I discovered yet another weird genre that I wasn't aware before; it's called "Dungeon Synth", and sonically it's quite unambiguous if you ask me. It's a subgenre of dark ambient music that draws heavily from the fantasy and medieval themes, as well as crossing that over with early, retro electronic music. The genre typically features atmospheric and immersive compositions, created using synthesizers and other electronic instruments to evoke a sense of ancient or mystical settings, such as dungeons, castles, or forgotten realms. Here's one album that I particularly enjoyed:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 67Genart Summit VODs - Patt Vira & Daniel Shiffman Colab - Javascript Haikus by Frank Force - Matt DesLaurier’s Color Library - Deca Collector Pages - A Recount of HEN’s History - dialog() Asia - 2024 Stack Overflow Developer Survey - Github Vulnerability - Scaling to 650M CheckboxesGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-67)
*And backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 67
URL: https://www.gorillasun.de/blog/gorilla-newsletter-67/
Last updated: 2024-08-05T11:18:34.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 67th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
---
## All the Generative Things
### Berlin Genart Summit Recordings
If you weren't able to take part in the GAS (Generative Art Summit) Conference that took place at the beginning of July in Berlin, you can now do so at least spiritually by watching some of the talks in recorded form over on YouTube - they've been gradually uploaded over the past couple of days:

[Link to Tweet](https://x.com/Foundation%5FHWF/status/1815403856408219997?ref=gorillasun.de)
One thing that I really have to say here, is that the camera work is stellar; some of the close-up shots are more immersive than having been there in person. Besides that, I'm really happy that the talks are actually being released rather than disappearing in some dusty archive - here's Bill Kolomyjec's that I highly enjoyed, both at the summit and again in video:
What Susanne Päch has achieved with this conference, and the wealth of information that she's putting out into the world with these recordings is just absolutely stellar.
### Patt Vira Collab with Daniel Shiffman
If you end up watching one or more of the recorded talks, you might as well add another video to your playlist, a colab between my two favorite creative code YouTubers Patt Vira and Daniel Shiffman. Patt recently got the chance to sit down with The Coding Train's conductor and ask him many a question in an hour-long podcast format:
If you're not familiar with Patt Vira, she's a budding creative code educator that's following in Shiffman's footsteps with the primarily video based tutorial approach, and has churned out over a 100 tutorials in the past year. And here I am still thinking about how to go about my first one 🤣
And at this point I don't think Shiffman needs an introduction, he's in charge of arguably the largest educational creative coding YouTube channel, where he's now been making content for over a decade, and has also authored the most famous book in that regard "The Nature of Code". If you didn't know, the 2.0 revised version is now available, with an entire additional chapter! After having watched so many of his videos, it was actually really cool to learn a bit more about Shiffman's background.
With this collaboration we also see Patt take over as a guest conductor on The Coding Train channel, where she introduces us to ml5.js 1.0 and creates a quirky face tracking sketch:
Not to flex, but let me quote myself from the [44th issue](https://www.gorillasun.de/blog/gorilla-newsletter-44/) of the Newsletter in which I'd already mentioned Patt once before:
> Definitely recommend keeping up with what Patt's doing - I have a hunch that we're going to see a lot more stellar content from her in the coming months.
And what do you know, I believe I was right! Jokes aside, definitely recommend checking out both videos as well as checking out Patt's channel, she's covered a lot of cool material at this point.
### JavaScript Haikus by Frank Force
If you've been around for a while, you'll know that I'm a big fan of everything that Frank Force does - at this point in time, he's now the record holder with the most number of mentions on the newsletter! Featured in [#23](https://www.gorillasun.de/blog/gorilla-newsletter-23/), [#25](https://www.gorillasun.de/blog/gorilla-newsletter-25/), [#39](https://www.gorillasun.de/blog/gorilla-newsletter-39/), [#43](https://www.gorillasun.de/blog/gorilla-newsletter-43/), and most recently in [#58](https://www.gorillasun.de/blog/gorilla-newsletter-58/)! This week he makes a return with a stellar talk given at Nerd Nite 160 (a live event in Austin, Texas) which ends up being an 87 slide long whirlwind tour of everything that you could possibly need to know about size coding graphics:
Throughout his talk Frank highlights [Dwitter.net](https://www.dwitter.net/?ref=gorillasun.de) \- a Twitter clone that came to life in 2016 and is entirely geared towards size code experiments. The basic idea is that users post tiny JavaScript programs of up to 140 characters that then run directly in the social feed executed by your browser. My favorite part of the talk was Frank's showcase of some of the dweets he deems most impressive (basically go have a closer look at those as learning exampes), followed by some of his own favorite creations that he's created in over 5 years of having been active on the platform.
### Matt DesLauriers Color Library
It seems that whenever Matt DesLauriers sets out to build a tool for himself, he's also super kind to open source it for everyone else to use. You might remember that a couple of weeks ago he released a [repo containing a number of useful PNG encoding/decoding tools](https://github.com/mattdesl/png-tools?tab=readme-ov-file&ref=gorillasun.de) (which we might see more of at some point in the future). I wrote about it back in [issue #58](https://www.gorillasun.de/blog/gorilla-newsletter-58/) of the newsletter if you want to read up on it.
This last week he open sources yet another tool he's been working on, in form of a tiny and heavily optimized library, entirely geared towards color manipulation - the github repo's description puts it very succinctly: "A minimal and modern color library for JavaScript. Especially useful for real-time applications, generative art, and graphics on the web." Here's a link to the repo if you'd like to take it for a test-run yourself:
[GitHub - texel-org/color: modern color library for image processing and creative coding (oklab, xyz, p3, rec2020 + more)modern color library for image processing and creative coding (oklab, xyz, p3, rec2020 + more) - texel-org/colorGitHubtexel-org](https://github.com/texel-org/color?ref=gorillasun.de)
Here's also the official announcement tweet, in addition to another predating the release where he points out an interesting paper from 2008 for procedural color generation:


[Link to Left Tweet](https://x.com/mattdesl/status/1819405253877362744?ref=gorillasun.de) | [Link to Right Tweet](https://x.com/mattdesl/status/1814648724078874983?ref=gorillasun.de)
### Other Cool Generative Things
1. [P5JS Version 1.10.0 Release](https://github.com/processing/p5.js/releases/tag/v1.10.0?ref=gorillasun.de): the newest version of P5 is out with a whole bunch of improvements and new things!
2. [Bantam Tools' Plotterfest](https://medium.com/@bre/bantam-tools-plotterfest-20d3250a06fe?ref=gorillasun.de): Last weekend Plotterfest 2024 took place over in New York, seeing 35 participants flock together to nerd out about all things related to plotters. Bre Pettis published a short recap post over on Medium for the occasion.
3. [Amy Goodchild's Handwritten Spirals](https://substack.com/home/post/p-147269390?ref=gorillasun.de): Amy's recently made these stellar plotted spirals that consist entirely out of her generative handwriting. In her recent Newsletter she writes a little about them and some technical issues she's run into along the way that produced cool misaligned versions of the spirals.


[Link to Plotterfest Recap](https://medium.com/@bre/bantam-tools-plotterfest-20d3250a06fe?ref=gorillasun.de) | [Link to Amy's Newsletter](https://substack.com/home/post/p-147269390?ref=gorillasun.de)
## Web3 News
### Deca Collector Pages
Deca rolled out a big new feature a couple of days ago, introducing collector pages that now let you aggregate your complete collection in one place, even if it spans multiple wallets on different blockchains/networks - you can read more about it in their announcement post:
[](https://x.com/0xDecaArt/status/1819156819308138587?ref=gorillasun.de)
[Link to Tweet](https://x.com/0xDecaArt/status/1819156819308138587?ref=gorillasun.de)
If you're not familiar with Deca, in a nutshell it's basically a Web3 gallery tool that lets you view and display your NFT collection, and arrange custom shareable boards while you're at it. There's a lot more to it other than that, such as social features, to connect with other collectors, heart their boards and tokens, or stay up-to-date with the artists you admire, and so on. From what I've seen I believe that it's currently the best tool for collection management and presentation purposes - especially with this new functionality that'll set it apart from the competition.

[Link to Gorilla Sun Deca Page](https://deca.art/gorillasun/wallet?ref=gorillasun.de)
### Recounting HEN's Story
I've mentioned HEN on a few occasions, as it constitutes one of the early factors that played a big role in me getting more serious about creative coding and generative art. If you've never heard about the platform that took the Web3 art scene by storm in 2021, or have some plot-holes that need filling in; TwiX user Michael Nicolaou provides us with a super detailed recount of the marketplace's timeline - from its inception all the way to its reincarnation under a different identity:
[](https://x.com/nicolaoumike1/status/1686051219226214402?ref=gorillasun.de)
[Link to Thread](https://x.com/nicolaoumike1/status/1686051219226214402?ref=gorillasun.de)
While I was actually quite invested in the early days, from March till roughly September of 2021\. Then things just kept getting more and more chaotic, and my focus had also shifted towards fxhash that was concurrently emerging at the time. Fast forwarding to the beginning of 2022, I'd completely lost touch with what was going on in the scene - hence, Michael's thread was enormously insightful in that regard. Towards the end of the thread you'll also find a link to a proper long-form piece of writing that recounts this in even more detail.
### dialog() Asia
To cap off the Web3 section, I also want to briefly write about dialog() Asia, a genart exhibition spanning 4 of the major cities in East Asia, and bringing together 40 artists from among them to present their generative/code artworks. We're bound to see much more of it in the coming days, but you can read up about it on the official page - maybe you somehow end up finding yourself in one of these locations during the scheduled times:
[dialog() - Asian Generative Art Exhibition 2024Asian Generative Art Exhibition 2024dialog() - Asian Generative Art Exhibition 2024](https://dialog-asia.com/?ref=gorillasun.de)
## Tech and Web Dev
### 2024 Stack Overflow Developer Survey
[Last week](https://www.gorillasun.de/blog/gorilla-newsletter-66/) we had a look at the results for the global JavaScript survey, The State of JS 2023, which revealed an overall shift towards the negative across the entire JS eco-system. This week Stack Overflow came out with the results for its yearly developer survey, that provides a more complete picture of what's happening in the programming world at large:
[2024 Stack Overflow Developer SurveyIn May 2024, over 65,000 developers responded to our annual survey about coding, the technologies and tools they use and want to learn, AI, and developer experience at work. Check out the results and see what’s new for Stack Overflow users.](https://survey.stackoverflow.co/2024?ref=gorillasun.de)
Here's a link to
If you don't have the time to go through the aggregated numbers you can also simply check out the complimentary blog-post that's been published as a follow up highlighting the most important things. To quickly TLDR it, probably to no one's surprise, JavaScript is still the most used language today (62% vs 63% last year), with Python as a close second (51% vs 49% last year). Visual Studio Code is also currently still dominating as the most used IDE (74% same as last year). Maybe the biggest shift in numbers has been with regard to the adoption of AI tools:
> 62% professional developers are using AI tools this year compared to 44% last year. 76% of all respondents are currently using or planning to use AI tools.
If you're curious about the survey and some of the criticism that it received, indicative of how well/poorly it's structured, you can view a thread about it here:
[The 2024 Developer SurveyJuly 24, 2024 Update: The 2024 Dev Survey results are now live! We want to thank everyone again for their participation and cannot wait to see you next year. Update: Due to the holiday and other f…Meta Stack OverflowErin Asks](https://meta.stackoverflow.com/questions/430298/the-2024-developer-survey?ref=gorillasun.de)
### Your Private Github Repos are not as Private as You think
In this week's episode of tech scandals we've got news from none other than Github. A recent blog post from Truffle Security highlights a critical vulnerability in GitHub's handling of deleted and private repository data. Apparently, data from deleted forks and repositories, as well as that of private repos, can still be publicly accessed if the commit hash is known. They call this vulenrability Cross Fork Object Reference (CFOR); and sensitive data being retrievable in that manner makes for a huge security risk for organizations:
[Anyone can Access Deleted and Private Repository Data on GitHub ◆ Truffle Security Co.You can access data from deleted forks, deleted repositories and even private repositories on GitHub. And it is available forever. This is known by GitHub, and intentionally designed that way.](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github?ref=gorillasun.de)
In essence it's possible to access three types of commits that shouldn't actually be accessible:
- **Deleted Fork Data**: Even after deleting a fork, committed data can still be accessed via the original repository.
- **Deleted Repo Data**: Data committed to a repository after it has been forked remains accessible even if the original repository is deleted.
- **Private Repo Data**: When a private repository is made public, any committed data from internal forks during the private phase becomes accessible through the public repository.
And this simply via their commit hashes, which turns out to not be that hard to brute force - here's a recap video of the above article that demonstrates this:
Somehow it seems that this issue is not actually new, or unbeknown to Github - according to this Hacker News thread it seems that they are fully aware of the issue:
[](https://news.ycombinator.com/item?id=41060102&ref=gorillasun.de)
[Link to Hacker News Item](https://news.ycombinator.com/item?id=41060102&ref=gorillasun.de)
### Scaling One Million Checkboxes to 650M
A few weeks ago you might've caught wind of quite a peculiar website which allows users to concurrently check and uncheck a whopping 1 million checkboxes that are updated in real-time for every visitor of the page. I did play around a bit with it at the time, and it was kind of absolute madness, since I expected the page to quiet down a bit after scrolling to a random section, but that wasn't the case.
If you've wondered how a page like that works from a technical point of view, you're in for a treat this week - the dev behind it reveals how it's done and also shows us how to scale to a much larger number of concurrent checkboxes:
[Scaling One Million Checkboxes to 650,000,000 checksDealing with unexpected popularityeieio.gamesitseieio](https://eieio.games/essays/scaling-one-million-checkboxes/?ref=gorillasun.de)
### Other Cool Tech Things:
1. [Node.js adds experimental support for TypeScript](https://github.com/nodejs/node/pull/53725?ref=gorillasun.de): a github PR from the official Node.js repo reveals that an experimental flag makes it possible to execute TypeScript files, such that Node automatically transpiles them into JS.
2. [Garbage Collection and Closures](https://jakearchibald.com/2024/garbage-collection-and-closures/?ref=gorillasun.de): Jake Archibald wrote an interesting piece on how JS garbage collection doesn't actually work the way that you'd think when it comes to closures, pointing out a specific scenario he ran into that causes a memory leak.
3. Ksenia Kondrashova made a [quirky Rube Goldberg HTML form](https://x.com/uuuuuulala/status/1818958558420955561?ref=gorillasun.de), that you need to solve before unlocking the submit button.
## Music for Coding
In this week's YouTube binge listen the most noteworthy album that I came across was by Music For Animal Cafés by Nobonoko - might not be everyone's cup of tea but it was a nice change of pace with its video-game-y sounds:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 66Generative Anesthetics - Algorithmic Art as a Subset of Generative Art - Le Random Genart Timeline entering the 2010s - Simone Conradi’s Complex Polynomial Roots - Agoston Nagy’s Procedural Drawings - How not to use Box-Shadows - Rodeo: 1 Week In - Demystifying Cookies - State of JS 2023 - LLaMA 3.1Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-66)
*And backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 66
URL: https://www.gorillasun.de/blog/gorilla-newsletter-66/
Last updated: 2024-08-15T07:59:38.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 66th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
---
## All the Generative Things
### Generative Anesthetics: A Eulogy for Generative Art
One most important recent piece of writing, *that I'm quite late to cover*, is Kevin Echerick's thought-provoking critique piece titled Generative Anesthetics. In it he eloquently points out the shortcomings of current generative art in the context of blockchain tech and the economic market that's emerged around the art-form in recent years:
[Generative AnestheticsA eulogy for generative artDuckrabbitKevin Esherick](https://kevinesherick.substack.com/p/generative-anesthetics?r=9bnfh&utm%5Fcampaign=post&utm%5Fmedium=web&triedRedirect=true#footnote-1-143057406)
Usually I'd put this one in the Web3 section of the newsletter, but I believe that it'll be an important read for many years to come. Esherick explicitly states his main point of critique: the current NFT market and the mass-production/consumer culture surrounding it set a detrimental precedent, generally making for a breeding ground that spawns weak and uninteresting works. The root of this problem can be traced back to how generative art is inherently financialized on the blockchain - maybe we've grossly over-glorified digital ownership in this setting. Just because generative art can exist under this tokenized form, doesn't mean that it always needs to do so.
Here's one point that I'd like to offer my thoughts on, not to refute it but to provide context:
> Usually this involves something about the “dynamic interplay between order and chaos” or “the emergence of complexity from simple algorithmic rules.” The works are algorithm-first. Meaning, the real human impact of the artwork, is with frustrating frequency only an afterthought. In place of meaning come technical explainers that fill the void where concept should be.
The reason for generative art being primarily algorithm-first, in lieu of trying to explore interesting concepts, is that generative art simply is inherently algorithm-first. Artists that engage with the art-form are mainly driven by exploratory desires. In essence, a different Modus Operandi. A good source to back up this claim is an article by Amy Goodchild from a few months ago, where many generative artists chime in with their raison d'être:
[How does it feel to make generative art? — Amy GoodchildI asked other generative artists how the process feels to themAmy GoodchildAmy Goodchild](https://www.amygoodchild.com/blog/how-does-it-feel-to-make-generative-art?ref=gorillasun.de)
An important aspect that plays into this are also the affordances that code as a medium, as well as the modern tools used for making generative art create. It also plays a big factor in the resulting aesthetics, aggravating this feeling of sameness. These two factors might not be a good recipe for making innovative, novel, and impactful works.
But then again, what actually is *the real human impact of an artwork*? If you tell me... maybe I can work that into my next piece.
There were many responses to Esherick's article, all of them worth reading and taking in - the most important one of them was however from Maxwell Cohen, titled "Leave Generative Artists Out of It". The text makes a very important point that Esherick's lengthy analysis seemingly leaves out: viewing all of these issues from the artists' vantage point, most of which are simply lumped together as a large body of uninteresting work:
[M○C△ Confessional: Leave Generative Artists Out of ItIn so many words…The Museum of Crypto ArtMaxwell Cohen](https://museumofcrypto.substack.com/p/mc-confessional-leave-generative?utm%5Fsource=post-email-title&publication%5Fid=1612477&post%5Fid=146902439&utm%5Fcampaign=email-post-title&isFreemail=true&r=10rchl&triedRedirect=true&utm%5Fmedium=email)
Maxwell makes a few points that really hit home:
> When we peruse Artblocks or Objkt or Fxhash and look over the generative work there, we must remember that we’re looking first-and-foremost at experimentation, at uncertainty. We are looking at works in progress. We are looking at people fooling around with a new medium, a new mechanism, the resultant mix of new paint.
Sure, there is a lot of trash out there, to be very blunt about it. Only out there for a quick buck. Sure, maybe of a lot of my works from the early HEN days, are by today's standards also considered trash, but it's important to keep in mind that these works don't really claim to be art, as much as they've been ongoing explorations of the medium, the underlying tech, and as a means to document my personal journey.
I think it's a bit unfair, even a bit snobbish to imply this kind of grouping statement. I'll be honest, it hits a little bit of a nerve. At this point I've talked to dozens of the generative artists currently active in the space, that come from all sorts of backgrounds, and ranging from all sorts skill levels. The common denominator is that they all have interesting stories to tell about their works, and are deeply involved with their practice, pouring endless amounts of thought and passiong into their works:
> To peruse generative art projects individually is to encounter a gargantuan array of aesthetics, moods, styles, influences, and themes, let alone coding practices. This is not an assembly line run by automatons (some of them, maybe); these are real artists who have approached a new medium with exploration their primary purpose.
Many of them do not receive the recognition that they deserve. But as any other niche, generative art has also become hyper competitive. Of course, the market will not prosper on passion alone. This is to say that even if a lot of the ideas are rehashed, it doesn't mean that this collective body of work hasn't contributed anything, or doesn't have any value.
One other notable response to Esherick were thoughts by Linda Dounia, in which she formulates her own thoughts much better than I can. She describes the relationship between gen art and the market as an "arranged marriage":
[003My thoughts on Kevin Esherick’s essay “Generative Anesthetics”.thewyrmLinda Dounia](https://lindadounia.substack.com/p/003)
Esherick's essay is a refreshing take, especially when compared to some of the of the other critiques that I've read, often not amounting to much more than loose bundles of words, that leave you dizzied and confused after taking them in. When you write a critique, I think you owe it to at least be eloquent and make it count. Critique needs to breed discourse, and Esherick did it masterfully.
### Algorithmic Art as a Subset of Generative Art
On a related - algorithm-first - note, Monokai wrote a statement addressing the current terminological problems surrounding the label "Generative Art" and its conflation with AI Art these days:
[Algorithmic Art as a subset of Generative ArtHow art driven by code differs from AI-assisted arthomeMonokai](https://monokai.com/articles/algorithmic-art-as-a-subset-of-generative-art?ref=gorillasun.de)
I had the chance of chatting with Monokai a bit during the genart summit earlier this month, and we actually talked exactly about this issue, which makes reading his words so much more interesting. Maybe I can offer my own thoughts - unsurprisingly I've also been thinking about this quite a bit.
I fully stand behind that it is semantically correct to classify AI *generated* art as generative art, primarily due to how these models inherently function - be it image generators or LLMs. You might have noticed this yourself, feeding in the same prompt twice will usually return outputs that adhere to what you asked for in your prompt, but also present variations. In other words: same prompt /= same output. This is because the process by which images and text are sampled involves randomness.
Besides the points that Monokai already stated in how the process between classic generative art and AI art is vastly different, creating the generator vs. prompting/sampling from the generator, I would also argue that there's a big difference to machine learning models from an algorithmic point of view. They are a special category of learning algorithms, that distinguish themself by also requiring storage to function. Classic generative art relies on self-sufficient hand crafted generators on the other hand. When you train a model, it abstracts numeric internal representations that essentially capture the ideas presented in the training data. These learned weights need to be stored separately, and are necessary for the models to really do much at all.
I've also recently thought about the defining qualities of generative art, similarly to how Monokai approaches it, trying to pin point the common denominators to generative works, and whether or not this investigation could lead me to a better term for it. I kept finding myself coming back to the notion of "Emergence" as one of those defining qualities, as it encapsulates and implies a number of the aspects we usually associate with a generative artworks:
- Emergence implies a system. Emergent behavior can only become apparent when a number of rules interact with each other. Several rules in combination are a system.
- Emergent behavior in turn is usually labeled as "something more than the sum of its parts", and this is generally what artists strive to do in generative art. A good generative system should also present this property.
- To some extent emergence also implies randomness. Emergent behavior is usually unpredictable and surprising, which I feel is also an important part of generative art.
While emergence is a phenomenon that many generators strive to emulate, it doesn't capture all of the dimensions of the artform. But maybe I'm also completely off with this. I'd love to hear your thoughts on the matter! I think "Algorithmic Art" is a good placeholder in face of AI art to lessen confusion and miscommunication, since it implies a difference in the process. It might not be the ideal term to capture the entire essence of artform however - you could make an equal argument for something like "Procedural Art" I think.
I still tend to answer with "I do creative coding" whenever I meet someone that's not in the know of all of this. Anyway, these are my 2 cents, I'll report back in when I've thought about it a bit more. Thanks for sharing your thoughts Monokai. I also couldn't stop admiring the beautiful website!
### Le Random Generative Timeline - Entering the 2010s & Interview with John Maeda
Le Random's timeline is now almost caught up with the present day, this Monday (the day this newsletter comes out) will mark the addition of chapter 9 that recounts the eventful 2010s, in which not only tools like P5JS entered the scene, but also set the technological, blockchain based precendents that catapulted generative art to new levels of popularity in the 2020s:
[](https://x.com/lerandomart/status/1816388871694774610?ref=gorillasun.de)
[Link to Tweet](https://x.com/lerandomart/status/1816388871694774610?ref=gorillasun.de)
On the Editorial side, Monk's sat down with one of the current leading voices at the intersection of design and AI, none other than John Maeda. Currently the VP of Design at Microsoft, John Maeda was a research professor at the famous MIT Media Lab that gave birth to Processing:
[John Maeda on Computational EvolutionJohn Maeda discusses his multifaceted identity as a technologist, artist and designer with Peter Bauman (Monk Antony). Maeda emphasizes the importance of a multidisciplinary approach to innovation and creativity, while reflecting on the transforming needs of artists in the age of AI.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/john-maeda-on-computational-evolution?ref=gorillasun.de)
In the interview it becomes apparent that Maeda embraces AI powered creativity with open arms, especially as an augmentation to human creativity rather than a replacement. His prediction is that experts in their fields will become even better, while novices will have the chance to create work that they might not have been able to achieve in their lifetime. One point that he stresses however, is the importance of understanding the capabilities and limitations of current AI - and that artists will need to become extremely efficient in their unique styles to be able to compete in this new fast paced landscape:
> Visual artists and writers will need to get much faster at delivering their craft in this new age of computational creativity. We’ll all have to learn to use our seconds as carefully as we manage our days and weeks.
I am definitely feeling this on a daily basis; AI's dramatically changed the expectations for speed and variety in art and content creation - if social media hasn't already imposed unrealistic paces, AI's just raised the bar another notch. I think this is a good point to re-share a talk that Maeda gave earlier this year, titled "Design against AI" in which he explains how designers need to adapt with the increasing influence of AI on design tools:
Besides this - not to flex (absolutely a flex) - Maeda follows me on TwiX for some reason. Please don't tell him. He might just cut me off the list to turn that Following count into a nice round 500 😂

### Complex Roots of Polynomials as Generative Art
Simone Conradi has been on an absolute tour-de-force of generative art in the past couple of weeks. You might remember [issue 61 of the newsletter](https://www.gorillasun.de/blog/gorilla-newsletter-61/) in which I shared Simone's implementation of Particle Lenia - a mesmerizing modern particle based approach to Conway's Game of Life. In the meantime Simone's explored some other mathematical notions for art making purposes, one of them being the evaluation of polynomials and their complex roots - have a look for yourself at the following beautiful shapes:


[Link to Tweet #1](https://x.com/S%5FConradi/status/1815035748623462639?ref=gorillasun.de) | [Link to Tweet #2](https://x.com/S%5FConradi/status/1815347662310273444?ref=gorillasun.de) | You should also check out Simone Conradi's Twitter profile for more beautiful variations.
Over the weekend I challenged myself and tried to figure out how to actually visualize these polynomials the way that Simone describes. To that end we need to unpack a few things, in particular what complex roots of polynomials are. Maybe there's some inaccuracies, so correct me if I'm off - not a mathematician by any means.
A polynomial is nothing more than an equation containing variables that are raised to different powers and multiplied by coefficients (some numbers basically). For example, one that might be familiar to you from your school days, is: `x^2 + 2x + 1 = 0`. The root of a polynomial are then simply the values of `x` for which the polynomial equals zero. For example the root of `x^2 + 2x + 1 = 0` would be `x = -1`.
Some polynomials turn out to be problematic however and don't end up having a proper root; take `x^2 + 1 = 0` for example; simply moving one term to the other side we obtain `x^2 = - 1` which is not something that has a solution. The square of a number can never be negative. But, if we were to evaluate this polynomial as a complex number we could say that i and -i are two solutions for it - essentially the complex roots thereof.
I'm not going to go over complex numbers here, but if you want a refresher on and have 20 minutes to spare, I'd recommend this video by Veritasum that is quite an enjoyable watch:
The polynomials chosen by Simone always end up being complex the way that they're structured with the deliberate t1 and t2 coefficients. These two *variables* are also important in that they are the handles by which the resulting swirly shape emerges. In the context of complex numbers, S1 stands for the unit circle in the complex plane, meaning that we're simply moving t1 and t2 around it, varying their values and evaluating the polynomial for each, then marking the result on the canvas.
Naturally, I couldn't resist attempting these recreation of these patterns, especially since Simone provides all that is necessary. I picked a particular variation that I thought looked cute (below), and while I didn't manage to actually get it right, it seems that the code that I threw together in about an hour is at least doing *something*, there seems to be some similarity at least:


[Link to Tweet](https://x.com/S%5FConradi/status/1816376539103068496?ref=gorillasun.de)
I will definitely have to revisit the idea when I have more time and try and exactly reproduce Simone's creation.
### Time-shifting Geometries by Agoston Nagy
Another artist I had a lovely chat with at the summit was Agoston Nagy. He also recently published an article titled Time-Shifting Geometries, in which he gives us insight into the inspirations and the process behind his generative series titled Procedural Drawings:


[Link to Tweet #1](https://x.com/%5Fstc/status/1815806897724780585?ref=gorillasun.de) | [Link to Tweet #2](https://x.com/%5Fstc/status/1816808446701797491?ref=gorillasun.de) | I also had the chance of seeing one of the works in person at the Expanded gallery, I did unfortunately not snap a pic.
Agoston's work is deeply influenced by the ritualistic procedural practices of old, such as the ancient Indian Kolam, where flower is used to draw symmetric patterns for ornamental and ceremonial purposes, as well as the ancient Chinese divination text referred to as I-Ching "The Book of Changes" where random arrangements of yarrow sticks are used to make predictions and advice decisions.
He also mentions Aristid Lindemeyer's grammatical systems (L-systems) that were introduced in the famous book "The Algorithmic Beauty of Plants" as a source of inspiration, and proceeds to provide a break-down of the system sbehind his plotter art pieces, as well as some thoughts on the temporal aspect of them.
### David Gerrells on How Not to Use Box Shadows
Following up on his article from last week, in which David Gerrells writes about simulating millions of particles on the CPU with vanilla JS, he's now back with another experiment in which he tries to push things to the limit. This time he explores Box Shadows, and in particular, on "how not to use them":
> I want to share some of the worst possible things one can do with box shadows all on a single div. Things which shouldn't work at all yet somehow they do.
So yeah, he basically ends up making an entire ray-tracer with box shadows, the writing is hilarious and engaging, and you'll learn a lot from it - check it:
[How not to use box shadowsSo you think you know box shadows huh? I bet you didn’t know they could do this.TheRealDavid](https://dgerrells.com/blog/how-not-to-use-box-shadows?ref=gorillasun.de)
### Other Cool Generative Things
1. Earlier this year PyCon 2024 took place over in the US in Pittsburg, Pennsylvania. And just recently a complete playlist of talks was released for it - [you can watch it here](https://www.youtube.com/playlist?list=PL2Uw4%5FHvXqvYhjub9bw4uDAmNtprgAvlJ&ref=gorillasun.de). I learned about it through [a blog post from Jörg Kantel](https://kantel.github.io/posts/2024072701%5Fpy5%5Fpyscript/?ref=gorillasun.de) in which he shares some of the highlights (post's in german, but I think you'll figure out how to translate it). Most notably one of the talks is about the python version of P5JS.
2. I don't know how she does it, but Amelia Wattenberger shares [yet another cool tool](https://x.com/Wattenberger/status/1816567815136247838?ref=gorillasun.de) of hers, one which lets you assemble SVGs, simply by dragging and dropping them onto a canvas, which then automatically generates the corresponding SVG code in a side panel.
3. [Mathias Isaksen shared a demo for a command line tool](https://x.com/st4yhome%5Fart/status/1816528614923637145?ref=gorillasun.de) that he's been working on, which assists you in generating animations/videos of your code art directly from a URL.


[Link to Mathias' Tweet](https://x.com/st4yhome%5Fart/status/1816528614923637145?ref=gorillasun.de) | [Link to Amelia's Tweet](https://x.com/Wattenberger/status/1816567815136247838?ref=gorillasun.de)
## Web3 News
### Riding the Bull: 1 Week In
.*..I'm ashamed to say, it only just clicked why it's called Rodeo.*
Rodeo's been a whole bunch of fun up till now, and it's been an amazing way to stock up my collection with a whole bunch of affordable works from friends and creators that I admire. After this initial honeymoon phase it's however also important to take a step back and see how Rodeo fits into the larger picture of the the current market - and the overall sentiment's been a bit mixed:

[Link to Tweet](https://x.com/nftaverse/status/1816752653336215621?ref=gorillasun.de)
I'd say that Jamie Gourlay is absolutely right with his points, pushing out this many works at such a low price point, could heavily devalue an artist's body of work. I think this entirely depends on how you view Rodeo as platform however, if you actually consider it to be a marketplace, or just a social media platform enhanced with minting capabilities.
We've been advocating for a slower paced market with more deliberate and meaningful releases - Rodeo completely subverts this however, with its overarching mechanics incentivizing a fast pace and big quantities. It feel that this might not really be sustainable in the long run and could be a recipe for burnout. Maybe these minting mechanics will need to see some revision to make them more sustainable.
### Bruce's Artistic Journey
In a long-form tweet Bruce shares the story of his artistic journey, highlighting an important inflection point in his career, and a crucial change in mindset that's allowed him to persevere in the space. It's un-intuitive, and it's super difficult, especially with the pressures that the space can exert on artists at times, but Bruce advises to let go of what "could be" and focus on creating - the process is the only thing that we can actively control after all:
[](https://x.com/StudioYorktown/status/1816805765136502821?ref=gorillasun.de)
[Link to Tweet](https://x.com/StudioYorktown/status/1816805765136502821?ref=gorillasun.de)
Maybe this is the exact reason why Bruce's methodology is so sound, and I've really admired how he's been able to be so consistent about it over the past years.
> As artists in the NFT space, we face unique pressures. We are driven by a desire for success, but the metrics we use to measure it – mint numbers, revenue, floor prices – they can be cold and unforgiving. It is easy to get caught up in the narratives and expectations of others. But we must resist.
It's very easy to beat yourself up when your work doesn't meet the market's criteria for it being considered a success, but it's really important to remind yourself of the reasons why you're creating and making things. The joy of making and learning things has always been my own inherent driving factor, sometimes it's easy to lose sight of it however. Back in 2021 when I minted my very first few code experiments on HEN, and later on fxhash, I had no clue on how deeply impactful this would be on what I'd be doing in the following years. And what a turbulent journey it's been - with many emotional challenges. But I'm grateful that I'm still at it
### The Curator Economy by Tom Beck
Tom Beck wrote an interesting piece about publishing in the digital age, particularly about the importance of the curator in it... and I feel oddly addressed by it. In the essay he tries to redefine the role of publishers in a modern setting, and how they can more accurately perform a curatorial role:
[](https://warpcast.com/tombeck.eth/0x598c3cec?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/tombeck.eth/0x598c3cec?ref=gorillasun.de)
And this newsletter is in essence a form of curation; the original motivation for the newsletter was to collect and highlight all the worthwhile things that I can scour every week so that you don't have to. While it's not the primary intent, in a way this is like telling you what is important and what isn't. Tom explains that in the current digital landscape the curatorial role has to a large extent been overtaken by the algorithm that governs most platforms:
> \[...\] this is how all social media feeds and recommendation algorithms work. They gather information on what you consume and then feed you more based on that initial input. They quite literally cannot do anything else. They are not capable of introducing true novelty.
Tom advocates for more human friendly algorithms, and systems that can enable a symbiotic relationship between creators, curators, and the platforms. He provides an example of such a system in the Web3 setting towards the end of the piece. He also mentions Timothy Greene's "Curation Revolution" as an inspiration, which I'll definitely have to check out.
## Tech and Web Dev
To kick off this section this time, I'd like to shout out one of my favorite newsletters out there (not that they need it but anyway): The Collective. It's one of my main sources for putting together this section of the Gorilla Newsletter every week since they always share bangers. Their round-up this week was really chock-full of awesome links, so recommend checking it out:
[The Collective #857](https://mailchi.mp/codrops/collective857-ylqp?ref=gorillasun.de)
### Demystifying Cookies and Tokens
The negative connotations that we associate with browser cookies stems from the fact that over the past decade the tech has been heavily exploited for data collection, tracking, and advertising purposes. In particular third-party cookies that track your activity across different web pages you visit, even after you've left the domain that the tracker originated from.
In recent years this debacle has led to what is today referred to as the "Cookie Apocalypse", leading to major browsers disallowing and phasing out certain types of unnecessary cookies, primarily those that have been leveraged by advertiser for dubious tracking activity, in light of tighter privacy regulations. While Safari and FireFox have already disabled third party cookies, Google initially had the intent of doing so this year but seemingly postponed it for early January 2025 - an article on the topic that speculates some of the reasons behind this delay:
[Inside Google’s latest move to postpone the cookie apocalypseDespite Google’s (most recent) assurances that it would stick to its (newest) game plan, there has been a lot going on as of late.DigidaySeb Joseph](https://digiday.com/marketing/breaking-it-down-googles-latest-move-to-postpone-the-cookie-apocalypse/?ref=gorillasun.de)
To get to the main point of this segment however: these small pieces of data that browsers store on your machine are not always malicious in intent, in a lot of cases they are even necessary to communicate information with the server that you're connecting to and provide a better user experience (first-party cookies). For instance, many web apps use cookies to remember that you're logged in.
Tommi Hovi provides us with an insightful article in which he gives us a run-down of the different types of cookies that exist (including session tokens and JSON Web tokens), how they work, and what legitimate problems that they solve:
[Demystifying cookies and tokens – Tommi Hovi | The Security blogTommi Hovi | The Security blogTommi Hovi](https://tommihovi.com/2024/05/demystifying-cookies-and-tokens/?ref=gorillasun.de)
### The State of JavaScript 2023 Results
A bit late to the party, but the state of JS 2023 came out a couple of weeks ago (after a significant delay), and the turnaround's been quite surprising. The aggregated statistics show that the general sentiment towards the current JavaScript eco-system has had an observable dip into the negative - in particularly the *libraries* section of the global survey reflects this:
[State of JavaScript 2023The 2023 edition of the annual survey about the latest trends in the JavaScript ecosystem.Google Chrome– Sacha Greif](https://2023.stateofjs.com/en-US?ref=gorillasun.de)
YouTuber Theo Browne tries to analyse these results and provides a few theories on why this might be the case in a video of his - he speculates that the negative sentiment is most likely due to most devs currently having to work with frameworks that they have not chosen for themselves:
Could be, but I'm not sure if I entirely agree. As some of the comments point out, it might just be the increasing complexity of the individual frameworks. Another reason could be, that it's just the natural entropy of things, that when you use something long you enough you eventually start hating it 🤷♂️

It's definitely going to be interesting to see which frameworks will end up coming out on top and rise to popularity in 2025\. It's likely still a sage bet to hold on to your React and Next chops in the meantime.
### CSS One-Liners for Every Project
Alvaro Montoro shares 10 of his personal favorite CSS one liners that are quite useful to add to your CSS vocabulary. They're not like ground-breaking things, more situational than anything else, but still might not be things that you'd have naturally thought of:
[CSS One-Liners to Improve (Almost) Every ProjectA collection of ten simple one-line CSS solutions to add little improvements to any web page. :: Blog post at Alvaro Montoro’s Personal Website.Alvaro Montoro (alvaromontorogmail.com)](https://alvaromontoro.com/blog/68055/ten-css-one-liners-for-almost-every-project?ref=gorillasun.de)
Also highly recommend checking out Alvaro's other posts, lots of CSS goodies in there!
Geoff Graham from CSS-Tricks piggybacked onto Alvaro's post, and shares some additional one-liners of his own:
[Alvaro Montoro: CSS One-Liners To Improve (Almost) Every Project | CSS-TricksThese sorts of roundups always get me. My wife will flip through Zillow photos of the insides of homes for hours because she likes seeing how different peopleCSS-TricksGeoff Graham](https://css-tricks.com/alvaro-montoro-css-one-liners-to-improve-almost-every-project/?ref=gorillasun.de)
### Other Cool Tech Things:
And to close off this section, here's some other cool web & tech related thingies that might interest you:
1. [Hamburg HTML 5th yearly Meetup](https://hhtml.de/events/2024-11-05-fifth-meetup/?ref=gorillasun.de): If you're somewhere near Hamburg in Germany later in November of this year, you might want to check out the HTML meetup that's held there.
2. [Chris McCully's shares the story behind the making of](https://medium.com/@chriswmccully/snippp-io-or-how-i-made-my-organization-tool-into-a-service-6465a73aca4d?ref=gorillasun.de) Snippp.io, the tool that he's been chipping away at over the past months and also made accessible as a service for the public to contribute their own code snippets. It's been really inspiring to follow along on the journey.
## AI Corner
### Meta releases LLaMA3.1 405B
With the release of LLaMA 3.1, Meta is giving OpenAI, and the other closed source LLMs currently out there, a run for their money. Not only is the series of new LLaMA models on par, if not superior, in ability with the competition (according to the benchmarks), but they are also open source! Zuckerberg wrote a lengthy official statement for this occasion, explaining why open sourcing these types of models is important:
[Open Source AI Is the Path Forward | MetaMark Zuckerberg outlines why he believes open source AI is good for developers, Meta and the world.MetaMark Zuckerberg, Founder and CEO](https://about.fb.com/news/2024/07/open-source-ai-is-the-path-forward/?ref=gorillasun.de)
TLDR: Zuckerberg advocates for open source AI because it'll allow organizations to tailor models to their needs, let them stay in control, and protect their customers' data by avoiding dependency on third parties for this service. The bottom-line of it is that he sees no advantage to closing off access to the tech, which is not only beneficial to developers, but also to Meta and its partners. If you're curious about the models themselves, or want to take them for a test run, you can do so here:
[Llama 3.1The open source AI model you can fine-tune, distill and deploy anywhere. Our latest models are available in 8B, 70B, and 405B variants.Meta Llama](https://llama.meta.com/?ref=gorillasun.de)
Over the past couple of days I've actually been playing around more and more with Claude Sonnet 3.5, and it's quickly become my go-to model for programming purposes - I'm incredibly impressed with its ability in that regard, as it just beats Gippity 4o and Gemini by miles. It's going to be interesting to see if Llama 3.1 can rival Claude in that regard, or if some fine-tuned variant will do the trick. I'm sure we'll see a whole slew of customized models in the coming weeks/months.
I've been playing with the thought of fine-tuning my own model towards that end - to aid me in my writing every week, especially with the Newsletter, where I could often need someone to help me brainstorm. I do think that I've got enough data at this point 😅
If you don't feel like reading the linked article you can also check out Fireship's humorous code report on the LLaMA King:
Besides this, among the tech billionaires, Zuckerberg currently strikes me as the most likeable character (in case he isn't actually a lizard-man). I would still love to see that cage fight with Elon at some point, but I doubt that it will ever happen.
### What LLMs actually See
Prompts aren't actually fed in as plain text into LLMs - the text is first processed such that individual words are converted into tokens, which are essentially hieroglyphs that the model can understand. In a recent tweet of his Andrej Karpathy likens this to representing a text as a string of emojis, where each emoji represents an individual word. For this purpose he's put together a little google colab, to give us an idea of *what* LLMs actually see:
[](https://x.com/karpathy/status/1816637781659254908?ref=gorillasun.de)
[Link to Tweet](https://x.com/karpathy/status/1816637781659254908?ref=gorillasun.de)
## Gorilla Updates
Here's some of the stuff I worked on this week - nothing outstanding, just some random ideas in search of something that I have in mind:

I also made these pixelized patterns as an offspring to the above idea - that kinda looked like organic, fungal thingies:

Not sure where this is going at this point, but I'm having fun. With all of this said, I'm heading off to my yearly trip to Tunisia tomorrow for a much needed vacation. There will definitely be another issue next week, alebit a little shorter. I might overall be a bit quieter over on social media, which is not to say that I'll continue to working on my projects while I'm there.
## Music for Coding
This week I thoroughly enjoyed listening to The Paper Kites - an indie folk band from Australia that had their big break back in 2011 with their EP *Woodland*, a short and sweet atmospheric collection of 6 tracks that really captures the essence of the genre with its gentle, melodic tunes and introspective lyrics:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 65Generative Architecture: Jacek’s Unbuilt - Mesh Neural Cellular Automata - Meta Morph Awards - Rodeo by Foundation - Known Origin Shuts Down - ARTXCODE Rebrand - CrowdStrike Disaster - Drag & Drop Website with mmm.page - Next Gen CSS Variables - Negotiating with AIGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-65)
*And backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 65
URL: https://www.gorillasun.de/blog/gorilla-newsletter-65/
Last updated: 2024-08-15T07:59:22.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 65th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Generative Architecture: Unbuilt by Jacek
Unbuilt is an iconic piece from the early days of fxhash by Jacek Markusiewicz, who you might recognize from his more recent project [Barbarians](https://verse.works/exhibitions/barbarians?ref=gorillasun.de), that released back in February/March 2024 as a Verse Solos piece.
This past week we got a recount of the original inspirations behind the beautiful generative architectural project directly from Jacek himself, in form of a video space on TwiX hosted by Anaglyphic, who guides the conversation with a number of excellent questions:
[](https://x.com/anaglyph%5Fic/status/1814702808916021536?ref=gorillasun.de)
[Link to Tweet](https://x.com/anaglyph%5Fic/status/1814702808916021536?ref=gorillasun.de)
In the recount Jacek reveals that Unbuilt is a tribute to Palladian architecture, an architectural style that derives its name from [Andrea Palladio](https://en.wikipedia.org/wiki/Andrea%5FPalladio?ref=gorillasun.de), a classicist architect from the 16th century (1508–1580). He describes the architectural style as "very mathematically definable", with the Wikipedia section on the topic echoing this, stating that the main focus of this architectural style lies on symmetry and perspective "to emulate the grandeur of [classical](https://en.wikipedia.org/wiki/Classical%5Fantiquity?ref=gorillasun.de) buildings" of ancient Greece and ancient Rome.
Moreover, the project hails to the research of Gines and Stiny who studied the architectural rules that Palladio describes in his books as a form of architectural grammar - quite literally describing it as a generative approach to creating the structures:

[Link to Paper](https://www.andrew.cmu.edu/course/48-747/subFrames/readings/Stiny&Mitchell.thePalladianGrammar.pdf?ref=gorillasun.de)
In Unbuilt Jacek uses this concept of a generative grammar and applies it in the setting of French sacral architecture, to abstract and capture the architectural idea of a cathedral and then producing variations off of it. I recommend checking out the research that inspired Unbuilt, it's quite fascinating and might give you some ideas for your own generative artworks.
While there were a few hiccups with the VOD, I did enjoyed the format; being able to see the artworks while listening helps quite a bit. And apparently this is one of a first in a series of such "Welcome to my practice" style videos that Anaglyphic's planned - the second one's already out as well if you're curious:
[](https://x.com/anaglyph%5Fic/status/1815034085271585152?ref=gorillasun.de)
[Link to Tweet](https://x.com/anaglyph%5Fic/status/1815034085271585152?ref=gorillasun.de)
### Neural Mesh Cellular Automata + SIGGRAPH 2024
SIGGRAPH 2024 will be taking place from the 28th of July till the 1st of August, and considering that it's internationally the most prestigious computer graphics conference, there's bound to be more than a few interesting papers (which I'll be happy to share in future issues of the Newsletter) - you can find the full 2024 program, with links to each individual presentation here:
[SIGGRAPH 2024The Premier Conference & Exhibition on Computer Graphics & Interactive Techniques. 51 years of SIGGRAPH and join us in Denver or online starting 28 July.SIGGRAPH 2024](https://s2024.siggraph.org/?ref=gorillasun.de)
I learned about one of the interesting papers that's going to be presented by chance, through a Twitter thread from Ehsan Pajouheshgar, who's collaborated with Google Research on MeshNCA, short for Mesh Neural Cellular Automata: it's an approach for applying animated textures to 3D objects without requiring UV maps - here's a link to the thread where Ehsan elaborates on it:
[](https://x.com/Esychology/status/1813905494412492833?ref=gorillasun.de)
[Link to Tweet](https://x.com/Esychology/status/1813905494412492833?ref=gorillasun.de)
While quite a bit of the math involved eludes me (tweets 3, 4, and 5), the showcased results are simply stellar - hence very worth checking out the entire thread.
I've written about cellular automata on a few occasions for the Newsletter before; most recently we had a look at [Particle Lenia](https://www.gorillasun.de/blog/gorilla-newsletter-61/), a modern particle based approach to cellular automata. One type of cellular automata that I haven't tackled before however are NCAs, the neural variant. They're hybrid models that combine the grid-based structure and local interaction rules of cellular automata with the adaptive learning capabilities of neural networks - here you might remember that paper from a few years back with a self regenerating pixel lizard:
[](https://distill.pub/2020/growing-ca/?ref=gorillasun.de)
[Link to Paper/Demo](https://distill.pub/2020/growing-ca/?ref=gorillasun.de)
As far as I understand it, with an NCA each cell in the grid holds its own mini neural network that computes the next state based on the state of the neighbouring cells - in the context of NCAs we refer to this aggregated state as a cell's perception. A really good explainer video on the topic is by Data Garden:
I think at this point I might have to do a proper full-length article on cellular automata and all of the different variants that are out there.
### Meta Morph Awards
We've got two generative artists claim trophies in the Metamorph awards that were announced last week - and I have to say very well deserved! For one we've got Greweb winning the generative category with his plotted animation piece "L'Homme et la machine", and for another Frederik Vanhoutte winning the NFT category with his submission "Isoverse - Invisible Cities" - both stellar pieces:


[Link to Greweb's Tweet](https://x.com/greweb/status/1814170103379816844?ref=gorillasun.de) | [Link to Winterbload's Tweet](https://x.com/wblut/status/1812979614387695774?ref=gorillasun.de)
You can also check out the other winners over on the Meta Morph page:
[Winners | Meta Morph AwardMeta Morph Award](https://www.metamorph-award.com/winners?ref=gorillasun.de)
### Other Cool Genart Things
- [Peckham Digital](https://www.peckhamdigital.org/info/?ref=gorillasun.de) took place last week, a two day festival of creative computing, while I don't think that the session were recorded, we do get some insights from Amy Goodchild's most recent [Newsletter](https://amygoodchild.substack.com/p/generative-art-diary-limitations) where she also shares updates about her ongoing generative handwriting project.
- [An article on Hackaday shares algorithmic artwork by Prof. Halim Boutayeb ](https://hackaday.com/2024/07/17/making-art-with-maxwells-equations/?ref=gorillasun.de)who leverages Maxwell's equation in combination with a number of electromagnetic sources for the purpose of making colorful and fractal-esque plots.
## Web3 News
### Rodeo by Foundation
The Web3 news that made a buzz this week, was Foundation's launch of a brand new platform titled *Rodeo* \- a Web3 social media platform, that at first glance seems very similar to Zora with it's main mint feed, but with a different micro-minting dynamic that does give it an overall different vibe. Before getting my hands on an invite I found this explainer by UV quite insightful:


[Rodeo on Twix](https://x.com/rodeodotclub?ref=gorillasun.de) | [Link to Tweet](https://x.com/uvtourist/status/1806197653379666360?ref=gorillasun.de)
When I first read UV's post I had concerns about the 24 hour minting window, that it might make for a stressful experience, but so far it hasn't felt that way. Logging in with my ETH wallet it also immediately picked up my Farcaster profile, automatically connecting me with others that I'm already mutuals with over on FC:

Got a nice dopamine hit off of seeing those first few notifications roll in.
The apparent simplicity of it in its current state is quite refreshing - although there are a few subtle aspects to it that create an interesting dynamic, and that also make it a little addictive. The best way to describe it, is that it's basically a Web3 Instagram clone where media posts (PNG, JPG, GIF, MP4, and MOV are supported at this point) are NFTs that can be collected within a 24 hour window after they've been *posted*. When you mint something is it also shows that in the feed, if someone else then subsequently mints it after seeing that notification in their feed, you get a reward.
I'm calling it micro-minting, because minting/collecting has a minimal fee attached to it 0.0001 Base ETH (0.35 cents at the time of writing). The only drawback that I see at this point, is the retroactive FOMO (is there a term for that?) for when I see all of the future mints that I'm no longer able to collect. Overall super fun experience so far, excited to see how it progresses!
### Known Origin Shuts Down
At the same time that Foundation is launching a new platform, we bid farewell to another; Known Origin, one of the pioneering NFT platforms on ETH that took off back in 2018, and was later acquired by Ebay in June 2022, now made an official and conclusive announcement that it would be transitioning out of service in the coming weeks:
[](https://x.com/KnownOrigin%5Fio/status/1813576642058698830?ref=gorillasun.de)
[Link to Thread](https://x.com/KnownOrigin%5Fio/status/1813576642058698830?ref=gorillasun.de) | [Link to Article on NFT Now](https://nowmedia.infura-ipfs.io/ipfs/QmbQnaZwwEALeN5oEYddWB1kk3AownrmdtW7BYPKcHR9jx?ref=gorillasun.de)
This announcement is unsurprising, considering that Ebay had laid off 30% of their Web3 employees back in February 2024 - a short article about this can be read [here](https://www.tradingview.com/news/cryptobriefing:7e45ac61e094b:0-ebay-lays-off-30-of-web3-and-nft-staff-report/?ref=gorillasun.de). This now raises concerns about the permanence of the digital items that have been minted on the platform in the past 5 years. While the platform contracts are stored onchain, the actual files are in fact stored on IPFS, the popular decentralised storage system that is notoriously ephemeral - a tweet by Ella voicing her concerns made the rounds:

I assumed that it was common knowledge by now that IPFS is not a reliable storage solution, and that provenance is mostly decoupled from the actual media files for most NFTs. I remember that this was a big discussion back in 2021 - with IPFS, creators and collectors need to take care of pinning all of the files that matter to them manually. This then also led to services like Club NFT to pop-up, and later fxhash to introduce their ONCHFS (On Chain File System). If you need/want to back up your NFT collections you should look into Club NFT - I'm not sponsored, but it's the only tool I know of for this purpose:
[](https://www.clubnft.com/?ref=gorillasun.de)
This text banner on their landing page now also has KnownOrigin in big bold letters, not sure if it was like that before | [Link to Club NFT](https://www.clubnft.com/?ref=gorillasun.de)
You can however also pin your files on IPFS manually, by spinning up your own node if you want to do it yourself. Overall, it just feels a bit odd to read this in 2024 - but maybe it's another wake-up call to address this particular issue with the tech again:
[Does Ebay’s NFT marketplace KnownOrigin shutdown raise storage concerns?KnownOrigin has announced its imminent shutdown, sparking fresh debates about the reliability and longevity of NFT storage solutions.crypto.newsJulius Mutunkei](https://crypto.news/does-ebays-nft-marketplace-knownorigin-shutdown-raise-storage-concerns/?ref=gorillasun.de)
Things are already better than they used to be however, with many platforms, especially the ones geared towards generative art, providing the option to mint the code directly onchain, making the individual editions that are ultimately collected eternally reproducible. Naturally, only as long as the chain exists however.
### ARTXCODE Rebrand & Misunderstood Machines
ARTXCODE made the announcement that on the 29th of July they'll be launching a revamped website with a brand new identity, enhanced with new minting capabilities powered by highlight, in addition to a genesis project by the founder of Sofia Garcia. The announcement thread over on TwiX provides all of the necessary details:
[](https://x.com/artxcode%5Fio/status/1813243622323638503?ref=gorillasun.de)
[Link to Tweet](https://x.com/artxcode%5Fio/status/1813243622323638503?ref=gorillasun.de) | [Link to the accompanying press Release](https://www.artxcode.io/journal/artxcode-press-release-16-july-2024?ref=gorillasun.de)
The genesis project of this relaunch, titledMisunderstood Machines is an interactive, generative art piece that aims to highlight both the emotional experience that code-based artists undergo, as well as the beauty of web development's foundational technologies. The artwork renders two decks of playing cards that flip over to reveal two words side by side - evocative adjectives on one side, technical terms on the other - and the juxtaposition of the two is sufficient to tell a story:
[ARTXCODE | Misunderstood MachinesAs an art dealer and curator deeply rooted in the world of code, I am fascinated by the human side of technology — enchanted by the somewhat naïve realization that the technical touch points of our everyday life were, in fact, built by someone.Misunderstood Machines](https://www.artxcode.io/journal/misunderstood-machines?ref=gorillasun.de)
You can also check out the [TwiX space](https://x.com/i/spaces/1mnxeALDEoZxX?ref=gorillasun.de) that was held for the occasion.
Sofia's article really resonated with me; my personal journey has been somewhat similar when I look back on it. Albeit the other way around, I've somehow slowly found my way more and more into web development through generative art - discovering the tech as another means for creative expression.
In fact, in the past couple of weeks I've spent more time on programming and learning various web things compared to making generative art - and it's been really refreshing, it's felt a bit more purposeful overall and I wake up in the morning excited to learn something new.
## Tech & Web Dev
### The CrowdStrike Disaster
This past Friday (the 19th of July) things went south real quick when CrowdStrike rolled out an update to their Falcon software, an “endpoint detection and response” (EDR) software that monitors machines for nefarious activity, affecting [8.5 million windows machines](https://www.bbc.com/news/articles/cpe3zgznwjno?ref=gorillasun.de) around the world, and causing the biggest IT outage in history.
The faulty software caused machines that it is installed on to crash on boot with a blue screen of death, and subsequently rendering them inaccessible by leaving them stuck in a boot loop - naturally, this made many operations around the world to come to a grinding halt, including airports, hospitals, and banks:

[Link to Tweet](https://x.com/vxunderground/status/1814267016699576369?ref=gorillasun.de)
If you've never heard about CrowdStrike, it's basically a cybersecurity vendor that provides large corps with anti-hacking software (to a large extent fortune 500 companies) for windows machines. And because their software isn't just your regular run-of-the-mill McAfee anti-virus, it needs to sit in the critical path of the machine to safeguard it - this is what makes all of this such a big disaster: affected computers need to be booted up in safe mode so that the faulty driver can be removed manually, and most company devices don't allow this.
And that's pretty much the gist of it, Fireships code report covers the entire debacle in more detail if you want a quick and fun watch:
Luckily (sadly?), I'm a mac chad (and also work freelance on my own machine) so I am unaffected by this, meaning that the weekly newsletter can be delivered in a timely manner 😌.
*Also, I do not wish to trade places with the CrowdStrike employee that was responsible for this.*
### Drag and Drop Websites
I just learned about mmm.page - a website builder of a different kind, that lets you assemble your own custom and quirky webpages simply dragging and dropping elements, and that without requiring any programming knowledge at all:
[mmm.page — Your Corner of the InternetWebsites don’t have to be so cookie cutter. Make a website that feels uniquely you in under five minutes.mmm.page](https://mmm.page/?ref=gorillasun.de)
The tool's been in development for quite a while, and launched as a beta back in January 2024, and just yesterday launched it's 1.0 version - and it already has quite a buzzing community that've created many artful and quirky webpages that hail back to the early days of the internet - you can find the anonymous founder of the platform XH over on Twitter where they share a bit more about it:
[](https://x.com/xhfloz/status/1814990357932732612?ref=gorillasun.de)
[Link to Tweet](https://x.com/xhfloz/status/1814990357932732612?ref=gorillasun.de)
In an interview with TechCrunch earlier this year XH explains some of the motivations for building mmm.page:
> I grew up on an internet filled with personal websites and niche forums that existed, sometimes, for the benefit of three people who shared an interest,” XH told TechCrunch. “It was fun to explore, and I remember feeling like I wasn’t supposed to be privy to these various subcultures from the remoteness of my suburban childhood. To a kid that kind of freedom is exciting.
[mmm.page could make you enjoy the internet again | TechCrunchThe internet can be bad. But mmm.page might just be good. The platform is hard to explain, but it describes itself as “Tumblr x Animal Crossing x MiiTechCrunchAmanda Silberling](https://techcrunch.com/2024/01/25/mmm-page-could-make-you-enjoy-the-internet-again/?ref=gorillasun.de)
### Next Gen CSS Variables
CSS variables get a power-up with the @property rule that is now supported by all modern browsers, web.dev celebrates this with an article that provides a run-down of the possibiliteis:
[@property: Next-gen CSS variables now with universal browser support | Blog | web.devSemantic custom properties with @property just reached Baseline newly available.web.devX](https://web.dev/blog/at-property-baseline?ref=gorillasun.de)
So now you can basically create variables in the following manner, to also specify a variable type and a fallback value:
```
@property --myColor {
syntax: '';
inherits: false;
initial-value: hotpink;
}
```
What's cool about this? One cool use-case is that it's now possible to animate gradients with vanilla css which wasn't possible before:
> One of the neat applications of `@property` is the smooth animation of properties that were previously impossible to transition, like gradients, which are perceived as images by the browser. However, if you give variables syntactic meaning via `@property`, these can be used in a gradient statement.
Unfortunately the embeded codepen in the article seems to be broken, but I did however find this YouTube video by Frontend FYI that explains how to do it:
And this is now supported in all browsers!
## AI Corner
### AI Powered Semantic Grouping
I believe that the current advancements in generative AI can only come to full fruition if we build innovative and novel interfaces through which we can lay bare their capabilities in a useful and functional manner - we have these super powerful neural machines, but our main way of interacting with them is a simple chat box. Surely, there must be a better way? And this is exactly what Amelia Wattenberger is currently exploring with creative works.


[Link to First Tweet](https://x.com/Wattenberger/status/1813257271427932667?ref=gorillasun.de) | [Link to Second Tweet](https://x.com/Wattenberger/status/1814670849959456990?ref=gorillasun.de)
Her most recent tweets showcase an AI powered application that helps with labeling user aggregated bundles of notes/texts/ideas on an infinite by automatically generating a semantic label to the clusters, summarizes the overall content. I'm assuming that is done with an LLM, by feeding in the text, alongside a prompt to indicate what needs to be done. In another version, the tool can also automatically merge individual ideas to breed new cards that contain a text that tries to combine the ideas of the two original cards.
This is genius, because the interface here plays a crucial part in creating a new affordance. It's not only that the summarisation/merging process is streamlined, but it also creates a new way to view and analyze the data, basically asking *what's the main idea if I group these couple of notes together?* Seeing what the AI thinks and what label it generates is interesting, and can spark new ideas and/or perspectives - and I think that's what AI is currently all about: to act like a side-kick, a smart assistant, and a second brain. I'm hoping that Amelia will release this in one form or another at some point.
### Negotiating for a better deal with AI
On a related note, what if we used AI for negotiating purposes? I came across a tweet by George McGowan, where he shares the website of a mattress vendor on which you can haggle for the price of their products with an "AI" chatbot:

[Link to Tweet](https://x.com/GjMcGowan/status/1812965799940047035?ref=gorillasun.de)
I immediately had multiple questions, the first of which... *why?* Why let potential buyers negotiate for the price? And what's the point of using AI for this purpose?
While I have no idea what a good mattress costs these days, using this tool implies that the product is overpriced from the get-go - it seems that they're happy to sell the mattress at a lower price depending on how much time and effort the buyer is willing to invest in negotiating. That doesn't actually mean that you're getting a good deal though - in fact, the product might still be overpriced in the end. But psychologically, the fact that it is offering a deal might be enough reason for some customers to seal the deal and make the purchase. The tech that's behind this negotiating bot is called Nibble:
[Nibble - AI Negotiation Platform - B2B, DTC, MarketplacesAI negotiation for ecommerce and B2B sales, creating win-win deals for online retailers or B2B SaaS providers and their customersLogo new (1)](https://www.nibbletechnology.com/?ref=gorillasun.de)
I put AI between quotation marks earlier, because it seems that it's not really the kind of prompt-based LLM interface that we're familiar with today, but rather just relies on some hard coded logic, that will ultimately offer you the lowest possible price if you try enough times, as some of the replies under George's tweet suggest.
Maybe there's a little AI involved in the text generation part of it, but that also to a limited extent. Clearly it'd be too risky to allow for an AI to have control over choosing a price - since there's more than a few ways to break them. I guess it does makes sense to slap on *AI* as a trendy buzzword for branding purposes however, but I'd be curious to see a more intelligent AI based version of this. Idk, that's my 2 cents here.
### Suno & Udio Sued for Copyright Infringement
*Hold the front page! AI startup \[insert AI startup name here\] is being sued by \[insert other company name here\] for copyright infringement. Who would've guessed? (Spoiler: Everyone.)*
This piece of news is almost a month old by now, but somehow I only caught wind of it now - maybe because it's not really a new shtick - but the two generative AI music startups Suno and Udio are getting sued by more than a few record labels for copyright infringement:
> A group of record labels including the big three — Universal Music Group (UMG), Sony Music Entertainment, and Warner Records — are suing two of the top names in generative AI music making, alleging the companies violated their copyright “en masse.”
[Major record labels sue AI company behind “BBL Drizzy”Two major names in AI music are being sued by the RIAA.The Verge/cdn.vox-cdn.com/uploads/chorus_asset/file/25383541/STK467_AI_MUSIC_CVirginia_A.jpg)](https://www.theverge.com/2024/6/24/24184710/riaa-ai-lawsuit-suno-udio-copyright-umg-sony-warner?ref=gorillasun.de)
This debacle ensued after the AI generated track BBL Drizzy by King Willonius took off and became viral on multiple platforms - and it's actually a pretty good track:
It will be interesting to see how this unfolds, because, while it is evident that the models are trained on copyrighted material (where else is the data coming from otherwise?), it's very difficult to factually and conclusively prove it. Another point of view suggests that training AI on the copyrighted material is fair use, because the ultimate product is of a transformative nature.
[The RIAA versus AI, explainedThe question of fair use is haunting AI music generators.The VergeJordan Pearson/cdn.vox-cdn.com/uploads/chorus_asset/file/25383554/STK467_AI_MUSIC_CVirginia_B.jpg)](https://www.theverge.com/24186085/riaa-lawsuits-udio-suno-copyright-fair-use-music?ref=gorillasun.de)
It might also relevant to bring up the lawsuit between the New York Times and OpenAI here, that has not come to a conclusion yet as of now - with the current state of affairs indicating that it will likely not end in favor of NYT:
[NYT v. OpenAI: The Times’s About-Face - Harvard Law ReviewThe New York Times has sued OpenAI and Microsoft for the unpermitted use of Times articles to train GPT large language models. The case…Harvard Law Reviewhlr](https://harvardlawreview.org/blog/2024/04/nyt-v-openai-the-timess-about-face/?ref=gorillasun.de)
## Gorilla Updates
Simultaneously while I was in Berlin at the start of July another important personal thing happened - a couple of iterations of my generative project "Some Parts of Me" were exhibited at [DiGen Art](https://x.com/DiGenArt?ref=gorillasun.de) back in Lebanon, for Beirut art week, as a part of their inaugural Digital Me group show. The pieces were specifically made to perfectly fill out the two main big screens that adorn the wall right next to the entrance of the gallery:
[](https://x.com/gorillasu/status/1813692007048785935?ref=gorillasun.de)
[Link to Tweet](https://x.com/gorillasu/status/1813692007048785935?ref=gorillasun.de)
I have a technical/inspiration write-up for the project that's almost done - but the project itself will need some more time before I fully release it, I have some ambitious ideas for it, which I still need to figure out. On a related note, I'm also in the process of giving a mini course about creative coding with P5JS for a small group of students, which was set up in collaboration with DiGen Art and Code Brave, a Lebanon based non-profit that aims to teach kids programming for better career opportunities.
Because I don't have the time to be involved with all of the course sessions, I wanted to at least provide something for the students to explore on their own time, which is how I ended up putting together a mini course *site* that's a little more complicated than just a simple syllabus page - and basically ended up being a mini CMS in disguise.

I will share a link to the page once it's ready. I also spent a copious amount of time on the design, I think it ended up being quite quirky although designing a user interface is never really easy, even if it's something as simple as this:
Yes, I could have equally just spun up a Jekyll blog, but it kinda felt overkill for this purpose. While it's maybe not very impressive, I do think that I found a creative solution for storing and serving markdown files via a Github repo. I'll hopefully also make a proper write-up for it when I find the time 😌
Ultimately, the cool thing about it is that it can be easily repurposed for other courses/content - right now I'm still trying to figure out how to best do that with a minimal number of actions on the user's behalf. Consider this mini web project my answer to all the crappy course syllabi that I had to endure throughout my years at uni.
And as the banner image indicates, I also picked up another older genart project this week - not sure what I'm searching for at this point, but I'm having fun exploring:


What would homework look like if you went to genart school?
## Music for Coding
This past week I was captivated by [Steven Lynn](https://www.stevenlynnmusic.com/?ref=gorillasun.de)'s "Soundtrack for an Imaginary Western". The sounds that Steven's crafted is highly reminiscent of the legendary compositions by Ennio Morricone for "The Good, the Bad, and the Ugly", with the eclectic blend of unconventional sounds, especially the use of an electric guitar, which crafts that very distinct *western* atmosphere. If you're feeling like having a showdown with your bugs at high noon, this is probably the soundtrack for it:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more generative art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 64Simulating 20M Particles with JS - Algorithmic Barrier Grid Animations - A New Node Based Shader Editor - Drawing Chili Peppers with Math - Chromie Squiggles EOL - Streling Crispin’s Brain Worms - EthCC 2024 - Holographic Card Effect in CSS - Brian Kernighan on The Practice of ProgrammingGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-64)
*And backlog of all previous issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy coding, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Newsletter 64
URL: https://www.gorillasun.de/blog/gorilla-newsletter-64/
Last updated: 2024-07-15T10:30:03.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 64th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Simulating 20M Particles with JavaScript
***What if I challenged you to simulate 1 million particles, on the CPU, only using JavaScript? How would you do it?***
This is exactly what David Gerrells tasked himself with in a recent blog post of his; in an attempt to simulate millions of particles with JavaScript, he leaves no stone un-turned in trying to squeeze the last bit of performance out of the particle simulation that he ends up putting together. And to call it a blog post is a bit of an understatement, as it ends up being quite a chunky article, where David successively explores 7 ideas to optimize his code:
[](https://dgerrells.com/blog/how-fast-is-javascript-simulating-20-000-000-particles?ref=gorillasun.de)
[Link to Post](https://dgerrells.com/blog/how-fast-is-javascript-simulating-20-000-000-particles?ref=gorillasun.de)
**So, how do you actually go about** **simulating such a massive amount of particles in JavaScript?**
JS is notoriously not the fastest programming language, and has a bit of a bad rep in that regard, but you'd be amazed how much you can get out of it if you leverage the right features that it provides. Two important tools that David leverages to this end are web workers, essentially the implicit JavaScript method for achieving a sort of multi-threaded program, as well as shared array buffers, aka SABs.
As the name implies, SABs are a data structure that make it possible to share data across several workers in a seamless manner. This is due to the fact that when passing the same SAB to a number of different workers, the memory of this SAB remains shared between them rather than being copid, making it such that changes made by one thread are immediately visible to the others. This in turn enables direct communication and shared state management where all workers can read and write the same underlying memory. David puts it simply as "**easy mode multithreading without having to worry locks. Cool stuff.**"
This is in contrast to passing in a regular array buffer to a Web Worker, where the contained data is copied to the worker’s context. In other terms the web worker would essentially get its own individual copy of the data. Naturally, you can learn more about SABs in the MDN web docs:
[SharedArrayBuffer - JavaScript | MDNThe SharedArrayBuffer object is used to represent a generic raw binary data buffer, similar to the ArrayBuffer object, but in a way that they can be used to create views on shared memory. A SharedArrayBuffer is not a Transferable Object, unlike an ArrayBuffer which is transferable.MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/SharedArrayBuffer?ref=gorillasun.de)
Every week I discover new features of JavaScript
SABs are just the tip of the iceberg though, David goes into detail about the other optimizations that he implements while continuously profiling his code. And here's what a million particles running on the CPU looks like:
Genuinely a fascinating read! I would love to have a crack at it myself when I find the time for it; I'm super curious if the ideas can be adapted for particle simulations that involve collisions, since that would unlock several other ideas down the line, like soft-body physics and fluid simulations. Wouldn't have to be a million particles, a couple thousands would be entirely sufficient, and doing so without shaders would be super amazing. The tricky part though would be figuring out how to distribute the collision logic, including spatial hashing, aka a grid lookup, over several web workers with an SAB - maybe it's not actually that difficult to implement though? 🤔 (famous last words)
### Algorithmic Barrier Grid Animations
Barrier grid animations, also referred to as picket-fence animations, parallax barrier animations, or more modernly as kinegrams, are a type of optical illusion that create the appearance of motion when a striped overlay is moved across an image consisting of the interlaced frames of an animation.
The overlay, consisting of an array of alternatingly transparent and solid colored bars, will reveal the individual frames of the animation in sequential order when it is moved across the image, simply by occluding the rest of the interlaced image, producing the intended animation. I think it might be a bit easier to just show an example instead of describing it with words:
The animations in the video were apparently made with a freeware called animbar
This optical illusion is also interesting in an algorithmic setting, because it works equally well on a digital screen - here's the inspiration that led me down this entire rabbit-hole - TwiX user jitanpon from Japan made the following interesting animation, when sliding a striped overlay over a sinusoid, it reveals a sinusoid with a different frequency depending on the spacing of the individual bars:
0:00
/0:04
1×
The text in Japanese says "The red line isn't moving" | [Link to Tweet](https://x.com/jitanpon/status/1812029597342663074?ref=gorillasun.de)
The apparent pattern, hidden within the original pattern makes me think about information theory, and whether or not there are other creative ways to create hidden animations by using the barrier grid concept. Frank Force was quick to make a code golfed version of the sketch - if you're curious about recreating it, you can have a crack at deciphering Frank's tweet here:
[](https://x.com/KilledByAPixel/status/1812130883714851309?ref=gorillasun.de)
[Link to Tweet](https://x.com/KilledByAPixel/status/1812130883714851309?ref=gorillasun.de)
The true master of these code based kinegrams is Neel Shivdasani, who's been exploring the concept for several months now, a few iterations of which can be seen over on his Twitter profile:
0:00
/0:08
1×
[Link to Tweet](https://x.com/DataNeel/status/1613516236905906176?ref=gorillasun.de)
### A Node Based Shader Editor in the Making
Something that's popped up a couple of times in my timeline over the past days is the node based shader editor that Palash Bansal's been working on. While I'm not very familiar with the current node based shader editor eco-system, the previews of Palash's tool look very, very promising, striking me as elegant and intuitive to use - have a look for yourself:
[](https://x.com/repalash/status/1810766317798191546?ref=gorillasun.de)
[Link to Tweet](https://x.com/repalash/status/1810766317798191546?ref=gorillasun.de) | View the video on TwiX
An innovative feature that sets the editor apart is a special type of math node, that let you write GLSL functions directly in form of math notation, which can then be directly plugged into a fragment shader. And this just makes so much sense that it's surprising something like it doesn't exist already. Another plus at this point are markdown nodes that also easily let you provide written context to explain specific node concoctions.
It's definitely something I'll keep an eye on in the coming days/weeks, in some of his replies Palash hints at that it will be released sooner rather than later. You can however already try out an early alpha version of the editor [here](https://dev.shaders.app/?ref=gorillasun.de).
### Drawing Chili Peppers with Math
You might've seen some of them already, but these impressive *math* based drawings by Hamid Yeganeh have been making the rounds on several of my socials, where Hamid shows a rendered graphic followed by the mathematical equations that produce the graphic:
[](https://www.threads.net/@hamidnaderiyeganeh/post/C84N3HhoCUM/?ref=gorillasun.de)
[Link to Thread](https://www.threads.net/@hamidnaderiyeganeh/post/C84N3HhoCUM/?ref=gorillasun.de)
And given the short description above the math part, it seems that the big elephant equation here describes the rgb value of the pixels in the image. And after some initial doubts about legitimacy (because you could technically just slap a big slab of math under any image), the math does in fact check out, based off of the verification that Anisch Chopra did - reporting about it over on github:
[GitHub - anishchopra/generating\_chili\_peppers: Using math to generate an image of chili peppersUsing math to generate an image of chili peppers. Contribute to anishchopra/generating\_chili\_peppers development by creating an account on GitHub.GitHubanishchopra](https://github.com/anishchopra/generating%5Fchili%5Fpeppers?ref=gorillasun.de)
This makes me wonder however, how is the sausage made? Is the mathematical equation put in place in its entirety before the artwork is rendered? Or is it more of an iterative process, where the equation for a single chili pepper is derived, and then the rest of the artwork is put together based on that? I believe the latter to be true.
From a social media POV, it's definitely a smart move to include the math that produces the image, since the scary looking equation definitely makes for that wow effect - but otherwise, philosophically, is it necessary to show how the artwork was made, to ultimately appreciate the chili peppers for what they are?
Thinking about it for a while, it's a bit like if a painter were to append a photograph of their atelier underneath their artworks - but then again, that's also the case for code golfed artworks/animations where it's simply tradition to show the minimal code as a proof. On the other hand however, you could alos ocnsider the math to be part of the artwork, if intentional, that would then be a different discussion.
Maybe the big take-away here is that I should be showing more of my code underneath the generative art that I post on social media - is that ultimately the key to big numbers? Maybe I should also start posting on Facebook to really maximize the number of people that I can impress in that way 🤷
Anway, I'll now leave you to ponder on these thoughts by yourself.
### Other Cool Genart Things
And to wrap up this section here's a couple of other cool things I found:
- [Distance to the Sine Curve](https://suricrasia.online/blog/sine-distance/?ref=gorillasun.de): ever wondered if there's an SDF to represent a sine curve? Well, here's your answer: Blackle Mori writes about how to approximate a sine SDF with Chebyshev polynomials.
- [Plotter Art Month by Thibaud Frere](https://codepen.io/tfrere/pen/KKLjOxo?ref=gorillasun.de): for Genuary 2024 Thibaud decided to make a plotter drawing for each prompt, compiling the results in a wonderful little page that the showcases 31 cards, each of them holding one of the artworks alongside a little description.
## Web3 News
### Chromie Squiggles #9999 Minting
July 15th (the day this newsletter comes/came out) will mark the minting of the last Chromie Squiggle, where the final edition of the iconic generative artwork, #9999, will go into the collection of [LACMA](https://www.lacma.org/?ref=gorillasun.de), the Los Angeles County Museum of Art.
For this special occasion, Erick Calderon, the creator of Artblocks and the genesis mint on the platform, joined forces with [0xDEAFBEEF](https://x.com/%5Fdeafbeef?ref=gorillasun.de) to put together a very special farewell contract, inviting everyone to participate in the mint by leaving their mark in the transaction that creates the final mint. Snowfro explains this in a announcement of his over on TwiX:

[Link to Tweet](https://x.com/ArtOnBlockchain/status/1811151870964232420?ref=gorillasun.de)
There should be another announcement with more details about it, as well as the contract address, on Monday, but as far as Snowfro's tweet states, to record your participation with the final mint you simply need to send an arbitrary amount of ETH to this special contract, which then triggers a function that sends back the ETH and registers the transaction. This minting event is going to run for an entire week, and the most important thing is that there's no website or interface to connect your wallet to - simply a raw contract that can be viewed on Etherscan.
This announcement from Snowfro garnered a massive response, as it is essentially marking the end of an era. In another tweet he explains the motivation behind this particular way of celebrating the project's end of life: Snowfro draws inspiration from the documentary 'Levitated Mass', that recounts the story of Michael Heizer's iconic 340-ton boulder sculpture and its journey to LACMA:
[Levitated Mass - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/Levitated%5FMass?ref=gorillasun.de)
The participatory nature of the farewell contract is meant to symbolically reflect the spectacular nature of the boulders travel through the towns it passed through, attracting thousands of viewers along the way - making the artwork so much more meaningful. Snowfro's tweet:
[](https://x.com/ArtOnBlockchain/status/1811518488554385900?ref=gorillasun.de)
[Link to Tweet](https://x.com/ArtOnBlockchain/status/1811518488554385900?ref=gorillasun.de)
The boulder now sits above a 456-foot pathway in front of LACMA to accommodate for 360-degree viewing.
### Brain Worms by Sterling Crispin
Sterling Crispin's "Brain Worms" is arguably the most intriguing and innovative Web3 project that I've seen in a while - having been in the works for several months, Sterling's built a generative art NFT project based on the fractional ERC-404 token standard. The project is stored fully on chain, in addition to having interesting game and multiplayer mechanics besides the collectible aspect of it:


[Link to Tweet](https://x.com/sterlingcrispin/status/1811144681805468076?ref=gorillasun.de)
I'll have to invest some more time to fully understand the minting mechanics behind these blockchain native creatures - but as far as I understand they can be evolved (leveled-up) and their traits re-rolled by being traded, something that's made possible due to being based on the ERC-404 standard.
What's even more interesting is the entire alternative fictional universe that's spun up around the project, that makes it believably seem that the brain worms are actually real creatures that are being researched by an organization under the name of Del Complex. All of it has quite an intentional eery and liminal vibe to it. The project's website also follows that theme, and the aesthetics are super on point, with a cool interface where you can examine your tokens, mimicking a sort of imaging device:

[Link to Del Complex Website](https://delcomplex.com/brainworms?ref=gorillasun.de)
Moreover, Sterling's also open sourcing the complete source code for the project under the MIT license. You can find more info about this in another announcement of his:
[](https://x.com/DelComplex/status/1811416705421459706?ref=gorillasun.de)
[Link to Tweet](https://x.com/DelComplex/status/1811416705421459706?ref=gorillasun.de)
### Gavin Wood at EthCC 2024
If you don't know Gavin Wood, he's the co-founder of Ethereum and the creator of the Polkadot and Kusama chains. Last week he gave an insightful talk at [EthCC 2024](https://ethcc.io/?ref=gorillasun.de) in Brussels, the yearly Ethereum community conference - you can find a VOD of the entire talk here:
[](https://x.com/thewhiterabbitM/status/1811009553565114766?ref=gorillasun.de)
[Link to Tweet](https://x.com/thewhiterabbitM/status/1811009553565114766?ref=gorillasun.de)
In summary however, he addresses the current state of Web3, its perception and what it is actually about - with the bottom-line being that Web3 is not just about blockchain tech, or NFTs, or cryptoeconomics, but generally about building resilient digital systems that are interoperable, performant, and scalable.
If you want this talk summarized in form of a couple of important bullet points, Daureen compiled a useful TwiX thread to that end:
[](https://x.com/Daureeen/status/1811171231300767886?ref=gorillasun.de)
[Link to Tweet](https://x.com/Daureeen/status/1811171231300767886?ref=gorillasun.de)
## Tech & Web Dev
### Holographic CSS Effect
Besides Pinterest, I also frequently find myself exploring code pen to find new inspirations. Last week, I came across this amazing page by Simon Goellner in which he explores holographic card effects with CSS, something that you'd more commonly find in physical form when collecting trading card games like Pokémon or MTG. This experiment was initially posted as a codepen but later on also as an improved standalone page:
[Pokémon Cards CSS Holographic EffectAn exploration of what’s possible with CSS for Pokemon Cards, simeydotme (Simon Goellner)](https://poke-holo.simey.me/?ref=gorillasun.de)
When collecting these cards by opening packs, there's sometimes a chance to get a shiny, reflective card, namely a foil (or holofoil in Pokémon) which is usually more valuable than a normal card. Depending on which set of cards this foil belongs to it might have different physical and/or reflective properties appearance - which Simon also tries to immitate as closely as possible his exploration, enumerating a whole bunch of different effects
And the effect that Simon's achieved is nothing short of stunning; he's managed to make the cards feel convincingly real, almost making them appear to pop out of the screen. Simon also provides a Github repo for the code that makes this holographic effect possible:
[GitHub - simeydotme/pokemon-cards-css: A collection of advanced CSS styles to create realistic-looking effects for the faces of Pokemon cards.A collection of advanced CSS styles to create realistic-looking effects for the faces of Pokemon cards. - simeydotme/pokemon-cards-cssGitHubsimeydotme](https://github.com/simeydotme/pokemon-cards-css?ref=gorillasun.de)
Although this made quite the splash 2 years ago now, I did also come across a tweet by Josh Dance in which he attempted the recreation of the effect on his own, sharing a cool write-up in which he elaborates a little on the techniques used:

[Link to Tweet](https://x.com/JoshDance/status/1582080945795977219?ref=gorillasun.de)
### Typescript 5.5 & Isolated Declarations
Something that entirely passed me by the week before heading off to Berlin at the start of July, was the release of TypeScript 5.5\. While I've just started using TypeScript a little bit in my fullstack journey learning Next.js, it seems that there's been a whole slew of new features and quality of life improvements - the release notes to that end are super elaborate:
[Announcing TypeScript 5.5 - TypeScriptToday we’re excited to announce the release of TypeScript 5.5! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos,TypeScriptDaniel Rosenwasser](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/?ref=gorillasun.de#isolated-declarations)
In a previous issue of the newsletter I shared Marvin Hagemeist's series of articles titled "Speeding up the JavaScript ecosystem", and in light of the new TypeScript release he writes about one of the new features that addresses an accute problem in the JavaScript eco-system, concerning the packaging of libraries:
[Speeding up the JavaScript ecosystem - Isolated DeclarationsTypeScript’s new isolated declaration feature is a game changer for sharing code among developers. It significantly simplifies the process of packaging your code for consumption whilst reducing the time to create type definition files from minutes, sometimes even hours, down to less than a second.Isolated Declarationsmarvinhagemeist](https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-10/?ref=gorillasun.de)
### Brian Kernighan Reflects on *The Practice of Programming*
Brian Kernighan was one of the original creators contributing to the creation of the Unix operating system, alongside Ken Thompson and Dennis Ritchie at Bell Labs, later also recoginzed also co-authoring the seminal first book on the C programming language with Dennis Ritchie:
> \[...\] [Brian Kernighan](https://en.wikipedia.org/wiki/Brian%5FKernighan?ref=gorillasun.de), had written the first C tutorial, and he persuaded Ritchie to coauthor a book on the language. Kernighan would write most of the book's "expository" material, and Ritchie's reference manual became its appendices.
Later on he authored another important book titled "The Practice of Programming" with Rob Pike, that had the aim of making individual programmers "more effective and productive". Today it is considered as a sort of early grail in that regard, and still holds up in many ways till today. He recently made an appearance on the Book Overflow podcast, where he reflects on that particular book, the motivations behind writing it and how it has aged in the modern programming landscape:
There were also interesting discussion over on Hacker News about it, praising it for what a masterpiece it is:

[Link to Hacker News Item](https://news.ycombinator.com/item?id=40927481&ref=gorillasun.de)
## Gorilla Updates
Last week I actually found the time to dive back into the circle tangency problem that I shared a couple of weeks ago - the original tweet for reference:
[](https://x.com/gorillasu/status/1802639444631077293?ref=gorillasun.de)
[Link to Tweet](https://x.com/gorillasu/status/1802639444631077293?ref=gorillasun.de)
Before going back and diving into all of the interesting replies that people provided, I made an attempt at solving the problem on my own. This led me to understand that this particular geometric problem can be represented as a linear system of equations, where the radii of the circles are the unkown variables and the edge lengths of the polygon that's formed by connecting their centers are the constants/knowns. You end up with something that has the following form `r1 + r2 = d1, r2 + r3 = d2, ..., rn + r1 = dn`.
No the tricky part is figuring out whetheror not this system is solveable - turns out that (another) David over on Twitter came to the same conclusion when he tackled the task, discovering that there's a nifty solution to it only when we try to place an odd number of circles:


[Link to Thread](https://x.com/physbuzz2/status/1802676137359012014?ref=gorillasun.de)
I don't fully understand why it's only solveable for an odd number of circles at this point (give me another session to think about it 😆), but the code for it is surprisingly short- essentially just a nested loop that magically produces the perfect radii for the circles given the lengths of the sides of the polygon that's formed by connecting the centers of the circles.
The issue with this is that the blobby, flower like shapes that led me to this problem in the first place only work when it's an even number of circles - otherwise the shape can't line up with itself anymore. The creative hack that I figured for this is to first compute the solution for an odd number of circles following David's approach, then deleting 2 circles from that ring and replacing them with three new ones, placing their centers at random on the empty arc, then computing their radii in a recursive manner with another linear system:


The linear system here is easier to solve because we already have the radius of the first and last circle, so we just need to fill in the unknowns. There's a few other interesting things that I learned while exploring this task, which I might write about in the future. Let me know if you're interested in an article about this particular geometric problem.
## Music for Coding
This week's recommendation comes directly from Tom Hinton @pumaparded over on TwiX who occasionally participates in Raph's WCCChallenge (more frequently than me at least) - he sent over the album "Voice of Storms" by a band Horseburner that I haven't heard of before, but it's totally up my alley. They have a cool vibe that sounds a little like a mix of Mastodon and Baroness:
💡
If you have music recommendations, shoot them my way — would be curious to know what you guys listen to while coding! 👀
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 63Genart Summit 2024 - Geart Group Show Barcelona - The International Generative Art Conference since 1998 - Chris McCully’s Snippp.io - Exploring Randomness in JS - Objkt.com Native Genart Minting - Are NFTs Dead... yet? - JavaScript Set Methods - HyperCard Simulator - The State of AI 2024Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-63)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one!**
**\- Gorilla Sun 🌸**
### Gorilla Hypersub July Update
URL: https://www.gorillasun.de/blog/gorilla-hypersub-july-update/
Last updated: 2024-07-15T10:31:30.000Z
A quick update about the Gorilla Hypersub, the new member section, the new articles for the past month, the monthly art airdrop, as well as what's in store for the coming weeks!
_This post is for subscribers on the Hypersub tier only._
### DIY Market Analysis: Objkt.com Case Study
URL: https://www.gorillasun.de/blog/diy-market-analysis-objkt-com-case-study/
Last updated: 2024-07-15T10:31:38.000Z
In this tutorial we have a look at how to do our own market Tezos analysis by querying the Objkt.com GraphQL API endpoint via a python script and then visualizing the fetched data with matplotlib.
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 63
URL: https://www.gorillasun.de/blog/gorilla-newsletter-63/
Last updated: 2024-07-08T09:50:05.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 63rd issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Generative Art Summit 2024
It's difficult to put in words what a whirlwind tour the Generative Art Summit was, especially considering that Berlin was in the midst of hosting some games of the European football cup - I'm not a big sports fan, but the city was truly brimming with energy. While the Summit was in part a big celebration of Herbert W. Franke's life work, it was equally a celebration of Generative Art in general, bridging between the old and new generations, and highlighting all of the different modes of expression within the field. Susanne Päch did an absolutely stellar job at organizing the Summit.
And it was genuinely an incredibly experience, not only to see some of the generative art pioneers in the flesh, but also to meet many of my fellow generative artists and peers that I'd previously only interacted with over the internet. Here's a few pics from the past days:



[Link to Tweet #1](https://x.com/gorillasu/status/1808831518896161027?ref=gorillasun.de): Big Artist group shot taken in front of the Academy of Arts | [Link to Tweet #2](https://x.com/gorillasu/status/1808532623884464542?ref=gorillasun.de): The Auditorium in which the talks were held + a pic Haiver took at the Expanded.art opening the day before the conference + some of the swag that others were handing out | [Link to Tweet #3](https://x.com/gorillasu/status/1809352391805772048?ref=gorillasun.de): A selfie with Raph at the Creative Code Stammtish held ever first Friday of the month.
A few weeks ago I was debating whether or not to attend, but I am incredibly happy that I did end up going - having conversations in person is just incomparable to chatting online. And if you didn't attend, don't fret, I'm already in the process of preparing a big recap for my trip - while I didn't manage to attend all of the events or presentations I do have a lot of thoughts that I want to share. I just came back yesterday and think I ended up catching the flu, so it might take a few days for me to compile all of the info.
I also took note of the many cameras that were set up at the back of the auditorium and recording the various talks - I'm wondering if these recordings will be released somewhere at some point. The gathering in Berlin is definitely one for the history books, and again, I'm really happy that I was part of it.
### MAGBa in Barcelona
If you're still hanging around somewhere in Europe, and aren't tapped out after the Genart Summit, your next destination is Barcelona: a lovely group of 9 generative artists has banded together to kick off a group show under the title "MAGBa: Mostra Art Generatiue Barcelona" (translates to Generative Art Show Barcelona) in collaboration with Palo Alto and The Generative Art Museum. The exhibition will be held in the Escoleta building in the Palo Alto complex in Poble Nou, running from July 11th through August 23, and you can find a list of the participating artists over on the official website here:
[MAGBa · Palo Alto BarcelonaDesde el próximo 11 de julio hasta el 23 de agosto de 2024 la nave Escoleta acogerá MAGBa, la Muestra de Arte Generativo de Barcelona, donde nueve artistas darán a conocer sus creaciones mediante el uso de algoritmos y del azar como medio de expresión artística.Palo Alto Barcelona](https://es.paloalto.barcelona/expomagba?ref=gorillasun.de)
While the page is only in Spanish (a click from your browser's translate function should remedy this), Luis Fraguada was so kind to send over a press release in English that explains a little bit more what the show is about, to those that might not be so familiar with what generative art is - here's an excerpt:
> By adding bounded randomness to each algorithm, the computer creating the work adds some variation each time it paints the artwork.. In this act, which we might imagine to be repetitive, different and unique pieces are created every time. Works that not even artists can replicate, ephemeral works of art that capture the will and voice of the artist but completely escape their control.
There's also been a couple of teasers floating around over on TwiX, if you're curious about what it looks like, but I'm certain that we'll be seeing a lot more media coverage in the coming days:
[](https://x.com/mekhno%5Fart/status/1809295437980922327?ref=gorillasun.de)
[Link to Tweet](https://x.com/mekhno%5Fart/status/1809295437980922327?ref=gorillasun.de)
### The Official Generative Art Conference
While everyone was in Berlin, discussions came up about on where to eventually meet up in 2025, in the case that the genart summit isn't going to become a yearly re-occurrence - during these talks it came to light that there actually is an official generative art conference that's been held yearly since 1998\. The official website for the conference is quite a treasure trove, loaded with links to papers and books that were released through the conference over the years:
[GENERATIVE ART INTERNATIONAL CONFERENCEGenerative Art Conference, Generative AI, Generative Approach to Architecture, design, city design, Art, Music, Poetry. Generative metaverse, Images, Movies and 3D models of Generative Visionary eventsGENERATIVE ARTCelestino Soddu, Enrica Colabella](https://generativeart.com/?ref=gorillasun.de)
I genuinely tried making sense of the website's structure, but to no avail, it seems to be an archipelago of different pages that are somehow interlinked, yet also placed under different domains. I can't really trace back how I ended up on this other book-shop page, it does strike me as the most interesting one though as it contains all of the previous proceedings of the conference since its inception - with many thousands of pages all available for free:
[Generative Art and Design free downloadable ebooks. ARGENIA Publisherebook about Generative Design and Art, proceedings of GA conferences since 1998](https://www.artscience-ebookshop.com/?ref=gorillasun.de)
I'm not entirely certain about the vibe of the conference, but in comparison to the genart summit that happened last week in Berlin, it seems to be a much more traditional, *academic style* conference (something I was running away from when I first got into generative art). What I find a bit peculiar is that I can't seem to find any pictures of the conference, even though it's been ongoing for 26 years - in an exchange over on TwiX, Aleksandra does vouch however that the conference exists:
[](https://x.com/sableRaph/status/1549031860310888448?ref=gorillasun.de)
[Link to Thread](https://x.com/sableRaph/status/1549031860310888448?ref=gorillasun.de)
I also discovered that I have apparently commented on Raph's tweet from two years ago - something I've completely wiped from my memory since. While I'm more concerned with the mysterious nature of the conference, Raph's biggest gripe seems to be that they have "modernized" the aesthetic of the website in the meantime.
Maybe I'm meeting the entire thing with too much skepticism and the intentions behind the conference are genuine - to my defense, I'm just a little bit traumatised by predatory journals/conferences that demand exorbitant participation fees. The mastermind here, that's behind organizing the conference, is Celestino Soddu, who's written quite a few interesting papers and books on generative design himself:

Figure from the paper "[Aleatority and Urban Species; Unique, Unrepeatable and Recognizable Identity, like in Nature](https://www.researchgate.net/publication/272740244%5FReconstructing%5FAncient%5FLandscape?ref=gorillasun.de)"
The Le Random timeline actually also marks the first installment of this International Generative Art Conference as an important moment in the 1990s:

It might after all be an interesting potential time + location for another genart retreat: this year's conference is taking place on the 17th, 18th, and 19th of December in Venice, and participation for guests that aren't presenting seems to be free of charge. Otherwise I also heard that Bright Moments is planning on hosting a week-long event in Berlin next year. I couldn't however find any more info about it at this point.
### Chris McCully's Snippp.io
[Back in January](https://www.gorillasun.de/blog/gorilla-newsletter-41/#chris-mccullys-snippets-for-art) I shared a cool tool built by my fellow generative artist Chris McCully that's entirely geared around sharing and discovering useful snippets of code. He's recently made it public that he's been back at it and completely revamped the tool, now much improved with many additional features. If you want to explore some of the existing snippets, or add your own, you can check it out here:


[Link to Tweet](https://x.com/SpinkDinky/status/1809179746401436070?ref=gorillasun.de) | [Link to Snippp](https://snippp.io/?ref=gorillasun.de)
One thing that I would love to see, and that I think would make the tool much more accessible, is an info/description box that users need to specify when creating a new snippet - otherwise it's a bit difficult to try and decipher what a snippet does just from its name or trying it out manually. Occurred to me while trying out some of the snippets that are already available, but that's just my two cents.

\*M\*
### Exploring Randomness in JavaScript
While building a color swatch generator with [Alpine.js](https://alpinejs.dev/?ref=gorillasun.de) \- Ben Nadel discovers that JavaScript actually provides an alternative method to the `Math.random()` function for generating random numbers - namely using the Crypto API (and in this case it has nothing to do with Web3). While the MDN docs claim that this cryptographic random number generator is more secure, Ben sets out on an exploration to determine how the Crypto API compares to the regular `random()` function in the Math module, and whether or not it also feels *more random*. He provides an interesting experiment for gauging the apparent randomness:
[Exploring Randomness In JavaScriptBen Nadel compares the randomness of Math.random() to crypto.getRandomValues() in JavaScript.Ben Nadel](https://www.bennadel.com/blog/4669-exploring-randomness-in-javascript.htm?ref=gorillasun.de)
So what's this `Crypto.getRandomValues()` function in Javascript? The method describes itself as a means to *get cryptographically strong random values* \- which in other terms means that it is not straightforward, or straight-out impossible, to reverse-engineer the method/algorithm by which these numbers were generated, which in turn also means that it is also not possible for third parties to predict the next values that the PRNG will generate. Which is quite an important notion in cryptography, blockchain tech as a big example here, where many things rely on random cryptographic hashes.
Ben's experiment indicates that the generated randomness is comparable, but it also feels cut short in a way - I wish he had explored things a bit further. This makes me wonder, what are actually some other ways are for comparing PRNGs? Ben's experiment reminds me of a sketch I did for the 24th prompt of Genuary in 2022, where the given prompt asked to create a PRNG from scratch - and I ended up finding the generated patterns quite fascinating:
[](https://x.com/gorillasu/status/1485543504285769728?ref=gorillasun.de)
[Link to Tweet](https://x.com/gorillasu/status/1485543504285769728?ref=gorillasun.de)
I think this might actually be quite a nice topic for an upcoming article. In the meantime, if you want to learn more about the `getRandomValues()` function, here's the MDN Web Docs on it:
[Web Crypto API - Web APIs | MDNThe Web Crypto API is an interface allowing a script to use cryptographic primitives in order to build systems using cryptography.MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Web%5FCrypto%5FAPI?ref=gorillasun.de)
And if you're interested in reading the color swatch article that inspired Ben's article on randomness, you can find it here - it's also quite relevant to the Newsletter:
[Color Palette Utility In Apline.jsBen Nadel builds a color palette tool using Alpine.js. Color palettes can be saved (and loaded) as PNG and SVG files.Ben Nadel](https://www.bennadel.com/blog/4668-color-palette-utility-in-apline-js.htm?ref=gorillasun.de)
## Web 3 News
### Objkt.com's Native Generative Art Feature Release
The biggest news last week is arguably Objkt.com's announcement of native support for minting generative on their big marketplace platform. They're kicking the feature off as a collaboration with the curated media platform Fakewhale, and placing none other than PixelFool as the premier artist to publish a generative project with the new feature:
[](https://x.com/fakewhale%5Fxyz/status/1809255838273478720?ref=gorillasun.de)
[Link to Tweet](https://x.com/fakewhale%5Fxyz/status/1809255838273478720?ref=gorillasun.de)
It's definitely strikes me as an interesting timing for such a release. I'm quite curious to see how it will compare to fxhash, the longstanding flagship genart marketplace on Tezos - especially considering fxhash's recent Vertex release. This also makes me wonder whether or not Re-tain will ever see the light of day.
If you want to learn a little more about PixelFool's piece "Uncertain Index" you can also check out the article that's linked in the Tweet (as always can't link to .xyz domains since they're considered spam when sending out this Newsletter).
### Are NFTs Dead... yet?
One of the big talking points at the genart summit were NFTs - to be precise, whether or not they were dead... yet. And it seems that NFTs have been in the death-throes for the past couple of years. TwiX user heavenrazor makes a statement about it that garnered quite a bit of public approval:
[](https://x.com/heavenrazor/status/1809370234790273040?ref=gorillasun.de)
[Link to Tweet](https://x.com/heavenrazor/status/1809370234790273040?ref=gorillasun.de)
Bottom-line is that cartoony Penguin images, or any other animal for a matter of fact, are simply lame in the long term - what really is there to talk about? Especially with more people becoming familiar with Web3 technology and the idea of digital ownership becoming more commonplace.
But this particular discourse seems to be in a constant state of transience - the thing is, NFTs aren't dead, the hype is, and I think it's bothering people that this is the case. I do however fully agree that we need thought provoking revolutionary shit.
### The CasterBites Newsletter
To stay up to date with different niches I follow quite a few Newsletters, one of them is the CasterBites Newsletter, that I've come to really appreciate. It quickly sums up what's new over on Farcaster in 5-6 brief headlines - with an additional section that shows the top trending tokens in the past 24 hours, which is less interesting (to me) but also kinda neat if you're into this sort of thing:
[CasterBites: Farcaster Daily DigestDive into Farcaster’s Daily Digest for your personalized must-reads. Spend just 3 minutes daily to stay updated with all things important. Never miss out again!](https://www.casterbites.com/?ref=gorillasun.de)
You can also choose if you'd like to receive the Newsletter on daily or weekly basis, which is neat. Not a paid promo.
## Tech and Web Dev
### JavaScript Set Methods
There's an exciting development with JavaScript: the language now supports Set methods, and that as a baseline widely available feature, meaning that these functions are now supported by all major browsers:
[New JavaScript Set methods | MDN BlogNew JavaScript Set methods are landing across browsers. Learn about sets, how you can use these methods to compare different sets, create new sets with specific properties, and more.MDN Web DocsBrian Smith](https://developer.mozilla.org/en-US/blog/javascript-set-methods/?ref=gorillasun.de)
Here you might ask, weren't sets already a thing in JavaScript? Yes, but not really. While Sets were introduced in the ECMAScript 2015 update, they were still largely incomplete - missing quite a bit of functionality, that up to this point needed to be implemented manually. The newly introduced functions now make it quite easy to compute set intersections, unions, differences, etc... essentially all sorts of set operations can now be used out of the box within JavaScript. And of course the MDN Web Docs are already up to date in that regard:
[Set - JavaScript | MDNThe Set object lets you store unique values of any type, whether primitive values or object references.MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/Set?ref=gorillasun.de)
I find it super exciting, not because I have a particular use case in mind, but because it gives me another creative tool to play around with.
### HyperCard Simulator
HyperCard is a software application and development environment created by Bill Atkinson and released by Apple Computer in 1987\. It combines elements of a database, a programming language, and a graphical user interface (GUI) to allow users to create and navigate "stacks" of virtual cards. In other words, it allowed users to create their own little utility programs of various kinds. The following website revives the software in form of an online simulator that lets you import your own Hypercard stacks, in case you still have access to some or want to make them in 2024:
[](https://hcsimulator.com/?ref=gorillasun.de)
[Link to Simulator](https://hcsimulator.com/?ref=gorillasun.de)
The Simulator is also already preloaded with a bunch of stacks that I had a load of fun exploring. In particularly I highly enjoed the minimal game "Foul Airs" which I think is conceptually simply a masterpiece. Looking a bit more into it I also found this article by Jen Thorp - a decade old at this point - where he writes a beautiful recount of the impact that the software has had on him:
[The Hypercard LegacyApple’s forgotten software gem was a last breath for democratized computing. Can it be revived?The NextographerJer Thorp](https://medium.com/the-nextographer/the-hypercard-legacy-e5b9eb273b6a?ref=gorillasun.de)
> HyperCard was a tool for making tools – Mac users could use Hypercard to build their own mini-programs to balance their taxes, manage sports statistics, make music – all kinds of individualized software that would be useful (or fun) for individual users

I think this is my favorite find this week.
### Progressive Blur Effect with webGL
We've also got another contender for the progressive blur effect trick, and while it might not be as light-weight as [the one that we had a look at two weeks ago](https://www.gorillasun.de/blog/gorilla-newsletter-61/#progressive-blur-in-css), aesthetically it's quite nice. This time the blur is achieved with a WebGL Shader that gradually blurs the image depending on the image's relative position with respect to the scroll of the page:
[Progressive Blur Effect using WebGL with OGL and GLSL Shaders | CodropsLearn how to create an interesting progressive blur effect using WebGL, OGL, and GLSL shaders.CodropsJorge Toloza](https://tympanus.net/codrops/2024/07/02/progressive-blur-effect-using-webgl-with-ogl-and-glsl-shaders/?ref=gorillasun.de)
## The State of AI 2024
I think that at this point we're all familiar with the "State of" type of articles - they've somehow become much more popular in recent years - or it could be a classic Bader Meinhoff illusion where I'm just noticing the increased frequency due to compiling this Newsletter every week.
But these kinds of articles are popular for a good reason - they're actually good indicators about the public's general sentiment around a certain field/topic. Tn the State of AI 2024, the Retool blog provides some interesting stats that reflect the current state of AI in 2024:
[Read the newest State of AI report | Retool Blog | CacheLearn how developers are building AI apps with real ROI and get insights on tools like vector databases, LLMs, and inference platforms in this report.Cache](https://retool.com/blog/state-of-ai-h1-2024?ref=gorillasun.de)
With 59% of votes there seems to be consensus that AI in its current state is still vastly overhyped, while it is also the case that the current adoption rate of AI tech is still quite low. Other interesting questions involved whether or not people were secretly using AI tools at work, and apparently 29% of people actually are. I would also like to point out the 2023 article, that is equally beautifully made and can serve as a comparison for this year's article:
[Retool State of AI Report 2023What models, infra, and apps are devs using and loving? What are AI’s real production use cases? Get insights on AI sentiment, adoption, and tooling in the report.](https://retool.com/reports/state-of-ai-2023?ref=gorillasun.de)
## Gorilla Updates
No updates from me this week - I've just been trying to soak up all of the energy that I've received over in Berlin and will likely need a little bit more time to process all of that. I am however full of inspiration and new ideas for things to work on, that I'm incredibly excited to start/continue working on.
The only thing I had time for this week was starting to learn a little bit more about Solidity programming - just to get a feel for the complexity of it - via this free course by Alchemy (also not sponsored):
[](https://university.alchemy.com/overview/solidity?ref=gorillasun.de)
[Link to Course](https://university.alchemy.com/overview/solidity?ref=gorillasun.de)
One other final thing that I managed to put together is this stupidly annoying memory game as a submission for Raph's WCCChallenge, you can find it [here](https://openprocessing.org/sketch/2312275/?ref=gorillasun.de). It's mainly intended as a proof of concept for making a generative memory game, it's not very aesthetic at this point however.
## Music for Coding
Don't ask me how I'm finding these — the YouTube recommendation algorithm just knows me too well at this point. The thumbnail + video title combo made me click in the first place, but the awesome music and visualizer kept me enthralled. Samuel Shepherd is a British music producer that makes tracks under the alias of Floating Points, and his vibe is definitely one that I enjoy:
But that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 62Basins of Attraction in Chaos Theory - Then and Now by Jasia Reichardt - Declarative Path Drawing - RNG Day - Tezos Collaboration with the Museum of the Moving Image - Tezos X Upgrade - Microfeatures in Blogs - Config 2024 +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-62)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 62
URL: https://www.gorillasun.de/blog/gorilla-newsletter-62/
Last updated: 2024-07-01T08:49:16.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 62nd issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### Basins of Attraction in Chaos Theory
In the study of chaotic systems, basins of attraction are regions in the state space of a dynamical system where initial conditions lead to long-term behavior that eventually settles into an stable state (an attractor). The fascinating thing about these basins, is that the boundaries between them often present fractal-like, infinitely self-similar properties, the visualization thereof leading to stunning graphics.
*The question here is, how do we visualize these features of a dynamic system? What do we actually mean with a dynamic system? And what are some examples?*
That's what I set out to learn this past week, with the entrance to this rabbit hole being a post by redditor u/novamber over in the r/generative subreddit, in which he shares a stunning visual that seems to be a fractal of some sort:
[](https://www.reddit.com/r/generative/comments/1dpx99z/discovering%5Fpython%5Fand%5Fmathematical%5Fformulas%5Fto/?ref=gorillasun.de)
[Link to Post](https://www.reddit.com/r/generative/comments/1dpx99z/discovering%5Fpython%5Fand%5Fmathematical%5Fformulas%5Fto/?ref=gorillasun.de)
When another redditor asked about how these graphics were created, u/novamber points out three techniques that I hadn't heard of before: attractive basins, Latte's orbit, and polarization. While I couldn't really find too much about the latter two, attractive basins ended up being a relatively well documented notion, with quite a bit of material across the internet.

Looking into it, the best initial example to explain attractive basins is by picturing a ball rolling on a bumpy landscape. The landscape here represents a mathematical system with different valleys aka "basins" - when dropped into the landscape, the ball will roll down along the landscape and end up settling in one of these basins. With the basin essentially *attracting* the ball. Evidently, the starting point of the ball here matters quite a bit, as it is the most important factor determining in which basin it will eventually settle.
What makes these basins interesting are their boundaries between each other - if we were to place the ball directly on such a boundary, it becomes quite difficult to predict which way it will roll. Zooming in on these boundaries will often reveal that they have a fractal structure - hence the visualizing these basin boundaries then leads to interesting graphics, and much study has actually gone into the topic.
These fractal basin boundaries aren't just mathematical models, but actually occur in many dynamic systems and physics simulations. Although the relationship might not be immediately evident, one popular example for this purpose is the magnetic pendulum.
[](https://simple.wikipedia.org/wiki/Magnetic%5Fpendulum?ref=gorillasun.de)
[Link to Wiki](https://simple.wikipedia.org/wiki/Magnetic%5Fpendulum?ref=gorillasun.de)
Magnetic pendulums are actually very simple contraptions, where we simply attach a metal ball on the swinging end of a metal rod or rope, that is in turn attached to a fixture above. In this setting we call the swinging part of the pendulum a "bob".
Underneath this bob (or surrounding it) we place a number of magnets in an equidistant manner (along the circumference of a circle) that are all attracting the metal ball and will eventually draw it in when it comes too close and doesn't have enough momentum to escape the magnet's pull, essentially stopping it in its tracks. The chaotic behavior emerges when we release the ball from a random starting position above: it is not quite clear which magnet will win and capture the ball at the end. This is very similar to what I describe earlier, where we had a ball rolling around on a bumpy surface, with the different that the boundaries here are invisible magnetic forces.
How does this lead us to these cool visualization that converge towards the center? Let's assume that we've implemented a virtual version of this magnetic pendulum that we're looking onto from a top-down view, the surface underneath being a pixel canvas. We will also assign a color to each one of the three magnets. We will now release the pendulum from a random starting position on the canvas and let it swing for a while until it settles on one of the three magnets. After that's done we will color the pixel at the starting position of the pendulum with the color of the magnet that we settled on. This will lead to an interesting fractal graphic with distinctly colored regions - a great visualization for this can be found here:
Now don't tell me that this isn't incredibly fascinating. A quite structured graphic emerges from an initially chaotic system. I'm not entirely certain but I believe that the first to make such a graphic was Ian Win in the 2006 paper of his titled "The Chaotic Oscillating Magnetic Pendulum" where he describes this exact experiment:
[](https://www.math.hmc.edu/~dyong/math164/2006/win/finalreport.pdf?ref=gorillasun.de)
[Link to Paper](https://www.math.hmc.edu/~dyong/math164/2006/win/finalreport.pdf?ref=gorillasun.de)
If you're curious about how this is implemented, there is a thread on the Mathematica Stack Exchange that shows some equations:
[Fractal basins of attraction in a Magnetic PendulumI am trying to write a Mathematica program that realizes a graphical approximation of the basins of attraction in a Magnetic pendulum subject to friction and gravity, in which the three magnets areMathematica Stack ExchangeLonidard](https://mathematica.stackexchange.com/questions/120946/fractal-basins-of-attraction-in-a-magnetic-pendulum?ref=gorillasun.de)
Checking the r/generative reddit for the "Attractive Basin" search term led me to the a post from two years ago that shows a similar type of swirly pattern:
[](https://www.reddit.com/r/generative/comments/w2w3ie/fractal%5Fbasins%5Fof%5Fattraction/?ref=gorillasun.de)
[Link to Post](https://www.reddit.com/r/generative/comments/w2w3ie/fractal%5Fbasins%5Fof%5Fattraction/?ref=gorillasun.de)
The redditor u/vobarkun also [explains the code](https://www.reddit.com/r/generative/comments/w2w3ie/comment/igsxbx0/?utm%5Fsource=share&utm%5Fmedium=web3x&utm%5Fname=web3xcss&utm%5Fterm=1&utm%5Fcontent=share%5Fbutton) a little when asked about it - and it's pretty similar to a magnetic pendulum:
> Each pixel corresponds to a different initial position and velocity for a particle that moves in a potential with five minima positioned at the corners of a regular pentagon. In each frame of the animation, the color of that pixel is determined by the current position of that particle. This is a so called chaotic system, that is, small changes in the initial conditions can have very large effects, producing the fractal pattern.
I still can't tell you however how the first render I shared by u/novamber comes together - in another reply he points towards a profile over on Facebook where a creator under the name of [Errobas](https://www.facebook.com/Erroba.MathArt) exclusively shares these kinds of visualizations, and some of them are absolutely bonkers:
[](https://www.facebook.com/Erroba.MathArt)
[Link to Errobas profile on Facebook](https://www.facebook.com/Erroba.MathArt)
I definitely will have to examine all of this in more detail in a future issue, but I think that I've supplied you with sufficiently material to chew on - if you end up figuring out how to make these kinds of patterns, shoot me a message, would absolutely love to learn more!
### Then and Now by Jasia Reichardt
The Cybernetic Serendipity exhibition is unarguably one of the most important events in generative art history. Taking place in 1968 at the Institute of Contemporary Art in London, it was the very first exhibition that put computer art on the international radar:
[](https://timeline.lerandom.art/?ref=gorillasun.de#/1968)
[Screenshot from the Le Random Timeline](https://timeline.lerandom.art/?ref=gorillasun.de#/1968)
Jasia Reichardt was the curatorial brain behind the exhibition, and was one of the visionary people at the time that predicted generative art as an artform of the future. In light of the Generative Art Summit that's happening in Berlin this week (at the time this Newsletter comes out), she provides her thoughts in form of an editorial piece over on Le Random, capturing how computer art has continuously evolved since those early days:
[THEN AND NOWCherished icon Jasia Reichardt met with Peter Bauman (Monk Antony) before the Foundation Herbert W. Franke’s Generative Art Summit Berlin. The Cybernetic Serendipity curator wrote this text as one of the few people who anticipated our digital future along with Franke in the 1960s. This piece extends the earliest thought on art and AI to the present, as only a singular voice like Reichardt’s could.Le Random](https://www.lerandom.art/editorial/then-and-now?ref=gorillasun.de)
While I don't know how involved Reichhardt is in the contemporary issues that revolve around genart today, her closing statement does seem to address one of the terminological pain points that has recently taken shape in recent months - where the word "generative" has become a bit of a disputed term to describe the practice, especially for those that are not as familiar with the field.
> \[... \] new ideas, are based on an exchange—a conversation that reaches continually beyond the recognisable categories of art. Even the term avant-garde cannot be applied because the code-based art is like a wave—a progressive and continuous experiment, with possibilities extending in all directions.
Maybe we should just concede that there will never be a proper term to describe all of what these new kinds of affordances encompass and that they simply are in a constant state of change as they are tightly tied to the underlying technology that will likely not halt from progressing.But maybe that's just the beauty of this discussion.
*That said - I'm excited to also be in Berlin next week (this week, I'm leaving tomorrow* 😬*) for the Genart summit, if you're also there, hit me up!*
### Proposal for a Declarative Path Drawing Library
In light of [Processing's new developer grant program (pr05)](https://medium.com/@ProcessingOrg/pr05-grant-2024-new-beginnings-open-call-93ac092a183e?ref=gorillasun.de) that we saw kick off earlier this year, tool developer Baku Hashimoto made the interesting proposal for supporting alternative path drawing methods in p5js:

While the proposal wasn't accepted, I think that it's still worth sharing. Baku's idea is based on an already existing library that they've previously developed, geared towards manipulating SVG paths:
[PaveA library for manipulating SVG/Path2D curves](https://baku89.github.io/pave/?ref=gorillasun.de)
Essentially, rather than tracing out paths imperatively with specific commands, like the lineTo() function for instance, the library would provide a declarative approach to do so - Baku elaborates on this in a TwiX thread:
> The proposed library, p5.path, adopts a functional programming design, allowing the combination of generators and filters. Instead of coding the steps to draw shapes, it focuses on declaratively describing what the shape is, making it more accessible to artists familiar with design tools like Adobe Illustrator.
[](https://x.com/%5Fbaku89/status/1804877969166680174?ref=gorillasun.de)
[Link to Tweet](https://x.com/%5Fbaku89/status/1804877969166680174?ref=gorillasun.de)
### International RNG Day
And to cap off this segment, RNG day is a special kind of celebration that falls on a different, randomly selected, date every year - it took place last week on the 25th of June:
[](https://rngday.com/en/?ref=gorillasun.de)
[Link to Page](https://rngday.com/en/?ref=gorillasun.de)
RNG day might just be the perfect day of the year to make some generative art!
## Web3 News
### Tezos Foundation x Moving Image NYC
I haven't really been keeping up with what's been going on with Tezos - but after instating [Aleksandra Artamonovskaja earlier this year in April as the head of Arts at Trilitech](https://www.theartnewspaper.com/2024/04/15/aleksandra-artamonovskaja-is-appointed-head-of-arts-for-trilitech-the-entrepreneurship-arm-of-tezos-blockchain?ref=gorillasun.de) (the entrepreneurship firm that supports the Tezos Foundation), it seems that things have started moving in the right direction.
With their latest announcement they kick off a new partnership and collaboration with the Museum of the Moving Image (MoMI) in NYC with the aim to run a year long program that exhibits the artists currently operating across the Tezos eco-system:
[](https://x.com/tezos/status/1805931052147363852?ref=gorillasun.de)
[Link to Tweet](https://x.com/tezos/status/1805931052147363852?ref=gorillasun.de)
The special aspect of this initiative is that visitors will have the ability to collect, and *take home* complimentary fragments to the exhibited pieces in form of tokens minted on the Tezos blockchain as Open Editions - and that free of charge. This strikes several birds with one stone, introducing people to the digital ledger, giving them a taste for collecting art on the blockchain, while also giving the artists some much needed exposure. You can read more about it in this feature article from the Art Newspaper:
[A piece of the action: museum partnership in New York invites visitors to take home fragments of digital artworksThe Museum of the Moving Image (MoMI) and the Tezos Foundation have teamed up to offer the public a chance to acquire—for no cost—parts of works projected onto a screen in the lobbyThe Art Newspaper - International art news and eventsLouis Jebb](https://www.theartnewspaper.com/2024/06/26/a-piece-of-the-action-museum-partnership-in-new-york-invites-visitors-to-take-home-fragments-of-digital-artworks?ref=gorillasun.de)
They kicked things off last week on the 28th of June, with a work from the highly acclaimed Net Artist Auriea Harvey titled Echo Core:
[Echo: Core – Museum of the Moving ImageIn the ancient Greek myth of Echo, the cursed nymph is condemned to only repeat the words of others. Auriea Harvey reimagines the story in the monumental sculpture Echo (2024).Museum of the Moving Image](https://movingimage.org/event/echo-core/?ref=gorillasun.de)
### Tezos X
And there's actually more Tezos News this week - apparently there's some exciting changes coming to the tech itself! Seemingly taking inspiration from Elon Musk - that's irrevocably ruined the antepenultimate letter of the alphabet - they're calling this protocol upgrade *Tezos X*, and their thread over on TwiX provides an overview of what's in store, additionally providing a very elaborate roadmap in their official announcement (linked below):


[Link to Tweet](https://x.com/tezos/status/1806288477580820782?ref=gorillasun.de)
It's a bit of technically laden article, so if you just want the juicy bits I'll try my best to explain here - and to understand we need a little bit of historical context.
Tezos was originally designed as a monolithic chain where each node replicated all activities across the network. In such a setting increased network activity required higher bandwidth and more computational resources, which in turn risked centralization.This then later led Tezos to transition to a modular design, to maintain decentralization while also improving performance, such that tasks are offloaded to specialized modules, while consensus and governance were kept on the primary layer (L1).
This modular approach however comes with its own drawbacks, it makes the chain overall more fragmented and less composable - meaning that individual dapps aren't as interoparable depending on what modules they rely on. In the recent article they argue that scaling a single *canonical* smart rollup would be entirely sufficient to address all of the throughput needs of the chain, without compromising the other aspects:
> That’s what Tezos X envisions: the creation of a single canonical rollup able to handle - and massively expand - all activity on the Tezos network.
And that's basically the entire idea in a nutshell (as far as I understand - correct me if I'm wrong). Iff all of that sounded like some random Technobabble, here's a succinct explanation by TwiX user HPLoveBux:
[](https://x.com/Pierreo01/status/1806318136762994993?ref=gorillasun.de)
[Link to Thread](https://x.com/Pierreo01/status/1806318136762994993?ref=gorillasun.de)
So basically all the advantages of L2 tech without it actually really being an L2\. I still recommend reading their article nonetheless:
[Blockchain Evolved: the Road to Tezos XThe next generation in blockchain design: modular in design and integrated in experience, providing a scalable, cloud-like backend to a wide range of applications.Tezos SpotlightNomadic Labs, Trilitech, Functori](https://spotlight.tezos.com/tezos-x/index.html?ref=gorillasun.de)
Beyond that they're also planning on bringing support to mainstream programming languages, such as JavaScript, TypeScript, Python, and Java to allow for smart contract development in them, leading to easier developer entry.
The article concludes with "**It’ll be a reliable, usable, and scalable cloud-like backend for a wide range of applications.**" - I'm wondering if this much improved infrastructure could then also serve as a drop in replacement for traditional web2 backend/storage systems - with a similar model to what Farcaster is doing these days, where users just have to pay an upfront fee to cover the cost of transactions that are effectuated whenever they use the app.
### Awaken MetaMagical Hands
One other event that I wanted to point out here, is a collaboration between the Gazelli Art House and Verisart that's coming up later this month over in London; with the interesting title of "Awaken, Metamagical Hands" they're kicking off an exhibition featuring new works from many of the genart OGs that have helped shape the field as we know it today, such as Joshua Davis and Golan Levin. Furthermore, the exhibition is happening under the curatorial oversight of none other than John Maeda:

[Link to Tweet](https://x.com/verisart/status/1804152347024670773?ref=gorillasun.de) | [Link to Exhibition Announcement Page](https://gazelliarthouse.com/exhibitions/184-awaken-metamagical-hands-robbie-barrat-joshua-davis-golan-levin-lia-lauren/?ref=gorillasun.de)
I might also be in London later this month and build in a pit-stop for the exhibition!
## Tech and Web Dev
### Microfeatures I Love in Blogs
Since I ended up finding some time to work on the overhaul of the blog this week (more on that in a bit) I've been more actively doing some reading on web design topics again - and a recent article that perfectly fits into the category is by Daniel Fedorin, where he writes about his favorite microfeatures on blogs and personal websites:
[Microfeatures I Love in Blogs and Personal WebsitesIn this post, I talk about pleasant but seemingly minor features in personal sites](https://danilafe.com/blog/blog%5Fmicrofeatures/?ref=gorillasun.de)
Daniel enumerates a bunch of them and explains the why and how behind them improving the user experience, such as sidenotes that occur in the margins next to the main block of text of a site, a table of contents that kicks off the page and gives an overview of what's to come, as well as page progress indicators that show how far one is into the content. While all of them aren't really necessary, they all help the reader navigate your pages and overall provide a better experience.
Again, that's why platforms like Substack and Medium just aren't for me, the lack of customizability is a big detriment. I strongly believe that different types of content need to be formatted differently - programming tutorials for instance **need** to have a table of contents, because it's very likely that readers want to skip ahead to a certain section.
Here I want to point out that Daniel also wrote about his own JavaScript-less implementation of blog sidenotes - if that is something you'd like to have on your own blog as well:
[](https://danilafe.com/blog/sidenotes/?ref=gorillasun.de)
[Link to Article](https://danilafe.com/blog/sidenotes/?ref=gorillasun.de)
It's also worth mentioning the original inspiration for Daniel's post was an article from early 2023 by Hillel Wayne, that talks about QOL microfeatures in programming languages. It is also a fascinating read:
[](https://buttondown.email/hillelwayne/archive/microfeatures-id-like-to-see-in-more-languages/?ref=gorillasun.de)
[Link to Article](https://buttondown.email/hillelwayne/archive/microfeatures-id-like-to-see-in-more-languages/?ref=gorillasun.de)
### Config 2024
To assist me in my design endeavours, I picked up Figma as a software over the past week, and I found that it's quite easy to use so far. If you're not familiar with Figma, it's essentially a design/wireframing tool that lets you make design prototypes for websites and apps, and it's been super easy to use so far.
Unbeknownst to me it also happened to be Config 2024, Figma's yearly conference/event in which they showcase all of their new and upcoming features - they provide a big recap here:
[Figma Config 2024 | June 26-27 - Moscone Center SFConfig 2024: Figma’s conference for people who build productsMoscone Center SF](https://config.figma.com/?ref=gorillasun.de)
The two big things that have been making a fuss over on social media, are firstly the new minimal design of the UI, where instead of two sidebars adorning the application it's now just a simple floating bar at the bottom of the page, they call it UI3\. They also published an interesting article about the process that brought them to ultimately land on this design:
[Inside the Redesigned Figma, Where Your Work Takes Center Stage | Figma BlogOur biggest redesign of Figma’s interface in five years clears space on the canvas for designers to turn their wildest imagination into reality.Figma](https://www.figma.com/blog/behind-our-redesign-ui3/?ref=gorillasun.de)
The other feature is their new AI generator that will create designs based on an input prompt - and people have been gushing about it non-stop over on social media:
[Meet Figma AI: Empowering Designers with Intelligent Tools | Figma BlogWe’re introducing a suite of AI-powered features to help you push past creative blocks and bring your best ideas to life.Figma](https://www.figma.com/blog/introducing-figma-ai/?ref=gorillasun.de)
### Round Rects Are Everywhere!
To cap off the tech section this week - here's an older post that I somehow came across on a site titled Folkflore that recounts some fascinating tales about the *development of the original Macintosh and the people that made it*. In this particular story it tells the tale of how Steve Jobs persuaded Bill Atkins to come up with a method for creating rectangles with rounded corners:
[Folklore.org: Round Rects Are Everywhere!folklore.org](https://www.folklore.org/Round%5FRects%5FAre%5FEverywhere.html?ref=gorillasun.de)
## AI Corner - Claude 3.5 Sonnet
Last week Anthropic released Claude 3.5 Sonnet that they calaim to be more performant than any of the other models out there - even beating ChatGPT 4o on many of the benchmarks as shown in their announcement article:
[Introducing Claude 3.5 SonnetIntroducing Claude 3.5 Sonnet—our most intelligent model yet. Sonnet now outperforms competitor models and Claude 3 Opus on key evaluations, at twice the speed.](https://www.anthropic.com/news/claude-3-5-sonnet?ref=gorillasun.de)
I played a bit with it, especially with their experimental "Artifacts" feature, where it lets you generate different pieces of media according to an input prompt. Here I asked it to generate an SVG logo for the blog:

## Gorilla Updates
From my end there's been a couple of things this week - as mentioned in last week's newsletter I had my project released with Koda, and I'm super happy with the response to the project - we even got a retweet from the Polkadot TwiX account itself (which has 1.4 million followers) so that definitely brought some eyeballs on the project:




[Link to Tweet](https://x.com/Polkadot/status/1806322684495540349?ref=gorillasun.de)
Beyond that I'm also super excited to be participating in the inaugural *Digital Me* exhibition - I will have an update about it throughout the coming week:


[Link to Tweet](https://x.com/gorillasu/status/1806990158069219625?ref=gorillasun.de)
Besides that I picked up Figma to work on the overhaul of the blog - at this point I must sound like broken record - but I feel like I was making absolutely zero progress designing things directly on to go with CSS; although I shared some pretty WIPs some months ago, the main issue is that the design isn't consistent across different pages, and if it takes me a week or two to just finish one page, by the time I'm working on a different part I've long forgotten the design/aesthetic decisions that I've made earlier.
Using a design software has given me some much needed relief in that regard as things were getting a bit tad bit too frustrating - now I feel that the task's become much more manageable:
[](https://x.com/gorillasu/status/1806781785088630823?ref=gorillasun.de)
[Link to Tweet](https://x.com/gorillasu/status/1806781785088630823?ref=gorillasun.de)
Now I'm super excited to work on the design, finalizing it, before jumping back in to implement it.
## Music for Coding
Tycho obviously needs no introduction - he'll be making a return this summer with his 6th studio album. And you can already listen to the second track on the album *Phantom* here:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 61A Particle based Approach to Conway’s Game of Life - Fluid Sims in Web Assembly - Demystifying Generative Systems - Gearing up for a release on Koda - Hypersub News - Bjorn Staal’s Entagled Aftermath - OpenSauce 2024 x Bantam Tools Drama +++ lots moreGorilla SunAhmad Moussa](https://gorillasun.de/blog/gorilla-newsletter-61?ref=gorillasun.de)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 61
URL: https://www.gorillasun.de/blog/gorilla-newsletter-61/
Last updated: 2024-06-24T22:22:07.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 61st issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### A Particle based Approach to Conway's Game of Life
My most curious discovery of the past week were Particle Lenia. What might at first glance seem like a sort of self-organizing reaction diffusion pattern, is actually a particle based adaptation of Conway's Game of Life - what took me down this fascinating rabbit hole was Simone Conradi's implementation of it with MLX:
0:00
/0:08
1×
We already saw some of the things that is possible with MLX in [last week's issue](https://www.gorillasun.de/blog/gorilla-newsletter-60/) with Roman Gaditskii's experiments | [Link to Tweet](https://x.com/S%5FConradi/status/1803404664773181880?ref=gorillasun.de)
To understand what's going on here, we have to do a quick trip back in time and revisit a paper released in 2011 titled "[Generalization of Conway's "Game of Life" to a continuous domain - SmoothLife](https://arxiv.org/abs/1111.1567?ref=gorillasun.de)". The term SmoothLife does actually ring a bell here, but I never knew that it was related to the Game of Life. developed by Stephan Rafler, it's a first attempt to create a more fluid and realistic model of life-like structures based on the original rules that Conway proposed, for the simulation of organic movement more naturally than its discrete and rigid predecessor.
In SmoothLife the state of each cell is represented by a continuous variable rather than a binary state (alive or dead). Meaning that this continuous state can take any value between 0 and 1 and represents varying degrees of "aliveness", giving rise to a generalized form of the birth and survival rules of the original Game of Life, such that they are defined using smooth functions that take into account the weighted sum of the states of neighboring cells within a certain radius. This smooth weighting is visualized by gradual changes rather than abrupt state transitions.
Due to this continuous nature, the emergent patterns are seemingly more complex, more dynamic, less pixelated, and resembling natural phenomena such as fluid flows, waves, and the motion of biological organisms. It also exhibits behaviors not seen in Conway's Game of Life, such as gliders that can travel in any direction as well as structures that resemble elastic cords.
0:00
/0:13
1×
Link to an interactive web Implementation by Ricky Reusser

[Link to Original Paper](https://arxiv.org/pdf/1111.1567?ref=gorillasun.de)
Lenia (from the latin word lenis that means as much as lenient) was then a further generalization of SmoothLife, that injects smoothness into more aspects of the overall implementation, leading to an even broader range of different patterns - a good video on the topic is by birdbrain, comparing these different evolutions of the same concept:
There is a problem however with these generalized versions of the Game of Life: in both SmoothLife and Lenia the emergent creatures can only exist when they are supported by the spatial configuration of the universe that they exist in. Which leads us to the newest pitch in this narrative, proposed by researchers over at Google, they argue that a particle based implementation is a much more sensible approach to the task - they explain this in detail in an article of theirs here:
[Particle Lenia and the energy-based formulationSimple particle-based artificial life-formAlexander Mordvintsev](https://google-research.github.io/self-organising-systems/particle-lenia/?ref=gorillasun.de)
Simone Conradi also shares generously shares his implementation in form of a python notebook here:
[ALife/Particle\_Lenia\_Simulation.ipynb at main · profConradi/ALifeArtificial Life simulations. Contribute to profConradi/ALife development by creating an account on GitHub.GitHubprofConradi](https://github.com/profConradi/ALife/blob/main/Particle%5FLenia%5FSimulation.ipynb?ref=gorillasun.de)
### Grant Kot's Fluid Sims in Web Assembly
And while we're talking about particle simulations, in [an issue from a few weeks back](https://www.gorillasun.de/blog/gorilla-newsletter-46/) I wrote about particle based fluid sims, with the topic making a resurgence in my Twitter feed this week round. Grant Kot's been making a splash (pun intended) with his Web Assembly based implementation of a fluid sim, that runs super smoothly directly in the browser:
0:00
/0:07
1×
[Link to Tweet](https://x.com/kotsoft/status/1792648786826686522?ref=gorillasun.de)
What's super exciting about this is that Grant Kot has actually open sourced the implementation of this fluid sim, based on the paper "Particle-based Viscoelastic Fluid Simulation" - he provides a quick rundown of the entire thing in a YouTube video of his:
### Demistifying Generative Systems
Monk delivers the third installment in his Demystifying Generative Art series, this time with a focus on understanding and appreciating the systems that lie at the heart of the generative artist's practice. Many would argue that in genart the system is the actual artwork, rather than any of the individual outputs that it is capable of generating - positing the creation of these systems as the major creative act in the artform. Monk explains this in more detail, and showcases some of the generative techniques that artists leverage to create their systems:
[Demystifying Generative SystemsThis is the third part in a series on building a framework for appreciating generative art. In Part I, “Demystifying Generative Art,” Peter Bauman (Monk Antony) builds the case for such a framework. In Part II, “Demystifying Generative Aesthetics,” Bauman examines outputs—the results of generative systems. In Part III, he investigates another layer of the Framework, systems themselves. He spoke to Frieder Nake, Casey Reas, Emily Xie, DEAFBEEF, Matt DesLauriers, Jen Lowe and Patricio González Vivo for the piece.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/demystifying-generative-systems?ref=gorillasun.de)
The philosophical question here, is whether or not you need to understand the underlying mechanisms to appreciate an artwork for what it is - probably not, but at the same time it's a bit of a silly question: in what scenario would you not want to know how the sausage is made? Not only to gain a more informed perspective on the work but also to deepen your engagement with it - I think we hardly ever have a purely sensory-emotional response to anything, we are rational beings after all.
*Also a big thanks here for the mention in the article* 🤝
### On Fountain Pens
In what seems to be a love letter disguised as a blog post - James Merill writes about why he primarily uses fountain pens for plotting purposes, explaining how different kinds of inks can further impact the plot with their physical properties:
[Why I use Fountain pens with pen plottersFirst, I fell in love with code. Then came pen plotters because I could use code to instruct them to draw things that I found beautiful. After that, I fell in love with inks because my drawings needed spectrums of color. Finally, I stumbled upon the world of fountain pens.Lostpixels.io](https://lostpixels.io/writings/fountain-pens-plotters?ref=gorillasun.de)
## Web3 News
### Gearing up for a Release on Koda
*Let's start the Web3 section this week with some shameless self-promo, shall we?*
It's been a hot minute since I've released a genart project - over 6 months at this point, which is absolutely bonkers! This makes me super excited to announce that I'll be having a new project released over on Koda later this week on the 27th of June (exact time TBD) - "Under the Microscope" is a project that aims to celebrate the beauty of the natural world in its most minute forms, with an abstract and generative perspective on the tiny landscape that emerge under the lens of a microscope:


What started as an exploration of another circle packing pattern quickly evolved into something more intricate, a bug in my code caused shapes to overlap in all sorts of manners, which I ended up leaning into. If you'd be interested in a proper "Making of" type of post let me know, as there's a couple of interesting things going on in the code.
And if you're not familiar with Koda, it's essentially an NFT platform on the Polkadot blockchain, that's just recently broken into the genart NFT paradigm. While I'm not too familiar with the Polkadot chain, I have heard good things about it so far, and it's actually pretty interesting from a tech point of view - as far as I understand, the chain is specifically designed for ease of communication between the L2s that are built on top of it.
The folks over at Koda were also really awesome in this regard and guided me through everything that I needed to do to make the project happen - I'll likely have a few more announcements (over on my socials) about the project leading up to its release on Thursday.
### Hypersub Overhaul and V2 Contracts + Blog Member Section
Hypersub is probably the thing in Web3 that I'm currently most excited about, not only because Jonny Mack seems like a down to earth kinda guy, but also because it's enabling creators to monetize their content in a novel blockchain native manner. The Hypersub website recently got a pretty neat overhaul, with a new UI that accommodates the growing number of users, allowing for an easier discovery, while also improving the dashboards that it provides for creators to manage their subscribers:

Secondly, the protocol's recently also gotten an upgrade that gives creators a couple of new options in how they can configure their onchain subscipritions - for instance it's now possible to have different subscription tiers. If you offer a subscription token via Hypersub it'll ask you to migrate your current subscribers to the V2 contract the next time you visit your dashboard - the announcement:
[](https://warpcast.com/nonlinear.eth/0x6cf1bd4b?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/nonlinear.eth/0x6cf1bd4b?ref=gorillasun.de)
There's also an update from my end here, if you're one of my Hypersubs you can now find a new page directly on the blog to view and read all of the previously released Hypersub exclusive articles - currently consisting of two Platform reviews, 3 tutorials and a Zine (more coming very soon):
[Hypersub - Gorilla SunThis is an archive for all Hypersub exclusive posts. If these posts look interesting to you, consider subscribing to my Hypersub over here, to get access to all of these articles, 2 monthly exclusive articles, and additionally get a monthly art airdrop.Gorilla Sun](https://www.gorillasun.de/tag/hypersub/)
Since these articles are "member-only" - if you're a Hypersub, you'll have to login via your email to view them (doesn't require a password, simply a magic link sent to your inbox). If you're already logged in then you don't need to do anything.
While I really like Paragraph and the feature that allows me to token gate posts, I've been feeling a bit limited when it comes to writing my programming tutorials over there, it seems that it is not possible to embed interactive code snippets (via the p5 editor, openprocessing, or other widgest) at this point, which many of my tutorials require. I'm fully aware that it wasn't intended for this particular purpose, and likely will not accommodate in that regard.
That's why this intermediary solution should do for now, it's actually not too big of an hassle to import the email addresses from the csv sheet that hypersub provides. *Fully customizable Web3 blogging platform + CMS á la Ghost wen?* Somebody make it happen! That's it, thanks for being subscribed to my Hypersub!
### Getting Entangled
Unsurprisingly, the release of Bjorn Staal's Entangled turned out to be a smash hit. Not only did it mint out on both chains in just a matter of minutes, but it also brought back a certain kind of excitement to the fxhash community that I haven't felt in quite a while; with its innovative cross-chain mechanics, and the immaculate execution, it'll definitely go down as a historic genart project. And I'm extremely happy that I have a beautiful red one in my collection:

If you're curious to learn more about the motivations and the process behind the project, directly from Bjorn, he did an interview with Monk from Le Random that's been posted over on Twitter:

[Link to Tweet](https://x.com/fx%5Fhash%5F/status/1802734621664428035?ref=gorillasun.de)
Later this year, in September, we'll also see a live event for Entangled at the Winter Circus in Gent - I wonder what fxhash has got in store for us in that regard.
And apparently there's more to fxhash's new Vertex platform than I had assumed the first time round: it seems that we'll also get some new features in the fxhash sdk that'll allow artists to create their own custom minting experiences. I'm assuming it'll be a set of tools to create generative tokens that have the ability to interact with each other in some way just like Bjorn's Entangled does:
[](https://x.com/maerzhase3000/status/1803832257829917129?ref=gorillasun.de)
[Link to Tweet](https://x.com/maerzhase3000/status/1803832257829917129?ref=gorillasun.de)
### Null Machines by loackme and Kerim Safa
To cap off the Web3 news this week, I wanted to share another stellar project that's releasing next month; a collab between the two monochrome pixel junkies loackme and Kerim Safa titled Null Machines, putting a generative twist on Kerim Safa's trademark conveyor belts. They've set up a dedicated project page that tells a little but more about the project and how the tiny mesmerizing machines come to life, even share the recipe that aligns the animated tiles into a looping whole:
[](https://x.com/loackme%5F/status/1803697725537386918?ref=gorillasun.de)
[Link to Article](https://x.com/loackme%5F/status/1803697725537386918?ref=gorillasun.de)
If you're not familiar with wave function collapse, you should check out Coding Challenge #171, in which Daniel Schiffman covers the algorithm and even implements it from scratch:
## Tech and Web Dev
### Cognitive Load and Creative Continuity
In a living document of his, Artem Zakirullin tackles the issue of code readability from a bit of a different angle that is based in cognitive load theory. He presents several strategies for reducing the induced extraneous difficulty that emerges when code is written in certain ways:
[GitHub - zakirullin/cognitive-load: 🧠 Cognitive Load is what matters🧠 Cognitive Load is what matters. Contribute to zakirullin/cognitive-load development by creating an account on GitHub.GitHubzakirullin](https://github.com/zakirullin/cognitive-load?ref=gorillasun.de)
One of the statements that I really loved, is where he points out that having more options is rarely a good thing — and I genuinely couldn't agree more. When a programming language provides multiple different methods to solve a certain task, it will not only waste your time figuring out the one that should be used for a specific scenario, but also cost time when returning to the code later on and trying to figure out why that particular approach was chosen:
> If there are lots of features, we may spend half an hour playing with a few lines of code, to use one or another feature. And it's kind of a waste of time. But what's worse, **when you come back later, you would have to recreate that thought process!**
I also find this argument interesting because I believe that it can be extrapolatated and generalized for creative tasks in general - one of the best things you can do for yourself, is to strike the Iron while it's still hot, keeping at it when you're in that flow "state". I frequently experience this with coding, with writing, as well as when I'm scribbling down some sketches on my notebook. Finding back into a specific mental state, recreating a certain thought process, or trying to force creative spurs of the moment rarely ever works. For me at least, but that's not to say that you can't create continuity by some other means, like documenting your thoughts and ideas in some form or another.
### OpenSauce 2024 x Bantam Tools Drama
Probably the biggest thing in tech from last week was Open Sauce 2024 that took place over in San Francisco on the 15th and 16th of June. If you're not familiar, Open Sauce is an event that brings together makers, builders and tinkerers of all sorts to share their passions, and showcase their creations at various kinds of booths and exhibits set up at the venue:
[Open Sauce 2024 - Open SauceA Celebration Of Makers And Creators. A two-day event in San Francisco at Cow Palace. Attendees will explore interactive exhibits…Open Sauce](https://opensauce.com/?ref=gorillasun.de)
While I tried to find some sort of official recap, there sadly doesn't seem to be much online coverage of things (for free at least, I just saw on the website that you can purchase an archive of talks) - except for the individual creators that decided to showcase their creations via their own channels. As a big chess fan, one of my favorites was this quirky chess board that punishes you for wrong moves with an electric shock:
Beyond that, there also seems to have been some sort of drama revolving around Bantam Tools (the company that acquired Evil Mad Scientist earlier this year, the creators of the AxiDraw) setting up an improptu booth at the Open Sauce venue, which in turn prompted a pretty harsh response from the founder of the event William Osman, stemming from the fact that Bantam Tools had originally declined sponsoring the event. Osman's tweet now sits at around 100k likes on Twitter, which is kind of bonkers:

[Link to Tweet](https://x.com/WilliamOsman/status/1803869773484429330?ref=gorillasun.de)
To me it seems like a big misunderstanding, but judge for yourself, here's a clickbaity recap of what happened:
### Progressive Blur in CSS
Last week I wrote about blurs in CSS, this week I discovered another useful nugget in that regard. Dennis Brotzky shows us how to create a nice seamless blur with CSS - this is actually something I have encountered some weeks ago without finding a proper solution to it. When you combine the backdrop filter blur with a transparent linear gradient it gives for a cool modern aesthetic, but the issue with the blur filter is that it creates a hard cutoff edges wherever the blur is bound to start/end.
Turns out that the solution boils down to layering several blurs and positioning them in a staggered manner to accentuate the effect in the same direction of the linear gradient:
[](https://x.com/brotzky%5F/status/1802739980827308314?ref=gorillasun.de)
[Link to Thread](https://x.com/brotzky%5F/status/1802739980827308314?ref=gorillasun.de)
## Gorilla Updates
While I did spend time on finalizing some of my upcoming genart projects, I also found myself with quite some free time on my hand for the first time in a long while. While I considered picking up some new video games (Elden Ring DLC looking really good right now, but not sure if I'm just ready yet to get my ass whoopped again), I actually ended up spending most of it trying to learn more about building web apps with the long term goal to eventually be able to build something solid that has a backend attached to it. And I actually ended up having a blast doing so.
Earlier this week I managed to figure out how to sign up and login new users using Supabase with their vanilla js API, which quickly led to me realizing that there's a lot more to authentication flows than just logging in a user. You essentially have to design your entire web app around this auth flow. While I might at some point try and figure it out with vanilla js, it feels like reinventing the wheel here.
This had me looking at some of the starter templates that Supabase provides, including most of the popular modern js frameworks such as angular, vue, react, and next. I ended up picking next js, partially because it seems to have everything that I currently need to build an app, but also because I discovered a free course for it by egghead.io, which teaches you how to build a Twitter clone from scratch (not sponsored):
[Build a Twitter Clone with the Next.js App Router and SupabaseNext.js App router is ushering in the next era of web development. The App router leverages React Server components for the first time. React Server c…egghead](https://egghead.io/courses/build-a-twitter-clone-with-the-next-js-app-router-and-supabase-19bebadb?ref=gorillasun.de)
I'm about 60% of the way through it at this point, and it's already answered a lot of the questions that have been swirling around in my head for a couple of months now. And that's pretty much everything from my end this week, hope to have some more dev updates in the next issue.
## Music for Coding
This week's Music for Coding highlight was a tough call - the YouTube algo decided to suggest me a whole slew of different Metal albums all at once, and between the bands Ten Ton Slug, Monkey Bog, Robot God, Atomic Vulture, and Morgul Blade, the last one emerged as the winner. I'm not making these names up 😆, and although all of them got some absolute banger tracks - as a big LOTR fan, Morgul Blade stands out with its thematic twist. Might not be everyone's cup of tee, but I enjoyed having these on in the background while going about my day:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 60The GJK Algorithm for Polygon Intersections - Optimizing Ray Tracers with Sebastian Lague - Turning Genart into Optimization Problems - Getting Fedified - Kaloh x Jonny Mack Podcast - Scribble Together by Minimizer - I/O 2024 Recap - Stable Diffusion 3 +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-60)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Creating Organic Blob Shapes with Circles and Tangents
URL: https://www.gorillasun.de/blog/creating-organic-blob-shapes-with-circles-and-tangents/
Last updated: 2024-07-13T12:08:51.000Z
In this tutorial I'll show you how to create interesting wavy and blobby shapes by tracing around the circumferences of a bunch of circles. Throughout we'll tackle how to partition things with code, how to compute the tangents between two circles, and also deal with some tricky angle computations.
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 60
URL: https://www.gorillasun.de/blog/gorilla-newsletter-60/
Last updated: 2024-06-17T06:39:12.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 60th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
*That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup 👇*
## All the Generative Things
### The GJK Algorithm for Shape Intersections
This week I learned about the GJK algorithm; an elegant and very efficient method for computing shape intersections - with the special twist that it takes quite an unorthodox and unexpected approach to achieve this.
A number of resources seemingly decided to all resurface at the same time, pointing me towards the algo - classic scenario of the Baader-Meinhof phenomenon I'm guessing - one of them was an article over on *Henry*'s blog, that also hit the front page of Hacker News in the meantime:

[Link to Article](https://computerwebsite.net/writing/gjk?ref=gorillasun.de) | [Check out what people have said over on Hacker News](https://news.ycombinator.com/item?id=40660761&ref=gorillasun.de)
So what's this algo about? The GJK algorithm leverages the fact that we can represent geometric shapes as sets of infinitely many points. And, logically, if these two sets share just a single point we can determine that they intersect and overlap. How can we compute this though? It's not feasible to just make an infinite number of point comparisons. An important mathematical notion that emerges in this setting and plays a big part in the GJK procedure is the Minkowski sum.
[](https://en.wikipedia.org/wiki/Minkowski%5Faddition?ref=gorillasun.de)
In a nutshell, it's a method that lets us create a new geometric shape by adding all possible vectors in one shape (the vector going from the origin to an arbitrary position inside of the shape) to all vectors in the other shape - essentially "adding" the two shapes together. The cool thing about this is that it's equivalent to sweeping one polygon along the contour of the other, and then marking the area that's covered by this *sweeping* operation. Here's two diagrams to visualize this - it's oddly difficult to mentally predict the resulting shape just by seeing the two individual ones:


I found this interesting in of itself - especially in a generative context it gives me a lot of ideas. For the GJK algo however, we care about the "corresponding inverse" of this addition, the Minkowski difference that you might have already spotted in the Wikipedia explanation above. You can think of this difference as a shape that lets us generate one of the original shapes when we compute the Minkowski sum with the other original shape. Meaning that it isn't a commutative operation like the addition.
It might not be a very intuitive observation, but if this Minkowski difference between the two shapes now contains the origin, it means that the two shapes overlap/intersect. That's great, but that doesn't solve the issue of doing an infinite number of point comparisons... what if we could compute this Minkowski difference with an alternative method though? That's exactly what the GJK algorithm does, circumventing the issue again with a super smart observation and a shift of perspective - I'm not going to spoil all of it here now, if you're curious about it I highly recommend watching the following video from Reducible, that does an incredibly job at breaking down the entire procedure in a very simple language:
Now if we couple this with an ear-clipping/triangulation algorithm that can represent concave shapes as convex components, we can essentially compute the intersection of arbitrary shapes in a very efficient manner. Implementing the GJK might be a super valuable topic to tackle as a tutorial in the future.
### Sebastian Lague on Optimizing Ray Tracers
It's always a good week when Sebastian Lague comes out with a new video - and this time it's quite a fitting one actually. Just [two weeks ago](https://www.gorillasun.de/blog/gorilla-newsletter-58/) we talked about Ray Tracing in context of Frank Force's "City in a Bottle" - a minimal code golfed ray-caster. Lague's new video this week is a direct continuation of an exploration from a year ago, in which he explains and codes a (simple) ray tracer from scratch - in case you'd like to watch that video first, here you go:
In the second installment he talks about some of the improvements that can be made to speed up the ray-tracing procedure, such as some of the methods that reduce the number of ray collision checks that need to be made to determine if a ray intersects with a particular simplex in the scene:
### Simulating Physics with Machine Learning
I would usually cram this into the Gorilla Updates section towards the end of the newsletter, but Roman Gaditskii's been sharing some really cool experiments that it merits being showcased here.
Two weeks ago I started exploring a special kind of geometric shape, in which I deform the edge of a rectangle with a bunch of circles, tracing around them to create a sort of wave pattern - I iterated on this idea and also made a version that wraps around the circumference of a circle, which then involved the computation of tangent points to the individual circles. It ended up being reminiscent of Dmitri Cherniak's famous Ringers — that I assume also does something similar (could be wrong on that), simulating a thread being wound around a number of circular cogs.


Sharing these WIPs over on Twitter ended up being an inspiration to Roman, who decided to not directly figure out the math behind it but rather turn it into an optimization problem and use a neural network to solve it for him - here's what he ended up with:
0:00
/0:09
1×
Yes, what a lazy way to recreate this | [Link to Tweet](https://x.com/gadirom%5F/status/1801366661360193840?ref=gorillasun.de)
I thought that it's quite impressive, firstly because my version is actually static, where the individual circles can't be moved around, and secondly because I have no idea how MLX works. Asking about what's going on here, Roman elaborates a bit:
[](https://x.com/gadirom%5F/status/1801383884233576688?ref=gorillasun.de)
[Link to Tweet](https://x.com/gadirom%5F/status/1801383884233576688?ref=gorillasun.de)
So, as far as I understand it, this means that the model is adjusting the curve lines (the two angles at which the tangents meet the circle) based off of the the scalar product between the radius and the incident tangents - I'm assuming that because this scalar product is zero when the two vectors involved are perpendicular, it's thus a meaningful target for the loss function. I could be interpreting this completely wrong though.
Roman also explored another similar idea later on, which kind of went viral, comparing two different optimizers for the purpose of a somewhat elastic chain of nodes:
0:00
/0:11
1×
[Link to Tweet](https://x.com/gadirom%5F/status/1801960993704067377?ref=gorillasun.de)
So what's Apple's MLX? As an abbreviation for "Machine Learning eXperience", it's basically an ML framework that leverages the silicon hardware of apple devices to perform computations. If you've got an apple device you might want to try it out here:
[GitHub - ml-explore/mlx: MLX: An array framework for Apple siliconMLX: An array framework for Apple silicon. Contribute to ml-explore/mlx development by creating an account on GitHub.GitHubml-explore](https://github.com/ml-explore/mlx?ref=gorillasun.de)
I'm super stoked to see where Roman takes this next!
## Web3 News
### The Ghost CMS is getting Fedified
While you might not directly think about ActivityPub or the Fediverse as something in the realm of Web3, it's still a decentralized technology and hence merits a spot in the this segment of the Newsletter. I've previously mentioned it, but the awesome people over at Ghost have been hard at work figuring out how to integrate the Ghost CMS with the ActivityPub protocol, and after 5 weeks of keeping us posted via a dedicated Newsletter, they've had their first breakthrough.
A comment on last week's issue, pointed them towards an open source framework called Fedify, that describes itself as: *a library that aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience:*
[FedifyFedify is a TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse.What is Fedify?](https://fedify.dev/?ref=gorillasun.de)
In other words, a library that provides boilerplate functionality to build a Fediverse compatible service. In the most recent issue of the Newsletter they simply reached out directly to Hong Minhee, the creator of Fedify, asking him about the library and the intent behind it - if you're curious to read about it you can find more information here:
[Alright, let’s FedifyProblem: It’s the end of a long week and your soul is tired from the endless monotony of slowly but surely conforming your behaviour to accommodate social acceptability as defined by our algorithmic overlords. Solution: Pull up a chair and engage in escapist optimism by reading about an equally disheveledBuilding ActivityPubGhost](https://activitypub.ghost.org/day-4/?ref=gorillasun.de)
The plan right now is to leverage Fedify to build out the ActivityPub service into its own standalone open source service. While it will be integrated as an out-of-the-box feature with Ghost in the future, it'll also be useable by others that don't necessarily use the Ghost CMS. I'm already looking forward to next week's update!
### Kaloh's PodCast ft. Jonny Mack
I've been using Hypersub for more than a couple of weeks now and it's been a total blast, it's really helped with creating some more exclusive content and supplement the rest of my blog work. Jonny Mack, the creator of Hypersub (and originally the Fabric protocol) has also been super supportive over on Warpcast, recasting whenever I had a Hypersub related update.
This week Kaloh's invited Jonny onto the podcast, asking him about his endeavors, the motivations behind it, and what's in store for the future:
### Scribble Together by Minimizer
You might already know Minimizer as the creator behind the Infinite Scribble project - he's now back with a new project that's somewhat of a spiritual successor as a different kind of collaboration; titled "Scribble Together" he's reached out to 20 of his genart friends asking them to create palettes for the colorization of the project's outputs:
[](https://x.com/minimizer%5Fart/status/1800978575329571067?ref=gorillasun.de)
[Link to Tweet](https://www.gorillasun.de/blog/gorilla-newsletter-59/)
I'm also super curious about the algo behind these patterns - if you asked me to recreate these I'd have no clue where to start! Maybe some sort of semi-quantized noise function to guide the flow of the thicker strokes that occur throughout 🤔
## Tech and Web Dev
### I/O 2024 Recap
This past year has been quite an exciting one for CSS, with more than a few interesting developments - for instance, we now have native support for scroll driven animations as well as view transitions, that streamline modern JS-less web experiences to a great extent. Here's a stellar example of view transitions in action:
0:00
/0:08
1×
[Link to Tweet](https://x.com/FredKSchott/status/1800548938434642119?ref=gorillasun.de)
We also got a whole bunch of other new features and tools that enable complex interactions, as well as a number of quality of life improvements that address many of the pain-points that have become common-place with modern web development - the Chrome Developer Blog provides us with their yearly massive recap enumerating all of these updates:
[The latest in CSS and web UI: I/O 2024 recap | Blog | Chrome for DevelopersRead all of the CSS and Web UI announcements from Google I/O 2024.Chrome for DevelopersX](https://developer.chrome.com/blog/new-in-web-ui-io-2024?ref=gorillasun.de)
### Composing JavaScript Functions that take Multiple Parameters
In a previous article of his back from 2022, James Sinclair wrote about function composition - a paradigm in functional programming that revolves around chaining functions together and creating specific program 'flows' with them. The important part here is that these functions are arbitrarily compatible and can be chained in any order. If you're curious to learn about this I would recommend checking out Sinclair's piece on this:
[JavaScript function composition: What’s the big deal?To hear some people talk, you’d think function composition was some kind of sacred truth. A holy principle to meditate upon whilst genuflecting and lighting incense. But function composition is not complicated. You probably use it all the time, whether you realise it or not. Why, then, do functional programmers get all worked up about it? What’s the big deal?James Sinclair](https://jrsinclair.com/articles/2022/javascript-function-composition-whats-the-big-deal/?ref=gorillasun.de)
Compositing functions this way usually requires them to be unitary, meaning that they accept a single input and return a single output (default output behavior anyway). This becomes problematic in settings where you need to work with a state that can't be expressed by a single variable. If you're thinking about collating information in form of an array/object then you're already on the right track, but there's more to it than that. While I'm probably making this seem like it's not very exciting, Sinclair explains the intricacies of it, and showcases some scenarios where this is useful:
[How to compose JavaScript functions that take multiple parameters (the epic guide)Function composition is beautiful. It lets us create elegant function pipelines. And when everything lines up, the data flows like maple syrup over pancakes. But what happens when the functions don’t line up? What if some of those functions expect more than one argument? What do we do?James Sinclair](https://jrsinclair.com/articles/2024/how-to-compose-functions-that-take-multiple-parameters-epic-guide/?ref=gorillasun.de)
### Seasons and Falling Leaves
Fittingly titled "What remains of the Seasons?", Mathieu Rudaz put together a beautiful website that visualizes how the seasons have changed over the past years via a nifty scroll animation that causes a tree to go through the different stages of shedding and growing back its leaves. The page is in French, but a simple click on your browser's translation function should remedy this:
[En images et en graphiques – Que reste-t-il des saisons?Le développement de la végétation n’a jamais été aussi précoce que cette année. L’expression «y a plus de saisons» est-elle devenue réalité?Tamedia Publications romandes S.A.Mathieu Rudaz](https://www.tdg.ch/climat-que-reste-t-il-des-saisons-380282963891?ref=gorillasun.de)
### Blur Filters and Blur Alignment
If you already know how a blur filter works, then this is nothing new, but I still found this animation that visualizes how a blur filter passes over an image by Dan Hollick quite interesting:
0:00
/0:10
1×
[Link to Tweet](https://x.com/DanHollick/status/1800450566025527714?ref=gorillasun.de)
Coincidentally I also found another tweet that shows an interesting blur trick for the visual alignment of elements, especially when it comes to placing icons somewhere in the corner of a container or parent element - this is also better referred to as optical fit, which could come in handy during your design endeavors:
0:00
/0:19
1×
[Link to Tweet](https://x.com/avstorm/status/1666845758824251393?ref=gorillasun.de)
## AI Corner
### Real Photo wins AI Image Contest
I dismissed this as an engagement farming headline when I first saw it over on Twitter - considering it a fun take on the inverse "AI Image wins photography contest" from a few months back - while in a way it is a fun take on this past incident - it also is a real incident. Miles Astray decided to turn the tables on AI art with this stunt of his, in an interview he explains:
> After seeing recent instances of AI-generated imagery beating actual photos in competitions, I started thinking about turning the story and its implications around by submitting a real photo into an AI competition
The write-up over on PetaPixel provides a good recap of this:
[Photographer Disqualified From AI Image Contest After Winning With Real PhotoThe photographers strike back.PetaPixelMatt Growcoot](https://petapixel.com/2024/06/12/photographer-disqualified-from-ai-image-contest-after-winning-with-real-photo/?ref=gorillasun.de)
### Stability.ai releases Stable Diffusion 3
While I'm still not really impressed with the quality of the images from SD models, stability's just released SD3, and beside being a more powerful model, now also provide a bunch of additional new features to keep up with the other image generators out there. You can read about everything new in their official announcement:
[Stable Diffusion 3 Medium — Stability AIWe are excited to announce the launch of Stable Diffusion 3 Medium, the latest and most advanced text-to-image AI model in our Stable Diffusion 3 series.Stability AIGuest User](https://stability.ai/news/stable-diffusion-3-medium?ref=gorillasun.de)
For instance, subscribing to their paid tier lets you access an online chat interface, similar to ChatGPT and Gemini, where you can prompt the model for images, but also directly upscale, outpaint, and even generate video clips from the generated images (not a promo). They even have a dedicated function for removing backgrounds, and prompting the removal of particular items/objects in the scene. I gave it a try on their free trial (remind me to cancel that later) just to see how well it holds up, and it's pretty descent actually:


Here I asked it to generate a "Japanese Landscape" and then replace the "river" with a "road". And I'm quite impressed actually how well it did it at keeping everything pretty similar except for removing the river just like I asked it to. But maybe that's an easy example for it to solve, I'm not entirely sure. I also asked it to upscale the original image twice, and it didn't actually introduce any new artifacts in the process.
It still struggles with fine grained details and texture however, as opposed to DALL-E, Magnific, and Mid Journey that seem to have solved these issues - I'm guessing the secret sauce here is training on copyrighted material? Will probably play around a bit more with SD3 before I make up my mind entirely - will also be interesting to see if EmProps integrates SD3 soon in light of their interface overhaul, might be straightforward since SD3 also makes the API readily available.
## Gorilla Updates
I already showed what I worked on this week earlier, when I talked about Roman's MLX experimentations - but here's some more WIPs from the idea:





The way I wrote the code actually lets me trace around any arbitrarily positioned circles - à la ringers basically. I still have to think about what I want to do with these shapes though, somehow they reminded me of corals, which is why I tried leaning into that aspect of it.
One last thing I'd like to share here, is an email from Daniel Borowski, where he shared some WIPs of a project he's working that's inspired by an older article/sketch idea of mine:
[An Object Oriented Approach to Random WalkersA closer look at random walkers, and how to make them explore and traverse an underlying grid, in p5js.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-object-oriented-approach-to-random-walkers/)
> I had an idea for a game for some time now that was similar to things like [Halite](https://github.com/HaliteChallenge/Halite?ref=gorillasun.de) and the OG [ants ai.](http://ants.aichallenge.org/?ref=gorillasun.de) I drew some inspiration from some tweets of yours I saw some months back \[...\] and ended up creating a game where you can code some "bots" that move around a grid, fight other players' bots, gain energy, fight, break down walls, etc. Still a WIP, just wanted to reach out since one of your tweets is what finally got me to start working on this idea!

Daniel's email definitely made my day! I really appreciate it whenever someone reaches out to me and shares some work that they've made by being inspired from some of the stuff that I've put out into the world. If you ever make something, don't hesitate to reach out!
## Music for Coding
In an attempt to make my YouTube addiction a bit more useful and educative, I've been watching a lot of Kurzgesagt videos this past week. Not only is the art-style a huge inspiration, but also the background music that sets the overall mood of the videos. I learned that the ambient background tracks are composed and produced by Epic Mountain, a team of music makers that take on all sorts of different scoring projects. You can find all of the tracks that they've put out so far over on their YouTube - and tere's their most popular track to-date with a whopping 1.3 million views, and it's quite a treat:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got also got a discord now, let me shamelessly plug it again here. Come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the newsletter here:*
[Gorilla Newsletter 59Kusakari’s approach to Soft Body Sims - Quadrangulations in Video Games - RCS Interview with Roman Verostko - The 70000 Year History of Generative Art - Cara: Anti AI Social Media - fxhash kicking off Vertex with Bjørn Staal’s Entangled +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-59)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 59
URL: https://www.gorillasun.de/blog/gorilla-newsletter-59/
Last updated: 2024-06-10T10:09:47.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 59th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
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, come and say hi - [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de) That said, **hope that you're all having an awesome start into the new week!** Here's your weekly roundup 👇
---
## All the Generative Things
### Kusakari's Soft Body Blobs
To kick off this week, Kusakari's been making a splash over on TwiX with some really fun soft body animations:
0:00
/0:14
1×
[Link to Tweet](https://x.com/kusakarism/status/1792924068129157192?ref=gorillasun.de)
In computer graphics, soft body physics (or soft body dynamics) deals with simulating the movement and behavior of squishy objects; unlike rigid objects with fixed shapes, soft bodies can deform and jiggle. Imagine a bouncing ball made of rubber compared to one made of steel. There's a number of approaches to simulating these soft bodies, but the most common approach, that you find in creative coding at least, is via a particle-spring mesh, and depending on what kind of object you want to simulate the configuration of it will usually vary.
If you're curious about the topic, I've written about it back in 2023, and it's actually surprisingly easy to achieve:
[Programming Soft Body Physics and BlobsOne approach to modeling deformable objects in computer graphics are spring-mass systems: a technique that allows us to bring Soft Body physics to life. Picking up from the particle mesh that we created last time; in this post we’ll tackle different configurations for blob-like shapes.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/soft-body-physics-and-blobs/)
When I first saw the behavior of Kusakari's squishy rectangles/bands I assumed that some sort of physics engine was used to create the animations - but the #p5js hashtag suggested otherwise. Especially when you observe at the longer elongated bands/rectangles, while they're quite bendy they still somehow retain their overall shape and don't collapse on themselves when at rest or when there's other shapes pressing down on them.
Kusakari's TwiX feed was a super useful open notebook documenting their progress - digging into it a bit more, it turns out that this particular behavior stems from the particular configuration that Kusakari's come up with, where the individual particles are tightly packed and cover the entire interior of the shape:


[Link to Left Tweet](https://x.com/kusakarism/status/1787374025561587746?ref=gorillasun.de) | [Link to Right Tweet](https://x.com/kusakarism/status/1790711769327087955?ref=gorillasun.de)
The second tweet suggests that there's an additional trick here with some sort of calculation happening between the internal particles of a shape such that they repulse each other.
One other thing that I'm not entirely certain about is if Kusakari's animations are rendered in real-time; having to compute that many particle and spring interactions can be quite intensive on the CPU - but maybe there's an additional grid-lookup that's helping out with that under the hood. All in all, super super cool exploration!
### Björn Ottoson's Irregular Grids aka Quadrangulations
Björn Ottoson - [who you might know as the creator of the oklab color space](https://bottosson.github.io/posts/oklab/?ref=gorillasun.de) \- has recently been sharing some really cool WIPs over on TwiX, showcasing his development progress on a town/city building game of his. The most recent tweets visualize the creation of interesting, organic looking irregular grid and tesselation patterns:


[Link to Left Tweet](https://x.com/bjornornorn/status/1798344289677889964?ref=gorillasun.de) | [Link to Right Tweet](https://x.com/bjornornorn/status/1781379998047158333?ref=gorillasun.de)
If these look familiar, then you might've previously seen the game Townscaper by [Oskar Stålberg](https://twitter.com/OskSta?ref=gorillasun.de) where the terrain is also based on a similar type of grid. What's fascinating about them is how they're relatively even throughout, but then collapse at certain positions so that some vertices have more than 4 outbound/inbound edges. Maybe it's due to how my brain is wired from years of making generative art and playing video games, but visually they're super satisfying to look at. The difference with Björn's approach, is that he allows the player to create their own grid configuration by placing individual nodes.
Digging into the topic a bit more, I came across a Tweet by Stålberg back from 2019 in which he writes about his approach to creating these kinds of grids - even providing a super useful animation that illustrates the overall procedure:
0:00
/0:08
1×
[Link to Tweet](https://x.com/OskSta/status/1147881669350891521?ref=gorillasun.de)
And it seems that the proper term for these patterns is Quadrangulation, as Amit Patel points out (the OG behind the massive resource Red Blob Games). So basically just like triangulations (think Delaunay) but with quads:
[](https://x.com/redblobgames/status/1181437664303562752?ref=gorillasun.de)
[Link to Tweet](https://x.com/redblobgames/status/1181437664303562752?ref=gorillasun.de)
I highly recommend checking out the entire thread of replies where other people pitched in with their own takes on the concept. Also follow Björn over on TwiX, his stuff's really cool.
### When the Artists Met the Algorist
Roman Verostko, another early pioneer of algorithmic art sadly passed away recently on the 1st of June 2024\. In a similar vein to Harold Cohen, Verostko also employed pen plotters as an extension to his artistic self - I believe that he is among the first to strap a brush onto a plotter. Back in 2022, RCS had the chance to interview Verostko, he recounts his long career in the field:
[When the Artists Met the AlgoristAfter a pioneer of generative art reached out to RCS, the community jumped at the chance to talk to Roman VerostkoAlex Estorick](https://www.rightclicksave.com/article/when-the-artists-met-the-algorist?ref=gorillasun.de)
What makes this piece special is that it brings many of the current leading artists to join in on the conversation and ask Verostko their own questions - Verostko provides insightful perspectives:

Verostko explains the importance of incorporating personal experiences in the creative process, even when these ideas are expressed through an algorithm.
### The 70,000 Year History of Generative Art
The yearly Non Fungible Conference (NFC) took place last week in Lisbon, and Monk from LeRandom made an appearance giving us a whirlwind tour of generative art, condensing its 70000 year long history into just the top 10 most important moments - fortunately for us, the talk was recorded and can be re-watched over on YouTube here:
## Cara: a Social Media against AI
You've probably seen it already - a new social media platform's been on the rise. Cara is a direct response to Meta AI's new policies for training their AI models on user data - where you're opted in by default and have to go through an arduous process/form to opt out. Cara promises to be a safe haven for artists in this changing landscape of data privacy policies - which are starting to become more and more meaningless. The new app saw a massive influx of users in just a couple of days:
[A social app for creatives, Cara grew from 40k to 650k users in a week because artists are fed up with Meta’s AI policies | TechCrunchArtists have finally had enough with Meta’s predatory AI policies, but Meta’s loss is Cara’s gain. An artist-run, anti-AI social platform, Cara has grownTechCrunchAmanda Silberling](https://techcrunch.com/2024/06/06/a-social-app-for-creatives-cara-grew-from-40k-to-650k-users-in-a-week-because-artists-are-fed-up-with-metas-ai-policies/?guccounter=1&guce%5Freferrer=aHR0cHM6Ly90LmNvLw&guce%5Freferrer%5Fsig=AQAAADIMCYOWfIyhkD1IaBSnjrfPkeEL5lGax6BwE1%5FHtjT8ouFynP79LyXa8V2cBNZd-Y2z9g-R1j-a-PB1KK50jORXOqya1xGM6GA9wMcejgujfakDyWIB9FwvujfNcBQQq-gk9kA5PUFJl0m7osIbGxklcVsMofJROgmoejUAt4pB&ref=gorillasun.de)
What's special about Cara is that it provides anti-AI tools out of the box, I wrote about Glaze a couple of months ago - it's essentially an AI tool that places invisible watermarks on digital images rendering them useless for training purposes.
From my first impression, Cara doesn't posit itself as a very friendly platform for generative art - when posting, the app asks you to tag your post with a category, currently there is not genart tag option on the list. A discussion on the discord indicates that people would take more kindly to the terms "procedural" or "parametric", but again, we find ourselves in a semantic conundrum: the suggested terms do not reflect the emergent and autonomous properties of generative art. By that definition, maybe the term generative art is itself not the ideal term to describe the art-form, and is merely the accepted term that's established itself over time.

[Link to Discord Thread](https://discord.com/channels/1053156655115817012/1248638917679251557/1248638917679251557?ref=gorillasun.de)
## Web3 News
### fxhash's Vertex x Bjørn Staal's Entangled
This week's hottest Web3 news comes directly from fxhash, revealing their newest initiative called *Vertex.* And they're kicking things off with Bjørn Staal's project - that you might remember seeing in a tweet of his a couple of months ago, and kinda sorta breaking the internet:
[](https://x.com/%5Fnonfigurativ%5F/status/1727322594570027343?ref=gorillasun.de)
[Link to Tweet](https://x.com/%5Fnonfigurativ%5F/status/1727322594570027343?ref=gorillasun.de)
The release strategy for the project is actually quite avant-guard; we've seen a couple of projects that have already been released in a cross-chain manner (and it's kinda worked out well), Entangled will follow that same approach, with one half of the editions being minted on the Tezos chain, and the other on Ethereum. What's special however, to further highlight the dual nature of the project and have it transcend the confines of a single blockchain, editions minted on one chain will be entangled with another edition on the other chain:

[Link to Discord Message](https://discord.com/channels/900333075509149767/909081044932788295/1248696020385136703?ref=gorillasun.de)
I'm wondering if that literally means that the two particle orbs - when run in two browser windows on the same machine - will only entangle with each other in the case that they constitute such a mint pair? It will definitely be interesting to see what kind of market dynamics this will cause on secondary. Beyond that, there's another educative dimension to the release - digging into the announcement page that's been setup for the project, the very last line hints at something that I personally find very exciting:
> All VERTEX projects will arrive fully open-sourced and accessible for everyone to learn from and build on.

Here's the codes bro!
This means that the code for Entangled will be entirely open sourced - the word *guide* here indicates that it'll actually be more than that and also feature some additional explanations for the project. I'm hoping that this will also include the parts of the code that handle the cross-chain entanglement aspect. Seems to also be a cheeky answer towards the issues surrounding the original Tweet when people were directly asking for the source code of the project.
### Onchain Summer kicks Off
Onchain summer is a global virtual Web3 hackathon organized and hosted by Base (coinbase), where builders of all sorts can get rewarded for their blockchain projects and initiatives - if you're building something, or have a cool idea you might as well send in your application or apply for the grant program that's running in parallel:
[Onchain Summer | BuildathonOnchain Summer is back to unleash onchain creativity and invite everyone to build all summer long. Build, create, and get rewarded. June – August 2024.Buildathon](https://www.base.org/onchainsummer?ref=gorillasun.de)
### Highlight's Digital Artist Index
One other interesting info from last week was Nat Emodi sharing that they've been working on creating a digital artist index over highlight, planning to encompasses the top 1k artists and all of their EVM tokens (Ethereum Virtual Machine):
[](https://x.com/natemodi/status/1798689293298209248?ref=gorillasun.de)
[Link to Tweet](https://x.com/natemodi/status/1798689293298209248?ref=gorillasun.de)
## Tech and Web Dev
### How Microsoft Office's First Vulnerability was Discovered
Not really a tech update but quite an interesting recount from Greg Linares that hails all the way back to 2006 when Microsoft Office 2007 had just come out. All while downing more than a few drinks throughout posting his thread, he tells us how him and his team had to scramble to save face and find an actual vulnerability in the Office software, after having falsely reported one to the media that wasn't actually an issue:
[](https://x.com/Laughing%5FMantis/status/1799457232607985698?ref=gorillasun.de)
[Link to Thread](https://x.com/Laughing%5FMantis/status/1799457232607985698?ref=gorillasun.de)
### On Constraints and Freedom
In an article of his Alan Smith explains that giving users more options is not always to their benefit. He recounts how this was the case for the Canvas Kit that he helped develop, where providing multiple ways to style components led to inconsistent and inefficient implementations:
[On Constraints and Freedomlessons learned from component styling APIs](https://www.alanbsmith.dev/writing/on-constraints-and-freedom?ref=gorillasun.de)
Realizing the need for a unified approach, Smith introduced "Stencils" in Canvas Kit v10, an object-based styling solution that reduces decision-making time and cognitive load while promoting a CSS-first mindset. The key takeaway here, is that constraints can enhance productivity by simplifying choices, and in turn allows users to focus on creating.
## AI Corner
### The Algorithmic Gaze by Danielle King
Drawing on John Berger's and Laura Mulvey's theories, Danielle King wrote a highly interesting and relevant piece for Le Random, discussing how historical and contemporary biases find their way into AI datasets and end up deeply embedded in them, resulting in a sexualized and idealized depiction of women in AI generated content. Danielle proceeds to showcase a number of artists that are currently challenging these biases and provides some thoughts on combating the *algorithmic gaze* in the future:
[The Algorithmic Gaze: Representations of Women in AI ArtEmploying John Berger’s Ways of Seeing (1974) as a critical lens, Danielle King observes the rise of the algorithmic gaze—the perpetuation of the male gaze into the realm of AI-generated art—underscoring entrenched patriarchal values and the protracted commodification of female bodies.Le RandomDanielle KingDanielle King is an artist, collector, writer, and curator based in Western Massachusetts.](https://www.lerandom.art/editorial/the-algorithmic-gaze-representations-of-women-in-ai-art?ref=gorillasun.de)
### Suno.ai Music from Samples
Apparently Suno's got a new feature, where it's now possible to create tracks based of off audio samples. To showcase this they reached out to the AI OG Mario Klingemann to take it for a test drive - and naturally he delivers a banger, sampling a dialogue snippet from an old movie in the public domain:
[](https://x.com/quasimondo/status/1797673004115370036?ref=gorillasun.de)
[Link to Tweet](https://x.com/quasimondo/status/1797673004115370036?ref=gorillasun.de)
It's not yet a public feature (not that I'm aware of), but it seems their models are just getting better and better; they just recently released their improved 3.5 model that seems to be quite a bit more potent as compared to the previous iterations - I'm assuming this is due to the feedback that they've received from the users on the platform thus far, via the upvote/downvote buttons next to each generated song.
On this note, you might also want to check out the competition that they're currently hosting throughout June (and the coming summer months), offering some quite beefy prize money for the top participants:
[](https://x.com/suno%5Fai%5F/status/1796556065972035868?ref=gorillasun.de)
[Link to Thread](https://x.com/suno%5Fai%5F/status/1796556065972035868?ref=gorillasun.de)
## Gorilla Updates
While my personal life has still been quite chaotic, I did managed to get in some generative explorations, and in a long time feel that I am managing to be ahead of the curve again - I returned to a previous idea and actually made some outputs I thought looked pretty nice:


Another exploration was the following generative shape:
0:00
/0:16
1×
If you're curious about how it's made - all you need is a bunch of circles really. I don't however know what to do with it at this point though. Replicating the shape on the canvas multiple times, allowing for overlaps and experimenting with different blend modes does make for some interesting compositions however:


And that was pretty much it. I did also work a little bit on the blog, but there wasn't that much progress on that front. Maybe next week I'll have a bigger update.
## Music for Coding
Last week I discovered the music of Ryan Lee West, who creates expansive and textural soundscapes under the alias of Rival Consoles... and I was instantly blown away! It's a bit difficult to pin down the genre exactly, but if you're a fan of *minimal atmospheric techno*, that's built with a human touch, you'll definitely enjoy these sounds:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got a discord now, let me also just plug that here, come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the Newsletter here:*
[Gorilla Newsletter 58256 Byte Raytracer - Vertex Shader Domain Warping - Amy Goodchild’s Meaningful Nonsense - Painting with Plotters - P5JS ASCII Shader Renderer - r1b2’s fit - JavaScript PNG Encoder - CSS Masonry +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-58)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 58
URL: https://www.gorillasun.de/blog/gorilla-newsletter-58/
Last updated: 2024-08-15T08:06:47.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 58th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
First off, apologies for the radio silence last week! Sometimes, life throws you a curveball (or three), and everything else has to take a temporary backseat for a little while. After running this newsletter for 58 weeks straight without a single week off, it was bound to happen at some point - next time I'll make sure to make it a scheduled break and announce it properly ahead of time!
The important thing is that I'm back this week! While I didn't really get a break, I feel quite refreshed, and eager to get back to reporting on everything that's been going on in the genart space.
Besides that, thanks again to everyone that's joined the discord so far, we're over a whopping 100 members now! 🎉 If you're making some cool art or building some cool things, come say hi and let's have a good time nerding out about tech things - [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
***That said, hope that you're all having an awesome start into the new week! Here's your weekly roundup*** 👇
---
## All the Generative Things
### City in a Bottle by Frank Force
The size coding wizard Frank Force treats us to an incredibly insightful article/tutorial, explaining how the code behind one of his most viral size code tweets "City in a Bottle" works - in just 256 bytes Frank manages to implement a tiny ray caster that visualizes an endlessly side-scrolling cityscape - what's more impressive is that it's not just the JavaScript code that produces the imagery, but actually an entire valid HTML page:
[City In A Bottle – A 256 Byte Raycasting SystemHello size coding fans. Today, I have something amazing to share: A tiny raycasting engine and city generator that fits in a standalone 256 byte html file. In this post I will share all the secrets…Killed By A PixelFrank Force 🌻](https://frankforce.com/city-in-a-bottle-a-256-byte-raycasting-system/?ref=gorillasun.de)
If you're not familiar with ray casting, it's essentially a technique that lets you render and map 3D scenes onto a 2D canvas. It works by tracing imaginary lines (rays) from a viewpoint (like a camera or observer) out into the scene, using the collision information of the rays with different objects in the scene to determine what needs to be rendered onto the screen. In the article Frank explains how this can be achieved in a minimal manner, with just a few lines of code.
As a side note here, the terminology can be a little confusing if you're ever researching ray casting for yourself; ray casting's not exactly the same thing as ray tracing - ray tracing is a more elaborate version that simulates the physical properties of the light rays and how they illuminate a 3D scene, where individual rays can bounce off of objects and reproduce phenomena like refractions and reflections. Here's a pretty good answer that provides a distinction between them:
[What is the difference between ray tracing, ray casting, ray marching and path tracing?As far as I know, all the techniques mentioned in the title are rendering algorithms that seem quite similar. All ray based techniques seem to revolve about casting rays through each pixel of an im…Stack Overflowjanekb04](https://stackoverflow.com/questions/67347177/what-is-the-difference-between-ray-tracing-ray-casting-ray-marching-and-path-t?ref=gorillasun.de)
Some stellar ray tracing works are from Piter Pasma, such as his Universal Rayhatcher that's described [here](https://shorturl.at/XLTg3?ref=gorillasun.de), as well as his Blokkendoos project that also takes a size coding approach. Another resource that I recently discovered and shared in the Newsletter issue from two weeks ago is by [Eric Loftis where he recreates iconic ray-traced scenes and open sources the code for them](https://www.gorillasun.de/blog/gorilla-newsletter-56/).
Overall it's a super fascinating topic, I haven't attempted ray casting/ray tracing so far, except for the purposes of a homework in a graphics course I took many years ago where we had to implement a ray tracer with OpenGL in c++. Ultimately I wasn't able to get the ray tracer working properly, but still got a good grade on it somehow.
I digress however, if you're curious, here’s the original tweet that went viral around two years ago (it's a video so you'll have to view it on the blog or on Twitter):
0:00
/0:08
1×
[Link to Tweet](https://x.com/KilledByAPixel/status/1517294627996545024?ref=gorillasun.de)
Highly recommend checking out the Tweet over on Twitter, Frank added a whole lot of additional information in follow-up tweets that link to revised versions of the sketch, and additional resources that better understand what's going on in the code, such as this [verbose version by Daniel Darabos over of observablehq](https://observablehq.com/@darabos/decoding-a-city-in-a-bottle?ref=gorillasun.de).
Apparently there's also a technique called Photon Mapping that's yet another different technique, here's an interesting discussion about it over on Hacker News (back from 2015):
[What’s the difference between path tracing, ray tracing and photon mapping? I’d ... | Hacker NewsHacker News](https://news.ycombinator.com/item?id=9994935&ref=gorillasun.de)
So, big thanks to Frank for providing us with such an insightful article, it's another testament that you don't always need a lot of code to do amazing things!
### Domain Warping with Vertex Shaders by Dave Pagurek
Another awesome article from the past two weeks is Dave Pagurek's rewrite of a piece of his on *Domain Warping* with vertex shaders. In it he explains the necessary tricks to deform all sorts of different 3D shapes:
[Vertex Shader Domain Warping with Automatic Differentiation - Dave PagurekDave Pagurek](https://www.davepagurek.com/programming/shader-domain-warping/?ref=gorillasun.de)
The previous version of the article can be found [here](https://www.davepagurek.com/blog/realtime-deformation/?ref=gorillasun.de).
What's domain warping though? It's a technique that lets you deform shapes that are made out of vertices. Instead of drawing the vertices that make up the shape directly to the canvas/screen, an additional step displaces the individual vertex coordinates according to some type of wave or noise function (any type of function really) before they're drawn. I've use domain warping on a couple of occasions in a 2D setting - here's two examples that you might remember from previous issues of the Newsletter:


On the left I'm warping the entire grid with a sine function. On the right I'm warping the individual edges of the triangles inside a triangular lattice to obtain a more interesting tessellation. Not entirely sure if you can really call the second one domain warping.
You might've also done something like it before without realising that the technique actually had a name. In 2D displacing vertices is pretty straightforward, in 3D things get a bit more complicated as Dave explains in his article. The issue is that the warping function ignores the normal vectors that are used to determine the color of the shapes in the fragment shader pass - since the vertex positions have been changed, the tangents would also need to be adjusted to account for the deformation and remain perpendicular to the shape's surface. And that isn't so easy as the math gets quite involved.
If you don't like reading words, Dave also provides us with an explanation in video format at Creative Code Toronto:
### Meaningful Nonsense Amy Goodchild
Amy's back with a new article, this time letting us in on the sentence generating system that she's come up with for creating the esoteric words and sentences that make an appearance in her current ongoing generative diagram project:
[Meaningful Nonsense: How I generate sentences — Amy GoodchildI’m coding a system in JavaScript that generates sentences of “meaningful nonsense”. Here are some examples.Amy GoodchildAmy Goodchild](https://www.amygoodchild.com/blog/meaningful-nonsense-sentences?ref=gorillasun.de)
While the system was initially intended for creating titles to accompany the generative diagrams, the system's evolved since to also generate "truths". And it's interesting how you don't actually need something incredibly complicated to composite these kinds of sentences, Amy does so by first defining a couple of sentence templates that define the resulting sentence structures, which are then filled in with the appropriate word types at the correct positions. For this purpose she also defines lists of words that can fit at those positions in the sentence. Simple, but genius - if the Poetry topic makes a return in next years Genuary I'm definitely using this approach as an inspiration!
In other news, Amy's also been sharing more frequent updates via her Newsletter; if you're interested in following along with what she's been up to I recommend subscribing to her over on Substack!
[Gen art diary #3: Meaningful nonsenseMy system for generating sentences, plus more from the plotter.Amy GoodchildAmy Goodchild](https://amygoodchild.substack.com/p/gen-art-diary-3-meaningful-nonsense)
### Painting with Plotters by Licia He
Probably one of the most exciting news that dropped last week, was Licia He's announcement about her plans a full plotter course - what's more is that it's going to be free for everyone! I don't even have a plotter, but I'm super excited nonetheless. Here’s the announcement Tweet with some additional info in the thread:

You'll be able to find the course over on her website, here:
[Painting With PlottersLicia He](https://www.eyesofpanda.com/project/painting%5Fwith%5Fplotters/?ref=gorillasun.de)
It indicates that September 2024 is planned for the release and already provides an outline of the topics that she'll tackle throughout. What's also exciting is that Licia's having her very first solo exhibition at the Gazelli art house in London - if you're around at the time you might want to check it out!

[Link to Tweet](https://x.com/Licia%5FHe/status/1793989414768775499?ref=gorillasun.de)
### A Fast and Customizable P5JS ASCII Renderer
Back in Genuary, I don't really remember for which prompt it was, I attempted an ascii renderer in vanilla JS that took in the color information of the ascii grid from the underlying pixel array - I quickly realized that it would be awfully slow. Through Raph's birbsnest discord I discovered that humanbydefinition made a blistering fast P5 compatible GLSL shader that achieves this, and even shares the source code for it in a github repo:
[GitHub - humanbydefinition/p5js-ascii-renderer: A fast and customizeable p5.js ascii renderer utilizing a GLSL shaderA fast and customizeable p5.js ascii renderer utilizing a GLSL shader - humanbydefinition/p5js-ascii-rendererGitHubhumanbydefinition](https://github.com/humanbydefinition/p5js-ascii-renderer?ref=gorillasun.de)
Rendering stuff with an ascii grid is a super useful trick to have in your creative toolkit, so at some point I will definitely have to have a closer look at how this works under the hood!

## Web3 News
### Gorilla Zine
I've got a very special update this week: I made my very first Zine! You can read it here (you can click on the images to zoom in for a better reading experience):
[GORILLAZINE IA digital zine in 2024!? Blasphemy!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorillazine-i/)
Consider it this week's recap of Web3 news... with some additional reading entertainment! It's a bit of a weird one really - content-wise at least, if you're not a fan of crypto or AI things you might want to skip it, but I'm really happy with how it turned out. The idea for it came really quickly and it was a lot of fun doing something with an editing software for once, dragging and dropping shapes and text by hand was a really nice change of pace.
I also made this additional little infographic and an accompanying thread to explain the motivations behind this digital artifact a little:


[Link to Thread](https://x.com/gorillasu/status/1796900075165110719?ref=gorillasun.de)
### r1b2's Newest Project and Write-Up
r1b2's released a new project over on highlight, and it's a free open edition running throughout the month of June. Aptly titled "Fit" the project revolves around shape packing, and in combination with noise fields to guide the compositions, it feels like big celebration of the two popular genart techniques. r1b2 also provides us with a walkthrough explaining how the outputs come together, shining some light on the technical details of the project:
[“Fit” walkthrough – Circle packing, noise fields, and Joe Jackson – R1B2R1B2](https://www.r1b2.com/2024/05/31/fit-walkthrough-circle-packing-noise-fields-and-joe-jackson/?ref=gorillasun.de)
We've actually chatted quite about packing things over in the discord, r1b2 shared a really cool personal story that dates back to 2006 where he placed in the top 20 for a programming contest that revolved around circle packing. What makes this ranking special is that he was competing on his own against research labs:

[Link to Competition Website](https://shorturl.at/Nkohj?ref=gorillasun.de)
That story makes the project just so much more special. I'm also still very honored that one of my tutorials served as the inspiration for r1b2's previous project the Circle of Life - if you're curious about that one, there's also a write-up about it here:
[Making of “Circle Of Life” – R1B2R1B2](https://www.r1b2.com/2023/11/25/making-of-circle-of-life/?ref=gorillasun.de)
### Julian Espagnon's Crypsis
Another project that released a couple of days ago was from Julian Espagnon, another awesome generative artist, and the piece is absolutely delightful - Julien shares a bit more about the process in [here](https://x.com/Julien%5FEspagnon/status/1794329558755549280?ref=gorillasun.de):

[Link to Tweet](https://x.com/Julien%5FEspagnon/status/1795108931775217946?ref=gorillasun.de) | [Link to Foundation Collection](https://foundation.app/collection/crypsis?ref=gorillasun.de)
### L2s as cultural extensions of Ethereum
The creator of Ethereum Vitalik Buterin wrote an interesting article about the emergent cultural aspects of Layer 2s and different blockchains, they're not simply technological innovations, but also form their own unique communities around them, and is reminiscent of how different online communities have had their own distinct vibes and values over the years.:
[](https://vitalik.eth.limo/general/2024/05/29/l2culture.html?ref=gorillasun.de)
[Link to Article](https://shorturl.at/eDXJ7?ref=gorillasun.de)
## Tech and Web Dev
### HTML in the Canvas
Unarguably the biggest news that dropped this past week was from the Google Chrome developer team, announcing a new feature for the HTML canvas that allow HTML elements to now be integrated as part of the canvas itself - I have no idea how this works, so don't ask me - and afaik this is simply a very early demo but will still have to go through W3C for it to be a thing. Here's the demo video that's been posted:
0:00
/0:22
1×
[Link to Tweet](https://x.com/fserb/status/1794058245901824349?ref=gorillasun.de)
### Matt DesLauriers' Javascript PNG Encoder
Matt DesLauriers' been up to quite a few shenanigans over on Twitter, posting about his efforts in building a png encoder and decoder - just a few days ago he's released some of the tools in form of an open source repository on Github - here's Matt's tweet:

So what's this? Why do you need a PNG encoder? When you're making art with JavaScript, like many a modern generative artist does, then you might run into complications when the time comes to save and export your outputs as images for printing purposes.
I haven't really made any prints so far, but I have to admit that I've never actually thought about this, and that there's more to it than just right-click saving the canvas - a proper PNG encoder in this setting takes the pixel array of the HTML Canvas element that you're manipulating and encodes it into a PNG file. Having control over the encoder in this sense helps tremendously with the fidelity of the file. Here's a link to the Github repo, definitely worth a star:
[GitHub - mattdesl/png-tools: low-level PNG tools for JavaScript and Weblow-level PNG tools for JavaScript and Web. Contribute to mattdesl/png-tools development by creating an account on GitHub.GitHubmattdesl](https://github.com/mattdesl/png-tools?tab=readme-ov-file&ref=gorillasun.de)
### CSS Masonry Saga Part IV
Another challenger enters the ring for the CSS Masonry discussion. There's been a new article on the issue almost every week ever since the WebKit team made their initial proposal (so simply check the previous Newsletter to get catch up).
Similarly to the Chrome team counterproposal, Keith Grant argues that Masonry layouts should be separate from the Grid spec, and this simply because it would make learning the Masonry layout for newcomers much easier. If it were part of the Grid spec, you'd have to learn the intricacies of it even if you're not going to end up using most of it - Keith does a better job at explaining this than I can in just a few words:
[Weighing in on CSS MasonryShould masonry be its own \`display\` method outside grid? Absolutely.Home Owl logoKeith J. Grant](https://keithjgrant.com/posts/2024/05/weighing-in-on-css-masonry/?ref=gorillasun.de)
I think it's pretty clear now that Masonry will likely end up being its own separate thing, since it generally feels like there's quite a bit of resistance against it becoming a part of the Grid spec.
## AI Corner
### ComfyUI + P5
Bejamin Fox's a cool thing he's put together over in the discord: a custom node for ComfyUI that runs a p5 sketch and feeds it into an SD img2img model, allowing you to alter and transform the generated sketch via a text prompt, here a bunch of cubes are turned into crystals and geodes:

[Link to github repo.](https://github.com/tracerstar/comfyui-p5js-node?ref=gorillasun.de)
If you're not familiar with ComfyUI, it's essentially amodular stable diffusion GUI with a graph/nodes interface, and lets users design and execute their own stable diffusion pipelines with a flowchart-based interface. If that sounds interesting to you, here's the Github repo:
[GitHub - comfyanonymous/ComfyUI: The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface.The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface. - comfyanonymous/ComfyUIGitHubcomfyanonymous](https://github.com/comfyanonymous/ComfyUI?tab=readme-ov-file&ref=gorillasun.de)
### Did Github Copilot really increase my productivity?
Yuxuan Shui wrote an article in which he reflects on his experience with Copilot, that he's mainly used for the purposes of developing his own personal project. He ultimately comes to the conclusion that he's more productive without the smart coding assistant, mainly due to the unpredictability of it:
[](https://trace.yshui.dev/2024-05-copilot.html?ref=gorillasun.de)
[Link to Article](https://shorturl.at/YLvFN?ref=gorillasun.de)
I haven't used copilot yet, but for those of you who do, what's your experience been like?
## Music for Coding
This past week I discovered the timeless masterpiece "A Color Map of the Sun" by the band Pretty Lights. Listening to it for the first time a decade after its initial release I can only say that I would place right up there alongside Bonobo and Tycho:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got a discord now, let me also just plug that here, come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the Newsletter here:*
[Gorilla Newsletter 57Big OpenAI and GoogleIO Recap - Coding my Handwriting by Amy Goodchild - The Art of Digconart - Colette Bagert on Growing Visually - Art Blocks Studio Update - Crypto’s Broken Moral Compass - Bend Programming Language - CSS Masonry Part 3 +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-57)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### GORILLAZINE I
URL: https://www.gorillasun.de/blog/gorillazine-i/
Last updated: 2024-06-22T10:56:28.000Z

















### Gorilla Newsletter 57
URL: https://www.gorillasun.de/blog/gorilla-newsletter-57/
Last updated: 2024-05-20T21:54:25.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 57th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of Gorilla updates.
Thanks again to everyone that's joined the discord so far, we're at a whopping 100 members now! 🎉 Come say hi and let's have a good time nerding out about tech things - [here's an invite link!](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)
That said, **hope that you're all having an awesome start into the new week!** Here's your weekly roundup 👇
---
## Another Chapter in the Race for AGI
Boy, where do we start this week? I know this isn't the usual format - but all of my social media timelines have been absolutely abuzz with the recent announcements by OpenAI and Google, both of which came out with some big updates to their AI models. That's why we're kicking off the Newsletter this week with a big recap of everything that's transpired throughout the past week - there's a quite a lot to sink our teeth in this week!
**If you just want the quick version, you can find a TLDR at the end of this section! 🧠 ⏬**
### Hello ChatGPT-4o
On May 13th, OpenAI made a surprise announcement revealing their new and improved flagship model ChatGPT 4o. The letter O here stands for Omni, or Omnimodel, and is meant to highlight the multi-modal capabilities of this iteration of ChatGPT. While also being cheaper and faster, their announcement places an emphasis on the human-like conversational abilities of the AI.
They boast that it is now seemingly much easier to use, with a noticeably reduced latency between picking up the users' spoken inputs and the text-to-voice generated replies, making it possible to hold a conversation with the smart chat-bot in almost real-time. What's more, is that they're also making 4o accessible to all users, not just those that are currently paying for the premium version. If you check out the web app/mobile app it should already be available. Paying subscribers still do get a higher message limit however.
In the key-note presentation that OpenAI released over on YouTube, currently sitting at close to 4 million views, CTO Mira Murati starts off by providing a run-down of 4o's new features - followed by a live demo, showcasing what the app can do:
And honestly it's quite impressive that it can pick up on voice and shoot back with answers so quickly, even with video input thrown into the mix, it seems to be able to handle all of it pretty well. I gave it a shot over the weekend while helping out my sister with her homework, and it worked like a charm - you just snap a pick of the exercises, ask it to solve it, and then it'll generate the answer. Truly stuff of the future. And it seems that OpenAI doesn't actually have to fabricate its demos - like some of the other recent trailers in the AI space:

Biggest flex of the year award goes to Greg Brockman | [Link to Hacker News Item](https://news.ycombinator.com/item?id=40345775&ref=gorillasun.de)
While the live demo is a bit awkward - I found their accompanying article [Hello GPT-4o](https://openai.com/index/hello-gpt-4o/?ref=gorillasun.de) to be much more informative. In it they provide a number of benchmarks indicating that 4o's got many of the other models out there beat across several tasks:


The article also showcases a number of very useful applications. For instance, the model can handle over 50 different languages, and detects these automatically - you don't have to fiddle around with the setting. This means that it can basically serve as a drop in replacement for translators - guess programmers were not actually the ones that should have been afraid for their jobs 🤷
One aspect of 4o, that sparked quite a bit of controversy, is the fact that their text-to-speech pipeline was a little too realistic, even being able to adjust its tone of voice and mood according to the requests of the users. In another demo that was posted over on TwiX - the chatbot decided (set to?) to take on a very flirty tone of voice which was not received well:


[Link to the Demo in Question](https://x.com/OpenAI/status/1790072174117613963?ref=gorillasun.de) | [Link to Quote Tweet by Cassie Evans](https://x.com/cassiecodes/status/1790330792075280861?ref=gorillasun.de)
This even prompted an entire segment on the daily show, ridiculing this particular demo:
The question here, does the vocalized version of the LLM require the ability to imitate different tones of voice and moods? These models have no innate ability to feel any sort of emotion whatsoever, they are simply emulating these voices based on patterns in the training data - why is a monotonous and robotic synthesized voice not enough? Obviously, I am fully aware that this wouldn't be as marketable. While this is being passed off as a big joke right, it's actually a severe issue.
Edit: Gorilla from the future here (realtive to the Gorilla that wrote this 🦍) just as I was putting the final touches on the Newsletter there was another update from OpenAI regarding the voices included in the app - the decide to disable the 4o's flirt mode for now:

[Link to Tweet](https://x.com/OpenAI/status/1792443575839678909?ref=gorillasun.de) | [Link to Article](https://openai.com/index/how-the-voices-for-chatgpt-were-chosen/?ref=gorillasun.de)
On a more lighthearted not however, it seems that this has also prompted a new type of meme where 4o serves as a [virtual boy/girlfriend](https://x.com/julesterpak/status/1774305346690957533?ref=gorillasun.de).
Beyond that, OpenAI is also in the process of rolling out ChatGPT as a Desktop app, I was not able to download it yet however, as it's not currently available in the German App Store it appears.
### Wave of Resignations and Open AI Partnership Deals
In an alarming turn of events, the very same day that OpenAI reveals 4o, Ilya Sutskever makes his own announcement, sharing that he's made the decision to leave OpenAI after a decade of working there - his Tweet:
[](https://x.com/ilyasut/status/1790517455628198322?ref=gorillasun.de)
[Link to Tweet](https://x.com/ilyasut/status/1790517455628198322?ref=gorillasun.de)
If you are not familiar with Sutskever, he is essentially OpenAI's co-founder and been the chief scientist there for the longest time. In a Tweet from December he did voice his concerns with their trajectory, but there has been no recent update about it. It seems that he is working on a new project of his own that'll we'll learn more about in due time. This resignation is followed by another from Jan Leike, the current (former) super alignment co-lead. He actually follows up with some further information on why he came to this decision, voicing his disagreement with OpenAI's trajectory towards AGI:


[Link to Tweet](https://x.com/janleike/status/1790603862132596961?ref=gorillasun.de) | [Link to Thread](https://x.com/janleike/status/1791498174659715494?ref=gorillasun.de)
It seems that OpenAI is not currently prioritizing the safety of the models that they're developing - which is alarming- but not surprising. We actually did end up getting an update on this issue from Vox that was quick to reach out to those that resigned. You can read it here:
[“I lost trust”: Why the OpenAI team in charge of safeguarding humanity implodedCompany insiders explain why safety-conscious employees are leaving.VoxSigal Samuel](https://www.vox.com/future-perfect/2024/5/17/24158403/openai-resignations-ai-safety-ilya-sutskever-jan-leike-artificial-intelligence?ref=gorillasun.de)
One aspect that plays into this issue is OpenAI's current quest for making deals with all of the major forum-like platforms across the internet, following their deal with StackOverflow, they recently announced a partnership with Reddit:

[Link to Tweet](https://twitter.com/OpenAI/status/1791205420142670250?ref=gorillasun.de)
And we've also got Musk doing his own thing over here.
### Gemini 1.5 Pro & Project Astra at GoogleIO
Now that we've covered the OpenAI side of things - let's have a look at GoogleIO, the annual developer conference where Google showcases all of its new tech products. While the conference doesn't solely revolve around AI things, in this section we'll focus on the AI related updates.
If you only care about the tech updates, there's a good and concise list of ten highlights over on the Chrome for Developers blog:
[10 updates from Google I/O 2024: Unlocking the power of AI for every web developer | Blog | Chrome for DevelopersDiscover exciting features from the Google I/O Developer Keynote and sessions.Chrome for DevelopersX](https://developer.chrome.com/blog/web-at-io24?ref=gorillasun.de)
The two big AI updates from GoogleIO are Gemini 1.5 Pro and TheProject Astra. Gemini 1.5 Pro now boasts a massive 2 million token context - meaning that it can retain quite a bit of information during a chat (approximately equivalent to 1.4 million words). In light of this they also make available a new feature called context caching that lets you reuse certain chunks of tokens.
You can find a whole lot of info about this in their official article - for example they showcase how they feed in the entire 402 transcript of the Apollo 11 mission and ask it question about the massive piece of text:
[Gemini ProOur best model for general performance across a wide range of tasks. 1.5 Pro has a two-million-token long context window — the longest of any large-scale foundation model.Google DeepMind](https://deepmind.google/technologies/gemini/pro/?ref=gorillasun.de)
Secondly, they also reveal their Project Astra, a multi-modal LLM powered chat assistant that looks quite similar to GPT–4o - minus the quirky voice, and a noticeably longer delay in response time:
Besides this their project IDX - an AI powered code editor - is now also publicly accessible. I remember signing up to the wait-list for that a couple of months ago, but never getting back an update.
I'm guessing the most entertaining part of the GoogleIO event was Marc Rebillet's stellar performance, which we'll definitely be used as a meme template for months to come:
### OpenAI x Google Beef: Race for Apple Integration
It's not pure coincidence that both OpenAI and Google made announcements about their new products - it seems that it was a calculated strike from Altman to steal the show, just a couple of hours prior to when GoogleIO kicked off. When Altman made a snarky remark about the "aesthetics" of the event, this prompted a reply from Nado a research engineer over at Google Brain:

[Link to Tweet](https://x.com/zacharynado/status/1791208273812623462?ref=gorillasun.de)
The surprise announcement of OpenAI could have very likely been related to the negotiations that have been underway with Apple, which is currently looking for a third party to power the AI features of future iterations of the iPhone. While it seemed like the deal with OpenAI was coming to a close just a few days ago, apparently Google's Gemini is not off the table as a candidate:
[Apple reportedly still in talks to use Gemini for iPhone AI features as OpenAI deal loomsAccording to a new report, Google and Apple are still in talks to use Gemini for AI features on the iPhone, but an OpenAI deal is closer.9to5GoogleBen Schoon](https://9to5google.com/2024/05/10/google-apple-gemini-discussions-report/?ref=gorillasun.de)
This begs the question why Apple is not simply developing their own in-house solution for this purpose. But it might just be that they don't really have the data for this purpose due to their privacy policy:
[](https://www.reddit.com/r/OpenAI/comments/1bhknr9/apple%5Fis%5Fin%5Ftalks%5Fto%5Flet%5Fgoogles%5Fgemini%5Fpower/?ref=gorillasun.de)
[Link to Reddit Post](https://www.reddit.com/r/OpenAI/comments/1bhknr9/apple%5Fis%5Fin%5Ftalks%5Fto%5Flet%5Fgoogles%5Fgemini%5Fpower/?ref=gorillasun.de)
But that's a can of worms that we'll have to open another day when Apple makes a decision on which third-party they'll rely on for powering their AI features. And yeah that's pretty much all of the important updates from the past week in that regard - that I could find at least. What did I miss?
### TLDR Recap of Events
- [OpenAI reveals GPT-4o](https://openai.com/index/hello-gpt-4o/?ref=gorillasun.de), an improved, cheaper, faster, more multi-modal iteration of the GPT models.
- [Controversial demo of GPT-4o makes the rounds on TwiX](https://x.com/cassiecodes/status/1790330792075280861?ref=gorillasun.de) | [Daily Show segment takes a stab at the much too realistic voice of 4o](https://www.youtube.com/watch?v=9rRK4KPRVEs&ref=gorillasun.de)
- Wave of resignations ensues, Ilya Sutsekever & Jan Leike | [Vox Coverage of the reason behind the resignations](https://www.vox.com/future-perfect/2024/5/17/24158403/openai-resignations-ai-safety-ilya-sutskever-jan-leike-artificial-intelligence?ref=gorillasun.de), concerns about safety and OpenAI's trajectory.
- OpenAI x Reddit Partnership Announcement Link
- [GoogleIO 10 Highlights](https://developer.chrome.com/blog/web-at-io24?ref=gorillasun.de) | [Gemini 1.5 Pro](https://deepmind.google/technologies/gemini/pro/?ref=gorillasun.de) | [Project Astra](https://deepmind.google/technologies/gemini/project-astra/?ref=gorillasun.de) | [Project IDX](https://idx.dev/?ref=gorillasun.de)
- [Twitter Beef GoogleIO x OpenAI](https://x.com/zacharynado/status/1791208273812623462?ref=gorillasun.de) | [Race for Apple Integration](https://www.reddit.com/r/OpenAI/comments/1bhknr9/apple%5Fis%5Fin%5Ftalks%5Fto%5Flet%5Fgoogles%5Fgemini%5Fpower/?ref=gorillasun.de)
- [Marc Rebillet's performance at GoogleIO](https://www.youtube.com/watch?v=wwk1QIDswcQ&ref=gorillasun.de)
## All the Generative Things
### Coding my Handwriting by Amy Goodchild
Amy Goodchild is back with another article, and as always, it's a banger. As a continuation to her previous post on figuring out a generative approach to handwritten letterforms, she updates us with an improved method that upgrades her generative blockscript into a cursive writing generator. Individual letters can now be connected in a seamless manner:
[Coding my Handwriting — Amy GoodchildCoding my handwriting in Javascript - how I did it and what I’m doing with it.Amy GoodchildAmy Goodchild](https://www.amygoodchild.com/blog/cursive-handwriting-in-javascript?ref=gorillasun.de)
By putting together a little editor that lets one encode the letter coordinate paths, simply by placing individual key-points via mouse click, it's now become much easier to encode multiple variations of each letterform. Amy further elaborates on some of the intricacies of adjoining the letter paths.
### The Art of Digconart
As always, it's been a big joy to get to know you guys in the discord. In this segment I'd like to shout out [Andrew Wulf](https://x.com/digconart?ref=gorillasun.de), who I've had the pleasure of exchanging a couple of messages with in one of the channels. Prior to retiring in 2021 and finding himself picking up a generative art practice, Andrew spent over 4 decades working as a programmer. He recounts some of his experiences over the years and provides interesting retrospectives in written form on his programming blog *The Codist*:
[A Programming Career By The NumbersAs I continue to recover from some health issues that kept me from writing, I thought it might be interesting to describe my long career with numbers. If you wind up working for four decades, your experience may vary. Years Active: 1981-2021, totaling 39.5 years. Irrespective of my titleThe CodistAndrew Wulf](https://thecodist.com/a-programming-career-by-the-numbers/?ref=gorillasun.de)
What I found quite interesting, and what sets Andrew apart from the crowd, is that he uses the Swift programming language for the purpose of making generative art. Swift is a language that you'll most likely associate with iPhone App development, rather than artistic purposes. But it seems to be working for Andrew, and he states that he's built his entire tooling in Swift (I would be curious to learn more about how that works!). At this point in time, I'm currently not aware of any other generative artist that is using Swift. You can view many of Andrew's creations over on this art repository that he's created for himself carefully archiving all of his creations:
[](https://digcon.art/202405.html?ref=gorillasun.de)
[Link to Site](https://digcon.art/202405.html?ref=gorillasun.de)
Andrew also runs another blog in parallel, that focuses on his art practice. I particularly enjoyed the article titled "What is Generative Art", in which he summarizes the art-form pretty succinctly. It also provides a pretty sobering perspective, that stands in contrast to many of the narratives that are being spun around generative art these days. You can read it here:
[What Is Generative Art?I am a generative artist. But what does that mean? Generative art is generally created by a process, typically computer code but can also be mechanical or manual, wherein an image is produced automatically. Most often, it includes an element of randomness. Using a computer to generate art goes backArt As ArtistAndrew Wulf](https://artasartist.com/what-is-generative-art/?ref=gorillasun.de)
Highly recommend checking out Andrew's stuff!
### Colette Bangert on Growing Visually
I have to admit that I was previously not familiar with the work of Colette and Jeff Bangert, two pioneers that were already using machine made randomness for the purpose of art making in the 1950s. As usual, this is where Monk comes in to educate me, introducing the Bangert duo to us in a recent Le Random article:
[Colette Bangert on Growing VisuallyWith work in the collections of the Museum of Modern Art, Los Angeles County Museum of Art, Victoria and Albert Museum and more, the acclaimed nonagenarian artist Colette Bangert spoke to Peter Bauman (Monk Antony) about a life spent observing, exploring and collaborating.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/colette-bangert-on-growing-visually?ref=gorillasun.de)
Sadly Jeff Bangert passed away in 2019 - having been the one to write the computer code that brings their art to life, Colette now resumes her practice by hand. Bangert's artistic philosophy is deeply grounded in the continuous observation and interpretation of the world around her. She views art as a process of seeing and creating, where traditional methods and new technologies coexist and enhance each other.
## Web3 News
### News from the Purple App
Things seem to have slowed a bit over on the Purple app - it's felt a little quieter (to me) at least. This is likely due to that big haircut that DEGEN allowances have received since the beginning of the second airdrop's fourth season — which was a big factor in driving traffic on the platform. But that doesn't mean that there haven't been a couple of other developments however; just a few things I found interesting in recent days:
1. Dylan Steck reports to us from the front-lines and tells us about the [happenings over at FarCon with his write-up](https://shorturl.at/fhSRe?ref=gorillasun.de) here.
2. [Bonfire](https://shorturl.at/fP1Ri?ref=gorillasun.de) is a platform geared towards Web3 creators, allowing you to manage your community, create different kinds of pages and provides a way to present all of your content in different ways. I haven't had the time to check it out yet - but it looks interesting however.
3. AirStack is a tool that lets you build dapps on FarCaster - you can find the docs [here](https://shorturl.at/dMkPT?ref=gorillasun.de).
### Art Blocks Studio Update
Art Blocks makes a return with an update regarding the Studio platform that they teased a couple of months ago, and been developing ever since - it seems that they're nearing something more complete. If you've missed the previous announcement, it's basically a new part of the Art Blocks eco-system that will allow artists to self-publish generative art projects (not entirely un-curated though as far as I understand going off of the previous announcement).
They'll be gradually rolling out new features in that regard over the coming days (or months) - the official announcement indicates that it'll be more than just a tool for creating and publishing generative projects on AB:

[Link to Tweet](https://x.com/artblocks%5Fio/status/1790811987158646998?ref=gorillasun.de)
### Crypto's Broken Moral Compass
Polynya is an pseudonymous crypto writer that's become quite influential in the space over the past years with their insightful writing on crypto related topics. As always I'm quite late to the party: towards the end of 2023 Polynya made the decision to leave crypto Twitter, and early 2024 going on an indefinite hiatus from writing. The article titled "Crypto's broken Moral Compass" marks the end of the popular blog - you can read it here:
[Crypto’s broken moral compassI’ll begin by saying - obviously, there’s good in crypto. Indeed, I have written over 150 blog posts over the last 3 years about them (and plenty more with previous pseudonyms), and making the best of crypto and related tech. But none of that matters right now - things have swung too far away to the bad side. (Addendum: just for more clarity,](https://shorturl.at/2y7dJ?ref=gorillasun.de)
The article addresses the steep decline of the crypto space into what is largely just a big casino - where many of the meme coins and Ponzi schemes are not contributing to anything meaningful or productive. And this is something that I've also experienced, while I try to exist in my own little gen-art bubble most of the time, treading outside of it, especially on Farcaster right now, feeling like stepping into a big untamed jungle. If you're active in any Web3 related community, what's your overall sentiment been? Are things looking up, or are we standing at the edge?
Polynya has however been sporadically casting over on the Purple App:
[](https://warpcast.com/polynya/0xc14db736?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/polynya/0xc14db736?ref=gorillasun.de)
## Bend Programming Language
*Bend* is a brand new high-level programming language that seems quite practical: it lets you write parallel code for multi-core CPUs and GPUs - without having to write out the code that handles the parallel computations manually. A first glance at the syntax, Bend looks a LOT like python, and supposedly, writing Bend also feels like it.
The language makes the bold promise that *Any work that can run in parallel, will run in parallel*:
[Higher Order CompanyWe’re the HOC, a tech startup revolutionizing computing with massively parallel runtimes and processors using our HVM runtime and Bend programming language.](https://higherorderco.com/?ref=gorillasun.de)
You can try Bend for yourself following the instructions over on [the official Github repo](https://github.com/HigherOrderCO/Bend?ref=gorillasun.de)
How does Bend do this? And how does it work under the hood? In Bend, expressions and values are internally modeled as graphs called "Interaction Combinators" - basically representing the chain of computations that need to be effectuated, where larger expressions come to life as a number of these graphs tied together. Running the program then boils down to solving these graphs, which somehow allows for instructions to be executed in parallel wherever it is possible - that's my rudimentary understanding of it right now.
The concept of interaction combinators was originally proposed in a paper by Yves Lafont back in 1997:

Beyond that it also has some other syntactical differences to real Python. Victor Taelin, the creator of Bend, reports that it took over a decade to put this into concept into practice however:
[](https://x.com/VictorTaelin/status/1791213162525524076?ref=gorillasun.de)
[Link to Tweet](https://x.com/VictorTaelin/status/1791213162525524076?ref=gorillasun.de)
## Tech and Web Dev
### CSS Masonry Saga Part 3
The CSS Masonry Saga continues; if you haven't been following along with what's been going on that front, here's a quick recap:
- [Two weeks ago the WebKit team over at Apple published a proposal for integrating a Masonry layout as a part of the CSS Grid spec.](https://webkit.org/blog/15269/help-us-invent-masonry-layouts-for-css-grid-level-3/?ref=gorillasun.de)
- [A week after (last week) the Chrome Browser Dev team published an article in response voicing their concerns on this proposal.](https://developer.chrome.com/blog/masonry?ref=gorillasun.de)
I don't know why the WebKit team decided to open this can of worms, but at this point it's become a pretty lengthy discussion.
The article that's made the rounds is by Picallili most recently, who's already had an appearance on the Newsletter previously with an previous piece of his titled "A more Modern CSS Reset". He pitches in on the CSS Masonry debacle with a new article of his, voicing his concerns on the accessibility of Masonry Grids, especially regarding their tabbing behavior:
[I’m worried about the tabbing behaviour, rather than the syntax and name of CSS masonryPiccalilliAndy Bell](https://piccalil.li/blog/masonry-and-tabbing/?ref=gorillasun.de)
Essentially, when you have a Masonry grid, the tabbing behaviour becomes ambiguous, in which order should the selected box travel - horizontally or vertically down the columns? What's the expected behavior in this scenario? This causes confusion for users who rely on keyboard navigation.
### We can have a different Web
In a beautiful essay, Molly White provides a poignant analysis of the current state the Web finds itself in, lamenting the good old days of the internet when things seemed to be much easier than they are today. She delves into some of the reasons why we might be feeling this way, and reflects on how large corporations and different monetization strategies have transformed the current landscape:
[We can have a different webMany yearn for the “good old days” of the web. We could have those good old days back — or something even better — and if anything, it would be easier now than it ever was.Citation NeededMolly White](https://www.citationneeded.news/we-can-have-a-different-web?ref=gorillasun.de)
### How to train a Developer
Alan Zucconi shares an interesting trick that should help keep your code in check and will implicitly train you to write better - flatter - code:

[Link to Tweet](https://x.com/AlanZucconi/status/1789627148292026380?ref=gorillasun.de)
## Gorilla Updates
*We'll safely skip over the usual AI Corner segment this week, since we've already copiously talked about the current state of AI in the opening section.*
As far as Gorilla things go, this week I published another Hypersub exclusive tutorial over on Paragraph, and it's a topic that I've been meaning to tackle for a while now: deforming geometric shapes, and creating all sorts of wavy tile patterns. I'm not gonna reveal too much here, but it's actually not too complicated of a trick - if you're interested in reading, article's here:
[Deforming Tesselations with Periodic Functions and NoiseIn this tutorial we discuss a method for creating deformable shapes, which we’ll then use within a grid framework to obtain all sorts of different patterns.Deforming Tesselations with Periodic Functions and Noise](https://shorturl.at/4CSPh?ref=gorillasun.de)
If this sounds interesting to you, want to get access to three other exclusive pieces of my writing, in addition to a monthly artwork airdropped directly into your ETH wallet, consider signing up to my Hypersub [here](https://shorturl.at/S4bD4?ref=gorillasun.de). If you're already subscribed, thanks a million, and hope you enjoy the tutorial! Let me know if you need any clarifications - and make sure to join the member only discord channel!
While we're already on the topic of Ethereum, my Hypersub got featured in the coinbase wallet - which absolutely made my day when Bas notified me about it (thanks again for that):
[](https://warpcast.com/gorillasun/0x48cc196e?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/gorillasun/0x48cc196e?ref=gorillasun.de)
Besides this I continued working on my Arabesque Puzzle Grids, which turned into something that I'm extremely proud of, a write-up for the project is also almost complete and should be published quite soon - here's a sample of one of the outputs that I'm really happy with:

Feel free to zoom in and view the details! 😊
One last thing pertaining to the blog, is Ghost publishing another update regarding the ActivityPub integration that they're currently trying to realize. While it's still very early at this point it seems that they're committed to it, and already doing some initial tests. For instance one thing that the integration will enable is that Ghost blogs will be able to follow each other, just like other accounts on ActivityPub can follow each other.
They also replied to my question on their first update, which does shine just a little bit of light on how things will work:
[](https://activitypub.ghost.org/day-0/?ref=building-activitypub-newsletter)
[Link to Ghost's Blog Post](https://activitypub.ghost.org/day-0/?ref=building-activitypub-newsletter)
## Music for Coding
I don't frequently listen to Ambient music, since it seldomly is a mood I have, but over the weekend I highly enjoyed Dan Abrams', aka Shuttle358, dreamy soundscapes:
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got a discord now, let me also just plug that here, come join and say hi](https://discord.gg/M4kb3EDXC9?ref=gorillasun.de)!
*This week's Newsletter ended up being quite beefy (4600+ words, how bout that Dan? 🤣). Take it as an early make-up for the upcoming Newsletter, that will likely end up being quite a meager one, as I'm expecting to be quite busy with IRL obligations next week* **🙏**
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the Newsletter here:*
[Gorilla Newsletter 56The Piet Programming Language - New Genart Podcast - RYBitten Color Tool by David Aerne - Eric Loftis Ray Tracing Recreations - StackOverflow x OpenAI Partnership - Apple Ad Controversy - Alex Kaul’s Freeter +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-56)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
*Interested in advertising or sponsoring the Blog? Reach out!*
### Deforming Tesselations with Periodic Functions and Noise
URL: https://www.gorillasun.de/blog/deforming-tesselations-with-periodic-functions-andnoise/
Last updated: 2024-06-22T11:22:54.000Z
In this tutorial we discuss a method for creating deformable shapes, which we'll then use within a grid framework to obtain all sorts of different patterns.
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 56
URL: https://www.gorillasun.de/blog/gorilla-newsletter-56/
Last updated: 2024-08-12T16:17:02.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 56th issue of the Gorilla Newsletter -** a weekly online publication that sums up everything noteworthy from the past week in generative art, creative coding, web3, tech and AI - with a spritz of gorilla updates.
Thanks again to everyone that's joined the discord so far, we're almost at a whopping 100 members now! 🎉 Come say hi and let's have a good time nerding out about tech things - [here's an invite link!](https://discord.gg/Uy67DUDk8q?ref=gorillasun.de)
That said, **hope that you're all having an awesome start into the new week!** Here's your weekly roundup 👇
## The Piet (Mondrian) Programming Language...
**...where programs look like colorful abstract paintings.**
When David Morgan created his esoteric programming language in 1991 he initially wanted to call it Mondrian - but apparently some [people had beat him to it](https://link.springer.com/chapter/10.1007/3-540-45337-7%5F9?ref=gorillasun.de). Piet is however a much more interesting language and has acquired somewhat of a cult following in the 30+ years of its existence. Here's some examples of what Piet programs look like:

A Hello World program by David Morgan, a program that solves the Towers of Hanoi problem, and a Prime Number Generator by Sylvain Tintillier, respectively. Clearly, **written* in the Piet programming language.
After reading Morgan's [specification page](https://www.dangermouse.net/esoteric/piet.html?ref=gorillasun.de) a couple of times, I think I've been able to acquire a rudimentary understanding of the language - and will make an attempt at providing an explanation. Conceptually it's quite simple, but the complexity emerges from the manner in which instructions are coded into these colorful bitmaps.
First, about the structure, In Piet programs, single units of color are called codels - named that way to not be confused with the actual pixels of the image, as a codel might be composed out of several pixels when the image is enlarged for viewing of the bitmap. Contiguous regions of codels that have the same color represent *blocks.*

Piet programs are interpreted via traversal. Starting with the top-left codel, the traversal is controlled via two pointers: a Direction Pointer (DP) that tells the interpreter in which direction to move forward (right, left, up, down), and a Codel Chooser (CC) that rotates the direction pointer when a black codel or an edge of the program is reached (the boundaries of the bitmap basically).
Ok, great... but how do we actually execute instructions in this manner?
Well, whenever we traverse from one block of color into another, differently colored block, a specific instruction is executed. The difference in hue and lightness between the two blocks determines which instruction is going to be executed, such as addition, subtraction, multiplication, division, etc.:

Link to Piet Specifications
Two special instructions here are *push* and *pop* that let you store and remove numbers on an internal stack that Piet provides - this stack is the only method for storing numbers for the computation. How do we define numbers in Piet? Simply by the overall size of contiguous color blocks (number of codels in a block). For instance, when you leave a block of color into another and effectuate the push instruction due to the difference in hue and lightness between those two colors - it will push the integer that represents the size of the block that was just exited.
And that's pretty much it - as far as I understand that provides all of the necessary tools to program all sorts of things. A bunch of examples can be viewed on a second page that Morgan has compiled, and I was super impressed to see so many interesting creations, all of them visually very distinct. As you would assume, there isn't really any way of telling *how* they programs actually work by just looking at them:


[Link to Example Gallery](https://www.dangermouse.net/esoteric/piet/samples.html?ref=gorillasun.de)
If you want to learn more about David Morgan, the origin story of the Piet programming language, and some of his perspectives on eso-langs in general, you'll want to check out this interview from 2015 on Esoteric Codes:
[Interview with David Morgan-MarDavid has created some of the best-known esolangs, including Chef and Piet, which exress code within other rule-based systems, and Whenever, a language that overturns a key element of how code is controlled.esoteric.codes](https://esoteric.codes/blog/david-morgan-mar?ref=gorillasun.de)
But that's just scratching the tip of the esolang iceberg - there's an entire culture around it. A number of other interesting Eso-langs is introduced in this article:
[Programming Language Design as ArtOpen-ended, community based, and collaborative, “esolangs” serve as a reminder that digital art has other histories and other futures.HyperallergicDaniel Temkin](https://hyperallergic.com/701981/programming-language-design-as-art/?ref=gorillasun.de)
Big shoutout to [Chris Reid and his own genart Newsletter](https://substack.com/@generatecoll?ref=gorillasun.de) \- only reason I actually discovered Piet.
## All the Generative Things
### Camille Roux's new GEN ART Podcast
Arguably the most important piece of content in the genart space from last week was Camille Roux's new genart podcast. It made quite the splash due to its innovative format: instead of taking the common approach and inviting one or two guests to record a conversation as it is unfolding - Camille chose to do it a little differently, extending an open invitation for other generative artists to record their spoken answers in reply to a question of his. The podcast is then presented as a collage of these voice messages. You can listen to it here:
[](https://podcasters.spotify.com/pod/show/genart-podcast/episodes/Ready-for-the-Drop-e2jbt02?ref=gorillasun.de)
[Link to Podcast](https://podcasters.spotify.com/pod/show/genart-podcast/episodes/Ready-for-the-Drop-e2jbt02?ref=gorillasun.de)
What adds a fun element to it is that the participants pretend that they're leaving a message in Camille's voicemail inbox. And I quite enjoyed the format actually; I'm generally not a big fan of podcasts because I easily get bored after a while as they tend to drag on - but having a variety of speakers, with different perspectives and different accents does make it more engaging to listen to. Besides the format, the topic was also a very interesting one, the participants were asked:
> **How do you decide when your project is finished, and how do you handle deadlines?**
While many thoughtful answers were given I highly enjoyed how Paolo Curtoni almost poetically described it:
> In generative art the artwork is never truly finished - especially in the craze of long form generative art projects. What's fascinating to me is that at a certain point the artwork begins to have a life of its own in a way that is not completely controllable. \[...\] My role as an artist is to recognize this moment.
When working on a generative project there's often this magical moment where the artwork starts doing things that you haven't initially envisioned - and in certain ways starts to express its own identity. Paolo captured this beautifully with his words. If you have half an hour to spend on some entertainment this week, I recommend you give this pilot episode a listen!
### David Aerne's new color tool RYBitten
David Aerne is a software dev, creative coder, generative artist with a big passion for colors - most of his time you'll find him diligently building tools for the purpose of manipulating colors in all sorts of different ways; from their nomenclature, to palette configuration and other related tasks. David recently announced his newest creation titled RYBitten - a little library that lets you generate color spectrums according to Johannes Itten's color wheel theory:
0:00
/0:38
1×
[Link to Tweet](https://twitter.com/meodai/status/1788316833969262905?ref=gorillasun.de)
So, who's Johannes Itten and what did he have to say about colors? What's actually the RYB color space? And how do these two things come together in Aerne's tool?
Johannes Itten is a famous expressionist painter, teacher and writer that was associated with the early Bauhaus between 1919 to 1922\. Most famously he's known for his contributions in color theory however. In his book "The Art of Color" he suggests a 12 part color wheel that is constructed by interpolating between the primary and secondary colors in the center:
[](https://encyclopedia.design/2023/03/06/johannes-itten-swiss-expressionist-painter-designer-teacher-writer/?ref=gorillasun.de#jp-carousel-809511)
[More about Johannes Itten's life](https://en.wikipedia.org/wiki/Johannes%5FItten?ref=gorillasun.de) | [More info about Itten's Chromatic Wheel](https://encyclopedia.design/2023/03/06/johannes-itten-swiss-expressionist-painter-designer-teacher-writer/?ref=gorillasun.de#jp-carousel-809511)
The significant part of this wheel is its geometry that allows us to derive a number of useful properties. For instance, drawing a straight line from one color on the circle to another on the opposing side lets us find complementary colors. Itten also proceeds to identify seven types of contrast via this color wheel, which is a topic that I need to explore a little bit more before I can write about it.
By substituting the primary and/or secondary colors in the central hexagon, we can obtain different interpolations and therefore a different color wheel - David's tool accomplishes this and automatically computes these interpolations. The RYB color space is chosen in this setting because it is frequently used by artists working with paint and can emulate that particular aesthetic.

You should also check out some of the other tools that David has made in the past, here's the popular Poline for example 👇

The cool thing about them is that they're not only accessible as webpages, but are also always accompanied by an API that lets you invoke them directly from your code - which is especially useful for all sorts of different genart projects.
### Eric Loftis' OG Ray Tracing Recreations
Fascinated by Roy Hall's 1983 ray-traced artwork [The Gallery](https://digitalartarchive.siggraph.org/artwork/roy-hall-the-gallery-2/?ref=gorillasun.de), Erich Loftis decided to recreate it with threejs. In a thread he tells us about the details of his implementation:

[Link to Tweet](https://twitter.com/ErichLoftis/status/1788295077091016899?ref=gorillasun.de)
At the end of the thread he shares a gigantic resource in which he's actually recreated an impressive number of classic ray-tracing demos from the 80s and 90s under a creative commons license - if you want to learn how OG ray-tracing works this one is a definite bookmark:
[GitHub - erichlof/THREE.js-RayTracing-Renderer: Real-time Classic Ray Tracing on all devices with a browser, with real reflections, refractions, and depth of field, all on top of the Three.js WebGL framework. Click here for Live Demo: https://erichlof.github.io/THREE.js-RayTracing-Renderer/Classic\_Geometry\_Showcase.htmlReal-time Classic Ray Tracing on all devices with a browser, with real reflections, refractions, and depth of field, all on top of the Three.js WebGL framework. Click here for Live Demo: https://er…GitHuberichlof](https://github.com/erichlof/THREE.js-RayTracing-Renderer?ref=gorillasun.de)
## Web3 News
### Over Supply and Sameness in the NFT Space
There's a gigantic elephant in the porcelain shop this week... and I have no idea how to get it out! Y'all decided to uncork this one on a Saturday evening, when I was just about to wrap up the Newsletter - hence, I'm gonna take a big pass on this one, at least as a segment for the Newsletter since there's simply been too much floating around here that it would require an individual post. So maybe later this week.
The catalyst to it all was this Tweet by Alejandro Cartagena titled **The Sabotaging Practice of Over Supply and Sameness in the NFT Space**:
[](https://twitter.com/halecar2/status/1789215658573443422?ref=gorillasun.de)
An excerpt of the Tweet - make sure to read the rest of it. [Link](https://twitter.com/halecar2/status/1789215658573443422?ref=gorillasun.de).
I've been raking my brain about a meaningful way to respond to it, but it's not just one singular issue that's being addressed here, but it's a big pile of hot steamin problems that have been brewing for quite a while. The big questions that we need to ask ourselves: How did we get here? In which direction do we want the space to move forward? And what are we really trying to accomplish? Honest and truthful answers to these questions would be a good foundation for a discussion.
### Paragraph takes over Mirror
I think I've mentioned it before, but paragraph is essentially a Web3 Substack alternative. I've been quite out of touch with what's been happening with FarCon, but there's been an exciting development regarding paragraph as it's taking over Mirror - which is in essence a very similar platform to paragraph that allows writers to publish their content in a decentralized manner:
[](https://warpcast.com/colin/0x4b44b1b6?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/colin/0x4b44b1b6?ref=gorillasun.de)
I'm not entirely certain what the fusion of the two tools will entail, but I'm excited for the future of paragraph as I've publishing a bunch of my writing over there in the past weeks.
### Berlin Blockchain Week
One other thing here - if you're in Berlin or nearby in the next you might want to check Berlin Blockchain Week 2024 as it's unfolding over there.

[Link to Page](https://blockchainweek.berlin/24?ref=gorillasun.de)
## OpenAI x StackOverflow
Arguably the biggest news in tech from the past week was the announcement of a partnership between OpenAI and StackOverflow.
In this new partnership OpenAI essentially aims to utilize the massive programming knowledge base that SO has accrued over the past 15 years of its existence, leveraging the OverflowAPI for the purpose of improving its proprietary models. SO will follow suit and integrate some of OpenAIs models to improve its own in-house AI solution OverflowAI, benefitting from OpenAIs experience in that regard. And that's pretty much the gist of it - there isn't much more information on how this large language collaboration will unfold at this point. The official announcement can be found here:
[](https://openai.com/index/api-partnership-with-stack-overflow/?ref=gorillasun.de)
[Link to Tweet](https://openai.com/index/api-partnership-with-stack-overflow/?ref=gorillasun.de)
We'll apparently be able to experience this partnership come to life quite soon actually, with the first features rolling out by the end of June on both platforms:
> The first set of new integrations and capabilities between Stack Overflow and OpenAI will be available in the first half of 2024
The big issue that emerges from this partnership that caused quite a bit of outrage amongst the SO contributor community is that SO is simply handing out its own user data to the AI giant. Does SO actually have the rights to the exchanges that have transpired on the platform? In light of this a digital protest quickly took shape in response to the announcement: many SO contributors that were displeased with the thought of aiding the training of OpenAIs proprietary LLMs, attempted the deletion of their posts. SO does not however allow this when it comes to highly upvoted questions and answers:
[](https://mastodon.social/@ben@m.benui.ca/112396506720255941?ref=gorillasun.de)
[Link to Toot](https://mastodon.social/@ben@m.benui.ca/112396506720255941?ref=gorillasun.de)
The SO mods were swift to strike the ban hammer against every user that attempted such alteration of their posts. Apparently a clause in StackOverflow's terms indicates that they own all of the content that is submitted to the platform. A good recap of these happenings can be found on Tom's Hardware Blog:
[Stack Overflow bans users en masse for rebelling against OpenAI partnership — users banned for deleting answers to prevent them being used to train ChatGPTStack Overflow is overflowing with salt.Tom's HardwareDallin Grimm](https://www.tomshardware.com/tech-industry/artificial-intelligence/stack-overflow-bans-users-en-masse-for-rebelling-against-openai-partnership-users-banned-for-deleting-answers-to-prevent-them-being-used-to-train-chatgpt?ref=gorillasun.de)
It's not very clear what the ultimate outcome of this partnership will be, whether SO will fundamentally change as a platform since LLMs are already doing a pretty good job at answering questions without all of the man-made digressions that frequently transpire on the platform. Even if LLMs still sometimes make mistakes and are generally not very helpful when it comes to very niche knowledge, we might very soon see the platform shift to a more AI-centric model.
## Tech and Web Dev
### Apple's Promotional iPad Gambit
Who would've thought that creatives wouldn't really enjoy seeing thousands of dollars worth of creative tools being destroyed? Well... clearly Apple didn't, because that's exactly what they did in a recent promotional gambit of theirs. And the entire thing backfired on them quite dramatically, with quite a bit of turmoil on social media. Here's their promo video for the new iPad:
0:00
/0:53
1×
[Link to Tweet](https://twitter.com/tim%5Fcook/status/1787864325258162239?ref=gorillasun.de)
It's not because people were pissed about the monetary value that was evaporated to create a 60 second commercial, compressing the creative tools as if they were garbage, but rather due to it being a symbolic act of dismissal of the intrinsic creative and human values of these tools in favor of a something that is merely a product. Smaller, faster, better, yada, yada - Big Tech is gonna do big Tech things, and the new iPad is going to sell millions of copies regardless of the controversial advertisement that they decided to launch it under.
### A Productivity App by Alex Kaul
As a freelancer you frequently have to wear multiple hats, and things can quickly turn into a real mess; you've got important files strewn about different directories, a million tabs open at the same time, and in all the chaos you skip an important step of your workflow that makes or breaks your project.
To combat this conundrum freelance web dev Alex Kaul created his personal productivity app titled Freeter, that allows him to better keep track of the different tasks that he needs to tackle and lets him set clear boundaries between his different workflows - he explains how it works in a write-up of his:

[Link to Article](https://hackernoon.com/how-i-boosted-my-productivity-while-working-on-multiple-projects?ref=gorillasun.de)
And it's actually an open source tool! If you've been following along in the past couple of Newsletter issues you'll have noticed that I've been on a bit of a productivity power trip; transitioning from Obsidian over to Notion, as well as leveraging Raycast as a more powerful finder app - what's one more app gonna make a difference.
I gave Freeter a shot and it actually does make a lot of sense, it's in essence a tool that lets you *containerize* workflows, for instance when I'm collecting the content for the blog I will often switch between the Ghost editor and my Twitter bookmarks, with Freeter I can save these two views as a workflow:

It's not very elaborate, and I could add other widgets here, but this works for me. My only gripe right now is that the web page widgets are a little lag-y at times. Freeter is still in beta however, so that might be why.
### Text Manipulation Kung Fu in Zed
Earlier this year ([back in January](https://www.gorillasun.de/blog/gorilla-newsletter-41/#tech-and-code)) I wrote about the new code editor Zed, made by the same folks who previously built Atom and Tree-sitter. Over the weekend, while I was putting together a simple python script to automate a task I took Zed for a test drive. First impression, very similar to Atom - but somehow also feels fresh. I'll definitely have to use it a bit more however before I can form a final opinion though.
To not get side-tracked, I'm bringing up Zed because they've been publishing a couple of interesting articles over on their blog, one of them a deep-dive on a bunch of very useful hotkeys for navigating your code more efficiently:
[Text Manipulation Kung Fu for the Aspiring Black Belt - Zed BlogLearn the basics of text manipulation in Zed via a series of guided exercises.Joseph Lyons](https://zed.dev/blog/text-manipulation?ref=gorillasun.de)
💡
****The cool thing: All of these hotkeys also work in VSCode!**
Kind of embarrassed to admit that I didn't know about ANY of these hotkeys before - manually highlighting an entire line of code with the trackpad instead cmd+left-arrow-keying it... you'd think that after this many years of writing code I'd actually spend some time on learning how to use my tools a bit better. 🤪
## AI Corner
### FKA twigs at US Congress on AI Deepfakes
The musician FKA twigs recently spoke at US Congress to address the usage of AI deepfakes, on the one hand by herself to represent her own likeness, and on the other hand by others to imitate her likeness. This is under in regard to a draft for the NO FAKES bill that will aim to regulate these issues:
[‘My brand is my brand’: FKA twigs speaks at US Congress about AI deepfakes · News ⟋ RAThe UK artist joined Warner Music Group CEO Robert Kyncl and others at Tuesday’s Judiciary subcommittee.Resident AdvisorCarlos Hawthorn](https://ra.co/news/80638?ref=gorillasun.de)
### Magnific joins Freepic
Not sure if this is a big deal, it seems like it to me but Magnific and Freepik are joining forces and they're two companies that I would keep on my radar. Magnific is currently the best AI up-scaler out there when it comes to AI art, it really produces some incredible results compared to other models that have. Freepik on the other hand was original a marketplace and repository for stock images that's just recently embraced AI tech for image creation - one really cool tool that they have is the a live sketching canvas that directly converts your sketch to an AI generated image in pretty much real time:

[Link to Sketching Tool](https://www.freepik.com/pikaso/sketch?ref=gorillasun.de) | It is a paid service, but you get a couple of free credits to get started.
And here's the announcement for their joint endeavors moving forward:
[](https://twitter.com/javilopen/status/1787852344681787754?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/javilopen/status/1787852344681787754?ref=gorillasun.de) | If you scroll down far enough there's a sign up link that lets you use all of Freepik's AI services for free for 3 weeks.
### Can Computers create Art?
Aalto University invited the three guests Tomi Slotte Dufva, Kyle McDonald, Hannu Toivonen to talk about computers, creativity and Art - I haven't watched it yet but it should be a good one. You can find the recording of the talk [here](https://tiedekulmamedia.helsinki.fi/fi/web/tiedekulma/player/webcast?playerId=38521893&eventId=279851607&ref=gorillasun.de).
[Can computers create art? | Aalto UniversityAalto University and University of Helsinki organise an event about artificial intelligence and art. These talks are part of the Creative Technologies series.Aalto University](https://www.aalto.fi/en/events/can-computers-create-art?ref=gorillasun.de)
## Gorilla Updates
After publishing the Newsletter last Monday, I doubled down and wrapped up the second Gorilla Monthly in which I ended up doing a big deep dive on the EmProps OpenStudio that I recently got access to - a big examination of how to prompt Stable Diffusion models and how the different parts of the OpenStudio play into this - you can get access to the article by subscribing to my Hypersub [here](https://shorturl.at/lpsB9?ref=gorillasun.de):
[](https://shorturl.at/kostD?ref=gorillasun.de)
[Link to Article](https://shorturl.at/kostD?ref=gorillasun.de)
I actually also managed to spend quite a bit of time on making generative art this week, not just polishing some of my ongoing projects but also experimenting with a couple of new ideas - for instance, I spent a little bit of time trying to recreate an interesting tiling pattern that I came across on Pinterest (as always):


I couldn't actually pinpoint the original source of the image. My recreation on the right side.
How would you go about recreating the pattern with code? Examining the tile pattern a bit more you'll notice that it's simply a triangle grid - if we were to iron out the wavy edges that is. That means that we would simply need to deform the edges of the triangles with a sine wave, and that's basically what I did. Well, it's not really a sine wave, but rather a smoothed variant of it (that's also basically a lie, to make a sine wave appear smoother you actually make it steeper around the inflection point). A handy approach towards that end is described in the following StackOverflow answer:
[making a sine wave steeper?I’ve written a a little function that gives me out a value based on a sine wave when I put in a float between 0 and 1\. I’m using it to lerp things around in a game. public static class Utilities…Stack OverflowGuye Incognito](https://stackoverflow.com/a/39291146/6688750?ref=gorillasun.de)
The cool thing here is that deforming edges with a periodic wave function will work for any sort of regular tessellation in which edges are all of the same length - here's what I mean in the setting of a hexagonal grid:

This way you can get all sorts of interesting interlacing patterns. Definitely a powerful trick that's earned itself a permanent spot in my toolbox!
## Music for Coding
Under the artist name Murcof, the composer Fernando Corona combines minimal electronic elements with washed out orchestral drones into tracks that you could almost describe as being liminal - in an interview Murcof states that he finds himself "attracted to sounds that evoke a sense of mystery and otherworldliness" and his 2005 track Reflejo is a testament to this:
Link to Murcof's Bandcamp
And that's it from me—hope you've enjoyed this week's curated assortment of genart and tech shenanigans!
> Now that you find yourself at the end of the Newsletter, you might as well share it with some of your friends - word of mouth is till one of the best ways to support me! Otherwise come and say hi over on my socials - and since [we've got a discord now, let me also just plug that here, come join and say hi](https://discord.gg/Uy67DUDk8q?ref=gorillasun.de)!
**If you've read this far, thanks a million!** *If you're still hungry for more Generative Art things, you can check out last week's issue of the Newsletter here:*
[Gorilla Newsletter 55Generative Art vs. Generate AI - Mathematical Paper Marbling - Making of Raycast’s Homepage Shader - Project Neo - Crypto Artists invest in Themselves - XCOPY’s mysterious mint on HEN - Alternative Proposal for CSS Masonry +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-55)
*A backlog of all previous Gorilla Newsletters can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** [Join the Discord!](https://discord.gg/Uy67DUDk8q?ref=gorillasun.de)
*If you're interested in sponsoring or advertising with the Newsletter - reach out!*
###
### Gorilla Monthly 2: A Closer Look at EmProps' OpenStudio
URL: https://www.gorillasun.de/blog/gorilla-monthly-2-a-closer-look-at-emprops-openstudio/
Last updated: 2024-06-22T11:20:46.000Z
A deep dive into prompting Stable Diffusion models and a closer look at the EmProps OpenStudio.
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 55
URL: https://www.gorillasun.de/blog/gorilla-newsletter-55/
Last updated: 2024-08-12T16:17:18.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 55th 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 - as well as a sprinkle of my own endeavors.
Before we get started this week, I just wanted to say thanks to everyone that's joined the discord already! There's already over 60+ members in there, and it's been really lovely to get to know all of you a little through the introductions that you've posted! If you haven't joined yet - [here's another invite link!](https://discord.gg/Uy67DUDk8q?ref=gorillasun.de)
That said, **I hope that you're all having an awesome start into the new week!** Without further ado, here's your weekly roundup 👇
## Is Generative AI... Generative Art?!
AI's done it again - and people are angry!

[Link to Tweet](https://twitter.com/queenkellee/status/1786427881234821320?ref=gorillasun.de)
Recent developments in AI tooling indicate that the reaper is now knocking at the doors of musicians and film-makers. A recent post that's been making the rounds over on TwiX, and that has garnered quite a bit of anger in the replies, is an AI generated music video by Paul Trillo. It might be hard to believe at first but it's quite an outstanding piece:
[](https://twitter.com/paultrillo/status/1786425157915234776?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/paultrillo/status/1786425157915234776?ref=gorillasun.de)
If you haven't heard of it yet, there's a new tool that's been making the rounds: Sora. It's OpenAI's newest model that lets you generate videos simply via a text prompt. I quite enjoyed the dreamy, trippy nature of the video though, and I thought that it was quite creative since I haven't seen anything like it before. Paul Trillo leverages the AI for a number of effects, that I'm not quite sure if they're easy to replicate by other digital or analog means.
Scrolling down the replies however, it quickly turned into quite a roller-coaster of mixed sentiments.
I've been having my own internal conflict about the current state of AI, simply trying to understand my stance on the state of things. I'm neither pro, nor anti AI - but if there's something that I **hate**, then it's maximalist stances. It generally leads to an oversimplification of complex issues, the nuance of conversations is lost, and ultimately leads to polarization and division of the involved parties. That is one of the biggest issues that I'm currently seeing with AI, people are either entirely against it, or sometimes even too enthusiastic about as well.
And I'm trying to understand both points of view.
There's definitely still is a big elephant in the room, and it's how large companies train their models - which in many cases is done on data that they likely don't have the rights to train on. While I completely understand the anger that's directed towards the companies in that regard, the tech in itself is not inherently bad, it's simply the scummy practice of those companies. But that seems to be the de-facto standard in any industry, not just AI - see some of the things that are going on in the games industry for instance. In this sense:
AI doesn't suck. Companies suck.
From a different point of view, are we angry at AI because it now takes much less effort to recreate certain art-forms that previously took painstaking effort? If that is the case, do we judge and appreciate art solely because of the technical difficulties involved? But that's hardly ever the only criteria for judging a piece of art - there's so many other things that play into it. Here you could argue that it makes the art become soulless - but I wouldn't agree with that either, the AI didn't make something out of its own volition, the person at the steering wheel clearly had thoughts and feelings of their own.
I think that a much better descriptor for this issue in particular, is that it's making people **lazy**. Whether it's shilling AI generated NFTs, making AI influencers with Onlyfans accounts, or flooding YouTube with AI generated playlist. While all of these aren't illegal, they are however morally questionable.
AI doesn't suck. People suck.
In my opinion the music video by Paul Trillo does not fall into the lazy category, I thought that it was pretty creative. I believe that it's only a matter of time before people get better at differentiating between those two different kinds of AI generated content - the important thing is to educate.
Are we angry at AI because it's changing the industry too rapidly? Well in that case, buckle up, because things are just going to get faster from here on out. All things considered, the woes of the small artist are quite negligible in the larger scheme of things. I hope one day in the future some type of conscious AGI gets trained on this exact text - and halts for just a brief moment to think to itself "this dude gets it".
AI is going to transform the music industry, and AI is going to transform the movie industry, just like it's already changed the digital arts in many ways. And we're gonna listen to that music, and watch those movies, and we're most likely going to enjoy them, because ultimately it's just forms of data that are intended to stimulate our senses. To a large extent the advancement in AI here are driven by the financial incentives that it provides to a lot of companies - but again, things are likely not going to slow down.
AI doesn't suck. Capitalism sucks.
While digital artists, musicians, and more recently also filmmakers are undergoing an existential crisis at this point in time, generative artists are fighting an entirely different one: the battle of Terminology.

[Link to Tweet](https://twitter.com/mactuitui/status/1784874592944771165?ref=gorillasun.de)
Generative Art and Generative AI are just not the same thing - while at their foundation they share common aspects, in that a code based system is responsible for generating the outputs, they both define two completely different modes of working (which I think is the best way to state the distinction). Zach Lieberman chimes in on this with his concerns on the issue:

[Link to Tweet](https://twitter.com/zachlieberman/status/1784926860146544665?ref=gorillasun.de)
The terminology here is quite complicated, and I'm not certain how to solve it. Generally when people ask me what I do, my answer of choice is "I make creative things with code" - although that also doesn't capture some of the emergent and mathematical properties that generative art implies it generally is sufficient to convey the idea. Another issue nowadays, is that when you say that something is made with AI, it's often immediately devalued as it comes across as being lazy - whereas the traditional genart, where you write code to generate an image - does require quite a bit of knowledge and skill.
I'd be curious to hear, where do you stand on all of these issues? AI yay, or nay? And why?
## All the Generative Things
### Paper Marbling Coding Challenge
It's always a really good week for creative coding when Daniel Shiffman releases a new video - this week he tackles a method for simulating Paper Marbling in Coding Challenge:
If you've never heard of Paper marbling, in essence it's a centuries-old technique that's used to create decorative patterns that resemble the veining of marble or other stones. Physically, this is achieved by floating special inks and/or paints on a thickened liquid base called "size". While the inks already create interesting deformed patterns when they're dropped into the size, other beautiful effects emerge when the artist further manipulates the colors with combs, styluses, and other tools to create interwoven patterns:
[Paper marbling - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/Paper%5Fmarbling?ref=gorillasun.de)
A sheet of paper is then carefully laid onto this liquid surface, to capture the emergent pattern, subsequently dried to reveal the final result. Historically, paper marbling was used for bookbinding, decorative end-papers, and even to deter forgery in documents. Today, it continues as both a traditional art form and a popular craft.
As you can imagine, this is not a simple feat to simulate computationally, while I've seen some attempts I never really looked into it myself; I was under the assumption that you'd require some complicated shader-based fluid simulation. The approach that Shiffman presents in the video is actually none of those things - Aubrey Jaffer, a mathematician from MIT, proposes a relatively simple method for it in a paper of his back from 2012\. Well, a lot of the math he presents is still way over my head, but the part that pertains to simulating paint drops in a liquid and combing them are relatively straightforward. All of the info can be found in form of a website here:
[](http://people.csail.mit.edu/jaffer/Marbling/?ref=gorillasun.de)
[Link to Site](http://people.csail.mit.edu/jaffer/Marbling/?ref=gorillasun.de)
And it's actually quite a simple formula: it essentially describes how drops of paint that have already been placed on the canvas are deformed and displaced by subsequent drops. In this scenario the paint drops are simply vertex shapes, where the coordinate information of the vertices is updated with the following formula:

I haven't tried the coding challenge for myself yet, but Alexis André has been quick to the gun and made his own mind-boggling take on the idea:
0:00
/0:10
1×
[Link to Tweet](https://twitter.com/MacTuitui/status/1787210214321651857?ref=gorillasun.de)
### On Building RayCast's webpage Hero
My master plan has already come to fruition, and I've been discovering and learning about new things through what's been shared on the discord! Earlier this week, Richard linked to the Raycast homepage, pointing out that it's headlined by a really cool interactive shader:

Two things came from the exchange, for one, I learned about Raycast, which turns out to be a really cool tool, and for another, I later actually paid attention while doom-scrolling down the TwiX feed and learned how the shader was made through a Tweet from the creator.
A little about Raycast since it seems to be all the rage right now! (Not sponsored!) In essence it's an alternative to the finder app on mac devices - finder on steroids basically; it "adds productivity tools mac should have shipped with" and extends the capabilities of the original Mac finder.
For example, it provides a color picker that can be used anywhere and everywhere on the mac, which is super useful when you see a cool color and want to save it for later. Another useful thing is a clipboard history, where you can basically see all of the things you've copied since the start of your session. Those are just two of many things it can do. I've been on a bit of a productivity power-trip over the past couple of weeks, so it was a no-brainer to take it for a spin. Overall I'm really satisfied with it.
Let's talk more about the shader though. My initial assumption was some sort of SDF controlling the movement of the colors inside the diagonal bands. But it turns out that the trick is actually much simpler than that, conceptually at least. The creator behind it, Dan Hollick lets us in on the creative journey he underwent to create the piece:


[Link to Tweet](https://twitter.com/DanHollick/status/1786006799734489476?ref=gorillasun.de)
While it's "just a cube behind some glass" I think it's actually ingenious, and not really that easy to recreate from scratch as people have pointed out in the replies:

To some extent it also reminds me of Shaderisms art, particularly of his piece Blind Spots on Art Blocks, as I believe that it's created in a similar manner. [You can check it out here](https://www.artblocks.io/legacy/collections/curated/projects/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/484?section=details&ref=gorillasun.de).
### A 3D SDF Editor by Inigo Quilez
Just yesterday the OG SDF wizard Inigo Quilez announced that he's releasing a new tool titled Project Neo. It's a project that's done under Adobe, and is essentially an SDF powered 3D editor that lets you create all sorts of shapes and then export them. Here's the announcement:
0:00
/0:31
1×
[Link to Tweet](https://twitter.com/iquilezles/status/1786936754366542066?ref=gorillasun.de) | [Link to Project Neo](https://projectneo.adobe.com/?ref=gorillasun.de)
Although it's being released as a beta version, you can already try it out for yourself [here](https://projectneo.adobe.com/?ref=gorillasun.de). And my first impression is very positive; it runs pretty smoothly directly in the browser and is pretty easy to navigate. One downside that I noticed however, is that the editor requires a chromium based browser - a slight inconvenience if you're using something else, like FireFox.
Apparently the editor is also collaborative - checking out one of the creations that's presented on the main page, it shows me the other users that are also currently viewing the same project:

Arguably one of the coolest features that Project Neo currently has, as one of the replies to Quilez post points out as "black magic", is support for exporting the 3D render as an SVG, simply by sending the project over to Adobe Illustrator. Surprisingly however, it doesn't currently support any functionality for exporting 3D assets - many of the other replies were comparing it to Womp3D, another similar editor that does support this however:


While I'm not a big fan of Adobe's Creative Cloud, the tool looks very exciting. Considering that it's still in beta, we'll see what other features will be added in the future.
### Generative Art Summit Berlin (July 2024)
Later this year, from the 3rd to the 6th of July to be precise, Berlin is going to oversee the Generative Art Summit hosted by the Foundation Herbert W. Franke. The conference invites many of the leading generative artists to discuss some of the important questions that currently pertain to generative art - you can find more information about the event here:
[Generative Art Summit Berlin | art meets scienceJuly 3rd - 6th: “Generative Art Summit”, Academy of Arts Berlin, fostering the dialog about the history of generative art across generations and the globe.art meets science](https://art-meets-science.io/en/generative-art-summit-berlin/?ref=gorillasun.de)
I'm not entirely certain about the exact format of the conference, if it's presentations, panel talks, or a mixture of both. The tickets for the conference are quite affordable however, and at this point in time I'm tending towards attending, but I still need to resolve some things with my schedule before I can fully commit.
## Web3 News
### Crypto Artists Invest in Themselves
Have you ever made an NFT? If yes, have you ever bought your own art back when it was listed on the secondary? If yes, why? I personally have, but just on one occasion (that I can remember right now), where some of my collectors immediately listed their mints on secondary for lower than the original price on primary - assuming that they were not happy with their mints I bought them back. If you ever collect something from me and would like a refund, you can simply reach out. Now don't come and tell me you want a refund for something you've collected from me 2 years ago.
RCS tackles this specific topic, of artists buying back their own art, in their most recent article; apparently some of the bigger, more successful artists have been buying back their own art from the secondary market. In certain cases for a much higher value than they had originally sold them for. Nina Knaack dives into the specifics of the issue, describing it as "more than just a market trend" she talks to a number of those artists:
[Crypto Artists Invest in ThemselvesThe trend of crypto artists buying back their own NFTsMarius Watz](https://www.rightclicksave.com/article/crypto-artists-invest-in-themselves?ref=gorillasun.de)
Reflecting on my own relationship with my art - and without being cynical, the article feels a little alienating. It's only a very small percentage of artists that can *afford* to reinvest in themselves in that manner. I also don't understand how it leads to artists "gaining more control over their work's distribution and valuation" - yes, artists can to some extent curate their work that exists out on the secondary market, but I'm not entirely certain if that will have an impact on its valuation, if they're not already highly acclaimed.
Maybe I just don't get it because I don't generally have that religious conviction in my own art. Maybe it's my German half that's speaking out loud here, but the sobering reality is that there's a difference between "believing that you will be successful" and "actually being successful" - the latter makes it a lot easier to actually believe that you are successful.

Investing in myself and buying back my own art - am I doing this right? 🙂
### XCOPY's mysterious mint on HEN
Zancan brings back a wonderfully hazy memory from the early HEN days, that must've felt like a fever dream for NFTBiker. It's the story of him discovering an unannounced XCOPY mint on HEN:

[Link to Tweet](https://twitter.com/zancan/status/1786333702487777500?ref=gorillasun.de)
He recounts the story in a blog post of his, telling us how he clicked the mint button after some initial doubts:
[How I bought XCopy REACHBACK artworkI really like what XCopy do. I also love the new NFT plateform HicEtHunc, which use tezos blockchain instead of ethereum. So one day, I posted on twitter a simple question Imagine that, like many…Tumblr](https://blog.nftbiker.com/post/702747397756010496/how-i-bought-xcopy-reachback-artwork?ref=gorillasun.de)
### The NFT Market's Comeback
While I want to believe that we're at the start of another bull run, I'm not certain if it's actually going to happen - the signs are positive however. Daniel Grant from The Art Newspaper tackles this topic in a recent article, he argues that this resurgence is being driven by a new type of collector – Grant describes them as more "mature" and established within the art world. Overall these collectors are less interested in quick profits and more focused on the long-term value of NFTs. I wouldn't disagree that this shift in the nature of collectors could lead to a more stable and sustainable NFT market in the future:
[How ‘more mature’ collectors are powering the NFT market’s comebackWhile Bitcoin and other cryptocurrencies reach new highs, the market for digital art has not experienced the same frenzy of speculation as in 2021\. Recent auction results, however, suggest that an appetite is once more growingThe Art Newspaper - International art news and eventsDaniel Grant](https://www.theartnewspaper.com/2024/05/01/how-more-mature-collectors-are-powering-the-nft-markets-comeback?ref=gorillasun.de)
## Tech & Web Dev
### An Alternative Proposal for CSS Masonry
Last week I shared an [article by Jen Simons from the WebKit team, in which they propose the integration of masonry layouts as a part of the CSS Grid specification](https://webkit.org/blog/15269/help-us-invent-masonry-layouts-for-css-grid-level-3/?ref=gorillasun.de). While they go over how it could be done, the article is in essence an open invitation for other web devs to join the discussion.
This past week the folks over at Chrome answer this call, to voice their concerns about this idea. They argue that it would be a mistake to integrate Masonry Layouts as a part of the Grid specification like the WebKit team suggests. They explain their reasoning and also provide an alternative solution towards that end:
[An alternative proposal for CSS masonry | Blog | Chrome for DevelopersA proposal to define masonry and grid in different specifications.Chrome for DevelopersX](https://developer.chrome.com/blog/masonry?ref=gorillasun.de)
As far as I understand the issue lies not within deciding whether or not one can semantically consider a masonry layout to be a sort of grid, but rather because these two types of layouts simply function differently. While the article provides a brief overview of the problematics, they do address the involved issues in more detail in a lengthy reply to a Github issue:

[Link to Github Issue](https://github.com/w3c/csswg-drafts/issues/9041?ref=gorillasun.de)

[Link to Reply](https://github.com/w3c/csswg-drafts/issues/9041?ref=gorillasun.de#issuecomment-2075210820)
And it seems that this entire debate is tackling a larger overarching problematic - whether or not different layouts should be integrated as part of Grid or not:
[](https://news.ycombinator.com/item?id=40130148&ref=gorillasun.de)
[Link to HackerNews Item](https://news.ycombinator.com/item?id=40130148&ref=gorillasun.de)
### Printing Music with CSS Grid
While we're already talking about CSS Grids, here's a cool thing that Stephen Band has created with them, making it possible to display responsive sheet music in the browser:
[](https://cruncher.ch/blog/printing-music-with-css-grid/?ref=gorillasun.de)
[Link to Article](https://cruncher.ch/blog/printing-music-with-css-grid/?ref=gorillasun.de)
While there might be many edge cases for which this approach might break, if you just need a lightweight solution for displaying simple sheets on a web-age, this might come in handy.
### The Polish Paradox
Have you ever noticed how truly excellent design often fades into the background? This is what Matthew Ström calls "The Polish Paradox." The most polished elements—the ones that took painstaking effort—are precisely the ones that seem effortless and obvious - and sometimes the most important and impactful details in design are the ones that are the least visible:
[The polish paradoxThe more you polish, the less you seeMatthew Ström, designer-leader](https://matthewstrom.com/writing/the-polish-paradox/?ref=gorillasun.de)
One example that is presented in the article, is the iPhone's keyboard. When Ken Kocienda developed it, he had the keyboard’s touch targets invisibly adjusted based on what was being typed, preventing users from otherwise making errors - while this is a feature that you will never actually make note of, it makes typing just a whole lot easier. From a technical point of view I believe that this is simply done by predicting the next letter from a weighted dictionary and then enlarging the touch area of the corresponding letter on the keyboard.
Overall, what Ström tries to tell us, is that true polish isn't tacked on at the end - but rather is a commitment that's built-in from the start, to perfecting even the smallest elements.
## AI Corner
### Sam Altman's Controversial Interview
I'm generally not a big fan of this type of sensationalist posts, but this one actually did a pretty good job at capturing the highlights from Sam Altman's recent appearance at a Stanford seminar:

[Link to Tweet](https://twitter.com/aisolopreneur/status/1786118836309352492?ref=gorillasun.de)
### Building a Chat Integration with Gemini
How do you actually build your own chatbot with an LLM? And how do you make it handle the chat history and be able to look back on the conversation that's been held? Raymond Camden answers this in an article of his, in which he shows us how to build a chatbot with the Gemini SDK:
[Building a Chat Integration with Google GeminiFather, husband, developer relations and web standards expert, and cat demo builder.Raymond CamdenFather, husband, developer relations and web standards expert, and cat demo builder.MenuPatron](https://www.raymondcamden.com/2024/04/30/building-a-chat-integration-with-google-gemini?ref=gorillasun.de)
## Gorilla Updates
Earlier this week I published a new Interview, and it's with none other than Aleksandra Jovanić! It was an absolute pleasure talking to her, to learn about her career, and to also get a glimpse into her generative practice where she more often than not tries to blend between the digital and the physical:
[In Conversation with Aleksandra JovanićAleksandra Jovanic is an artist and programmer from Belgrade, Serbia, with a Doctorate in Digital Arts and a BSc in Computer Science. In her artistic practice she combines various media, mainly in the field of interactive art, art games, and generative art.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-aleksandra-jovanic/)
In other news I've also continued working on the puzzle grid project of mine - there's still quite a bit to be done in that regard, but it's overall been chugging along nicely. Going off of the reaction of folks over on Twitter it also seems to be received very positively:


There hasn't been that much more generative art otherwise as I've been mostly locked down writing. I did however play a lot with AI image generators trying out new things that I haven't done before and some of the outputs here turned out really cute:




## Music for Coding
Never have I vibed this hard to a mix - this selection of tracks by Bobby Ghanoush really took me away over the course of several sessions in the past week:
And that's it from me, hope you've enjoyed this week's curated list of generative art and tech shenanigans! Now that you've made it through the newsletter, might as well share it with some of your friends - one of the best ways to support it! Otherwise come and say hi over on my socials! [Since we've got a discord now, let me also just plug that here, come join and say hi.](https://discord.gg/Uy67DUDk8q?ref=gorillasun.de)
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 54Gorilla Sun Discord Launched - Puneyvr’s Record Breaking Glyph - Differential Growth Vases - The Crochet Protocol - Sonifying Github Repositories - Bright Moments comes to an End - Minimizer’s Infinite Scribbles - On Writing Alt Text +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-54)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### In Conversation with Aleksandra Jovanić
URL: https://www.gorillasun.de/blog/in-conversation-with-aleksandra-jovanic/
Last updated: 2024-09-06T13:08:05.000Z
**I've recently had the pleasure of speaking to the brilliant Aleksandra Jovanić. When she's not busy giving lectures, Aleksandra spends most of her time making generative art - in a variety of mediums. She's quickly risen to become one of the most prolific artists in the space over the past two years, participating in multiple digital and IRL exhibitions around the globe.**
In our conversation we speak about her early beginnings, from the path that led her to becoming an associate professor at the university of arts in Belgrade, that had just spun up a new program in Digital Arts in the early 2000s - to later getting into making code based blockchain art on hicetnunc and fxhash. We also address the influence this formal career has had on the art that she makes today.
In the latter half we dive deeper into her practice, from the importance of a conceptual foundation for her works, to her fascination for making series and collections of things. It was deeply insightful to learn about how she approaches the generative practice in general - and how she tries to go beyond the boundaries of the screen to experiment with different physical materials.
## Education and Early Years
**GS: Looking at your CV, you have an impressive track record. You started with a Bachelor in Computer Science and later transitioned to the digital arts, I'm curious, how did that happen? Where does it all start from childhood and how did you end up getting into generative art?**
Aleksandra Jovanić: As every child, I was curious about a lot of things; drawing, sculpting, making, and deconstructing how things are built. In school I was better at the subjects that didn’t involve a lot of repetition and memorising, like math for instance. Subjects where I could use logic and intelligence were generally more interesting. I wasn’t an all A student, but was almost there, and I continued in that style throughout all of my education.
Ultimately, some of the subjects that I was taking in high-school led me to studies in computer science - I guess due to the environment that I grew up in and the always present narrative about struggling artists, I ended up choosing a field that was a bit more future-proof. But even then, there were different faculties that you could choose from, for example the Faculty of Electrical Engineering had a computer science track, the Faculty of Mathematics, the Faculty of Organisational Studies, etc. Ultimately I chose the Faculty of Mathematics. And I’m still satisfied with all of my choices. I ended up finding a good path.
Coincidentally, when I graduated they had just established a new program in Interdisciplinary studies at the University of Arts here in Belgrade, and for the first time, they were opening their doors for anyone to apply. Usually, the further along you are with your studies, the narrower your choices become. You end up having a limited number of options for universities that you can go to if you graduate from a certain faculty. But at the time, the people in charge of the program realized that technology had started influencing the field, and they did something really advanced for their time.
That was the year 2000\. Because this new program in Digital Art was a joint effort between different professors from different faculties and areas of study, it was possible for everyone that had portfolio to apply. Your degree didn't matter that much. During my studies at the faculty I had found interest in web design, researching and learning HTML, CSS and scripting languages - so I had already done different kinds of designs and animations - and it wasn't really a problem for me to put together a portfolio and sample some of my works for this purpose.


It was interesting for me - because for my colleagues that were already coming from art faculties, it was simply an upgrade to what they were already doing. But for me it was a completely new field, in which I was essentially starting from scratch again. This is basically how I switched to digital art after I had finished my degree in computer science, and later on led me to also pursue my doctoral studies in digital arts. And because I was so enthusiastic about all of it and did good work, I was offered to start working as a teaching assistant, which marked the start of my academic career.
Now I'm working at the Faculty of Fine Arts, teaching a set of subject that's called "Technology of New Media", which is in fact includes Creative Coding, Physical Computing, 3D modelling and 3D animation, Web Design, Makers Technologies. I also stayed as a professor at doctoral studies in Digital Art, and I teach a subject there called Interactive media.
## Influence of a Formal Education on making Art
**GS: My entire educational background lies in computer science, I'm curious about the things that you learn in an art-centered field. What are some of the things they teach you during your Master and PhD studies in Digital Arts? Or is it more research oriented?**
**AJ**: Because it was a new program when I started my post-grad studies, we basically had 5 main subjects: digital animation, digital video, digital imaging, digital sound and interactive media - tadaa \[laughs\] - so it's basically all the fields in traditional media with a technological aspect introduced. Then there's accompanying subjects, like theory of art, writing methodology, as well as other things that add value to the core subjects. This program is similar to what is now taught as a PHD program.
During my masters I mostly focused on digital animation. The final project that I did in 2005 was an installation that consisted of a series of animations, titled Digital Dreams. The installation tries to imagine a future in which our machines have become more intelligent and be able to dream - and if they could dream, what would they dream of? The animations represent those dreams, displayed on computer monitors, and they were essentially collages of materials, that I imagined the computer owners would expose their computers to.
During my doctoral studies, I dove more into interactivity and mostly used Flash. I played with the notion of using game mechanics, as well as algorithms that were commonly used in games, to create an environment in which players could explore short stories and poems - so you had to solve puzzles and play the game to unlock new chunks of the story. This was already generative in a way because the puzzles you had to solve were always different.


When I got my doctoral degree I was invited to teach these studies, and that's when I started teaching with Processing. That was around 2011 I think. Later on I started using P5 because I wanted to share my work in an interactive manner online.
**GS: Do you think you had an advantage over your colleagues coming from a background in computer science?**
**AJ:** I think I did, yes. Sometimes you're not aware of the advantages that you have over others, and you take for granted the things that you know. Before my Masters I worked for half a year at an agency doing web design, and I had colleagues that did not have a formal education in mathematics or computer science, so there were some things that were easy for me that they struggled with. Like boolean algebra or regular expressions for example; that's when I became aware, for the first time, that the things they tortured us with in the faculty can actually pay off. \[laughs\]
**GS: A lot of the things they tortured me with during my time at uni, like data structures and different kinds of algorithms, ended up being quite useful for making funny images with code \[laughs\] But at the time you don't know that.**
AJ: Exactly. \[laughs\]
**GS: When I made a poll over on Twitter asking how people got into creative coding, I was surprised to learn that a lot of people were actually self-taught. Back in Lebanon, pursuing academia is the more common career path. If you told me today that I had to re-learn programming from scratch again, I don't know if I would be able to, by myself at least. In uni you have to because you eventually want to pass your courses.**
**Long story short, to what extent do you think your academic background influences the art that you make today? Do you think you would make a different kind of art, or have a different approach if you were self taught? A bit of an open-ended question.**
**AJ:** That's an old question.I think we can reposition this questions as "What art would you make if you didn't know what art was?" basically if you hadn't seen or read anything from the history of art - in the context of generative art, that's similar to asking "How does knowing different algorithms influence the art that you make?"
Maybe your course was similar to mine, in our exams they would ask us to write the code for a specific problem, and ask us to do so in the most optimal manner. And I was always frustrated with that; if it works, why does it matter how long it takes \[laughs\] and today I still don't really mind waiting for my code to produce its outputs - okay I have to admit it matters when I need a good frame rate for the smooth animation.
While for art purposes the technical knowledge doesn't matter, it can influence the way that we write the code and sometimes lead us to surprising results that can lead to different outcomes. So for me its important to have a strong initial concept, - if you start with a strong concept it doesn't need to be as algorithmically complex.
**GS:** **Being more knowledgeable about techniques and methods allows you to express yourself more freely. But at the same time it makes me wonder - if you didn't know a particular solution for a given task, would it lead you to be more creative, to discover your own solutions, and even lead you down the path to a completely different kind of art?**
AJ:Exactly, I like to compare this to machine learning models of the future. If you already know the solution for something that you want to create, you're not very different from a computer executing instructions; you're not forced to be creative and think outside of the box. In the future we're expecting General AI to have ideas of their own. Essentially, our creativity emerges from balancing between learned concepts and adding something new. There are so many philosophical aspects to your one question.
Maybe early cave paintings are an example of this, where art was made without any prior notion of what art actually was. Everything that came after, somehow builds on top of what came before. Even in technology we are strongly influenced by previous inventions.
**GS: Maybe a bit of an unpopular opinion, but I think that cave paintings are overrated - I think they were just bored in their cave.**
AJ:Exactly, we also put a lot of meaning into those paintings. The meaning is more important than the actual paintings.
## Conceptualism in Genart
**GS: Now that you mention meaning in Art - I'm a big fan of your Chromatlas series, that explores the concept of Apophenia, essentially letting the viewers attribute their own meaning to the artworks.**
**In art we frequently emphasize what the art is aiming to represent, and what message it tries to convey - in my own work, the message is often not in the foreground, the work generally comes from a joy of making, and an internal urge to do so. What is it like for you? Do you specifically try to put meaning into your works? Or is it more of an explorative approach?**
AJ: I think that my stronger pieces are those that have an underlying concept, and I generally value them more. Although I do have pieces that emerge from exploration and process.
A recent example for this, was a solo exhibition back in December (2023) where I chose one of Sol Lewitt's etchings as a starting point, not the artwork itself but the “instructions” that he used to make the piece, words that describe what is the piece or how to make it. This particular one revolved around drawing different types of lines, straight, wavy, and broken ones. It was really interesting and inspiring to me to try more variations inside of these instructions:

[Link to Project](http://aleksandrajovanic.com/line/?ref=gorillasun.de)
For this exhibition I explored what I can make strictly inside of those limits, but during the process I often thought to myself "what if"… saving the interesting ideas for the next project.
Without conceptual constraints, I’m free to add something new to the algorithm every day. This is more of an experiment however, where I try to explore the visual side of a simple algorithm. Maybe this example is not so illustrative, and they're (the two approaches) overlapping a bit, but I'm aware that when I'm working on something if it's an exploration or a more complete piece backed by a concept.

[Link to Instagram Post](https://www.instagram.com/p/C3cYfyJosjt/?img%5Findex=1&ref=gorillasun.de)
**GS**: **Would you say it is a sort of visual research similarly to Vera Molnar's?**
AJ: Exactly. It's quite lucrative to work with algorithms, maybe economical - every reload you get a different result. This fast pace of rendering outputs allows for more time to explore the possibilities of adding and removing elements, as well as the flipsides.
**GS**: **I'm really fascinated by your ability to create series of artworks that are stylistically and conceptually coherent, and that's often what you do, with Chromatlas as a prime example. Speaking to the other artists that I've interviewed in the past, including myself, there's always a desire to do something like that, to make a series of artworks. But it never works out somehow, separating ideas into individual standalone pieces that are still somehow coherent.**
**How do you do it? Is it a single idea, that you make variations of? Or is it an idea that evolves over time?**
AJ: For Chromatlas it was an evolving idea. When I started I didn't know that it would be a series of 10 volumes. But the concept was there, and I knew that there were more visual ideas within this concept that I could explore. The question here is, how do you decide that your piece is finished?
[](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de)
[Write-up for Aleksandra's Chromatlas Project](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de)
I developed the project over the course of a whole year, with some pauses in between. While working on one volume I would see aspects that could be turned into projects of their own. Approaching the last two pieces, I realized that I had explored all the ideas that I liked, from the visual language of data science, and also from vintage color classification books. This is also how the name of the series came to be. So basically, it felt I had exhausted all the ideas, and in part I was also getting fatigued of it. Reflecting on the project now, I know it could have also easily been released just as a single generator that randomly produced a variation from all of the volumes. But I also like the way that I concluded the series, I don't think I overdid it.
People were *complaining* that the series concluded with ten pieces, instead of a number that's divisible by 3, either 9 or 12, to allow for a neat arrangement in a grid \[laughs\]. But then you have Herbarium and Balancium - the two pieces that I made for Art Basel which I made in the middle of the Chromatlas series, and are aesthetically similar - so you can consider them bonus pieces to conclude the grid.


[Herbarium #987](https://www.fxhash.xyz/gentk/KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi-780705?ref=gorillasun.de) and [Balancium #1052](https://www.fxhash.xyz/gentk/KT1U6EHmNxJTkvaWJ4ThczG4FSDaHC21ssvi-1604433?ref=gorillasun.de) in my personal collection.
Later I also exhibited the series, where I made a big book that would show 2 cherry-picked iterations of each project with an accompanying scientific-style poster:
[](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de)
## Serialization of Ideas
**GS:** **Sometimes I have an idea that could potentially become a series, then I become too invested in one of them, improving it and it turns to be better than the other ideas - and you can't release a series where one is better than the others, you want them to be somewhat on the same level. So it's the balancing aspect that I struggle with.**
AJ: You say that your pieces are different from each other, but I do recognize your work whenever I see it, therefore you do have a style.
I think what makes me inclined towards series is my tendency to collect things. I was always fascinated with apothecary drawers - you know, big apothecary closets with multiple drawers each of which contains different things. I'm not so much of a collector in real life, I don't own much physical art, but digitally I do it a lot, putting things into series and collections, so in that way it's in my nature to make or create in series.
**GS: Is this idea of collecting, and making collections, related to you posting consistently on social media?**
AJ: Probably \[chuckles\]
**GS: You have an impressive following on Instagram!**
AJ: I've been posting on Instagram for a long time, but it wasn't until I started posting Chromatlas WIPs that my following exploded - I can't really explain it, but it must be that the algorithm likes those colors \[laughs\] my following has been pretty much stable after I concluded Chromatlas.
When it comes to posting on social media it's more of a daily exercise, maybe a bit similar to the other artists that do daily sketches. I can't commit to a strict daily coding practice like that, I need to rest from time to time, but posting regularly on social media gives me a sense that I'm working on something. Now it's almost like an automated task, for example this morning I did my daily, posted it on my socials - done! Sort of like a conclusion for the daily exercise/workout, and then I can move on to other things, otherwise I'd just obsess over it and keep working on it for the whole day. I often get more ideas right after I've published a post/tweet, and that's usually what I’ll explore the day after.
The good thing that comes out of these daily experiments, eventually they fit nicely with an algorithm and concept that I have, so they can serve as a building block for something new. If I'm working on a piece for an exhibition, if I have a deadline, then my dailies suffer.
**GS: I can relate to that, when you post to social media it feels like a conclusion to the coding session.**
## On Composition and Color
**GS: On that note, when you're doing your explorations and developing these ideas, do you focus more on the structure or the aesthetics of the piece? Or is it more of an interplay between the two?**
AJ: I don't know the right answer. I haven't thought about it.
Maybe the composition is the first part of it for me, because it shows me the whole piece and if it works, followed by the details. So at the beginning it's a simpler version of the final output, without so many fine details. I have no idea though, maybe we could analyze some of my projects where we compare the first draft with the final outputs and make a conclusion.



**GS: For me I like to think of structure and texture separately. I often struggle with the texture part, I don't know why it is so hard for me; when it comes to making interesting geometric things that comes more easily. Maybe it's because get so tired of seeing the same colors while working on a piece - do you experience that as well?**
AJ: Yes and no, I usually limit myself to a simple palette with 2 or 3 colors and do everything with them.
In Chromatlas I also used a limited palette of eight colors - two of them being similar shades of red, so seven colors really. I don't remember spending too much time choosing them actually. In Chromatlas I also started introducing gradients, choosing values in between 4 chosen colors, and letting these gradients overlap and multiply each other resulting in beautiful effects. It's such a simple trick, that's worked for me for more than a year now, so even though I'm always using similar colors, I'm getting results that look recognizable and fresh enough.
But now I've gone back to choosing only two main colors, in addition to a background color. But like you said, that makes things harder again, because you can get bored of the palette more easily again. On the other hand if I add too many colors too quickly, it gets too colorful and I also get sick of it fast. So you have to find your own way to go about it.
**GS: That's something I feel that I need to really sit down and properly practice at some point. But you're giving me good ideas to explore.**
## Getting into NFTs
**GS: One other topic I wanted to touch on was how you got into NFTs - that was around the same time that you joined Raph for hosting an episode of creative code news. How did you discover hicetnunc and what was it like in those days?**
AJ: Maybe half a year before I got started with NFTS, I had consciously decided to post more of my generative art explorations. It was a solitary endeavour, just doing something for myself. Those pieces were experiments, they weren't really connected to any kind of concept, so you can't really go to an exhibition space or gallery to exhibit them or be part of a group show.
The generative art community was very welcoming, receiving all the likes was really emotional for me. I started following more people that were doing generative art, you, Raphaël, and all the other celebrities. I remember people commenting "when will you mint this?" and "will this be an NFT?" - at that time I didn't know what to answer so I played dead.
At the same time I became intrigued by Raphaël's WCCChallenge (Weekly Creative Coding Challenge), and I remember being so nervous about submitting something for the challenge, fearing what he'd say. The community around his discord and challenge was really inspiring though. And Raphaël was actually one of the people that helped me get started at the time.
I remember asking some of my friends prior to that, to help me, read some articles and figure out where to start - "set up a wallet" - okay but how? - "How do I transfer..." - "Where can I buy Tez" - so I had a lot of questions without any easy answers.
So basically, Raphaël helped with a few pointers telling me "if you don't succeed with this I will help". But, also mentoring me on how to price pieces appropriately, something that no one was writing about then. "Price one at this price, two at this price, three at this price, etc..." and I was like "I don't understand why or how…". But by minting my first piece 12 hours later it all started to make sense.
Looking back 3 years later, you can't actually recall all the problems and all the questions that you had when you started. So you have to actually go through it on your own and try things to figure them out. It's just like programming, you can't just watch a programming tutorial and then magically get that knowledge.
**GS: I wish you could \[laughs\] I remember that I also discovered Raph through Twitter, then joined the discord and started participating in the challenge. Lately I really haven't had the time to join, but I've had some really cool ideas through the challenge, when you have to follow a prompt you end up with something that you wouldn't have otherwise made. Same with Genuary.**
**Later on what was it like for you creating your first long-form generative project on fxhash? Was it challenging?**
AJ: My first mint on HeN was code, and I tried to maintain that practice to mint exclusively code ever since. I have one collab with Raphaël, that is still a code based piece, but was minted as a capture of the outputs from our combined code:


[Link to Tweet](https://twitter.com/sableRaph/status/1522865830748475393?ref=gorillasun.de) | Originally minted on Versum, that no longer exists today, [the project can be found over on Objkt.com](https://objkt.com/tokens/versum%5Fitems/16998?ref=gorillasun.de). It is still mintable as of today.
I can’t recall any other piece that I've minted that isn’t code. So even if the pieces are minted as editions, when you view them they always look different, generating a different variation. Therefore, it wasn't really difficult for me to transfer those ideas to fxhash. And also lomz, one of my IRL friends was one of the first people that minted on fxhash and encouraged me: "Oh it's so fun, you should try it!".


[Generative Art - Poster](https://www.fxhash.xyz/generative/7?ref=gorillasun.de) and [Generative Graphics - Parts](https://www.fxhash.xyz/generative/274?ref=gorillasun.de) by lomz released on fxhash on November 11 and November 17 respectively
Then, during one of Raphaël's creative code meetups, that usually happens once a month in person in Berlin, but held online due to the pandemic, Raph invited me one day to do something together, and basically we tried to see how the fxhash generator produces the random hashes. A few days later I combined that knowledge with something that I had already been working on, and released my first series. It was a 3 part series \[laughs\]!



[Reflection of Stripes](https://www.fxhash.xyz/generative/679?ref=gorillasun.de) | [Diffraction of Waves](https://www.fxhash.xyz/generative/704?ref=gorillasun.de) | [Refraction of Stones](https://www.fxhash.xyz/generative/716?ref=gorillasun.de) published on Novemeber 22 on fxhash (interactive pieces)
In the morning I released the first one, then in the next hour I minted the second and the third one, because I already had them all prepared, with their names and everything.
**GS: That's really cool. I remember having a lot of trouble with my first fxhash projects, since it was an entirely new concept for me at the time.**
AJ: I mean, I have a bug in those early projects, they're not always the same because of the resize (that resets the artwork when the window size changes). But it was so early no one really complained about it, and I don't feel like I can't sleep over it \[laughs\].
**GS: It's the same with my first tokens, the furbols and wisps, when you zoom in or out with the browser it's different every time, but I think it's cool, idk - it's a feature, not a bug. They're still deterministic for the respective window sizes.**
AJ: In the beginning people weren't really expecting pieces to be animated, or to adapt to different window sizes, the thumbnails were enough. It was so fun at the beginning of fxhash, it was so relaxing. I mean, we had trouble to develop best practices, to see how it works and get a feel for it, but a lot of good things were minted just in those early days.
## On Productivity and Frequency of Releases
**GS: I remember that as well, it wasn't actually that many people active on the platform early on, and every day you could see who made what - now it's become a lot more competitive.**
AJ: I mean it's a market, so naturally it will be competitive. But at the same time, things have slowed down a little. When I look at the calendar of how many things I minted in the first year of fxhash, I have to ask myself "am I normal", how did I manage to develop so many pieces?
This feeling that I'm not working on anything, now persists because of that huge production during that time. A few days ago I was in a meeting with Danielle King, (we collaborated on an generative AI project, and continued with our weekly meetings. First she introduced me to AI, now I’m training her in coding.)

EmProps collab with Danielle King | [Echoes of Forgotten Tales](https://emprops.ai/projects/echoes-of-forgotten-tales?ref=gorillasun.de)
I complained having a feeling that I'm not working on anything huge or important now - but then after the meeting I took a moment and thought to myself "You just had a solo exhibition last December, what's wrong with you, it's only been a couple of months.” I used to have one exhibition per year, and now I feel like I have to have 2 exhibitions a month! It's not normal, so I'm trying to control those destructive thoughts.
**GS: I've been thinking about this for a while, on social you see that there's constantly something happening, every week there's a new release - and they're all beautiful - but it gives you a wrong perspective on how much you should be producing. I feel that sometimes you need to slow down a little and just be methodical, like one piece every three months might be a good pace.**
AJ: Yeah I think that's a good amount \[laughs\] for some people that might even be too much, each of us has to find their own pace.
## Bridging between Code and the Physical
AJ: The same way that I experiment with algorithms, I experiment with materials. I have a friend that tells me "if you're feeling bad, just do something with your hands, make something, it'll make you feel better". I may be doing it unconsciously, exploring analogue mediums and applying the same generative logic is something I'm interested in.
A recent example are the red and blue linocuts that I experimented with. I had to split the code, not by objects, but by color. I wanted to combine two colors and get the third in overprint, so I had to figure out the code for it - sort of the other way around. Sometimes I'm not satisfied with the final outcomes on paper, but the outcomes from the code gave me inspiration for further experiments.


I realised sometimes I have this problem, that I don’t do things in an usual way. When you start a new hobby, first you make something small and then you work your way towards more complicated things. I’m a lunatic that skips the easy levels - for example years ago I decided that I wanted to do origami, and instead of first learning to fold some of the simpler ones, like cranes, I immediately started with a complicated ball with 100 different parts, and when I finished I was like "Ok done, I can do this, what’s next!".
This is became obvious with the two books that I've made so far, they're both huge, 50x70cm, B1 paper folded in half. Now I'm thinking maybe I should do a regular sized book. I’m still exploring ideas for the content, one of them the red and blue dailies that I did in February (2024). I'm thinking about rendering them as a mix of plotter drawings, linocuts etc.
0:00
/1:07
1×
[Link to Instagram Post](https://www.instagram.com/p/Cfb9QD-D74X/?ref=gorillasun.de)
From time to time I search for experiment with different materials for my code generated pieces - if they don't include animation or interaction, then they can work as physical pieces well too. Now, my Phenakistoscopes project is the combination of the two - they are colourful disks, but are animated when put in motion! There's a number of very talented animators that make these zoetropes and phenakistoscopes these days, and for me it's interesting to see how I can push the code to generate those kinds of images / animations, to get satisfying results considering that there are a lot of constraints involved.
**GS: Interesting, the phena - phenak - phe - I cannot pronounce the word \[laughs\]**
AJ: Nobody can \[laughs\] phenakistoscope (enunciated)
**GS: Phenakistoscope (slowly) - I can't remember the arrangement of the letters - is that also a side project?**
AJ: No, that one should be a big project. There's actually so many aspects to the production of the piece. Aside from code, to which I return constantly, there are these material aspects of the physical pieces. I'm currently testing prints on different materials, viewing them under different lighting conditions, and how they work on a record player - the most recent one is with plexiglass.
A friend of a friend has a workshop, and was able to print directly on plexiglass without issue - the print is perfect in terms of colors, but it's grainy, so when the light hits it at certain angles you can see the relief of the colors compared to the matte paper, that I prefer. The issue with it is that you need a bright light to make a recording where the disk doesn't appear as blur. So there's so many technical issues with these... then my curator was like "can we have like 10 of them rotating on the wall?". So now I'm buying record player parts and motors from Ali Express.
**GS: How do you sync the framerate of the camera with the rotation of the disks?**
AJ: You have three parameters for the sync - disk rotation (usually RPM - rounds per minute), camera frame rate (fps) and number of slices on the disk - loop animation frames. The record player is a convenient solution because speeds are already defined, as is the case for the camera frame rate. When you know those two pieces of information, you can calculate how many frames you can put on the circle to obtain a looping animation. It's not that difficult, simple math.
Ultimately it could be an animation on the screen but then you lose the physicality of it. I want it to be a piece that works in a gallery, physical space, your home, where you can play the record and see it through your own phone and record it. The key thing is that we curse time spent on our phones, but in this case you’ll need your phone to fully experience the work.
## Inspirations & Advice
**GS: Since you talked about Raph and Danielle, who are some of the artists that inspire you today? They don't necessarily have to be doing generative art, can be any kind of art.**
AJ: Currently I'm working and developing my “phenakistoscopes” project, so I’m obsessed with vintage illustrations, as well as the history of animation and cartoons. I tend to get an adrenaline spike when I see works by Ori Toor or Jean Giraud (*Moebius)*, but also works by my friends from the Graphics department [Nikola Velicki](https://www.instagram.com/velickinikola/?ref=gorillasun.de) and [Vladimir Veljasevic]( veljasevicvladimir ):
[](https://www.instagram.com/p/CqdG3vLoohS/?utm%5Fsource=ig%5Fweb%5Fcopy%5Flink&igsh=MzRlODBiNWFlZA%3D%3D)
[Link to Post](https://www.instagram.com/p/CqdG3vLoohS/?utm%5Fsource=ig%5Fweb%5Fcopy%5Flink&igsh=MzRlODBiNWFlZA%3D%3D)
From our field, I feel privileged not only to know, but to be in touch with all artists from the FF (Feral File) GRAPH group exhibition, that Casey Reas assembled and curated. Besides, obviously, Casey, each of them inspire me mostly through their different processes and techniques Julien, Licia, Iskra, James, and Joannie.
And also Tom White (dribnet), mostly for his clever approach to machine perception and AI and consistent explorations.
**GS: What is something you wish you'd known much earlier as an artist and as a creator? What is piece of advice that you would like to give people that are just starting out?**
AJ: I can only talk about my own struggles, but I have this problem where I don't know how to relax after finishing a project. Taking the time to celebrate the accomplishment basically; when I finish something I often immediately start something new instead, instead of taking breaks and doing some celebratory things - maybe this isn't a good answer, nor advice, it's more of a trait of my personality \[chuckles\]
Slowing down is something we've been talking about for the past 2 years, but I don't feel like I've slowed down one bit - maybe I'm not minting every two days - but, I still have so many ideas and projects happening all the time. We were hoping that the hype and so many things happening at the same time was just a characteristic of the bull market, and that things would slow down a bit with the bear market. But I don't feel that things are changing.
The good thing I can see about this, is that the way we are creating \[...\] isn't so much connected to the market or economic things. We are creating no matter what.
## Closing Thoughts
To wrap things up, I'd like to give a big thanks to Aleksandra, not just for taking the time to talk to me, but also for sharing her story and letting me in on her practice, while also bearing with me as I transcribed and edited this interview. If you haven't done so yet, and want stay up-to-date with what Aleksandra is up to, go and follow her on [Twitter](https://twitter.com/alexis%5Fo%5FO?ref=gorillasun.de) and [Instagram](https://www.instagram.com/aleksandrajovanic/?ref=gorillasun.de) where she most frequently posts works in progress, as well as her portfolio [here](http://aleksandrajovanic.com/?ref=gorillasun.de).
If you enjoyed reading this conversation consider sharing it on your socials with friends and followers. Also make sure to have a look at some of the other interviews I've done with other generative artists: [Daniel Aguilar](https://www.gorillasun.de/blog/in-conversation-with-daniel-aguilar/), [Alessandro Fiore](https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/), [Pxlshrd](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/), [Monk Antony](https://www.gorillasun.de/blog/in-conversation-with-peter-bauman-demystifying-monk-antony/), [Tezumie](https://www.gorillasun.de/blog/interview-tezumie/).
**That said, thank you for reading! Consider signing up to the Newsletter if you'd like to receive updates like this one directly in your inbox every wekk. Cheers, and happy sketching!**
### Gorilla Newsletter 54
URL: https://www.gorillasun.de/blog/gorilla-newsletter-54/
Last updated: 2024-04-29T15:26:02.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 54th 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 - as well as a sprinkle of my own endeavors.
## Gorilla Sun Community Discord
Before we get started today, I've got a little announcement to make - I've launched a Discord server, and it's open for everyone to join! If you'd like to chat with me and other generative art/creative coding lovers, you can [join via this link](https://discord.gg/CerM56eB2Z?ref=gorillasun.de).
[](https://discord.gg/CerM56eB2Z?ref=gorillasun.de)
[Invite to the Discord](https://discord.gg/CerM56eB2Z?ref=gorillasun.de)
It's still a bit of a work in progress, and I might switch around some of the current channels, but I think I've got everything set up properly now.
*So... why create a discord server?*
Writing and making this Newsletter often feels like a one-way street, where it's just me pinging you guys once (sometimes twice) a week via your email inbox. While I think that the Newsletter is a great way to document and de-fragment some of the conversations in the space every week, it doesn't create or stimulate new conversations - and it doesn't provide the tools to allow for this. And the measly comment section towards the bottom of the posts doesn't really cut it.
Essentially, the aim of this new discord will be to provide a space for the readers of the newsletter to talk to each other. This discord is ultimately not about me, or a fan-club for the newsletter, but rather about fostering a more active discussion around all of the topics that play into generative art and that I cover every week. To some extent it might also help me find interesting things to feature on the newsletter.
I actually made an effort towards this end about a year ago, when I set up a discourse forum for the blog. [I briefly wrote about it in the 13th issue of the Newsletter](https://www.gorillasun.de/blog/gorilla-recap-13/).
[](https://twitter.com/gorillasu/status/1679451967624556548?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1679451967624556548?ref=gorillasun.de)
In hindsight I should've maybe known that it wouldn't gain much traction - trying to get a forum off the ground in 2024 is arguably one of the harder things that you could tackle. Discord on the other hand seems like a much more viable approach, since most of everyone already has an account, and joining a new server is pretty seamless. That said, come and hang out in the discord, and share some of the interesting things you've made with code - there's already a bunch of cool people in there!
On other thing of note here that's related to community building, is that the Ghost CMS recently announced that they're working on integrating with the ActivityPub protocol over the course of the next months. This means that the blog will soon be coming to the Fediverse! Here's their official announcement:
[](?ref%5Fsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1679451967624556548%7Ctwgr%5E5ede3baf0b9717bf1c1ac2cf7390e34461922009%7Ctwcon%5Es1%5F&ref%5Furl=https%3A%2F%2Fwww.gorillasun.de%2Fblog%2Fgorilla-recap-13%2F)
[Link to Tweet](?ref%5Fsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1679451967624556548%7Ctwgr%5E5ede3baf0b9717bf1c1ac2cf7390e34461922009%7Ctwcon%5Es1%5F&ref%5Furl=https%3A%2F%2Fwww.gorillasun.de%2Fblog%2Fgorilla-recap-13%2F)
It's not entirely clear how this is going to work exactly - but as far as I understand - it will be possible to sign up to the blog and interact with posts (liking and sharing) them via Fediverse accounts. I have to confess, I haven't been as active over on Mastodon as much as I would've to be, especially considering that a big chunk of the creative crowd is active over there. If you're active on Mastodon, or some other part of the Fediverse, [I'd love to connect!](https://mastodon.social/@gorillasun?ref=gorillasun.de)
That said, sorry for the lengthy introduction this week. Consider it a little bit of digital house-keeping - as always, **I hope that you're all having an awesome start into the new week!** Without further ado, here's your weekly roundup 👇
## All the Generative Things
### Differential Growth Vases
This week I discovered the work of Tim Zarki, a 3D artist and multi-disciplinary designer. His portfolio features a number of interesting projects that lie somewhere at the intersection of the physical and the generative - such as this experiment from 2021 in which he creates renders of Flower Vases with a Differential Growth algorithm:


If you're not familiar with differential growth; it's a morphogenic algorithm that's frequently used in generative art to mimic *wavy* patterns that occur in nature - such as the shape of corals and lichens as an example. The name of the algorithm might be a tag bit intimidating, but it actually has nothing to do with differentiation as we know it in calculus - the term here merely indicates that the generated shapes don't grow in a uniform manner, but rather that the individual parts of the shape grow at different rates.
Differential growth algorithms are most commonly implemented as particle simulations in 2D, where an initial shape is modeled as a chain of particles that iteratively expands and evolves with time. In this setting, individual particles are drawn towards its immediate two adjacent neighbors, while being repulsed by the rest - whenever the distance between two particles exceeds a certain threshold a new node is inserted at that position. The balancing of the attractive and repulsive forces allows for a variety of different organic shapes.
Although the algorithm can also be implemented in 3D - Tim does in fact create his vases in 2D; as he explains in the heading text of the project page, the final shapes emerge by tracking the contour of the growths over time - stacking them on top of each other.
This isn't however the first attempt at using differential growth for generative design - a previous iconic attempt dates back to 2015 with the Floraform project that aimed at creating shapes for jewelry:
[](https://n-e-r-v-o-u-s.com/blog/?p=6721&ref=gorillasun.de)
[Link to Page](https://n-e-r-v-o-u-s.com/blog/?p=6721&ref=gorillasun.de)
If you want to implement differential growth for yourself, I recommend checking out this nice tutorial by Jason Webb, in which he shows you how to do it in Javascript:
[Exploring 2D differential growth with JavaScriptLet’s use modern JavaScript and p5.js to make bendy, undulating shapes using the 2D differential growth algorithm!MediumJason Webb](https://medium.com/@jason.webb/2d-differential-growth-in-js-1843fd51b0ce?ref=gorillasun.de)
Also highly recommend checking out this huge [resource by Jason Webb that lists many other morphogenic algorithms](https://github.com/jasonwebb/morphogenesis-resources?tab=readme-ov-file&ref=gorillasun.de).
### The Crochet Protocol
What if, instead of telling the machine what to do, we let the machine give us instructions? This is the premise of Julia Vollmer's generative crochet experiment, in which a wearable device tells the user what the next crocheting instruction is via a vibration signal:
[](https://www.creativeapplications.net/objects/the-crochet-protocol-machines-in-need-of-human-labour/?ref=gorillasun.de)
[Link to feature on Creative Applications](https://www.creativeapplications.net/objects/the-crochet-protocol-machines-in-need-of-human-labour/?ref=gorillasun.de)
Julia Vollmer published an article on this and illustrates the experience of what it is like to work with the device, a sort of power dynamic emerges, where she has to either trust the instructions of the machine, or proceed according to her own judgment. Interestingly, the item that is being crocheted is not the primary focus of this process, but rather attuning and listening to the device:
[The Crochet ProtocolCrocheting = Coding?Algorithmic PatternJulia Vollmer](https://alpaca.pubpub.org/pub/1orm86wv/release/1?ref=gorillasun.de)
I found the idea highly interesting, since I've been indirectly exposed to a lot of crocheting in the past year through my partner who's picked the hobby teaching herself the ins and outs of it, resulting in me being the subject of many a question such as "Which yarn looks better? This one, or this one?".
While I know nothing about how to crochet, I've thought a lot about how to combine the craft, as well as related ones, like knitting and cross-stitching (I am fully aware that they're completely different) with generative ideas. I believe that trying to translate generative aesthetics to the medium wouldn't work too well, generating instructions however, like in Vollmer's experiment, would make much more sense.
### Sonifying Github Repositories
I think I've briefly shared it before, but Ren Yuan has been making these stellar *sonifications*,to essentially summarize the commit histories of popular github repositories - although the animations are also really cool, you'll have to check out the recording with sound over on TwiX for the full experience:
[](https://twitter.com/%5Frenyuan/status/1777427294186840112?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/%5Frenyuan/status/1777427294186840112?ref=gorillasun.de)
It's actually fascinating how well this works; in a way it's like giving each repository its own sonic identity and footprint. Ren Yuan explains a little what his aim with these projects in a threaded reply to their post:

What I would ultimately love to come out of this project, is some means of comparing different repositories sonically, either on a temporal axis or harmonic one - our hearing is actually super proficient at picking up subtle variations, repetitions, and trends in sound that might be harder to spot on a visual chart.
## Puneyvr's Record Breaking Glyph
Arguably the biggest news in Web3 genart from last week was the release of Puneyvr's Glyph: a free OE on Base ETH fxhash, that swiftly broke the world record for the largest genart collection in history. The project currently sits at a record breaking number of 180k (*hundred eighty thousand*) mints at the time of writing - **when you're reading this it'll likely have eloped this number however** (I've already updated this section 3 times):
[](https://shorturl.at/bps57?ref=gorillasun.de)
[Link to Project](https://shorturl.at/bps57?ref=gorillasun.de)
The baseline for the world record was set not that long ago with Zancan's Aux Arbres, reaching a grand total of 76208 mints over on highlight. I still believe that Aux Arbres stands strong, not just because it is the first to beat the record but for the concept around it, where the individual mints play into a larger whole. Zancan humorously comments on this with a cast of his:
[](https://warpcast.com/zancan/0x36b8047d?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/zancan/0x36b8047d?ref=gorillasun.de)
If you're not familiar with Puneyvr you might be left scratching your head, and asking yourself why Glyph had such a meteoric rise - Puneyvr is actually the very first artist that published a project on fxhash after the OG generative fxhash logos, and Ciphrd's genesis project *RGB Elementary Cellular Automaton* \- sorting the feed by "oldest minted" reveals Puneyvr's face as the fourth project minted on the platform:

Puneyvr's projects are a little bit what you would call cult classics - always minted as large editions at a low price - it's no different with Glyph. One big factor that played into the success of the mint is that it's a free mint - like, completely free, not 3 bucks free - when minted through the farcaster frame where fxhash covers the minting fees:
[](https://warpcast.com/fxhash/0x9e2065e8?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/fxhash/0x9e2065e8?ref=gorillasun.de) \- Minting from fxhash or the contract directly still incurs gas fees that you'll have to cover.
If you haven't collected one at this point — why not? Another factor that plays into the success of the mint is that it was also pushed by the Base chain through its official accounts, something that we've only rarely seen from the Tezos Foundation. While speculation definitely plays into the massive number of mints, only time will tell how the project will fare on the secondary market in the future. The next goal to beat would be the 11 ETH trading volume that Aux Arbres currently has on secondary.
I strongly believe however that we're beginning a new chapter in blockchain based code art. I also couldn't resist from participating in the madness, and acquired a couple of Glyphs for my own collection (I might mint a few more just for the fun of it). fxhash also recounts Puneyvr's story in a thread of theirs that I recommend checking out:

[Link to Thread](https://twitter.com/fx%5Fhash%5F/status/1783592742217740310?ref=gorillasun.de) | [Link to Cast](https://warpcast.com/fxhash/0x694697b7?ref=gorillasun.de)
## Web3 News
### Bright Moments comes to an End
If you've been active in genart social media over the course of the last week, you'll have taken note of the big gathering that happened over at the Biennale in Venice, with generative artists from all around the world flocking together to celebrate the end of Bright Moments' three-year global tour.
As always, I'm grateful for Le Random's report on the events and for capturing the thoughts of the people involved - I've been pretty much out of touch with all of the happenings - and it was nice to read about it:
[Bright Moments on Prioritizing the PersonalAs Bright Moments concludes its three-year global tour at the 2024 Venice Biennale, they release the ambitious Finale Collection, showcasing the works of over sixty artists on a single contract. Peter Bauman (Monk Antony) engaged with the Bright Moments team and participating artists, delving into the project’s key themes and the organization’s future. The discussion included Seth Goldstein, Phil Mohun and Samer Dabra (Spongenuity) from Bright Moments, together with artist and Art Blocks Founder Erick Calderon (Snowfro), as well as artists Maya Man, Anna Carreras and Piter Pasma.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief..png)](https://www.lerandom.art/editorial/bright-moments-on-prioritizing-the-personal?ref=gorillasun.de)
In essence, it was a large live-minting event in which each of the previous Bright Moments artists contributed an original work. The article addresses that it was risky in that regard, since there was no guarantee that the projects would actually sell - but overall that wasn't the point, rather than to simply pay tribute to Bright Moments' impressive achievements over the course of the past three years.
Now when you visit the Bright Moments page it display a black screen, with a single word in the center: "goodbye" - marking the end of the project.
*... Or maybe not?* A cryptic message has been making the rounds over on TwiX - it seems that there might be something in the works (or it's just a big elaborate scheme to make us believe that):
[](https://twitter.com/fingacode/status/1783605281403875407?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fingacode/status/1783605281403875407?ref=gorillasun.de)
At this point - I wonder if Spongenuity is doing something that's never been done before 🤔
In other news, one noteworthy project that was released as part of the Bright Moment's finale was from Lars Wander, with an accompanying educative write-up that elaborates a little bit on the technique that makes it happen - namely *Spectral Ray Tracing*:


[Link to Tweet](https://twitter.com/artxcode%5Fio/status/1782850183165862390?ref=gorillasun.de) | [Link to Write-up](https://larswander.com/writing/spectral-ray-tracing/?ref=gorillasun.de)
If you've ever been curious about learning about Ray Tracing - it's a really nice intro. In a nutshell, ray tracing is a technique that simulates light rays traveling through a scene, and the interactions of these rays with surfaces and objects to render them. Spectral ray tracing is a little more sophisticated in that it also factors in the wave length of each ray, allowing the more accurate simulation of certain phenomena, such as dispersion.
And another cool thing I wanted to mention, is Anna Lucia setting up shop in Venice to provide the visiting folks with generative tattoos:
[](https://twitter.com/fx%5Fhash%5F/status/1781397569375252858?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1781397569375252858?ref=gorillasun.de)
Bright Moments folks, what interesting things did I miss?
### Minimizer's Infinite Scribbles
As always, I'm a bit late to the party, but last week I also discovered Minimizer's Infinite Scribbles - a generative NFT project that is an "experiment in mechanics":
[](https://minimizer.art/project/2?ref=gorillasun.de)
[Minimizer's write-up about the Infinite Scribble project](https://minimizer.art/project/2?ref=gorillasun.de)
In a nutshell, the Minimizer's project is subject to a continuously decreasing closing timer, which would permanently end its minting period if it were to ever reach zero. The interesting mechanic stems from the fact that this timer gets refreshed whenever someone mints an iteration from the project - this means that there's an interest from minters in keeping the project alive if they want it to remain mintable.
So far, the project has been running for almost a year and a half! The numbers in bold that you see in the screenshot above are actually dynamically updated. I recommend checking out the entire write-up if you want to learn more. Here's Infinite Scribble #4151 that I recently collected, display in the infinitely scrolling feed of the project:

Mint's free - just have to cover gas fees!
## Tech and Web Dev
### On Writing Alt Text
One thing I have always struggled with is writing alt text for my art, how do you describe highly abstract things? Or even GIFs? If it is about a code generated piece, sometimes I feel like it would make sense to have the alt text be the code, after all those are the exact instructions that create the image!
Jokes aside, Scott Vandehey wrote an article on the topic, telling us that we should write alt text just like we would describe the image to a friend without over-complicating it and also provides a bunch of additional tips towards that end:
[Write Alt Text Like You’re Talking To A Friend“There was this dog wearing safety glasses, surrounded by chemistry equipment, saying ‘I have no idea what I’m doing.’”Cloud FourScott Vandehey](https://cloudfour.com/thinks/write-alt-text-like-youre-talking-to-a-friend/?ref=gorillasun.de)
Coincidentally I came across another article that explains how alt text is experienced by screen reader users, and all of the things that should not be done towards that end as alt text is not actually rich text - hence allowing for all sorts of breakage. It is actually interesting to see that different browsers handle alt text differently as well:
[Long AltTL;DR: Keep your image alternative text brief, devoid of special characters, empty of URLs, and ideally in one language. Here We Go Sometimes you can have too much alternative text, particularly for an . I don’t mean there is a limit to what is allowed, I mean there is a…Adrian Roselliis](https://adrianroselli.com/2024/04/long-alt.html?ref=gorillasun.de)
### Building CSS Grid Level 3 Masonry
A recent article by Jen Simmons over on WebKit tackles whether or not masonry layouts should be an inherent feature of CSS - and if that is the case how it should be implemented, either via its own display property or as a part of CSS grids. The article calls upon web devs and designers to chime in with their thoughts on the issue. Jen first explains the classic manner in which masonry grids are made (nice tutorial), then proceeds to discuss potential implementations of it:
[Help us invent CSS Grid Level 3, aka “Masonry” layoutIf you’ve been making websites for years, you know how frustrating it was to lay out a web page with CSS floats.WebKitJen Simmons](https://webkit.org/blog/15269/help-us-invent-masonry-layouts-for-css-grid-level-3/?ref=gorillasun.de)
I remember that when I first started making websites I absolutely **needed** to have a masonry grid, today I feel rather unexcited by it and prefer having fixed size cards. Functionally, I believe that a masonry layout only makes sense on websites that aim to provide a "content discovery" experience, like Pinterest for instance - which is actually the only website where I think that it's done well. Personally I don't think that masonry layouts are important enough to warrant their own rule or property if future extensibility has to be sacrificed.
### On Load Balancing
It is frequently the case that large companies need to distribute across multiple servers to handle the amount of incoming traffic; in this setting a load balancer becomes crucial for automatically distributing incoming network requests across them and to prevent server overload and improve reliability. Sam Who wrote a stellar article on the topic, explaining different load balancing algorithms and comparing them. The highlight of this article are the stellar animations that illustrate the addressed concepts:
[Load BalancingA bottom-up, animated guide to HTTP load balancing algorithms.](https://samwho.dev/load-balancing/?ref=gorillasun.de)
## AI Corner
### Building a meme search engine with AI
The cool thing about the internal representations that AI models learn about data, is not only that we can use them to generate new instances of the data, but also make it possible to measure the similarity between two inputs. This is what Harper Reed discovers in a recent exploration of his, toying with sigclip/CLIP and ending up building a search engine for memes - he recounts how he did it and also provides a github repo with the code:
[I accidentally built a meme search engineI built a magical meme search engine using siglip/CLIP and vector encoding images. It was a fun way to learn about this powerful technology. I’m sharing the code so you can build your own and discover forgotten gems in your photo library. Let’s unleash the power of AI on our images!Harper Reed's BlogHarper Reed ](https://harper.blog/2024/04/12/i-accidentally-built-a-meme-search-engine/?ref=gorillasun.de)
### A New Paradigm of Creativity
Apparently a large chunk of the talks at TED2024 in Vancouver was geared towards AI and its role as a tool for creativity. Honor Harger reports on the talks that she's been part of, including the talk titled "A New Paradigm of Creativity" that highlights 8 of the successful artists that are working with AI today:
[](https://honorharger.wordpress.com/2024/04/23/a-new-paradigm-of-creativity/?ref=gorillasun.de)
[Link to Article](https://honorharger.wordpress.com/2024/04/23/a-new-paradigm-of-creativity/?ref=gorillasun.de)
The overall sentiment is similar to what we've recently covered, where AI is a creative tool that can be leveraged collaboratively.
## Gorilla Updates
While I've primarily been preoccupied with setting up the discord this week and getting a bunch of writing done - I also actually managed to make some art! Earlier this week I got an email from EmProps - short for Emergent Properties - letting me know that my turn on the waitlist had come, and that I could now access their OpenStudio online tool that lets you create projects for their platform:

I remember signing up to it back in November of last year, when also briefly talked about the platform in the 29th Newsletter issue:
[Gorilla Newsletter 29This week: Volumetric Raymarching by Maxime Heckel - Ana María Caballeros Paperwork - fx(hash) 2.0 launch calendar - ComplexCity by John F. Simons - Studio Yorktown’s Journal + lots more.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-29/#ai-corner)
If you're not familiar, EmProps is essentially the first, and currently only, long-form generative AI NFT marketplace out there - the concept is straightforward, instead of artists creating a project with code, they craft a prompt that is given as an input to a StableDiffusion model. When collectors mint from the project they obtain an NFT of the image that the model generated based on the prompt. EmProps OpenStudio is designed to aid artists in setting up their project - it works similarly to other prompting interfaces currently out-there, with additional customization options that allow for an extended variety in output prompts.
I've been experimenting with generative image models for a couple of years now, ever since they came out actually - and still do play from time to time with them when a specific prompt comes to mind. Hence it wasn't too difficult to get an initial idea going that I think has a lot of potential:


Essentially I don't want to do something that tends to be more oriented into the PFP project direction, but rather something a bit more abstract. I'm not entirely certain when I'll be releasing this project though, it might be sooner rather than later. *The next Gorilla Monthly exclusive post on my Hypersub will actually be a deep dive into EmProps with some of my thoughts about it.* [*You can sign up to my Hypersub here.*](https://shorturl.at/iFMW7?ref=gorillasun.de)
While we're speaking about Hypersub, the first month has already come to an end - and that means that it was time for a new monthly art drop! I shared this animation a couple weeks ago already, it being among the cooler ones I've made it only made sense to use it as the monthly drop:
0:00
/0:10
1×
## Music for Coding
While listening to many an indie playlist I discovered the music of Phil Danyew, originally the keyboardist of Foster the People, he left the band in 2020 to pursue his own music, and now goes under the artist name Elephant Castle. If you're fan of Tame Impala, Danyew's sound will be right up your alley - with saturated retro synths and psychedelic reverberating melodies he hails a music from an era long past:
And that's it from me, hope you've enjoyed this week's curated list of generative art and tech shenanigans! Now that you've made it through the newsletter, might as well share it with some of your friends - sharing the newsletter is one of the best ways to support it! Otherwise come and say hi over on my socials!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 53Recreating Noita’s Falling Sand Sim - Procedural Color Visualization - Minecraft in Javascript - Long Distance Plotting with La Ligne - A New Generative Art Platform Intrinsic - OBJKT4OBJKT 2024 - Building a Code Formatter - Devin lied to us +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-53)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### A Deep-Dive into Font & Text Packing
URL: https://www.gorillasun.de/blog/a-deep-dive-into-font-text-packing/
Last updated: 2024-06-22T10:53:39.000Z
A deep-dive into font packing with opentype.js, with our own customizable path packing procedure for the non-overlapping placement of letter-forms. Including a detailed look at many useful vertex operations.
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 53
URL: https://www.gorillasun.de/blog/gorilla-newsletter-53/
Last updated: 2024-08-15T08:00:07.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 53rd 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Recreating Noita's Sand Simulation
Yet again we revisit the fascinating world of Cellular Automata in this issue of the Newsletter.
I've previously written about CAs in two past issues of the Newsletter: most recently in issue # when I featured Spacefiller's wonderful interactive essay about Conway's Game of Life that was made as a submission for the HTML review, and second time back in Genuary, in [issue #41](https://www.gorillasun.de/blog/gorilla-newsletter-41/) when Daniel Schiffman released the video for this Coding Challenge #180 in which he recreates a falling Sand simulation with p5js:
Aside from Schiffman's coding challenge, there's also a bunch of other cool resources that teach about creating falling sand sims, like [Max Bittker's write-up of how he created his iconic Sandspiel](https://maxbittker.com/making-sandspiel?ref=gorillasun.de), as well as [Jason McGhee's tutorial](https://jason.today/falling-sand?ref=gorillasun.de) series. My gripe however, is that these tutorials don't usually go beyond explaining how to model a sand CA, and don't touch on the other elements that I generally find to be much more interesting, like water, plants, and even fungal growths. The third part of McGhee's series does hover go into the creation of fire and smoke CAs.
Falling sand simulations are not just fun to recreate with code for little sandbox experiments, but actually an entire genre of video games has emerged around the concept. If you've ever done a little bit of research around CAs you'll likely have come across the game [Noita](https://en.wikipedia.org/wiki/Noita%5F%28video%5Fgame%29?ref=gorillasun.de); an action [roguelike](https://en.wikipedia.org/wiki/Roguelike?ref=gorillasun.de) in which the player explores a procedural world that's entirely made out of different types of cellular automata:
[](https://www.pcgamer.com/noita-review/?ref=gorillasun.de)
[You can read a little more about the Game in this PC-Gamer Review](https://www.pcgamer.com/noita-review/?ref=gorillasun.de)
I recently came across a Youtube video by John Jackson, in which he dives into the different elements that occur in Noita and explains them in a little more detail:
Although the video is already 3 years old - ancient by internet times - there were more than a bunch of interesting pointers in it. For instance the notes on simulating water; while I had assumed that making a CA for this purpose would be highly complex, and that it would involve some sort of fluid simulation, it turns out that that isn't the case. It's actually no so different from simulating sand!
Simply by giving particles the ability to also move to adjacent cells left and right of its own, without having to necessarily go downwards, it makes it seem as if the water particles push each other in a fluid-like manner. I'm certain that the implementation thereof isn't as easy as this, but Jackson does however provide additional information in a pinned comment in the video's comment section. What's also worth mentioning here is that there's quite a famous GDC (games developer conference) talk back from 2019, in which Petri Purho, one of the creators of Noita, gives us a more detailed look into how the game is implemented and designed:
I believe that CAs are among the most rewarding topics to tackle in creative coding, as their implementation requires you to think in an inherently computational manner that is applicable in a multitude of different scenarios. At the same time they have a fascinating history and can teach us many things about the world around us. If you run into any interesting resource around CAs please send them my way!
### A Procedural Color Visualization Method
Sometimes you come across a user's profile on the internet and it ends up being an absolute treasure trove of interesting ideas - this was the case for me with [Mrmo Tarius](https://twitter.com/MrmoTarius?ref=gorillasun.de)' profile, a Graphic Designer that has a knack for procedural things. In a fortunate streak, the TwiX timeline for once decided to show me content that is actually relevant to me, and presented me with one of Tarius' recent creations - a 3D experiment for visualizing color palettes:
0:00
/0:10
1×
[Link to Tweet](https://twitter.com/MrmoTarius/status/1645462342010798080?ref=gorillasun.de)
In essence, as far as I understand the visuals, the colors in a given palette are placed as coordinate points in the RGB cube, then expanded into 3d Voronoi regions, and subsequently smoothed to create the blobby aesthetic that can be seen in the video. Depending on where the coordinate points fall, they might occupy varyingly small or large regions.
[](https://twitter.com/OskSta/status/1645523670134128643?ref=gorillasun.de)
I mean if you have [Oskar Stålberg](https://twitter.com/OskSta?ref=gorillasun.de) (creator of the city building game TownScaper) comment on your creation, that's something | [Link to Tweet](https://twitter.com/OskSta/status/1645523670134128643?ref=gorillasun.de)
You can see some more recent versions of this experiment on Tarius timeline. Why I found it so interesting, is because I believe that it might be an ingenious *spatial* weighted approach to sampling colors from a palette! Basically, we simply sample a random point inside the volume of the cube, in a uniform manner, and then select the color of the region that the point falls into. Since certain regions are larger than others, the structure already predicates the color distribution and the probability of picking a certain color - in this manner highlight colors could be assigned smaller regions, whereas the base colors could occupy larger partitions, etc. but maybe this doesn't work that well in theory. Would love to hear you guys' input on this!
Besides that Tarius also makes all sorts of cool things, one pic that I really loved was the following - a picture that's rendered via Mrmo's own "print emulation shader" Blender node:
[](https://twitter.com/MrmoTarius/status/1527658334609977344?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/MrmoTarius/status/1527658334609977344?ref=gorillasun.de)
Like come on, this looks so good! Can I please get an entire game styled like this?
### Building Minecraft with JavaScript and Three.js
While we're on the topic of procedural generation; here's an interesting video from roughly a year ago about how Minecraft handles the procedural generation of its different worlds and biomes:
And you might've noticed, it's by none other than Alan Zucconi! He starts us off with some of the history behind procedural generation in video games, and some of the early precursors that pioneered the concept, like the game Elite for the BBC Micro in 1984\. Procedural generation often boils down to carefully balancing between consistency and variety, and is generally not an easy feat to accomplish - many games fall short in that regard, we've seen a few modern examples where this was the case, like Bethesda's Starfield for instance, with the major complaint that the worlds felt "empty".
While the issues of "endless content" and "replay value" in video games do play into this narrative, that's a story for another day. Minecraft however has managed to keep players interested even 15 years after its original release, which is impressive and cannot be said about many other games. Zucconi has also written a companion article for the video here:
[The World Generation of Minecraft - Alan ZucconiLearn how Minecraft creates its worlds. This article will finally explain how the world, biome and terrain generation algorithms work.Alan ZucconiAlan Zucconi](https://www.alanzucconi.com/2022/06/05/minecraft-world-generation/?ref=gorillasun.de)
I wouldn't have come across Zucconi's video if it wasn't for this series on recreating Minecraft with Javascript and Three.js Coffee Code Create:
### Long Distance Plotting with La Ligne
One other thing that I wanted to share is La Ligne - a long distance plotter group show. In a nutshell, artists around the globe can send in their SVG files to be then plotted on site in Amiens, France - you can learn more about the project here as well as some of the participating artists:
[la ligne — code && art —long distance drawingLa ligne — code créatif pour tous.la ligne](https://ligne.page/en/les-ressources/long-distance-drawing?ref=gorillasun.de)
This came to my attention after seeing CCDDBB's post over on TwiX with the beautiful artwork that he had submitted:
[](https://twitter.com/CCDDBB/status/1779857071758094648?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/CCDDBB/status/1779857071758094648?ref=gorillasun.de)
I don't want to jinx it, but CCDDBB has been on an absolute roll lately, highly recommend checking out their timeline. \*knocks on wood\*
### Generative Minis
1. Daniel Schiffman announced that he completed the [new version of The Nature of Code](https://twitter.com/shiffman/status/1781689870466916655?ref=gorillasun.de).
2. Christiane Pauland David Lisbon, the curatorial team behind the Harold Cohen: AARON exhibition on the 8th Floor of the Whitney museum, share insights about the show in [this conversation](https://www.youtube.com/watch?v=xkrJwURBEfg&ref=gorillasun.de).
3. Gallery's curatorial series "Gallery Selects" featured [Zancan's Aux Arbres in a big article](https://shorturl.at/OQ246?ref=gorillasun.de) of theirs, with many of his thoughts throughout the process and release of the massive project.
## Web3 News
It's been yet another chaotic week in Web3\. With the bitcoin halving just having passed this weekend there's uncertainty around how things will swing in the coming days. The overall sentiment however is that we're slowly coming out of the bear market.
### A new Genart Platform: Intrinsic.art
I came across this cast by Matto announcing the launch of his project "Metta" on a platform that I hadn't heard of before: Intrinsic.art. It's essentially a new generative art NFT platform, that puts a different spin on the collector customizable minting experience, the likes that have been pioneered by Crayon Codes, fx(params) and EditArt - with the difference that the parameters are themselves NFTs in this scenario. I recommend giving Matto's thread a read as it illustrates the concept pretty nicely:

In essence, as far as I understand it, the traits that define a minted iteration are not just attributes and pieces of information that get stored on-chain to define the minted iteration, but rather, the traits are themselves tokens that combine into the generative token - they're basically building blocks. If you take a look at Metta's mint page on intrinsic.art it shows that each trait has an edition size and price:


Each individual trait has a number of types, that in turn have their own edition sizes. It seems that this allows the artist for greater control over the rarity of the final collection. An added effect of this, is that minted edition can then be burned to be disassembled into their individual traits, and then recombined into other versions of the generative artwork when the different traits are mixed and matched.
While I understand how it works in concept, in practice this makes me a bit concerned - if it is possible to collect traits by themselves, what happens when someone collects all editions of one individual trait? Does that then prevent other collectors from assembling artworks from the collection? I'm also wondering what the practical purpose is of having different prices on individual trait categories - but maybe I'm overthinking this too much - I asked Matto about it in the Thread and he provides some insightful answers in that regard:
[](https://warpcast.com/gorillasun/0x3966084e?ref=gorillasun.de)
[Link to Thread](https://warpcast.com/gorillasun/0x3966084e?ref=gorillasun.de)
I'm definitely excited to see how the new platform pans out with its first couple of projects. I also recommend giving Matto's write-up a read:

[Link to Article](https://shorturl.at/dI269?ref=gorillasun.de)
### OBJKT4OBJKT 2024
It's been a minute since I've talked about Tezos - simply because there hasn't really been much to report on in recent months, and at the same time been overshadow by other developments in the crypto space. Last week however, the popular OBJKT4OBJKT event made a return, with its fourth installment running for four days from the 18th to the 21st of April 2024\. The event concluded just yesterday evening with a whopping 38.8k editions sold overall and 944 artists participating in total - NftBiker crunched the numbers for us:
[](https://twitter.com/NFTBiker/status/1782322119776354539?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/NFTBiker/status/1782322119776354539?ref=gorillasun.de)
Unfortunately, when this Newsletter comes out the event will have concluded already, I'm certain however that there's likely still many goodies that are still waiting to be collected and haven't been burned yet. It's generally the best time of the year to grow your Tezos collection and acquire some stellar pieces for little funds. And as always NFTBiker's tool has been the best way to keep track of things:



[Link to Cast](https://warpcast.com/kika/0x1baa1214?ref=gorillasun.de) | [Link to NFTBiker's Objkt4Objkt Tool](https://shorturl.at/achV6?ref=gorillasun.de) | [Link to Cast](https://warpcast.com/nftbiker/0x20af9836?ref=gorillasun.de)
I only managed to dedicate some time towards the event this Saturday, on the third day of the event - here's what I made 👇

[Link to Objkt](https://objkt.com/tokens/KT1F45aBw2czKHo6dbPVFLiwakaobisAPuEA/2?ref=gorillasun.de)
And I also managed to cop a couple of pieces from some artist friends, and even made my very first curation on Objkt.com, it was actually super fun and definitely made me excited to collect more - here's a link, some of the pieces might still be up for grabs:
[](https://objkt.com/curations/objkt/gorilla's-objkt4objkt-2024-fbad812d?ref=gorillasun.de)
[Link to Curation](https://objkt.com/curations/objkt/gorilla's-objkt4objkt-2024-fbad812d?ref=gorillasun.de)
### Statelessness, state expiry and history expiry
As the blockchain is becoming more and more part of my daily reality, in terms of social media and genart practice, I'm actively trying to learn more about its intricacies, and also become more involved.
A new article directly from the Ethereum foundation addresses a concern with the decentralization of the chain: one big bottleneck that prevents users from running their own nodes on low-end devices is the growing state data that needs to be stored at any given time for the node to function properly:
> Today, high disk space requirements is the main barrier preventing universal access to nodes. This is primarily due to the need to store large chunks of Ethereum's state data. This state data contains critical information required to correctly process new blocks and transactions. At the time of writing, a fast 2TB SSD is recommended for running a full Ethereum node.
[Statelessness, state expiry and history expiry | ethereum.orgExplanation of history expiry and stateless Ethereumethereum.org](https://ethereum.org/en/roadmap/statelessness/?ref=gorillasun.de)
The text discusses some potential solutions to the issue, and underlines that accessibility is crucial for true decentralization; an effort has to be made to bring this ideal closer to reality and to ultimately empower a wider range of users to participate in the Ethereum network.
### News from the Purple Side
1. Highlight now allows for minting with DEGEN, and also enables creator rewards on free collections. [Read the official announcement here.](https://warpcast.com/highlight/0x4bda1a83?ref=gorillasun.de)
2. Warpcast now implements a different method for ordering cast replies, they are now shown in the following order: 1\. If the author replies to the reply 2\. If the author likes the reply 3\. If the author follows the user replying 4\. Replies from users with the power badge 5\. Everything else. [Learn more about it in this cast from Dan Romero](https://warpcast.com/dwr.eth/0x3ba74556?ref=gorillasun.de) as well as what people thought about it.
3. DEGEN allowances have been reduced for everyone across the board by roughly 40% - this might be due to the big influx of new users on the platform. There were some allowance outages again this past week, but they should have been resolved again by now.
## Tech and Web Dev
### MarkdownDown by Asad Memon
Came across this cool online tool by Asad Memon, that lets you download any page on the internet as a clean markdown file, plus an option to download the images that occur throughout the page, as well as a ChatGPT powered filter in which you can instruct the downloader to make any and all sorts of edits via a prompt:
[MarkdownDownConvert any webpage to a clean markdown w/ images downloaded.MarkdownDown](https://markdowndown.vercel.app/?ref=gorillasun.de)
Scraping pages is actually quite a challenging task, since pages can be structured in vastly different manners there isn't a one size fit all solution to the task - I found the Hackernews comment section that announced the tool to be quite enlightening as well, with many other tool builders chiming in discussing their approaches:

[Link to Hacker News Item](https://news.ycombinator.com/item?id=40033490&ref=gorillasun.de)
### How to write a Code Formatter
Have you ever wondered how your code editor automatically formats your code for you? I actually never thought about it, but naturally, there's an algorithm that takes care of this - and it's actually a pretty interesting task from a computational point of view. Yorick Petersee walks us through the challenges of putting together a code-formatter from scracth in this beefy article of his:
[](https://yorickpeterse.com/articles/how-to-write-a-code-formatter/?ref=gorillasun.de)
[Link to Article](https://yorickpeterse.com/articles/how-to-write-a-code-formatter/?ref=gorillasun.de)
### How to generate Color Palettes for Design Systems
The growing needs of the modern internet have imposed more and more requirements of the color palettes that we use to style our design systems. On the one hand we need our schemes be recognizable and consistent, conveying a strong sense of "brand", while also being flexible enough to be applicable to different interfaces, use cases, and also adhere to web standards and accessibility requirements. Matthew Ström tackles the task in this deep-dive of his and proposes an approach of his own:
[How to generate color palettes for design systemsA guide on how to generate color palettes for design systemsMatthew Ström, designer-leader](https://matthewstrom.com/writing/generating-color-palettes/?ref=gorillasun.de)
Ström points out that there's currently many different tools out there that are aimed at generating color palettes, but that they're all arguably flawed; either they're too convoluted and inaccessible for anyone to use them, or they're too simple to be able to generate meaningful schemes - there needs to be some sort of middle-ground. And I have to agree, I have yet to run into my own ideal palette generator. Ström also points out a bit of an older article from Stripe from 2019, in which they explain how they went about designing their own system for accessible colors:
[Designing accessible color systemsHow we designed a color system with hand-picked, vibrant colors that also met standards for accessibility and contrast.Daryl Koopersmith](https://stripe.com/blog/accessible-color-systems?ref=gorillasun.de)
## AI Corner
### LLMs explained... by Ryan Gosling
This is probably the 15th time that I share a video explainer on how LLMs work, the difference with this one however, is that it's done by Ryan Gosling!
Well, not the real Ryan Gosling, but a deep-fake version of his; the creator of the video *howtofly*, explains their approach in the description of the video, chaining together a number of AI services for this purpose.
I was actually curious about ElevenLabs, that lets you generate spoken versions of text with a number of different voices, and tried it out for myself to see if it is as potent as advertised. And turns out it's actually really good! Here's a sample where I fed in the opener of the Newsletter:
Herald Grumpy and Tired Sample
0:00
/21.028563
1×
If you're interested in trying it out for yourself you can check it out [here](https://elevenlabs.io/?ref=gorillasun.de). Not sponsored. The website's a bit laggy though. You know, I'd really love to see Michael or Dwight from The Office give the Gorilla Newsletter an endorsement...
### Devin... lied to us?
When it comes to lying on your CV, I believe that Devin has already beat many of the human software devs.
I've already expressed my skepticism for the legitimacy of Devin's capabilities when Cognition made their announcement, and turns out that it was warranted. Carl from the Internet of Bugs YouTube channel addresses some important points in that regard, and explains why the "hype" around AI can have an incredibly negative effect on our perception of different professions - misrepresenting AI capabilities can devalue the contributions and ability of skilled professionals. Carl proceeds to debunk Cognition's showcase of Devin, and why the AI software engineer is likely much worse than advertised:
Software engineering is complicated. It requires creativity, problem-solving, debugging, as well as the ability to adapt to new and ever-changing technologies. What we can currently do with AI is incredibly impressive, but at the same time we're still very far from replacing real-human-people with it. While in this case we're specifically talking about software development, I think this applies to all fields that are currently being explored with AI.
## Gorilla Updates
What have I been up to this past week? A bunch of stuff actually, besides the animation I made for Objkt4Objkt, I also released a new article for my Hypersubs, a deep-dive on Text & Font packing, using the OpenType library and a custom path packing procedure:
[](https://shorturl.at/mwxFM?ref=gorillasun.de)
[Link to Article](https://shorturl.at/mwxFM?ref=gorillasun.de)
If you're interested in reading it, you can collect a [Hypersub subscription here](https://shorturl.at/zLY19?ref=gorillasun.de). The cool thing about it is that it lets you use any fonts and any sort of typographic letterforms - even works for other languages:

I also worked on some other sketches that I'll be sharing more of in the coming days - for instance this circle packing sketch:


As well as my generative puzzle sketch that is shaping up really nicely:

## Music for Coding
This week I have been thinking a lot about the short, but adventurous vacation that I spent in Spain last year, it was definitely a big highlight of 2023\. It might sound a little silly but I wanted to listen to something that made me feel like I was there again — while not originally from Spain, I discovered the Mexican singer and producer León Larregui that has some really beautiful tunes:
I also really enjoyed the beautiful cover of the album that gives me some ideas for a generative sketch.
And that's it from me, hope you've enjoyed this week's curated list of generative art and tech shenanigans! Now that you've made it through the newsletter, might as well share it with some of your friends - sharing the newsletter is one of the best ways to support it! Otherwise come and say hi over on my socials!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 52RCS on the Future of Creative AI - Creative Code Tutorial Galore - Retro Nostalgia with Workstation 95 - News from the Purple Side - The Fabulous Cartier Journey - Andrej Karpathy implements GPT-2 in C +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-52/)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 52
URL: https://www.gorillasun.de/blog/gorilla-newsletter-52/
Last updated: 2024-04-15T09:26:33.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 52nd 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## The Future of Creative AI
Although AI models have become increasingly proficient at making art, and are already capable of impressive generative feats - feats that we've only dared to think possible a couple of years ago - there's a big difference between **being** creative and **simulating** creativity. Featuring the two experts Mick Grierson and Luba Elliott, RCS tackles this topic in a recent article of theirs:
[The Future of Creative AITwo leaders in the field of machine learning assess its progressive potential for art and beyondAlex Estorick](https://www.rightclicksave.com/article/the-future-of-creative-ai-machine-learning?ref=gorillasun.de)
Rather than subscribing to the silly hollywood-esque idea that AI will develop its own independent creativity, the two experts see AI as a powerful creative tool that artists will leverage for different kinds of tasks, augmenting and transforming their creative processes. Mick Grierson provides an interesting perspective, stating that the cutting edge tech is merely a different framework in which we can express ourselves creatively:
> Some forms of expression, such as dancing, don’t require any technology at all. However, a drum, which is an early form of technology, can also transform dancing by providing a new framework within which that kind of expression can occur.
Maybe AI art shouldn't be placed on its own pedestal, separately from the the other artforms, but rather be considered a new framework that enables new affordances. In its short history, AI art has already had a radically transformative effect on art *making*, in terms of accessibility its enabled many people to *create* and make art, who otherwise would've never tried their hand. Moreover, AI art is still rapidly changing as the underlying tech is evolving *\-* in stark contrast to the traditional artforms that took decades and centuries to reach their current state.
A recent project that I'd like to mention in this regard, that leverages AI as a creative tool, is Matt DesLauriers Filligree - featured in a recent interview with Monk from Le Random:
[Matt DesLauriers on Challenging the ImageAcclaimed software artist Matt DesLauriers spoke to Peter Bauman (Monk Antony) about the implications of AI’s prevalence. They examine how DesLauriers has begun incorporating AI into his process and how AI challenges our relationship with the image.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/matt-deslauriers-on-challenging-the-image?ref=gorillasun.de)
DesLauriers is also of the view that its much more likely that AI models will serve us as tools to enhance the creative process, rather than replace us creatively - just like we use computers that we did not engineer or build ourselves as tools on a daily basis. In Filligree, LLMs were used for the purpose of generating the mood and color palettes of the individual artworks.
While the partnership between artificial intelligence and human creativity has already led to fascinating developments in art, it also drives forward an important narrative around authorship. The question of "Who made the art, man or machine?" has already existed to a lesser extent in other fields, like generative art, the increased autonomy of these systems renders the line even blurrier - generative AI has most definitely made quite an impact on programming, with LLMs' ability to generate chunks of code on demand.
[Can Artificial Intelligence Be Creative?AI is a helpful tool for creatives. This article explores examples of AI creativity and how businesses can use AI to help them build more creative solutions.AkkioCraig Wisneski](https://www.akkio.com/post/can-artificial-intelligence-be-creative?ref=gorillasun.de)
Although the current arguments that we're getting dangerously close to true AGI (Artificial General Intelligence) raise reasonable concerns, I find it hard to believe that the current statistical models are all it takes to simulate the conscious, self-reflective capabilities of the human brain. We might be closer than ever to AGI - but at the same time I believe there's still a lot left to figure out.

## All the Generative ~~Things~~ Tutorials
This past week has been an absolute treasure trove of generative art and creative coding tutorials!
### Daniel Velasquez ASCII Tower Breakdown
Taking inspiration from Andreas Gysin's iconic ASCII towers, Daniel Velasquez puts his own 3D spin on the idea and recreates the sketch using shaders in WebGL - he walks us through the steps to achieve his recreation in a recent tutorial of his, detailing some of the technical challenges involved:
[ASCII Tower BreakdownLearn how to use deferred rendering with ascii by packing values into color channels.Offscreen/ Canvas.](https://offscreencanvas.com/issues/ascii-tower-breakdown/?ref=gorillasun.de)
Rendering ASCII characters with a shader is a completely different challenge from doing so with HTML + JavaScript. By repurposing the built-in **`gl_fragColor`** output variable, that is normally used to pass colors from one shader pass to subsequent ones, the RGB channels can be cleverly leveraged as data storage. While the Blue and Green channels are still used for color purposes in this setting, to specify the cosine offset of the sinusoidal palette that ultimately gives the characters their color, the Red channel is used to store a set of ASCII symbols. Velasquez also shares a cool trick for storing multiple symbols inside of a single channel, I won't spoil it all here, go and check out the write-up.
In the article Velasquez also links to another interesting resource that I'd like to feature here, the first installment in a three part series of case studies that debunk how GTA V renders its graphics:
[GTA V - Graphics Study - Adrian CourrègesThe Grand Theft Auto series has come a long way since the first opus came out back in 1997\. About 2 years ago, Rockstar released GTA V. The …Adrian CourrègesAdrian Courrèges](https://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-study/?ref=gorillasun.de)
I also want to point out that Daniel Velasquez runs an awesome Newsletter, that you should definitely subscribe to if you're interested in creative front-end dev things.
### Coding Adventure: Rendering Text
While we're on the topic of rendering ASCII characters and text, Sebastian Lague published a new YouTube video over the weekend, and as usual it's a fascinating deep dive. If you've ever tried to render text using different fonts with code and do something creative with them while you're at it, you're in for a rude awakening - especially dealing with font files can be challenging.
In the video Sebastian Lague dives into the details of the font file format and how to parse it for finding the contour information of individual glyphs, subsequently he explores the challenges of visualizing the individual letters:
If you ever have a project that requires you to handle font files - this one's a must watch. Up to this point I've heavily relied OpenType.js to do the job for me, and it works pretty well, but it's always been a bit cumbersome to use - maybe I'll put together my own minimal font file parser at some point.
### On Flow-fields and Novelty and Taste
Adam, aka Genlight, has been writing a bit more frequently over on his Substack, and recently published a tasteful essay on *novelty* in the setting of generative aesthetics. Generative art in particular succumbs to the problem of an over-saturation of similar aesthetics - primarily due to the tools and methods that are commonly used for their creation. The enjoyment derived from the perceived originality of a generative art, can quickly turn into distaste when this novelty wears off.
Adam explains some of the things that can make art seem Clichee, and using the all-too-familiar flow field, Adam walks us through his process:
[On flow fields and novelty and tasteMake a flow field with meGenerative LightAdam](https://generativelight.substack.com/p/on-flow-fields-and-novelty-and-taste)
The article really hits home for me. Although I don't always succeed at it, I've been striving at incorporating a new element in each single one of my projects - be it conceptually or a new algorithmic element, even if it doesn't lead to a much different aesthetic. Although it's uncertain if the viewers will ever recognize these elements, it is to a large extent a personal challenge. I'm generally not satisfied with my work unless it brings something new to the table.
Moreover, when new ideas are incorporated in a work, I find that it's important for them to serve a purpose - contributing to elevating the artwork, and not just be tacked on. Just as Adam points out in the case of the painting that is needlessly split up into a triptych, adding aesthetic complexity for no reason can often have a reductive effect.
### Manuel Lariño's Forecast
Although it isn't a recent post, I also wanted to share this beautiful write-up and explainer by Manuel Lariño, in which he details the making of his Art Blocks project "Forecast". Inspired by the rich vocabulary surrounding rainfall in the Galician region of Spain, Lariño explores the profound connection between weather and human emotion as a way to pay homage to his hometown:
[Forecast — Manuel Lariño | Generative artForecast is an analogy between weather and human emotions, comparing the outcome of a weather forecast to the range of emotions a rainy day can evoke.Manuel Lariño | Generative art0](https://mlarino.com/work/forecast?ref=gorillasun.de)
With a grid system that represents the paved streets of Galicia, and curved streaks that simulate the raindrops, the generative artwork strives to visually represent rainfall in an abstract manner. Lariño draws inspiration from a number of minimalist art movements, making use of geometric elements and carefully designed color palettes to capture the different emotional states that rain can evoke.
## Web3 News
### Workstation 95
One of my favorite NFT projects from the past week has been a collaboration between the two users that go under the aliases of sgt slaughtermelon, and Iteration. Combining two previous ideas of theirs they bring to life a beautifully nostalgic piece titled 'Workstation 95', in which each mint is a unique little pixel-art workstation, at its center an older desktop machine, surrounded by a number of different gadgets:

The fascinating thing about the project is its minting experience that happens through a Farcaster Frame - collectors can assemble their own Workstation. The above one is the one I minted, at random since it took me a bit to figure out what I was doing. If you're interested in checking it out for yourself, you can find the frame here:
[](https://warpcast.com/sgt-sl8termelon/0x13a80f6d?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/sgt-sl8termelon/0x13a80f6d?ref=gorillasun.de)
These mood-reflecting text at the top of the piece aims to capture the mixed emotions that we often experience at our desks – the place where work and play intertwine. Wokrstation 95 acts as a playful yet thought-provoking ode to the place where we spend countless hours. Sgt slaughtermelon wrote a beautiful piece to recount the making of Workstation 95 (indirectly linking to it here because the article is on an .xyz domain):

[Link to Cast](https://warpcast.com/sgt-sl8termelon/0xf3563681?ref=gorillasun.de)
### News from the Purple Side
It's been wonderfully chaotic over on Farcaster in the past week - with DEGEN allowances going haywire and image uploads breaking just yesterday, it's been wonderfully chaotic
1. DEGEN allowances have been inaccurate for a couple of days last week, this is due to some issues with Dune and Neynar, the two services that calculate the allowances - [more info about this by Ryan J. Shaw in this cast](https://warpcast.com/rjs/0x0dfe6e4f?ref=gorillasun.de).
2. Image Uploads are [apparently broken due to an API request limit as NFTBiker points out in a cast of his](https://warpcast.com/nftbiker/0xce074b87?ref=gorillasun.de). One way to get around it is by posting an image to imgur/discord and then pasting the link in your cast.
3. Warpcast has a feature called 'Cast Actions', basically tiny add-ons that you can tack onto the regular roster of reactions that's normally available (liking, recasting, bookmarking) - they can be accessed via the 4 squares button underneath a cast. [You can learn more about them here](https://shorturl.at/txCIZ?ref=gorillasun.de).
4. Supercast is an alternative client to Warpcast that lets you interact with the Farcaster eco-system. Supercast is a paid service however, but seems to provide an overall much smoother experience.
5. Want to tip someone directly with ETH/DEGEN and other tokens from your wallet? Paybot can be used as a tool for this purpose, simply tag the bot + the recipient + state an amount + the token symbol. The bot will then reply with a frame in which you need to confirm the transaction.
6. One other interesting thing I want to share here, Cryptopunks #7804 was acquired by Artudito for 16.4 million - [NFT Now interviews the collector on the purchase and the motivations behind it.](https://nftnow.com/features/artudito-alien-cryptopunk-16-million-exclusive/?ref=gorillasun.de)
### Meme Coins & Crypto Liftoff
I am simply sharing this article because I found it to be a fascinating read, the author also clearly states that putting any money in meme coins is at best gambling. And it's just absolute madness because there isn't really any rhyme or reason as to why the chart is swinging up or down, other than the speculation of everyone that's invested - a simple social media post by someone influential can sometimes be sufficient to wreck the entire chart. Arbitrage Andy explains this daunting new market in an article of his:
[Meme Coins & Crypto Liftoff258: You were warned repeatedlyARB LetterArbitrage Andy](https://arbitrageandy.substack.com/p/meme-coins-and-crypto-liftoff)
Admittedly, from the few times that I've tried trading I've learned that it is clearly not for me and that I absolutely have no talent for it.
## Tech & Web Dev
### The Fabulous Cartier Journey
The digital gamification studio Merci Michel recently received recognition for their immersive and interactive web experience title "The Fabulous Cartier Journey" which is currently nominated for a number of awards.
In the game players embark on a dreamlike adventure, taking control of a zeppelin and steering it through whimsical airy landscapes. The goal of each level is to collect gems and jewels that fuel the zeppelin and drive it forward for it to reach the Maison Cartier. These collected treasures then unlock exclusive product reveals:
0:00
/0:10
1×
[Link to Tweet](https://twitter.com/MerciMichel/status/1777241344949256467?ref=gorillasun.de)
If you're not familiar with Cartier, it's "**a French luxury goods brand that designs and manufactures high-end watches and jewelry**". Although I'm certainly not the target audience for the promoted products, I did enjoy playing through some of the first few levels of the game, I'm impressed by how smoothly it runs in the browser.
### Object structure in Javascript Engines
Two weeks ago I shared an article about optimizing JavaScript (for fun and profit) in which one of the tips claims that the *shape* of your objects can have a direct impact on the performance of your code. This week I came across a talk from JSConf 2018 that shines some light on this issue: Mathias Bynens and Benedikt Meurer provide an insightful explanation on how JavaScript engines generally work, and also address how the engine's pipeline deals with objects:
In a nutshell, JavaScript engines use a concept called shapes to improve the efficiency of property access. Shapes are essentially dictionaries that store information about the properties of an object, including the property names and their attributes (writable, enumerable, configurable). This allows the engine to quickly look up properties on objects without having to search the entire object every time - if shapes don't correspond then this optimization doesn't happen. The talk can also be found in form of an article here:
[JavaScript engine fundamentals: Shapes and Inline Caches · Mathias Bynens](https://mathiasbynens.be/notes/shapes-ics?ref=gorillasun.de)
### The Debuggers Toolkit
The prolific writer Addy Osmani, who you might also recognize as the person in charge of the Chrome Web browser, wrote an interesting article on Debugging. He provides us with a good overall recipe for debugging code:
[The Debugger’s ToolkitUnderstanding the thoughtful art of debugging codeElevateAddy Osmani](https://addyo.substack.com/p/the-debuggers-toolkit)
### Andrej Karpathy implements GPT-2 in C
Arguably the biggest news in AI from the past week is Andrej Karpathy's GPT-2 implementation in pure C – in less than 1000 lines of code! He announces his creation in this tweet of his with some further explanations in the threaded replies:

[Link to Tweet](https://twitter.com/karpathy/status/1777427944971083809?ref=gorillasun.de)
While it's an absolutely impressive feat of coding, it's even more impressive that he's open sourcing this project.
## Gorilla Updates
There hasn't been much on my end this week - with a surprise family visit there hasn't really been that much time for other things. I did get a lot of writing done, some of which you'll likely see more of throughout the coming week. I did however dive back into my irregular puzzle grid algo (actual name tbd), and explored some geometric variations for the puzzle tiles:


I also tried putting a fake 3D spin on the puzzle tiles to see what it would look like, and it lead to an interesting perspective trick, in the image on the right sometimes it's not entirely clear if the tiles are indented inwards or protruding outwards.
## Music for Coding
While I was binging the entire In Flames discography a couple of days ago, Spotify suggested that I listen to a band called Soilwork... and I haven't listened to anything else ever since. With soaring, epic melodies that seamlessly transition to thrashing riffs, it's quickly taken a spot in the roster of my favorite bands. The Swedish band is considered to be one of the other Melodic-Death-Metal Bands, besides In Flames, that is currently at the forefront of the genre:
And that's it from me, hope you've enjoyed this week's curated list of generative art and tech shenanigans! Now that you've made it through the newsletter, might as well share it with some of your friends - sharing the newsletter is one of the best ways to support it! Otherwise come and say hi over on my socials!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 51Tuning Parameter Spaces with Machine Learning - Daizaburo Harada’s Artificial Lifeforms - 2024 Processing Fellowships - Buffer Overflow by Marcel Schwittlick - Tsubuyaki plotting tip by Zancan - Generative SVG mountain ranges by Pierre Casadebaig +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-51)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 51
URL: https://www.gorillasun.de/blog/gorilla-newsletter-51/
Last updated: 2024-08-15T08:05:26.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 51st 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Tuning Parameter Spaces with Machine Learning
When creating long-form generative art, one of the more difficult parts of the process is the fine-tuning step. Balancing between a varied output space, while also steering clear from "duds", can often be a laborious endeavor and frequently boils down to spending a significant amount of time on sculpting and refining various parameter ranges.
The difficulty of the task stems from the inherent complexity and high dimensionality of parameter spaces with many variables. In a generative artwork the different parameters that determine the final output usually have a **non-linear r**elationship: changes to one variable are not isolated and can have an unexpected effect on the outcome of other parameters down the line. A small tweak in one area might have drastic consequences for the final output, which makes it hard to predict the outcome of adjustments.
Bjørn Staal, a repeat offender on this Newsletter, recently addressed exactly this issue over on TwiX; in a tweet of his he asks whether tuning these parameter spaces can be done with machine learning methods and if there have been attempts to do so. The replies give rise to a bountiful conversation around the topic, other artists pitching in with their own approaches towards the challenging task:
[](https://twitter.com/%5Fnonfigurativ%5F/status/1776181671433327041?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1776181671433327041?ref=gorillasun.de)
One project that comes up in the conversation and that I was not familiar with previously is Ben Snell's Cattleya - a generative artwork that makes use of statistical shape modeling and PCA (Principle Component Analysis) to create a generalizable template for the shape of different types of Orchids.
[Ill With Orchid FeverHow I channelled my obsession into an endless orchid generatorMediumBen Snell](https://bensnell.medium.com/cattleya-queen-of-orchids-7c943673d54f?ref=gorillasun.de)
To give a brief summary, in 2021, Snell discovered a new passion of his when he began growing different kinds of Orchids in a corner of his NYC apartment. Learning more about this plant species, and becoming engrossed with how they grew inspired Snell to return to the canvas and rekindled his creative flame - ultimately leading to the creation of his generative artwork Cattleya that released on Art Blocks in May 2022\. In his write-up "Ill with Orchid Fever" he recounts this story and explains the process behind the generative system.
How does PCA come into play here? And what actually is PCA? In a nutshell, PCA is a statistical technique used to reduce the number of variables (dimensions) in a dataset while retaining as much of the original information as possible. Snell's approach to modeling his generative flowers relies on a common template that has the ability to represent any of the emergent shapes, he explains:
> There were two primary forms to model: the shape of flowers and the shape of foliage. I approached each form independently using a technique known as Statistical Shape Modeling. This approach is exactly what it sounds like: it uses statistics to model shapes, in order to make generalizations about them and generate new shapes from the same distribution.
In simple terms, adding PCA on top of this template allows Snell to extrapolate a number of "control dials" that let him interpolate between different Orchid configurations. It's a fascinating and creative approach to tuning the output space of the artwork, in this setting, tuning the parameter space is made more tangible by reducing the number of parameters to tune. I highly recommend reading the article as it provides a more complete picture than I can provide here.
Bjørn's tweet received other interesting replies, more than I have capacity to cover; but another interesting resource that I'd like to share is a paper titled "[Understanding Aesthetic Evaluation using Deep Learning](https://arxiv.org/pdf/2004.06874.pdf?ref=gorillasun.de)" which is accompanied by a presentation over on Youtube:
The overarching questions of the paper is: *Can we use machine learning to model individual human aesthetic preferences?* While the approach is interesting, I don't see it as particularly useful for the average generative artist. A better title for the paper would likely have been *"*Using ML to rank and classify images according to aesthetics". Since the authors already had an annotated dataset for the occasion, it was easy to train a model on top, it doesn't seem very generalizable to other aesthetics and or projects however.
The [Hacker News comment section](https://news.ycombinator.com/item?id=12793915&ref=gorillasun.de) for the article raises some interesting points as well, the top comment mentions an article by Jürgen Schmidhuber in which he presents an interesting perspective on the enjoyment and understanding of aesthetics, and that it has a lot to do with our ability to compress patterns and scenes:
[](https://news.ycombinator.com/item?id=12793915&ref=gorillasun.de)
[Link to comment section](https://news.ycombinator.com/item?id=12793915&ref=gorillasun.de)

[Link to Page](https://people.idsia.ch/~juergen/creativity.html?ref=gorillasun.de)
I think that much of our understanding of the world around us can be abstracted as mental process of compression. But lest this section becomes too philosophical, I'll cut it short here. What are your thoughts on this, and how do you personally go about fine-tuning your own generative artworks?
While I'd argue that the approach is individual to every project, the ideas discussed here aren't necessarily just pragmatic approaches to more efficiently refine the output-space of a generative system, but could very well also be leveraged for creative purposes - to discover novel outputs that you wouldn't have necessarily been able to find fine tuning by hand. Make sure to check out the other replies in the discussion.
### Daizaburo Harada's Artificial Lifeforms
Our favorite Japanese creative coder, Shunsuke Takawo, recently shared a resource that recounts some of the influential Japanese generative artists from the 70s leading up to the 21st century:
[](https://twitter.com/takawo/status/1776074992020832654?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/takawo/status/1776074992020832654?ref=gorillasun.de) | [Link to Page](https://dm.jagda.or.jp/?ref=gorillasun.de)
While Hiroshi Kawano's artistry is widely recognized and needs no introduction, I'd like to highlight Daizaburo Harada's work, one of the other artists that is mentioned. Harada is most notably known for his "AL: Artificial Life" series that he release in 1993 Harada as a CG book (at a time where this was still a popular thing to do). The CG book depicted strange otherworldly creatures that Harada labeled as insects; I like to assume for emergent organic features that they presented:


Not only are the aesthetics captivating (impressive for their time) but also the very interesting story behind the artworks. Apparently the creation process for these digital creatures involves sound as an input according to a few resources: "They were created using a novel procedural generation technique using audio waveforms as a seed" according to this [page](https://www.mobygames.com/game/182401/al-artificial-life-insects/?ref=gorillasun.de) on Moby Games. I would have loved to learn more about the process, but I couldn't really find more info.
The only resource that gives a comprehensive historical recount of Harada's work is an article by [Misty De Méo](https://www.mistys-internet.website/?ref=gorillasun.de) via the CD-ROM Journal - I have to add here, that it is beautifully written:
[](https://cdrom.ca/games/art/2022/03/31/artificial-life.html?ref=gorillasun.de)
[Link to Page](https://cdrom.ca/games/art/2022/03/31/artificial-life.html?ref=gorillasun.de)
It honestly makes me a little sad that only little information can be found about Harada's work, and makes me wonder how many other artists and works have already been lost to the passage of time.
### Processing 2024 Fellowship Grants
Last week the Processing Foundation kicked off the submission period for their 2024 Fellowship program - the application deadline for submitting your fellowship proposal is the *2nd of May, 11:59 PM EST.* If you're not familiar with the fellowship program, it's essentially designed to support a number of projects aimed at benefiting the community in a number of priority areas:
> Our fellowship is designed to provide substantial support to individuals and groups within our community. This includes a $10,000 stipend, dedicated mentorship, skill-building workshops, public programs, and community engagement opportunities. Participation for the fellowship is entirely online and we invite applicants from around the world to apply.
This year's theme is 'Sustaining Community: Expansion & Access', with the following 4 priority areas: Archival Practices: Code & New Media, Open-Source Governance, Disability Justice in Creative Tech, Access & AI. If you have ideas that might align with one of these priority areas, and want to learn more about the program, you can do so here:
[FellowshipsThe Processing Foundation Fellowships support artists, coders, and collectives in visionary projects that conceive a new direction for what Processing as a software and a community can do. Fellowships are…Processing Foundation Logo .logo-st0{fill:#9C4BFF;} .logo-st1{fill:#5501A4;} .logo-st2{fill:#D4B2FE;}](https://processingfoundation.org/fellowships?ref=gorillasun.de)
In addition to that, a new partner program/development grant will be announced later, that is specifically aimed at software contributions towards the p5js library.
## Pen and Plottery
### Buffer Overflow by Marcel Schwittlick
The plotter wizard Marcel Schwittlick has recently been experimenting buffer overflows, purposefully causing them in a vintage plotter of his, the HP 7475A, to create interesting and unpredictable artworks. Schwittlick explains how this is done in a post over on his website, and additionally showcases some of the artworks that came to be from this approach:
[Marcel Schwittlick - Electronic Art | Buffer OverflowMarcel Schwittlick is a Berlin-based artist working across digital and physical mediums. His practice is rooted in algorithmic systems and computational aesthetics, primarily focused on work created with drawing machines (pen plotters). Schwittlick’s work often involves a unique process where cursor-lines, recorded over years, are transformed from digital traces into tangible analog artworks by using a variety of processes ranging from algorithmic drawings to generative photography.Marcel Schwittlick - Electronic Art | Buffer Overflow](https://schwittlick.net/buffer%5Foverflow/?ref=gorillasun.de)
Essentially, the buffer overflows are caused by skipping an important signal in the communication between the plotter and the interface that is sending the movement commands to it, namely the handshake. This handshake's purpose is generally to prevent these overflows from happening, for instance, when the plotter's memory capacity has no room to allocate and read the next instruction Essentially a waiting mechanism as far as I understand it.
Why is it called a buffer overflow? When sending data without a handshake, the buffer might not have enough space available, the excess data then overflows and overwrites parts of memory outside the intended buffer. This can corrupt existing instructions, including those that the plotter is trying to execute, leading to an erratic behavior. Schwittlick shared a video over on TwiX, showing the plotter in action while it succumbs to a number of overflows:
0:00
/0:10
1×
[Link to Tweet](https://twitter.com/schwittlick%5F/status/1776217108516405735?ref=gorillasun.de)
### Plotting Tips from Zancan
Zancan shares an insightful tip to drawing filled circles with a plotter - circles in this setting are simply spirals in disguise! He also shares a short Tsubuyaki processing snippet:
0:00
/0:09
1×
[Link to Tweet](https://twitter.com/zancan/status/1774900877981061144?ref=gorillasun.de)
It's also worth checking out the replies that provide additional plotting tips and tricks.
### Slicing Surfaces
Not a new tutorial, but last week I came across an article from Pierre Casadebaig in which he explains how to convert "topographical data into monochromatic ink sketches" bringing to life beautiful plottable mountainscapes that bear likeness to Matt DesLaurier's iconic Meridian:
[](https://warpcast.com/casadebaig.eth/0x88eaee44?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/casadebaig.eth/0x88eaee44?ref=gorillasun.de) | [Link to Tutorial](https://art.casadebaig.net/posts/process/dispyr/?ref=gorillasun.de)
I also recommend checking out a more recent article of his in which he explores an alternative aesthetic for representing mountainscapes that is reminiscent of traditional Shan Shui paintings:
[Paths | Pierre Casadebaig - Ridge RegressionPaths | Pierre CasadebaigPierre Casadebaig](https://art.casadebaig.net/posts/process/ridge/?ref=gorillasun.de)
## Web3 News
### Keeping up with Farcaster
Have you recently been active over in the Farcaster scene? Having trouble keeping up? Well, I don't blame you... here's a list of resources that I found helpful in making sense out of everything that's currently been happening on the purple platform:
1. If you're still confused about how the entire DEGEN thing works, or need a specific detail cleared up, Ryan J. Shaw wrote a [massive FAQ on DEGEN tipping](https://warpcast.com/rjs/0x2fcf11ac?ref=gorillasun.de) to answer all of your questions.
2. If you need to check your DEGEN allowance and how many tips you've received so far, [this frame](https://warpcast.com/nikolaiii/0xfbed5ab9?ref=gorillasun.de) by Nikolai does the trick.
3. Ombre developed a neat farcaster frame called [Farstats](https://warpcast.com/0mbre/0x47becf76?ref=gorillasun.de) (with an additional accompanying website) to keep track of your activity score as well as useful information about your followers/following.
4. With the increasing activity on Farcaster users have been quickly reaching their storage limits. With how Farcaster storage functions this has been raising concerns - here's a [cast by Dan Romero](https://warpcast.com/dwr.eth/0xa7eb1dbb?ref=gorillasun.de) in which he addresses the issue and explains the reasons behind how Farcaster stores casts.
5. Todemashi compiled a big filterable [list of the different NFT marketplaces](https://warpcast.com/todemashi/0xeb2f3f6a?ref=gorillasun.de) (a big chunk of them generative) over on Notion.
### Genesis on Foundation
Over the past couple of weeks we've seen more and more platforms embrace a more efficient alternative to mainnet Ethereum, adopting the Base L2 chain with its affordable gas fees and speedy transaction times. Last week, Foundation followed suite, commemorating the Base integration with their Genesis group show, bringing back an iconic roster of artists for a series of 1/1 auctions on Base:

What's interesting about the Base integration is that it allows for an entirely new kind of seemingly 'real-time' bidding experience on Foundation:
0:00
/0:08
1×
I've certainly been enjoying the new developments that Base has been enabling, it's interesting to see this kind of renaissance at a point when the "market" has been pretty much in the gutter for the longest time now - it's exciting to see things pick up again.
## Tech & Web Dev
### Google introduces Jpegli
Google recently released Jpegli, a new image coding library that significantly improves how JPEG images are compressed. Jpegli encodes images faster and more efficiently, achieving up to 35% smaller file sizes at high quality settings according to the crowd survey that they ran on several image datasets. Google details how all of it works in their announcement post:
[Introducing Jpegli: A New JPEG Coding LibraryJpegli, an advanced JPEG coding library that maintains high backward compatibility is faster, and more efficient, than traditional JPEG.Google Open Source Blog%20(1).png)](https://opensource.googleblog.com/2024/04/introducing-jpegli-new-jpeg-coding-library.html?ref=gorillasun.de)
This seems to be quite innovative as it's essentially an upgrade to the already existing JPEG format without any sort of interference, or asking anyone to support yet another image format. Jyrki Alakuijala, one of the folks that worked on Jpegli, posted a bunch of comparison images over on TwiX that you can check out for yourself - I can't tell any differences but maybe an expert reader amongst can point out the differences for me:
[](https://twitter.com/jyzg/status/1622891538823929857?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/jyzg/status/1622891538823929857?ref=gorillasun.de)
Overall, the jpegli images do however seem slightly crisper overall. Per usual, it was also highly entertaining to give the [Hacker News comments section](https://news.ycombinator.com/item?id=39920644&ref=gorillasun.de) a read, polarizing as always.
### Low Effort Image Optimization Tips
On a similar note, here's an article by Lazar Nikolov from Sentry in which he lists some easy image optimization tips that you can take advantage of for optimizing the images displayed on your website:
[Low effort image optimization tipsBoost your site’s speed with our guide on optimizing images. Learn about using AVIF, WebP, lazy loading, and more for faster, efficient web performance.Product Blog • Sentry](https://blog.sentry.io/low-effort-image-optimization-tips/?ref=gorillasun.de)
If you didn't know, loading in heavy images with large file sizes can be a death toll to your website especially when it comes to SEO - search engines will automatically give you a worse ranking if your page takes more than a couple of milliseconds to load.
When it comes to the Newsletter, I frequently don't optimize the images that I include since I don't care so much about SEO purposes as much as I do about deliverability - but I can demonstrate the tangible effect of this via the Brave Browser's Lighthouse tool; in the most recent issue of the Newsletter from last week, the diagnostics tell me that I could shave off a lot of loading time by simply reducing the image sizes:

One of the tricks that Lazar pitches, is using the HTML tag instead of the tag. It might not seem useful at first, especially since the srcset attribute is already a thing, but it provides greater control over how the browser serves images. While srcset lets browsers automatically decide which resolution of an image to serve, the tag goes a step further and allows for fallback options when the browser doesn't support a certain encoding format:
[The picture element | web.devExercise more creative control over your images.web.dev](https://web.dev/learn/design/picture-element?ref=gorillasun.de)
### The Unreasonable Effectiveness of Inlining CSS
And while we're already talking about optimizing the load speed of our web pages, here's an article by Luciano Strika where he talks about inlining CSS to shave off a couple of milliseconds from his page load speed:
[The Unreasonable Effectiveness of Inlining CSSA case study: I inlined CSS on the site and document how that impacted its loading times and traffic.The Unreasonable Effectiveness of Inlining CSS/](https://strikingloo.github.io/inlining-css?ref=gorillasun.de)
Inline styles improve loading times because it eliminates the need for a separate network request to load the CSS file. It's definitely an awesome trick for simple sites that don't have much styling, but I wouldn't unnecessarily clog up the HTML files of a larger site that way. IMO, I think it can be viable to inline the styles that are unique to certain pages.
## Gorilla Updates
What have I been up to this week? I would like to believe that I've been quite productive... shitposting over on Twitter:

[Link to Tweet](https://twitter.com/gorillasu/status/1775935294686232802?ref=gorillasun.de)
But jokes aside, I came across these figures in a paper titled "[Straight-Skeleton Based Contour Interpolation](https://www.cs.jhu.edu/~misha/Fall13b/Papers/Barequet04.pdf?ref=gorillasun.de)" while researching how to simulate foam bubble structures - this paper doesn't actually have anything to do with the topic, but had some pretty cool figures (and might actually come in handy for some other generative tasks). I was exploring if there were methods for simulating foam/bubble lattices, here's what I've been working on that led me down this rabbit hole:


The above patterns emerge from a simple algorithm that uses circle packings as a starting point, the Voronoi-esque diagram emerges when the individual circles in the packing are expanded/inflated such that they fill out the empty space around them, only stopping when two circumferences collide. This can be done via a particle based approach.
The emergent patterns then reminded me of a top-down view of sea foam like structure, you know, when ocean waves smash against a cliff and then retreat again. Apparently it's not an easy task that has a straightforward algorithmic solution due to the complexity of the physics involved - we're actually treading into the realm of fluid simulation with this topic. Moreover, foam lattices are kinda strange, on the one hand they have very specific structural configurations but are also not entirely rigid; as foam bubbles come together they have the ability to relax into specific positions. Here's two photographs from pinterest that I found really mesmerizing; when pressed against a flat surface bubbles form a voronoi-like tesselation, in which the shared edges are not always perfectly straight:


One paper that I found on the topic that describes a procedure for this is titled "[The immersed boundary method for two-dimensional foam with topological changes](https://jupiter.math.nycu.edu.tw/~mclai/papers/foam2Dtop%5Fcicp%5Frev2.pdf?ref=gorillasun.de)":

But I will need some more time to figure out if the implementation describe can bring me closer to the aesthetics I'm aiming for. On another note, I also explored circle packings in a different setting, revisiting an older idea, where we peek behind the canvas:




These sketches are made possible with the rendering context's clip function as well as some graphics buffer shenanigans. The emergent patterns are actually pretty cool, while I can totally visually interpret these as cutouts that let me peer onto another layer, the circles also almost look like 3D eggs of some sort. I'm excited to continue exploring this project!
## AI Corner
### Visual intro to Transformers
3Blue1Brown is back with another video, this time explaining the central mechanism that powers the LLMs of today: Transformers. Not much to say here, except that it's likely going to become the best introduction to the topic:
### AI and the Problem of Knowledge Collapse
In the advent of LLMs, the increased usage of these models has led to concerns around a potential "information collapse" - this term is essentially descriptive of a situation where AI curates information for us, favoring common viewpoints; being trained on massive datasets, models tend to favor providing the most common information that lies somewhere at the center of their internal representations in addition to other sorts of biases that they might have. This could ultimately limit our exposure to diverse ideas and ultimately shrink the overall knowledge we access. A recent paper by Andrew J. Peterson tackles this issue:
[AI and the Problem of Knowledge CollapseWhile artificial intelligence has the potential to process vast amounts of data, generate new insights, and unlock greater productivity, its widespread adoption may entail unforeseen consequences. We identify conditions under which AI, by reducing the cost of access to certain modes of knowledge, can paradoxically harm public understanding. While large language models are trained on vast amounts of diverse data, they naturally generate output towards the ‘center’ of the distribution. This is generally useful, but widespread reliance on recursive AI systems could lead to a process we define as “knowledge collapse”, and argue this could harm innovation and the richness of human understanding and culture. However, unlike AI models that cannot choose what data they are trained on, humans may strategically seek out diverse forms of knowledge if they perceive them to be worthwhile. To investigate this, we provide a simple model in which a community of learners or innovators choose to use traditional methods or to rely on a discounted AI-assisted process and identify conditions under which knowledge collapse occurs. In our default model, a 20% discount on AI-generated content generates public beliefs 2.3 times further from the truth than when there is no discount. Finally, based on the results, we consider further research directions to counteract such outcomes.arXiv.orgAndrew J. Peterson](https://arxiv.org/abs/2404.03502?ref=gorillasun.de)
It's interesting to see the opposing opinions on this issue, some argue that AI is simply a tool, and people will still be able to seek out the information they desire; new tools haven't necessarily made us less knowledgeable in the past. The debate over on hackernews highlights the importance of using AI responsibly and remaining curious in the face of an ever-evolving information landscape:

[Link to Hackernews comment section](https://news.ycombinator.com/item?id=39946169&ref=gorillasun.de)
## Music for Coding
I didn't listen to much music this week - but an artist that I just recently discovered really enjoyed was JW Francis. I found his tracks super uplifting with their retro indie vibes - in addition to some of the super fun riffs. I'm surprised that Francis doesn't actually have a bigger following, the music's quite awesome to be frank:
And that's it from me this time, hope you enjoyed this week's curated list of generative art and tech shenanigans! Now that you've made it through the newsletter, might as well share it with some of your friends - sharing the newsletter is one of the best ways to support it! Otherwise come and say hi over on my socials!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 50Conway’s Game of Hope by Spacefiller - Emilie Xie on Textile as Personal Canvas - Connecting Worlds through the Browser feat. Bjørn Staal - Rheotomic Surfaces - Moebius-style post processing shader - upcoming genart shows +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-50)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 50
URL: https://www.gorillasun.de/blog/gorilla-newsletter-50/
Last updated: 2024-08-15T08:00:24.000Z
**Welcome back everyone** 👋 **A heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 50th 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 - as well as a sprinkle of my own endeavors.
Needless to say, we're reaching a major milestone with this 50th issue of the Gorilla Newsletter! It's incredible to see how far we've come, and I want to express my gratitude to everyone who's been a part of this journey, whether you joined last week or from the very beginning - it means the world to me that you read these updates every week! We'll stick to our regular format with this issue, but keep an eye out for a special celebratory article coming later this week!
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Conway's Game of Hope
Storytelling meets interactive tutorial in Spacefiller's digital fable titled "Conway's Game of Hope". Alex Miller brings to life a beautiful blend of Greek Mythology and Philosophy in form of a beautiful story that teaches you about Conway's famous Cellular Automata, the Game of Life:
0:00
/0:12
1×
[Link to Tweet](https://twitter.com/spacefillerart/status/1774146196451537247?ref=gorillasun.de)
Although Conway disliked the fact that the Game of Life became his most influential work, I truly believe that reading through Alex's fable would have most definitely made him reconsider his position towards the brainchild of his.
I cannot express how much I love what Alex has managed to accomplish with his writing - it's not just a tutorial packaged in form of a narrative; but the manner in which the elements of the story tie back into the computational concepts behind the famous Cellular Automaton, in an almost allegorical manner, and how it is symbolical of the incomprehensibly infinite aspects of the game... simply a masterpiece!
[](https://alex.miller.garden/game-of-hope/?ref=gorillasun.de)
[Link to Conways' Game of Hope](https://alex.miller.garden/game-of-hope/?ref=gorillasun.de)
Thinking about the philosophical aspects of the Game of Life often triggers a feeling of existential dread within me; wand with the vastness of mathematics in general, will we ever be able to discover all of its secrets? While we have just recently proved that Conway's Game of life is [Omniperiodic](https://www.discovermagazine.com/the-sciences/mathematicians-prove-the-omniperiodicity-of-conways-game-of-life?ref=gorillasun.de), there are still many mysteries that elude us.
If you're going to read one thing this week, I recommend reading Conway's game of hope. If you're interested in learning more about Cellular Automata, from a generative art POV, I covered this in more detail in [issue 41 of the Newsletter](https://www.gorillasun.de/blog/gorilla-newsletter-41/). On this note, sometimes I really need to do my homework better - Spacefiller's interactive fable was actually part of the 3rd issue of the HTML review that I shared in last week's Newsletter - due to a lack of time I didn't manage to check out all of the showcase pieces, I'm certain that there's more than a few gems amongst them still.
### Emily Xie on Textile as Personal Canvas
Look, I'm running out of ways to introduce Monk's articles... by now I probably must've written the phrase "This week, Monk's back with a stellar article..." on about 5 separate occasions - and yet again, this week, Monk's back with a stellar article. This time he's in conversation with Emily Xie, a generative and visual artist that you might better know through her groundbreaking Art Blocks Curated release [Memories of Qilin](https://www.artblocks.io/collections/curated/projects/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/282?ref=gorillasun.de):
[Emily Xie on Textile as Personal CanvasVisual artist Emily Xie spoke with Peter Bauman (Monk Antony) about her close relationship with textiles, their intersection with computation and coded generativity’s aesthetic pursuits.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/emily-xie-on-textile-as-personal-canvas?ref=gorillasun.de)
Together they dive into the historically intimate relationship of textile works and machines; recounting how the Jacquard loom played an important role in the evolution of the modern computer as one of the first devices that made use of punch-cards. Moreover they also juxtapose and compare the analogue qualities of textile works with the sterile nature of machine art - and how Emily bridges between the two with her generative art.
I'll leave you here with an article about the Jacquard Loom, because it is fascinating piece of history:
[Programming patterns: the story of the Jacquard loom | Science and Industry MuseumThe Jacquard loom ties together two of Manchester’s most important historic industries: textile manufacturing and computing.Science and Industry Museum](https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom?ref=gorillasun.de)
### Connecting Worlds through the Browser
A few months ago Bj*ø*rn Staal broke the internet with a viral Tweet of his, with over 10 Million views, it currently reigns supreme as the most viewed generative art tweet in history:
0:00
/0:24
1×
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1727322594570027343?ref=gorillasun.de)
The tweet showcases an experimental artwork that transcends the browser window - in the literal sense of the word - to connect with another instance of itself in an adjacent one, such that the two particle blobs entangle with each other. I initially covered Bj*ø*rn's tweet in [issue 32](https://www.gorillasun.de/blog/gorilla-newsletter-32/) of the Newsletter, if you're curious to learn a bit more about the technical aspects of the experiment.
*So, how's a tweet from November 2023 news, Gorilla?* Bj*ø*rn recently shared that he had done an interview with Fakewhale back in December prior to the release of his [Art Blocks Curated project *Immaterial*](https://www.artblocks.io/collections/presents/projects/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/481?ref=gorillasun.de). The interview completely flew under my radar, but I found it well worth re-sharing, since it focuses on some of the happenings that happened in the tweet's aftermath as well as Bj*ø*rn's perspective on them:
[](https://twitter.com/%5Fnonfigurativ%5F/status/1772970171470062013?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1772970171470062013?ref=gorillasun.de) | **Sorry for making you jump through hoops and not linking directly to the interview - but spam assassin flags the Newsletter if it contains certain domains with an xyz extension.*
New considerations have emerged around open source culture; especially with the rising popularity of generative art and the monetization thereof, there's a noticeable bigger hesitance from artists to open source their projects' code - similarly to how a magician doesn't reveal his secrets, generative artists are less willing to share their tricks nowadays. Following the viral Tweet, Bj*ø*rn received many blunt requests asking directly for the source code behind Entangled - with the majority of them likely not genuine requests. [In a humorous manner he did eventually make the code public](https://twitter.com/%5Fnonfigurativ%5F/status/1729411738708107743?ref=gorillasun.de). Bj*ø*rn comments on the matter:
> I try to share code when I think it can be of value to others in a range of different contexts. \[...\] I think it’s amazing to see others rehashing concepts that I developed as long as I feel they bring something new to the table.
But it is an interesting issue, I see many interesting innovations and powerful algorithms come to life in generative art, especially in computer graphics, many of which will likely never be made public, which is a shame considering the educational value. This is in addition to Open Source culture already being in a precarious state, it quite often is a thankless job with little to no compensation - but who's to blame? We are victims of our own System - an interesting issue in that regard was the HashiCorp controversy from last year:
[Open Source is Dead: Understanding the HashiCorp License Controversy | HackerNoonHashiCorp’s controversial switch from open source to “source-available” licensing has reignited debates on open-source sustainability and business models.Hackernoon logoSal Kimmich](https://hackernoon.com/open-source-is-dead-understanding-the-hashicorp-license-controversy?ref=gorillasun.de)
While we're on the topic of interviews — here's a thread that I started over on Farcaster where I asked folks to pitch their favorite generative art interviews; there were quite a few that I hadn't seen before, so if you're looking for some more reading material this week I recommend you check out some of the links people have left in the replies:

[Link to Thread](https://warpcast.com/gorillasun/0xaebb90d3?ref=gorillasun.de)
### Rheotomic Surfaces
I've recently been exploring alternative coordinate systems, as a means to discover new kinds of shapes and patterns that I wouldn't otherwise come across so easily while working within the regular Cartesian coordinate framework. During my search, scouring Pinterest, I came across a number of interesting flow diagrams:


The diagrams linked back to articles about the notion of "Rheotomic Surfaces". Learning more about them, they are a type of mathematically generated surface defined by their “flowable” and “cut” properties. The name itself originates from the Greek words “rheo” which means flow and “tomos” which means cut or section. In simpler terms, Rheotomic surfaces are smooth, ‘walkable’ 3D structures that give rise to interesting 2D flow diagrams.
Daniel Piker discusses the mathematical concept in more detail in one of his articles, and explains how they find their way into Architecture; he references a work from the 1960s titled "The function of the oblique" by Claude Parent and Paul Virilio, where these kinds of structures are explored in a functional setting:


[Link to Article](https://spacesymmetrystructure.wordpress.com/rheotomic-surfaces/?ref=gorillasun.de)
You can essentially imagine these surfaces as constructs in which traveling upwards and downwards between floors, is possible without requiring stairs - simply by virtue of the smoothly curved surface. Are they practical? Probably not. What about satisfying Feng-Shui requirement? We'll have to consult an expert on the matter.
While I was first drawn in by the generative aesthetics of the emergent flow diagrams, I found the underlying mathematical concepts and the philosophical approach to architecture equally inspiring. These surfaces also find application in fluid dynamics, but the Math thereof eludes me at this point.
### Moebius-style Post Processing Shader
Maxime Heckel is back with another deep-dive, this time showing us how to code a post-processing shader that emulates the aesthetics of Jean Giraud work:
[Moebius-style post-processing and other stylized shaders - Maxime Heckel’s BlogA detailed essay on the process of building a post-processing stylized shader reproducing the style of legendary artist Jean Giraud a.k.a Moebius for your React Three Fiber projects. In it, I detail the process of drawing outlines with a Sobel Filter as well as custom shadow and lighting patterns to bring a unique style to your WebGL scene.Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/moebius-style-post-processing/?ref=gorillasun.de)
If you're not familiar, Giraud is famous for his fantasy and science fiction comics that he's created under the pseudonym of Mœbius - more specifically for his distinct drawing style:
[](https://en.wikipedia.org/wiki/Jean%5FGiraud?ref=gorillasun.de)
[Link to Wikipedia](https://en.wikipedia.org/wiki/Jean%5FGiraud?ref=gorillasun.de)
Maxim's article is inspired a video from Useless Game Dev, that also shows us how to recreate ta similar Moebius aesthetic in Unity:
## Upcoming Group Shows + Fluffhead's Art Collector Corner
We've got a whole slew of group shows coming up in the next weeks - and it's been a bit dizzying trying to keep up with all of them. To preface this, I wanted to give a little shoutout to Fluffhead Chaser who's recently launched a new site, specifically geared towards helping collectors keep track of new releases:

[Link to Cast](https://warpcast.com/fluffheadchaser/0x5b4017d8?ref=gorillasun.de) | [Link to Art Collector's Corner](https://www.artcollectorscorner.com/upcoming-1?ref=gorillasun.de)
The main feature of the new site is a curated launch calendar that lets you filter through the releases on different platforms and blockchains. This way Fluffhead does the heavy lifting and adds new releases to the calendar whenever they get announced. Moreover, the design's clean and straight to the point, without any additional fluff.
I thought it was a great initiative, and I'll definitely be checking in whenever I'm putting together the Newsletter. I certainly have been missing out on a bunch of releases whenever my social feed decides to not show them to me. And that brings to the main topic of this section - some of the upcoming/ongoing group shows during April that I'm personally quite excited about 👇
### Atelier's Visual Poetry
Following their first fxhash group show back in December of last year, the duo Pixel Symphony and Aether are back with another awesome line-up of artists. Based on some of the teasers that the participating artists have shared, the up-and-coming digital exhibition titled "Visual Poetry" will to a large extent revolve around generative approaches to typographic designs, emphasizing the visual nature of poetry:


[Link to Tweet](https://twitter.com/Pixel0Symphony/status/1773745538355306582?ref=gorillasun.de) | [Link to Announcement Page](https://www.atelierart.io/visualpoetry?ref=gorillasun.de)
Poetry embodies a dual nature as an art form - certain artistic elements only truly flourish when spoken aloud, resonating throughout the sonic realm. Simultaneously however, it maintains an artistic visual essence on the page, encapsulated within its written form. This parallels code art - the code that is working behind the scenes is in many ways as artful of a creation as the graphics that it conjures to the digital canvas. In that manner code-art also has such a dual nature.
This is why I found the topic of Atelier's show really interesting, I'm excited to see all of the works once they're released. A couple of interviews have also been published over on Atelier's site, if you're curious to learn more about some of the artists that are involved:
[In Search of ‘Random Access Memories’A Conversation between Rapha and Æther CavendishBonjour Rapha, would you share a bit about yourself and your journey into generative art?I grew up during a time dominated by analog technologies, only encountering computers in my late childhood and early teens. Despite this late introduction, I always had a strong passion for creation and understanding how things work. This drive led me to pursue Computer Science in my academic journey, eventually venturing into the multimedia industry during theAtelieræther Cavendish](https://www.atelierart.io/post/in-search-of-random-access-memories?ref=gorillasun.de)
Make sure to mark your calendars - Atelier's group show is bound to start on the 9th of April over on fxhash.
### Let it Flow by Alba
Launching concurrently to Atelier's, Alba announced their next group show "Let it Flow" for the 10th of April - as you might've already guessed from the title, this time it's going to be all about our beloved flow field:

****If you're a generative artist, and have a flow field based piece at the ready, you might want to apply to Alba's open call!** | [Link to Thread](https://twitter.com/AlbaDotArt/status/1773743680777507148?ref=gorillasun.de)
If you've dipped your toes into generative art you're likely familiar with the notion. And by now, flow field type sketches have become somewhat clichéd - it's a technique that is often explored by beginners.
The story behind why this is the case, is actually quite an interesting rabbit hole - or maybe it's just a theory of mine - but I would dare to say that flowfields wouldn't be as popular as they are if Processing and P5JS hadn't made the conscious decision to include Perlin noise as a readily available part of their software toolkit; Perlin noise being a common method to achieve the flow field aesthetics. Historically, the backstory here is a bit longer though, so maybe in another post.
As for the projects that will release on Alba, they are in no way cliché, from what I've seen in some of the teasers they all successfully put a fresh spin on the concept. I'm especially looking forward to Juhani's piece, since I'm a big fan of his!
### TEXTScape Group Show on Zora
This one isn't entirely generative art based, but some cool generative artists are participating in it such as Julian Hespenheide, Pixelfool, and ertdfgcvb (if you're not familiar, "ertdfgcvb" is the artists' name, I didn't just have a stroke on my keyboard). And who doesn't love ASCII Art?
[TEXTSCAPE: ASCII Art, Textmode & its derivatesIntroducing TEXTSCAPE, an online ASCII art and textmode exhibition presenting the contemporary wave of character-based digital artworks. ˜”\*°• 𝗔𝗥𝗧𝗜𝗦𝗧𝗦 •°\*”˜ cap’n elle ertdfgcvb Goto80 Julian Hespenheide L444U MEK.txt p1xelfool Raquel Meyers V5MT 1mposter Curated by Vienna Kim & Benoit Palop. (★ω★)/](https://zora.co/collect/base:0xf505e3a5fdca911e38c02cfd555d5e05bae73caf?ref=gorillasun.de)
I recommend checking out some of the pieces and supporting the artists, they're quite affordable.
## Farcaster: here for the long run?
It's been absolute madness over on Farcaster - a big wave of internet friends are currently in the process of leaving TwiX behind - for good - and joining the new and budding decentralized social network.
My concern is that the generative art community is becoming more and more fragmented, many have already left Twitter in favor of Mastodon back in 2022 when the first talks about Elon's takeover emerged - a good portion of those that have switched over never turned back to TwiX, and I can't blame them for it.
Then with Threads launching, we saw another such wave of people jumping ship - and the same thing is happening again with Farcaster. The difference right now with Farcaster is that it genuinely has a lot more to offer than the other platforms, especially when it comes to the needs of generative artist.
The current debacle revolves around the hyper financialization of the platform that's mainly due to the inherent tipping mechanism of the platform that is happening via the DEGEN token. If you want a quick catch up of the situation, I recommend checking out Kaloh's post on the topic:
[](https://warpcast.com/kaloh/0x89ab01d7?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/kaloh/0x89ab01d7?ref=gorillasun.de)
In a nutshell, DEGEN is a digital token that is currently being distributed for free via an interesting allowance mechanism, that lets people tip each other simply via a specific reply command.
Naturally, the financial incentive is currently a big driving factor in on-boarding new users and fueling the platform with constant activity - but what happens once the taps run dry, and it's back to simply being a social network? Sure it will still be a social platform with Web3 superpower, but will that be enough to retain users in the long run?
## Tech, Web Dev, and AI
### Optimizing Javascript
Usually I'm not a big fan of list articles, you know, the kind that's something like "10 tips to optimize your JavaScript code" or "10 things you didn't know about JavaScript" - it usually is the case that they provide little to no value if you're not an absolute beginner. The optimization tips in this article by romgrk article however, were quite insightful. romgrk provides an expert analysis of how the JavaScript runtime engine actually processes our code and even goes as far as providing benchmarks for each one of the tips:

[Link to Article](https://romgrk.com/posts/optimizing-javascript?ref=gorillasun.de)
Although it's no news to me that declarative programming is in fact much slower than the imperative approach, one thing that I genuinely didn't know before was that the shape (the structure and property order) of your JavaScript objects can have an impact on performance:

Why is that the case? This is related to the notion of monomorphism, not in the setting of Object Oriented programming, but from a code structuring POV - an iconic article that rmgrok metions is by Aleph from quite a while ago:
[What’s up with monomorphism?](https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html?ref=gorillasun.de)
### Coding games like it's the 80s
Back in the 80s, if you wanted to play video games you had to program them yourself. Conveniently there was many a book and magazine then that outlined the code for specific games. With her YouTube video, Kari takes us back in time and shows us what it was like to program one of these games on the Sinclair ZX Spectrum:
Towards the end of the video Kari points out that Usborne, the publisher of these books actually uploaded many of these over on their website making them freely accessible in PDF format. I recommend checking them out, even if you just briefly flip through them, the books themselves are in many ways eye-candy:
[](https://usborne.com/books/computer-and-coding-books?ref=gorillasun.de)
[Link to Usborne Website](https://usborne.com/books/computer-and-coding-books?ref=gorillasun.de)
### 20 Years of Gmail
Exactly 20 years ago today (1st of April) Google launched their mailing service. What people assumed would simply be an April Fool's joke by Google, since they offered much more than the competition at the time, turned out to become the main email provider used around the world - in 2024 it has over 1.8 billion active users. The Verge recounts the story of it all, not only how it has become an official communication channel, but also in many ways a sort of digital record for people's lives and identity:
[20 years of GmailWill it still be here in another 20 years?The Verge/cdn.vox-cdn.com/uploads/chorus_asset/file/25357916/247048_Gmail_20_Years_1750_NLittle.jpg)](https://www.theverge.com/24113616/gmail-email-20-years-old-internet?ref=gorillasun.de)
I remember creating my first address - quite late all, things considered - back in 2012 (I just checked actually, it was the 10th of May 2012). I remember making it so that I could sign up to Facebook and hang out digitally with all of my friends after school. I don't use that particular address that often anymore, with an inbox that's telling me I have 18 thousand unread messages (mostly marketing newsletters and spam) I should maybe at some point go through it and archive the important ones in an external hard drive.
## Gorilla Updates
### Find me on Hypersub
For all of you folks that are currently exploring Web3, I've got an exciting announcement to make: last week I launched my very own Hypersub!


[Link to Cast](https://warpcast.com/gorillasun/0xb2076edb?ref=gorillasun.de)
What's Hypersub, you ask? It's basically like Patreon, but in a decentralized format. It lets creators mint a subscription token that supporters then can collect to get access to some perks (perks are basically like Patreon rewards). In my case, these perks come in the form of Airdrops and token gated content over on paragraph. Airdrops are simply digital art tokens sent directly to the wallets of subscription token holders. Here's one of the tokens that I'm sending out this month - you might remember it from last week's Newsletter actually:

[Link to Zora mint page](https://zora.co/collect/base:0x36a640abba81f89b53bee8eff70c8cb0070995b7/1?ref=gorillasun.de)
Besides these airdrops, I'm also offering access to exclusive pieces of writing published over on paragraph, which makes it possible to token gate content. A token gate is essentially a decentralised version of a paywall - in a nutshell, if you hold the subscription token you can read the exclusive articles. I actually published the very first one just yesterday evening:

No worries though, I'll bring all of these articles over to the blog - that is, once I finish the revamp. I knooow, it's taking a long time... but it's very close now! I can sense it. At most 2 more months!
Reading all of this back to myself, it might be a lot to take in - what implications does this announcement have on the Newsletter? None! Nothing's going to change with the Newsletter, it'll resume going out every Monday sometime around noon CEST, with the same content format. If you're interested about the stuff that I just wrote about but Web3 stuff is still new to you, you can reach out to me and I'd be happy to chat - either via my socials or email, but preferably my socials.
On that note, I've also been having a lot of fun over on Farcaster, more and more of my genart friends have joined the platform in the past week. Launching my Hypersub I also decided to start a channel of my own for all Gorilla Sun and generative art related things:
[](https://warpcast.com/~/channel/gorillasun?ref=gorillasun.de)
[Link to Channel](https://warpcast.com/~/channel/gorillasun?ref=gorillasun.de)
If you're on Farcaster, come by and say hi!
## Music for Coding
Remember the Pyromaniacs game from the early 80s? Me neither, because it never existed - but it's OST is very real! Heavily inspired by the Shadowrun games for the Sega Genesis, Slowerpace crafted a fictitious sound track for a game that never was - also making use of the original art for the album cover:
That's it from me this week, hope you enjoyed this week's curated list of generative art and tech shenanigans - now that you've made it through the newsletter, you might as well share it with someone that you know who might enjoy this kind of *content* \- sharing the newsletter is one of the best ways to support it!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 49Demystifying Generative Aesthetics by Le Random - Santiago Ortiz peers into the mind of ChatGPT - The HTML Review - WTBS in conversation with Erick Calderon - Highlight Studio - CSS Flexbox vs. CSS Grid +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-49)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Monthly 1: All about Hypersub
URL: https://www.gorillasun.de/blog/gorilla-monthly-1-all-about-hypersub/
Last updated: 2024-06-22T11:02:59.000Z
In this issue we have a closer look at Hypersub, a decentralized and Web3 flavored Patreon alternative: what it is, how it works, how to set up your own, and how to manage your airdrops with interoperable services!
_This post is for subscribers on the Hypersub tier only._
### Gorilla Newsletter 49
URL: https://www.gorillasun.de/blog/gorilla-newsletter-49/
Last updated: 2024-03-25T12:19:35.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 49th 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 - as well as a sprinkle of my own endeavors.
**Before we get started* \- for some reason last week's newsletter was intercepted by many a spam filter, I don't know exactly why, and it's the first time that this happens. My hunch is that I might have used some words that the spam filter doesn't like, which I'll be more careful with in the future.*
*If you got a second to check your spam folder and mark the Newsletter as 'not spam', that would actually help tremendously! It sends a positive signal and helps improve the overall deliverability of the Newsletter!*
That said, **I hope that you're all having a great start into the week! L**et's get into it! 👇
## All the Generative Things
### Demystifying Generative Aesthetics
Among the very first videos that I've watched on generative art is Tyler Hobbs' iconic talk at Clojure Con 2018 'Code goes in, Art Comes out'. He begins his presentation with a number of loaded questions:
[](https://www.youtube.com/watch?v=LBpqoj2nOQo&ref=gorillasun.de)
I need to be careful what I'm saying here, interesting art is kind of a loaded term, what does that mean exactly? | [Link to Youtube video](https://www.youtube.com/watch?v=LBpqoj2nOQo&ref=gorillasun.de)
What actually makes for an interesting artwork? And more specifically, what makes for an interesting *generative* artwork? Are the requirements different just because it's made with code? This question bothered me for a long time because there isn't really a clear cut objective answer to it - in some cases I can't even explain to myself why I feel drawn to a particular artwork or why it evokes something inside of me — "Ugh, you know, the colors are nice, and stuff"
That's why I've really fallen in love with Monk's article on this topic from a couple of months ago, titled 'Demystifying Generative Art', he hypothesizes a framework for the analysis, evaluation and appreciation of generative art:
[Demystifying Generative ArtPeter Bauman (Monk Antony) develops a framework for appreciating and analyzing generative art through an investigation of the movement’s locus of artistic intent.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de)
Generative art is quite a unique artform when compared to other art practices, and that's primarily due to the artist not directly creating the artwork, but rather a *somewhat* autonomous system that is in charge of *generating* the actual outputs. This gives rise to new evaluation criteria: should we now place emphasis on the qualities of this system? Or the process that goes into the creation of this system? Both? Neither? Maybe the system isn't so important after all, and what truly matters is still the final result that comes out on the other end - after all, that's in many cases the only thing that the audience will ultimately interact with.
Each one of these questions can be leveraged as a unique angle of analysis - a lens as Monk calls them - to further examine what makes for an interesting generative artwork. While Monk's pilot article focused on introducing a potential framework, the second installment places emphasis on the aesthetics, and examines the criteria to evaluate them:
[Demystifying Generative AestheticsThis is the second part in a series on building a framework for appreciating generative art. In the first part, “Demystifying Generative Art,” Peter Bauman (Monk Antony) builds the case for such a framework. In this essay, he takes a closer look at one of the five framework components, Results—the outputs of a generative system. Peter spoke to Tyler Hobbs, Kim Asendorf, Andreas Gysin, Leander Herzog, Erick Calderon, William Mapan, Lauren Lee McCarthy, Sougwen Chung, Christiane Paul, Patricio González Vivo, Linda Dounia and Golan Levin for the piece.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/demystifying-generative-aesthetics?ref=gorillasun.de)
Monk explains that we require a mixed approach, we not only need to consider traditional design principles, but also modern, digital, criteria - particularly the algorithmic considerations that are unique to generative art. Whether you're a generative artist, a collector, or simply someone that is interested in the art form, these are essential reads, and a great deal can be learned from Monk's insightful writing. As always I thoroughly enjoyed it, and am eagerly awaiting the next installment!
### Inside the Machine
Santiago Ortiz recently shared a data visualization experiment which made quite the ripples over on Twitter - by asking ChatGPT to complete the same prompt "Intelligence is" hundreds of times and subsequently visualizing the results with an interesting interface, he enables us to peer into the mind of the smart text generator:
0:00
/0:23
1×
[Link to Tweet](https://twitter.com/moebio/status/1770861652566479101?ref=gorillasun.de) | [Link to demo](https://moebio.com/mind/?ref=gorillasun.de)
I believe that this could be an interesting exploratory tool to examine the output space of an LLM. I often find that I have to tune my input prompts to guide the answers that the chatbot returns, and nudge them into a satisfactory direction. It's pretty much trial and error. This also just makes me realize how slow LLMs still are, all things considered, having this kind of tool run in real-time could be a game changer.
Beyond that, I think that it reveals something more profound about LLMs, and it's humbling really. Seeing the outputs exposed in such a manner does ultimately exemplify that they're simply text generators, albeit very powerful ones they merely complete input sequences. If you were to repeatedly ask a person to complete the phrase "Intelligence is", they'll likely tell you off and to stop pestering them with stupid questions after the third time.
### The HTML Review
The HTML review describes itself as an *annual journal of literature made to exist on the web.* Edited by Maxwell Neely-Cohen and Shelby Wilson, it strives to collect and showcase web-based experiments and experiences that act as story-telling devices. After being drawn in by the intriguing circular design shown in the tweet, I quickly realized that I had stumbled upon a treasure trove of internet art:

[Link to Tweet](https://twitter.com/nhyphenc/status/1770084424870244444?ref=gorillasun.de)
And it reminds me a lot of NET art; many of the showcased projects make me feel the same way, almost as if you're going through someone's diary, intimate experiences where the authors share their stories with you. While I didn't have too much time to dig into all of the showcased projects, my personal highlight was this web essay by Garry Ing, where the interactivity of the page ties into its narrative:
[a view source webreflections on view source by Garry Ing. the html review, spring 2024Garry Ing](https://viewsource.info/?ref=gorillasun.de)
Recounting the history of the *view source* button that every web browser now makes readily available, he lets us simultaneously inspect the HTML tags of the elements that make up the essay's page. I highly recommend giving it a read! Beside this, if you have a cool project of your own that goes in this direction, you might want to pitch it to the HTML review. In their about section they elaborate a bit what kind of projects they're generally looking for:
> We especially love when the subject matter of a piece has nothing to do with the web or technology, but the medium is merely a means to further the story and poetry.
### P5JS' New Website
P5JS's new website is bound to launch this spring, and for the occasion they're currently accepting submissions from the community to later showcase on the website when it eventually comes out. Submissions are open until the 31st of March, and need to be submitted to the respective curation over on [Openprocessing](https://openprocessing.org/?ref=gorillasun.de):

[Link to Tweet](https://twitter.com/p5xjs/status/1768806810734260330?ref=gorillasun.de) | [Link to Openprocessing Curation](https://openprocessing.org/curation/87594?ref=gorillasun.de)
An important detail that you might miss if you don't check the tweet's replies is that you should also use the [describe()](https://p5js.org/reference/?ref=gorillasun.de#/p5/describe) function that lets you add a screen-reader accessible text to your canvas creation:

[Link to Reply](https://twitter.com/p5xjs/status/1768806812487463373?ref=gorillasun.de)
## Web3 News
Maybe it's just me, but the past couple of months have been absolutely bonkers in terms of web3 and generative art. First we've had fxhash's launch on Ethereum at the end of 2023, and then more recently its Base integration earlier this month, then we also had Art Blocks' announcement of acquiring Sansa and their plans on greatly expanding their eco-system, and all of that while Highlight is dropping banger after banger, culminating in the largest generative art collection in history with Zancan's Aux Arbres.
That is to say that it's overall been an incredibly exciting time in the space, and it seems that things are moving forward really quickly!
### WTBS in Conversation with Erick Calderon
We've all been eagerly waiting for the newest episode of the WTBS podcast after they teased it a couple weeks ago - this time, they're in conversation with Erick Calderon, aka Snowfro, who's probably best known for being one of the founders of Art Blocks. In their conversation they ask him all about the recent acquisition of Sansa, and what it means for the future of Art Blocks:
[](https://podcasters.spotify.com/pod/show/waitingtobesigned/episodes/Building-The-Next-Wave-of-GenArt-Lovers-Interview-with-Erick-Calderon-e2hb0nh/a-ab3a9hf?ref=gorillasun.de)
[Link to Episode with Erick Calderon](https://podcasters.spotify.com/pod/show/waitingtobesigned/episodes/Building-The-Next-Wave-of-GenArt-Lovers-Interview-with-Erick-Calderon-e2hb0nh/a-ab3a9hf?ref=gorillasun.de)
The acquiry of Sansa is mainly motivated by Art Blocks desire to cater to the collectors that lean towards a more data-driven approach to collecting, while wanting to remain a art-forward platform at the core. Sansa was originally built around Art Blocks and already has all of the tools to provide such an experience. Beyond that, Art Blocks will however remain a curated platform even with this expansion, artists will still need to apply and get a stamp of approval before being able to release their project on the platform - and for a good reason as there's just too many problems with a completely open approach. Erick states "I don't have the courage to be an open platform"
Another thing that really came through in the conversation, is that we're still incredibly early; we're at the very forefront of something that's going to be much bigger in the future. The generative art scene is still very much a niche when compared to other spaces, Erick gives a good example of this, consider how many iphones are sold every year by Apple - a whopping 232 million in 2023 - compared to the 2 million generative art NFTs that have been sold overall, as Erick estimates.
But despite this, I'd wager that NFTs are here to stay and no longer just an experimental new technology, especially when I see what the different players in the field are currently building, how they're innovating, and how the eco-system is becoming more interoperable.
> \[20:37\] Getting your work timestamped on the blockchain is critical right now, don't be disappointed and don't be discouraged with the market, get it out there because you are staking your place in history prior to the day where I can go to ChatGPT and ask it "Please, build me the entire Art Blocks platform with 75 projects of great variety"\[...\]
### An Update from fxhash
Ciphrd recently posted a big announcement over in the fxhash discord, explaining why it might appear from the outside that the platform has been somewhat inactive, and why it's been necessary to take some time to regroup and figure out how to rebuild a strong foundation and clear all of the tech debt that the platform has accumulated over time:
[](https://discord.com/channels/900333075509149767/909081044932788295/1219693204279136517?ref=gorillasun.de)
[Link to discord announcement](https://discord.com/channels/900333075509149767/909081044932788295/1219693204279136517?ref=gorillasun.de)
Ever since its inception fxhash has grown incredibly quickly, both in terms of platform features as well as in terms of community size. Emerging from the remnants of the hicetnunc community towards the end of 2021, many generative artists quickly flocked towards the open platform that enabled them to publish their work in a web-native manner.
And I remember, it was so wonderfully chaotic in the early days, for instance, you had to wait a couple of hours for the minter to come through and reveal what had been minted. In those early days it absolutely made sense to build out the platform very quickly, and iterate rapidly to cater towards what its audience wanted - how many platforms have we already seen completely lose momentum and find their end of service earlier than expected?
Even if it means that things will slow down momentarily, I honestly believe that it's for the best to take some time, clear all of the technical debt and deliver a more refined fxhash experience. Especially considering that the scene has become more competitive. I for one, am eagerly awaiting the new design and am excited to dive into the new version of fxhash when it comes out.
### Highlight Studio
This piece of news completely flew under my radar last week - but Highlight released their proprietary tool for aiding artists in developing their generative projects for the platform: Highlight Studio.


[Link to Thread](https://twitter.com/Highlight%5Fxyz/status/1768350905613668426?ref=gorillasun.de)
Although I haven't tried it yet, apparently there's two ways to use it; either directly from the highlight website where you simply drop in a link to your project running on localhost, or by downloading it as a script and including it in your project where you have more functionalities to play with. You can find more information about it over on Github:
[generative-art/HLSTUDIO.md at main · highlightxyz/generative-artContribute to highlightxyz/generative-art development by creating an account on GitHub.GitHubhighlightxyz](https://github.com/highlightxyz/generative-art/blob/main/HLSTUDIO.md?ref=gorillasun.de)
## Tech & Web Dev
### CSS Flexbox vs. CSS Grid
Choosing between CSS Grid and Flexbox is a common web design dilemma. While the CSS Flexbox comes in handy for one-dimensional layouts and is super useful for arranging items linearly in a row or column, CSS grids on the other hand let you tackle two dimensional layouts more easily and allow for a more precise positioning of elements. There's many scenarios where both could be used interchangeably, which often gives rise to the age old debate on which one should be used.
Christine Vallaure recently published a deep-dive into exactly this topic, explaining both methods in detail, illustrating what each one is good for, and all of that in a way that is specifically geared towards UI designers who might not program the interface themselves:
[Why UI designers should understand Flexbox and CSS GridOr bye bye, 12-column grid layoutUX CollectiveChristine Vallaure](https://uxdesign.cc/why-ui-designers-should-understand-flexbox-and-css-grid-e236a9dec37a?ref=gorillasun.de)
The most interesting part of the article is towards the end, where Vallaure addresses the usage of breakpoints in conjunction with these layout methods, enumerating a number of scenarios where the use of breakpoints is acceptable. for instance, whenever a more radical change of the layout is desired, or a component needs to completely change in appearance.
Recently, in modern, modern web design (not a typo) there's been a trend towards more fluid design that tries to avoid breakpoints as much as possible, ditching them in favor of *fluid* design approaches that can self-sufficiently adjust to different viewport sizes. A prime example for this is Utopia's fluid approach to scaling font sizes to different viewport widths respectively - covered in issue 47 of the newsletter. Might the future of responsive web design be breakpointless?
But anyway, kudos to Christine for putting together this great resource. Here's also another cool article on the two methods that I thought was put together really well:
[When to use Flexbox and when to use CSS Grid - LogRocket BlogLearn about which of the CSS layout systems, CSS Flexbox or CSS Grid, is best for your project according to what designs you prefer.LogRocket BlogLeonardo Maldonado](https://blog.logrocket.com/css-flexbox-vs-css-grid/?ref=gorillasun.de)
### A Formula for Responsive Font-Size
Last year when I migrated the blog over to Ghost I decided on using one of the free themes that they provide, namely the [solo](https://ghost.org/themes/solo/?ref=gorillasun.de) theme - now the blog looks a lot different than what you see in the theme, since I made quite a few modifications in the meantime.
When I first popped the theme into my code editor to try and make sense of what's going on in the CSS, and trying to make an adjustment to the size of the text I was met with the following line:
```CSS
--content-font-size: clamp(1.7rem, 0.38vw + 1.4rem, 2rem);
```
For the longest time I couldn't really make sense out of this line, but thinking about it for a second now, it actually makes sense, and turns out to be a cool trick to achieve somewhat responsive font sizes.
In CSS, a *rem*, short for “root-em”, is simply a relative unit of measure that's used for defining font sizes as well as other element dimensions, and is usually based on the font-size of the root element. Most browser will usually default it to 16px although users can change that influence this from the settings. Similarly, the vw term is a viewport width relative measure, a percentage essentially - 10vw would basically be equivalent to 10% of the viewport width.
Combining these two notions, we get the above line: basically a *formula* that makes the font-size grow and shrink depending on the overall width of the viewport, naturally also clamping it to a maximum and minimum value as well. I'm bringing all of this up because I recently came across this post by James Fisher where he talks exactly about this in a bit more detail:
[A formula for responsive font-sizeThis CSS is now part of most websites I make:jameshfisher.com](https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/?ref=gorillasun.de)
The comments over on Hackernews bring up some good points though, since users often set the root font-size themselves for an ideal reading experience, or have vision problems, it might be a bad idea to override this with a CSS rule like that when a specific font-size is desired. But I'm not certain which is right or wrong, maybe using breakpoints in this scenario might not be too bad after all:
[](https://news.ycombinator.com/item?id=39682871&ref=gorillasun.de)
[Hackernews comments](https://news.ycombinator.com/item?id=39682871&ref=gorillasun.de)
### The State of the Terminal
Gregory Anders published a companion article to a talk that he gave at Neovimconf 2023, titled 'The State of the Terminal' and with it he takes us back in time showing us some of the historical problems terminal based applications have had to deal with and how they were overcome before explaining how modern terminal emulators tackle these issues:
[State of the Terminal | g.p. andersThis is a companion article to my talk at Neovimconf 2023\. I have been using Vim/Neovim as my full time text editor for close to 10 years. I’ve spent a lot of time in the terminal and have become very aware of the many flaws and idiosyncrasies of this bizarre platform. But I also think it gets a lot of things right! And I’m not alone in this belief: terminal based tools are still widely popular even in the presence of many alternatives (the StackOverflow developer survey shows that Neovim is the “most loved” editor 3 years in a row).g.p. anders](https://gpanders.com/blog/state-of-the-terminal/?ref=gorillasun.de)
If you prefer a video format, a recording of the talk can be found here:
## Gorilla Updates
### RE:designing the Blog
This week I made some big progress on the redesign, and finally feel very confident about being able to complete the re-design in a reasonable amount of time. There's still a lot of details that I need to figure out to set myself up with a sustainable system, and there's still many pages that I still need to tackle. But, the heart-piece, the article template, is shaping up really nicely and close to completion now - here's what it currently looks like with a fancy dark mode as well:
0:00
/0:22
1×
And since we talked about the CSS Flexbox earlier, this new design solely relies on a Flexbox driven approach: the entirety of the page is contained within a big Flexbox, containing the vertical navigation bar on the left hand side (itself a vertical column flexbox), and the page content on the right that in turn nests other Flexboxes.
Why not use CSS grids though? Well because I never really learned how to use it, and never felt the need to so far, I have yet to run into a scenario where I'm not able to make the layout that I want with a Flexbox - although I will admit that sometimes there probably are many parts where it would make more sense to use a grid instead.
I'm also really happy about how the sidebar turned out; instead of solely applying a blur to the background when it expands, giving it an additional slightly transparent background color makes its contents much more readable imo - and it works both in light and dark mode:
0:00
/0:19
1×
Hoping to make more progress in the coming days. Let me know what you think so far! What are some of the things you'd like to see on the new website? Any features in particular? I still also need to consider a lot of accessibility issues, so let me know if any of you guys have specific requirements in that regard.
### SDF Shenanigans
I've also found the time to experiment a little more with SDFs, here's one that came out really nicely - although it's just a bunch of circles rotating around a central point, it almost feels like it's a 3 dimensional thing, and it's not actually very clear if the floating orbs are represented by the colored area or the negative empty space:

Initially I dismissed the sketch as being boring, but after posting it to Twitter and seeing that it got a bunch of likes I had another look and thought that it actually was pretty cool with an unintentionally interesting effect.
This one was actually not the initial sketch that I had made that day. Earlier in my session I was playing with the `Math.exp()` and `Math.log()` functions in JS, since I rarely ever use them, leading to the emergence of the following a meta-ball-esque sketch:

### Letter packing made Easy
And yet other thing that I tackled head on this week was letter packing; or font packing... or text packing - I'm not entirely sure what to call it, might be important to figure that out for SEO purposes. But the idea basically revolves around loading in a font file, then writing a bunch of letters to the canvas using that font, and later on jumbling them up and packing them on the canvas so that they don't collide. Here's something I made with it:
[](https://twitter.com/gorillasu/status/1770834206693757004?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1770834206693757004?ref=gorillasun.de)
I've had the idea for a long time, but I never actually tackled it because I knew it would be tedious to write the code for it - and it was, but it's not actually that complicated, just quite lengthy. A big part of it is OpenType.js, that lets you easily load in fonts, and also lets you get the paths of individual letters (glyphs) as vertex arrays. Coupling it with a collision strategy makes it possible to *pack* them on the canvas. I'm already in the process of writing about this idea and will likely release as my first premium content piece! If you're interested in packing shapes I recommend checking out this post of mine:
[An Algorithm for Polygon IntersectionsIn this post we’ll work our way towards an algorithm that can compute convex polygon intersections. We’ll also a method for intersections between axis-aligned rectangles, a function that can determine the intersection of two line segments, as well as a point in polygon test.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-algorithm-for-polygon-intersections/)
## Music for Coding
Well there's really only one piece of music that I can share this week, and it's Tycho's Awake for the occasion of it's 10th anniversary:
I remember the first time listening to it in my bedroom around 2017-2018, I was completely blown away. At the time I wasn't a big fan of electronic music, but listening to Tycho really made me do a complete 180 on that. I've listened to the album countless times now and I really recommend you give it a listen, works especially well while coding.


[Link to Tweet](https://twitter.com/ISO50/status/1766572272020496779?ref=gorillasun.de)
And that's it from me this week, hope you enjoyed this week's curated list of generative art, web3 and tech shenanigans — now that you've made it through the newsletter, you might as well share it with someone that you know who might enjoy this kind of *content* \- sharing the newsletter is one of the best ways to support it!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 48Generating the Alphabet by Amy Goodchild - Fragment: a Web Environment for Creative Coding - Generative Music in Blender - Words of Advice from Kika Nicolela - Dave Bollinger’s Pixel Spaceships - We Love the Art Contest Winners - Obsidian’s Infinite Canvas file format +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-48/)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 48
URL: https://www.gorillasun.de/blog/gorilla-newsletter-48/
Last updated: 2024-03-18T10:51:12.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 48th 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Generating the Alphabet by Amy Goodchild
Amy Goodchild recently published a new article over on her blog, in which she explores a generative approach to creating hand-written letter forms:
[Generating The Alphabet — Amy GoodchildMy current generative artwork-in-progress includes text, but I don’t want to use a font. In browser based art work, using a “web safe” font could produce inconsistent results, while including a font file would mean a large file size. Additionally, I don’t want a visual element of the project to be sAmy GoodchildAmy Goodchild](https://www.amygoodchild.com/blog/generating-the-alphabet?ref=gorillasun.de)
In the past I've also incorporated text in some of my sketches, but it always felt a bit off to use an external font when everything else is generative - so I completely understand why you'd want to also make the font itself generative. Amy achieves this by representing the letters as a set of paths that are subsequently smoothed and deformed with a bunch of helper functions that she details in the article. The resulting *hand-written* aesthetic is spot on imo!
This generative alphabet is part of her latest generative project, of which she's shared a number of WIPs over on Twitter already - they've been eye catchers every single time. From what's revealed, it seems to be a generative system for apophenic diagrams, and the variety of layouts that's been shown so far is quite impressive:

[Link to Tweet](https://twitter.com/amygoodchild/status/1763543110179590310?ref=gorillasun.de)
But why stop at generative letters? Another cool part of the project is the use of word2vec to generate semantically related words for the labels and markers that occur throughout the diagrams. If you're not familiar, word2vec is a technique used in NLP (Natural Language Processing) that lets you attribute words with a semantic score and groups them together according to that score - it then lets you easily fetch semantically similar words:
[](https://twitter.com/amygoodchild/status/1754172947525193915?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/amygoodchild/status/1754172947525193915?ref=gorillasun.de)
Overall, I'm super excited to see where the project goes, and maybe we'll get another write-up once the it's released!
I did experiment with something a bit similar earlier this year, where I had an idea of packing numbers on the canvas - the numbers shown here are also simply represented as paths/vertices, then placed with an algo that checks for collisions between the paths, I thought that the outputs turned out pretty nicely but weren't really all that interesting without additional elements:


I'm curious to see what these would look like with letters instead of numbers 🤔
If all of this has made you curious about generative letter forms, I highly recommend also checking out what Daniel Catt's been up to lately - he's been working on turning his plotter into a journaling assistant and documenting the journey over on his Substack:

[📙 #030 - Arts-Based Research, may contain swearingWhat actually is arts-based research, what am I researching, am I going to get Kitty to do all the work (yes), and some fancy journaling page layouts, plus swearing.The Dan Catt Pen Plotting NewsletterDaniel Catt](https://newsletter.revdancatt.com/p/030-arts-based-research-may-contain?ref=gorillasun.de)
And while we're talking about diagrams and apophenia, I coincidentally also came across a tweet by the genart OG Paul Prudence, in which he shares Benjamin Bett's *Mathematical Models of Consciousness*, which immediately struck me to have aesthetic similarities with Amy's project:
[](https://twitter.com/MrPrudence/status/1769112769041969308?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/MrPrudence/status/1769112769041969308?ref=gorillasun.de)
Also very reminiscent of Aleksandra Jovanić's work in [Chromatlas](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de), Benjamin Betts spent a significant chunk of his life exploring the representation of the "evolution of human consciousness" via geometric diagrams\- I don't know enough about Betts work to be able to comment on it, but my only thought here is that the diagrams are pretty gorgeous. I found this article that shines some light on his endeavors, but doesn't however elucidate according to what principles Betts created his diagrams:
[Geometrical Psychology: Mathematical Models of Consciousness by the 19th-Century Psychologist Benjamin Betts“Imagination receives the stream of Consciousness, and holds apart and compares the different experiences.”The MarginalianMaria Popova](https://www.themarginalian.org/2012/11/20/geometrical-psychology-benjamin-betts/?ref=gorillasun.de)
### Raphaël Améaume's Fragment
I featured Raphaël Améaume in an earlier issue of the newsletter, when he published his brilliantly designed [personal portfolio](https://raphaelameaume.com/?ref=gorillasun.de). Raphaël recently popped up on my timeline again, announcing that he's joining Polar with the aim to find support in the development of the creative coding environment that he's currently building:
[](https://twitter.com/raphaelameaume/status/1767842403547807999?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/raphaelameaume/status/1767842403547807999?ref=gorillasun.de)
And it turns out that it's actually a super cool tool; easily installed with npm, and if you're familiar with p5 you should have no difficulty spinning up a sketch and get started with exploring some ideas. The first thing you'll notice when you access the local server on which fragment runs the sketch, is the control panel that sits next to the canvas preview and offers a number of useful toggles and sliders. For instance it useful controls to create captures of your work on the fly.
Raphaël has actually been developing Fragment for a couple of years now, prior to making it open for the public in September of 2022\. The project initially came to be as a personal tool for exploring his own ideas as well as developing client projects:

[Link to Tweet](https://twitter.com/raphaelameaume/status/1565324043267497986?ref=gorillasun.de)
If Fragment looks interesting to you, I recommend checking it out and supporting Raphaël over on Polar if you end up using it for your own projects. Polar is essentially a Patreon-like subscription platform for open source projects, just like Raphaël's Fragment:
[Introducing Fragment, a web development environment for creative codingFragment is a web development environment for creative coding. It works with any external libraries using a HTML canvas. It can export a canvas to images and videos and can also be deployed online. From a quick prototype to a complex experience, Fragment facilitates the creation process by providing a fast and reliable environment to work with.raphaelameaumeraphaelameaume](https://polar.sh/raphaelameaume/posts/introducing-fragment?ref=gorillasun.de)
### Generative Music in Blender
Sione Teumohenga, that goes under the artist name Lonelyspeck, recently shared an audio experiment that unconventionally makes use of Blender as a sonic playground: by moving sound sources rapidly past the viewport (the camera) sounds are pitched up and down when they approach and then distance themself from the user again:
[](https://twitter.com/lonelyspeck/status/1768981293235343500?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/lonelyspeck/status/1768981293235343500?ref=gorillasun.de)
This is due to the Doppler effect that takes place in this scenario, if you're not familiar, the Doppler effect is essentially the change in frequency of a wave that an observer experiences due to the relative motion between the observer and the source of the wave. In simpler terms, it's how the sound or light you hear from a moving source can change pitch or color depending on whether the source is moving towards you or away from you.
I found a cool visualization for the effect here, fittingly the simulation that's shown in the video is also made with Blender (although I was looking for an explanation of how sound waves are *actually* simulated in Blender):
A classic example for this is the change in pitch of a siren as an ambulance approaches you and then recedes. As the ambulance gets closer, the sound waves get bunched up, making the pitch higher. Then, as it moves away, the waves spread out, causing a lower pitch.
I'm actually impressed that Blender is capable of simulating spatial audio in this manner, if anyone can educate me on how that works. I assumed that in games they simply reduce the volume of a sound source the further away it is, but I'm probably quite wrong on that. In any case, super interesting exploration by LonelySpeck - I'm excited to see what comes from it!
## Sign Up to the Newsletter
**Reading this in the Browser? Receive the Newsletter directly in your inbox every Monday!*
Sign Up
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
## Web3 News
### Words of Advice from Kika Nicolela
Kika Nicolela has been an artist and filmmaker for over 20 years, been exhibited numerous times around the world and has contemporarily become one of the leading voices in the NFT art space - in a recent long-form Tweet of hers she addresses the downward trend of the market and the overall low morale of the community due to it:

[Link to long-form Tweet](https://twitter.com/kikanicolela/status/1768984489475104930?ref=gorillasun.de)
A bit later in her tweet Kika explains that art sales in the traditional setting are much, much rarer when compared to what we've seen so far in Web3\. And this has lead to us acquiring a distorted perception of what makes a successful project - apparently works need to sell out in a matter of minutes and in gigantic quantities for them not to be considered failed projects. When this isn't really what this space is actually about after all:
> The concept that we should release an art piece and sell out in minutes is, imo, a distortion of this space. Maybe we should appreciate what we have here: a new way of spreading, communicating and selling our art. And that expands our realm of possibilities of surviving as artists.
And I really couldn't agree more. I've addressed the issue before, that bragging about how fast something sells is a problem, and should not be a metric for quantifying the worth of an artwork. If you're a collector that cares about these stats, then sure it's important, but the artistic discourse should not really revolve around it. This is especially detrimental to artists, where the only take-away they get is that "your art is not good because it didn't sell" instead of more meaningful feedback.
And we're still hyper fixated on sales, even in the midst of the deepest bear market - just as Kika puts it, the space isn't really about that, it's never been about the sales, but rather about the community, the art, the conversation as well as the interesting experiments that we're able to do with the wonderful new tech. It might be easy to think that an engaged audience ensues from big sales, and although it works for some projects and artists, it's generally the exception and not the norm. I believe that it mainly works the other way around - you put yourself out there, connect with people, exchange ideas, whether you're an artist, collector, or builder, and then success comes over time.
Most of the successful artists that I follow do exactly that - they show up everyday and share their art and ideas. Maybe this extended bear market that we're experiencing right now isn't such a bad thing after all, weeding out all of those that are just in it for a quick buck. Personally, I feel very enthusiastic about the future of the space, there's still so many cool things popping up every single day!
### Dave Bollinger's Pixel Spaceships
I don't consider myself a big collector, but every now and then I come across a project that I just can't pass up on, for instance Dave Bollinger's Pixel Spaceships that released last week on fxhash. And at 4 tez it felt like an absolute steal, I was lucky to snag two mint tickets before the project minted out in the following hours after:

If you're not familiar with Dave Bollinger, he's a generative art OG having been part of the scene since the mid-2000s. Pixel Spaceships doesn't only impress with the variety of its aesthetics, but also with historical value as Frederik Vanhoutte points out in a tweet of his:
[](https://twitter.com/wblut/status/1767304207097315529?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/wblut/status/1767304207097315529?ref=gorillasun.de)
If you're curious about the systems behind an artwork like Pixel Spaceships, and want to learn how Dave conjures pixelated spaceship shapes onto the canvas, I recommend checking out the detailed write-up that he's made for the project over on his personal site (where you can also find writings about other projects of his):
[PixelSpaceships — Dave BollingerDave Bollinger0](https://www.davebollinger.us/pixelspaceships?ref=gorillasun.de)
### We Love the Art Contest Winners
Towards the end of last year the Optimism foundation (an Ethereum L2) held an NFT contest titled "We Love the Art" that receiving over a whopping 7000 submissions for the three categories of AI art, generative art and music that the contest was held on. But the results are out, and the winners have been announced, with quite a few interesting creations in the lineup - you can read all about it here, including some of the motivations behind holding such a large scale contest:
[](https://nftnow.com/features/optimism-foundation-we-love-the-art-winners/?ref=gorillasun.de)
[Link to Article](https://nftnow.com/features/optimism-foundation-we-love-the-art-winners/?ref=gorillasun.de)
One of the most notable generative artworks in the line-up are 0xfff's 'You are Here' that transcends a single blockchain and actually bridges across 31 of them! The tokens' artwork is actually directly influenced by their blockchain traversal history - there's a nice little thread by IMG.ART that explains it in a bit more detail here:

[Link to Thread](https://twitter.com/imgdotart/status/1765419983733920108?ref=gorillasun.de)
## Web & Tech
### Obsidian's infinite Canvas file format
If you're not familiar with Obsidian, it's probably the most powerful and versatile note taking app that's currently out there. And it's free to use as well! I use it on a regular basis for all sorts of organizational purposes, as well as for drafting up ideas for new posts and projects on the fly.
It comes with a bunch of powerful features out of the box that elevate it beyond a simple note taking app, for instance a graph view that lets you see how your notes are interconnected, and which resources reference each other. But beyond those features, what makes Obsidian great is its philosophy - a really insightful long-form tweet by Andrej Karpathy (the AI legend) explains this in a bit more detail:
[](https://twitter.com/karpathy/status/1761467904737067456?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/karpathy/status/1761467904737067456?ref=gorillasun.de)
One of Obsidian features that's pretty cool and recently got an interesting upgrade is their infinite canvas, that lets you organize notes and other types of media in logical flows, which is often used to plan out things that might require a more involved layout:

They recently released a unique JSON-like file format to represent this infinite canvas, replacing the .canvas format that was previously used. This means other infinite canvas applications can now adopt this format and can in that manner become interoperable - here's Obsidian's announcement tweet where you can learn more about it:
[](https://twitter.com/obsdmd/status/1767232042226647326?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/obsdmd/status/1767232042226647326?ref=gorillasun.de) | I'm not sponsored by Obsidian, it's just a really great tool!
### A mega-guide to organizing your CSS
Since I've been working on a new design for the blog, I've been battling against an ever increasing pile of messy CSS files where I'm spending most of my time just moving things around and renaming classes in the attempt to make things just a smidge more organized and maintainable for my future self.
While researching if there were actually any organizational philosophies for CSS I came across this massive resource from the MDN Web docs that goes over all of the dos and donts:
[Organizing your CSS - Learn web development | MDNThis is the final part of our building blocks module, and as you can see there are many ways in which your exploration of CSS can continue from this point — but now you can go on to testing yourself with our assessments: the first one is linked below.MDN Web Docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building%5Fblocks/Organizing?ref=gorillasun.de)
One of the tips introduces us to OOCSS, which stands for Object Oriented CSS, and just as the name suggests it's a CSS methodology that relies on Object Oriented principles for structuring different classes in a style sheet. It's kinda really smart actually, and most of the mistakes that it strives to avoid are things that I am 100% currently doing in my own CSS. For instance, it advises to avoid location based styling and encourages a separation between the styling of containers and their content.
OOCSS was pioneered by Nicole Sullivan in 2008, so I'm only 16 years late to the party, but it seems that modular approaches to CSS are still relevant in modern web development:
[Organize CSS with a Modular Architecture: OOCSS, BEM, SMACSSBye-bye spaghetti code! Learn how to organize your CSS architecture using foolproof methodologies like OOCSS, BEM, and SMACSS. Result? A scalable, modular CSS architecture.SnipcartClaudio Mendonca](https://snipcart.com/blog/organize-css-modular-architecture?ref=gorillasun.de)
### Bluesky Open Sources its Moderation Tools
While it's the absolute wild west out here on Twitter, Bluesky is in the process of open sourcing Ozone, their collaborative moderation tool that allows users and teams to come together and create custom moderation approaches to the content that's posted across the network - they detail how all of this works in this announcement post:
[Bluesky’s Stackable Approach to Moderation - BlueskyToday, we’re open sourcing Ozone, a tool that lets a team of moderators or curators collaboratively review reports, create labels, and inspect content on the atproto network. Later this week, we’re opening up the ability for users to run their own independent moderation services.Bluesky](https://bsky.social/about/blog/03-12-2024-stackable-moderation?ref=gorillasun.de)
Although Bluesky looks like a cool place to be, I simply don't have the bandwidth to be on yet another platform, maybe at some point in the future I'll actually try and be more active over there.
### A Question of Probability
I came across a super intriguing poll by Daniel Litt in which he asked who was more likely to win a game of chance based on flipping coins. The rules of the game are described in the following Tweet (think about it for a second and then make your pick):
[](https://twitter.com/littmath/status/1769044719034647001?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/littmath/status/1769044719034647001?ref=gorillasun.de)
To me it intuitively seemed that Alice had an advantage, since in my mind she'll be rewarded for consecutive sequences of Hs, but it seems that this is in fact not the case - in reality Bob is more likely to win this game:

Now you might ask why that is? Well, I can't actually tell you why, but Juha Karttunen made an interesting visualization for the outcome of a million games played with varying numbers of consecutive tosses:
[](https://twitter.com/jkarttunen/status/1769315908701261842?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/jkarttunen/status/1769315908701261842?ref=gorillasun.de)
## AI Corner
### First AI Software Engineer by Cognition
Cognition introduces the very first AI software engineer: Devin! In a showcase video they present us with an LLM powered AI agent that has access to a code editor, a terminal as well as a browser, and makes use of these three tools to solve programming problems - you can watch it here:

[Link to Tweet](https://twitter.com/cognition%5Flabs/status/1767548763134964000?ref=gorillasun.de)
After devising an initial plan, the agent iteratively writes code, browses API documentation, squashes bugs and follows the instructions that are typed into the LLM prompt box until the developed code is of a satisfactory state. Currently Cognition boasts a 13.86% preformance on real world software engineering benchmarks, setting itself apart form all other competitors:

More info about Devin's performance can be found in [this twitter thread](https://twitter.com/cognition%5Flabs/status/1768716551056728233?ref=gorillasun.de)
But honestly I don't know what all the fuss is about, sure, it's impressive that we can now have LLMs sit in the driver's seat to operate tools in such a seamless manner, but the video still clearly shows that *Devin* was being instructed by a person - just sped up really quickly. It's likely that the person operating Devin had to actually check and monitor what the agent had concocted to direct it towards a desired outcome. At this point it just doesn't strike me as very useful - most of the examples that are floating around are very basic things.
Over on Youtube, Theo voices his opinion on Devin and raises some good points in reaction to the different showcases, I recommend checking out the video if you're curious to learn more about how Devin actually works from the regular user's perspective:
### Design against AI
The AI landscape is currently in a consistent state of upheaval, there's a new tool, new model, new something coming every couple of days and being heralded as the new big thing. And somehow the hype has yet to die down somehow. How do we actually work with AI in this setting and incorporate it into our practices, be it programming, or design?
In the rapid version of his talk at the 2024 Design in Tech conference John Maeda tackles this exact issue with AI. Should we fight against it? Compete with it? Collaborate with it? Or something else entirely? You can watch it here:
## Gorilla Updates
What have I been up to this week? Looking back I actually got a lot done, even though there's been other life stuff that I had to deal with. Overall I've probably spent more time than I've ever have on social media - but for a good reason, I've just been having so much fun over on Warpcast, with the additional incentive that I'm being given a considerable $degen allowance everyday to tip other creators and artists, and that simply for being active on the platform... why wouldn't I?


Your boi climbing the leaderboard! | [Link to Cast](https://warpcast.com/gorillasun/0xccecb990?ref=gorillasun.de)
Is it engagement farming? Absolutely, yes, but then again... why not? I'm having a blast. There's so much to talk about with what's currently going on over on Farcaster, that it warrants its own article - although it's taking a lot of mental bandwidth to keep up with everything, a good descriptor for it at this point would be "vibrant", with new shenanigans popping every day (see drakulas and vampires) that might or might not develop into something more legitimate in the future. If you're still not on Farcaster, here's an [invite link](https://warpcast.com/~/invite-page/212516?id=94b37123&ref=gorillasun.de) \- it costs a couple of bucks to join but we both get some Warps if you do via the link.
That said, I also explored a couple of new ideas, like alternative coordinate systems. I learned about Bipolar coordinate systems a couple of months ago, but then couldn't really wrap my head around the concept nor could I figure out how to implement it. I somehow managed to get my idea working in a matter of minutes when I tried again this week - have a looksy at what I came up with:

Basically instead of having a single origin point you now have two, such that points are defined by their relative distance to both centers, as well as the angle that is formed from the two centers and the coordinate point. As always, the Wikipedia page actually gives you a good overview of what the math for this looks like, it's actually not incredibly difficult:
[Bipolar coordinates - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/Bipolar%5Fcoordinates?ref=gorillasun.de)
I also experimented with elliptic coordinates - not to be confused with ecliptic and ellipsoidal coordinates - but often perceived to have epileptic qualities (as the comments over on Twitter have pointed out 🤣). But not too much came from that idea however - careful with this one, might make you motion sick:

I also managed to put in some legwork on the redesign of the blog... yes, yes I know it's taking me an absolutely disgusting amount of time but I'm finally getting to a point where I have a complete picture of all the CSS and HTML partials in my brain - and also finally decided on a font combo that I'm 100% confident with, and that I believe represents the identity of the Gorilla Sun blog really well - here's some sneak peeks:


I also managed to figure out how to make a sleek dark mode toggle purely out of CSS:
0:00
/0:22
1×
It definitely still needs some work but I'm happy with it at this point.
## Music for Coding
This week I've mainly been jamming out to some Ginger Root tracks after getting hooked by Loretta:
And that's it from me this week, hope you enjoyed this week's curated list of generative art and tech shenanigans - now that you've made it through the newsletter, you might as well share it with someone that you know who might enjoy this kind of *content* \- sharing the newsletter is one of the best ways to support it!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 47Le Random’s First Anniversary - Combine24 Generative Art Competition - Tsubuyai Porcessing by Koma Tebe - Optical Illusions by Akiyoshi Kitaoka - Aux Arbres Largest Genart Collection in History - Naive Yearly by Are.na - Flui Typography by Utopia +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-47/)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
[](https://twitter.com/mathladyhazel/status/1767659965420851592?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/mathladyhazel/status/1767659965420851592?ref=gorillasun.de)
### Gorilla Newsletter 47
URL: https://www.gorillasun.de/blog/gorilla-newsletter-47/
Last updated: 2024-03-13T10:33:37.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 47th 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Le Random's first Anniversary
Last week, on the 8th of March, Le Random celebrated its first anniversary marking one full year of their presence in the generative art scene. In this short span of time they've established themselves as a leading voice in the space, not just by building the largest documented genart timeline in existence, but also by amplifying the voices of the individuals that are at the forefront of this art movement:

[Link to Tweet](https://twitter.com/lerandomart/status/1766449380888854691?ref=gorillasun.de)
Happy Birthday Le Random, and thank you for all the wonderful articles and interviews throughout the past year! Naturally we also get a new piece from Monk, in which he writes about how we got to where we are today with generative art, recounting how the machine has played a crucial role in reinventing how we make art and how it greatly augments our art making capabilities:
[Mona Lisa to monogridHow did we transition from art that looks like Leonardo’s Mona Lisa to art like Kim Asendorf’s monogrid? Peter Bauman (Monk Antony) investigates the history of art’s mechanization to contemplate the future of digital generativity.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/mona-lisa-to-monogrid?ref=gorillasun.de)
### Combine24 Generative Art Competition
In other news, the Finish National Gallery just recently announced that they're organizing an open generative art competition; you can find more info about it over on the official announcement page:
[Combine24 - A generative art competition by the Finnish National Gallery.A generative art competition by the Finnish National Gallery.A generative art competition by the Finnish National Gallery.](https://combine24.alusta.art/?utm%5Fsource=x&utm%5Fmedium=social&utm%5Fcampaign=combine24&utm%5Fcontent=combine24%5Fopen%5Fcall%5Fstill)
The submission period for the competition runs from March 1st to May 31st, so there's still plenty of time. The only requirements for your artwork are that A) it needs to make use of the provided CC0 dataset that represents the gallery's collection, and B) it to be an original work minted as a generative project on Highlight:

If I find the time, I might give it a shot and participate. But it might be challenging for me personally at least, since I'm not generally used to making data driven works. The first idea that comes to mind is training a neural network of some sort on the dataset and then have it imagine new outputs, but that's hardly very innovative - it would still need to have some sort of creative twist. Besides, it's also been a minute since I've done anything ML related.
Another idea would be some form of generative dadaist collage, but that would also be outside of my comfort zone, and I'm not certain how you'd go about implementing it - since the final work needs to be minted on highlight, the image assets would also have to be stored somewhere. On second thought, maybe I should actually get a feel for the dataset first and then only do something with a subset of the images.
### Tsubuyaki Processing by Koma Tebe
Koma Tebe never ceases to amaze us with his tweet sized code sorceries; in a recent creation of his he impresses with a cool metaball-esque sketch, that makes use of a cool P5 trick that I had almost forgotten about:
0:00
/0:07
1×
[Link to Tweet](https://twitter.com/KomaTebe/status/1762880511767097413?ref=gorillasun.de)
The secret to this one is the [filter()](https://p5js.org/reference/?ref=gorillasun.de#/p5/filter) function that comes out of the box with p5js, which lets you apply an image filter to all pixels of the canvas at once, such as the BLUR and THRESHOLD filters in this instance. Quickly popping Koma's code into the P5 editor and toggling off the two filters, we can get a feel for what's happening under the hood:



Base Pattern -> Blurred Canvas -> Thresholding the pixel values
The blur makes it such that the outward going circular shapes on the canvas blend into each other, while the threshold clamps these values back to a saturated black or white value. This makes it such that the shapes connect in a sort of goo-y, metaball-esque manner. Which has the nice side-effect that you can get different outcomes depending on the harshness of the blur and threshold parameters. Simply a classic P5 trick.
I also recommend checking out Koma Tebe's other sketches over on Twitter, since there's lots of cool tricks that can be learned from the Tsubuyaki format. And while we're talking about code golfing, another cool one I came across recently was by Steve over on Warpcast, in which he packages an entire web page inside of a tiny cast:

[Link to Cast](https://warpcast.com/sdv.eth/0x3b01246e?ref=gorillasun.de)
Initially I had some trouble figuring out what I was looking at, but that was due to being a Firefox user... which doesn't actually render the code properly. If you're viewing the cast in Chrome you can simply highlight the content of the cast, then right click it to reveal an option that says 'go:to' to open the code snippet as page in the browser (or alternatively drop the cast content into your address bar) - which will then reveal Steve's creation: the farcaster logo made entirely out of vertical slashes and horizontal dashes. It's a neat trick, and I'm wondering what more can be done with it since you technically could also include JavaScript within such a short code snippet.
### Optical Illusions by Akiyoshi Kitaoka
I frequently browse Pinterest to find inspiration for my sketches, and my latest obsession has been optical illusions - they also seem to perform really well on social media since they're really powerful eye-catchers. I recently came across one that had me do a double-take, to check if I I was actually seeing correctly - have a look for yourself:

If you're not color-blind then it should appear as if the grid of alternating darker and lighter green tiles is warped in some manner - but that's actually just an optical illusion, the grid is actually perfectly square! And there's no bend to it whatsoever. So, what's actually going on? I quickly did a little investigation and recreated the pattern with code, also making an alternative version with different colors:


It's not a 1-to-1 copy of the pin when it comes to the placement of the pink and white geometric flowers, but the effect's still there, and even more pronounced when you scroll over the image. In the alternative version with different colors the effect didn't really come through - so it must have something to do with the actual colors! After posting it over in the birbsnest discord, Metamere jumped in explaining that it's an optical illusion invented (discovered?) by the Japanese professor Akiyoshi Kitaoka:

Turns out this specific pattern is called Primrose Field, and comes in different versions, it also works when the grid is grayscale and the geometric flowers are alternatingly black and white. But that's just one of many, many more optical illusions that Kitaoka has created - he's actually been documenting his works since 2002 over on a page titled Akiyoshi's illusion pages:

[Link to Akiyoshi's illusions pages](https://www.ritsumei.ac.jp/~akitaoka/index-e.html?ref=gorillasun.de)
It's essentially a treasure trove for all sorts of different optical illusions - with a big focus on those that are still images but appear to be in motion whenever your gaze shifts, or when they fall into your peripheral vision. What's more is that Akiyoshi's illusions have made it onto quite a few influential album covers, such as [Animal Collective](https://en.wikipedia.org/wiki/Animal%5FCollective?ref=gorillasun.de)'s critically acclaimed album, [*Merriweather Post Pavilion*](https://en.wikipedia.org/wiki/Merriweather%5FPost%5FPavilion%5F%28album%29?ref=gorillasun.de), as well as [Lady Gaga](https://en.wikipedia.org/wiki/Lady%5FGaga?ref=gorillasun.de)'s 2013 album [*Artpop*](https://en.wikipedia.org/wiki/Artpop?ref=gorillasun.de). You can learn more about Kitaoka's life over on Wikipedia:
[Akiyoshi Kitaoka - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects](https://en.wikipedia.org/wiki/Akiyoshi%5FKitaoka?ref=gorillasun.de)
I'll probably try and recreate some more of his works and maybe even try to come up to remix them in a generative manner.
### On SDFs by Inigo Quilez
Inigo Quilez made a full rewrite for one of his stellar articles about SDFs, in which he introduces smooth-minimums and how they allow us to blend 3D shapes in a smooth manner:
[](https://twitter.com/iquilezles/status/1765935148091261277?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/iquilezles/status/1765935148091261277?ref=gorillasun.de)
[Inigo QuilezArticles on computer graphics, math and artInigo Quilez](https://iquilezles.org/articles/smin/?ref=gorillasun.de)
## Web3 News
### The largest Genart Collection in History: Aux Arbres
A couple of days ago the minting period for Zanca's Aux Arbres concluded - and with over 70 thousand mints it indubitably went down as the largest blockchain art collection in history. A factor that played into this exorbitant number of mints likely has to do with the fact that Zancan's system kept revealing new types of variations, colors and patterns whenever a certain mint-number milestone was reached:

Aux Arbres #72806 collected by yours truly
Some of the rarer variations that were revealed later throughout the minting will likely be highly valuable collector pieces in the future, for instance the honey-comb variation that was one of the last ones to be revealed, as well as a cool Smolskull crossover:


#74213 minted by [@MorpheusSomnia](https://twitter.com/MorpheusSomnia?ref=gorillasun.de) | [Link to Mark Knol's Tweet](https://twitter.com/mknol/status/1764643449997848920?ref=gorillasun.de)
After being asked about if there were still variations that were unrevealed, Zancan reveals to us that these variations weren't actually part of the original script but were added in during the minting of the project!

[Link to Thread](https://twitter.com/zancan/status/1766598996401783233?ref=gorillasun.de)
If Zancan hasn't already cemented himself as one of the greatest contemporary artists then this should do it, we'll likely still be talking about Aux Arbres for many years to come. I'm happy I didn't sleep on this one and have a few in my own (meager) collection.
### ArtBlocks Self-Publishing Announcement
Last week Art Blocks made quite a big announcement, unveiling that with their recent acquisition of Sansa the platform is currently in the process of creating an environment that will make it possible for artists to self-publish their generative projects:
[](https://twitter.com/artblocks%5Fio/status/1765800537667084652?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/artblocks%5Fio/status/1765800537667084652?ref=gorillasun.de)
It is however not entirely clear how *open* this new branch of Art Blocks will be, considering that projects which weren't *Art Blocks curated*, still had to undergo some form of curatorial audit before obtaining a stamp of approval for being released. In other news, WTBS also made an announcement that they're recording an episode with Erick, and I believe that we should be getting more information about the upcoming changes to Art Blocks in that conversation:
[](https://twitter.com/WaitingToSign/status/1765882457755206120?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/WaitingToSign/status/1765882457755206120?ref=gorillasun.de)
## Web & Tech
### Naive Yearly by Are.na
I must confess that when I first came across Are.na, I didn't really get it - it simply seemed like a place for collecting things you find on the internet, and I can already do that in any kind of note taking app, so what's the point?
But I slowly came around, Are.na is a distraction free place on the internet where you can not just collect ideas and arbitrary types of content, but it also lets you organize your thoughts and give them structure, while providing social features tailored towards this end. If you're not familiar with Are.na, this article by Jil Wright describes it beautifully, explaining how she uses the platform as someone that has an information addiction (just like me):
[Using Are.na for ResearchAren.a is an online platform that I’ve started using for personal knowledge management and collaboration.MediumJil Wright](https://medium.com/@jilwright/using-are-na-for-research-2b9274c8429?ref=gorillasun.de)
Every year Are.na holds a conference gathering people who expand *what the web is and can be*. They document this conference in form of a web page with pieces that compliment the talks given by the invited speakers:
[](https://twitter.com/AREdotNA/status/1765846368147353888?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/AREdotNA/status/1765846368147353888?ref=gorillasun.de)
I highly encourage you to explore those pieces (by clicking on the speaker names in the list on the right) - my favorite is Maya Man's eulogy for Google's 'I'm Feeling Lucky' button that found the end of it's lifespan in 2010:
[naive-yearly.are.naNaive Yearly + Are.na](https://naive-yearly.are.na/?ref=gorillasun.de)
That said, if you're not on Are.na yet, go check it out!
### Retrofitting Fluid Typography
Choosing fonts and an appropriate font-size for different text elements in a web page's UI is often more involved than it seems. In the age of responsive web design it often makes sense to scale font-sizes depending on the size of the browser's viewport that's displaying the page; and the most common solution nowadays is to apply a different *font-size* value whenever one of these breakpoints takes effect. This is a bit cumbersome as you'll have to create quite a few media queries in which you define the font-size values. Richard Rutter recently wrote an interesting article in which he takes a different approach that calls itself Fluid Typography:
[Retrofitting fluid typographyAs part of my forthcoming Patterns Day talk I decided to rebuild the newly redesigned Creative Boom article page using Utopian fluid typography to replace its multitude of breakpoints. This is the story of why and how.ClagnutRichard Rutter](https://clagnut.com/blog/2428/?ref=gorillasun.de)
Fluid Typography disposes of breakpoints and interpolates font-sizes depending on minimum and maximum values. It's a novelconcept suggested by Utopia, which isn't a tool or framework, but rather a way of thinking about type and space in web design in a fluid manner. Although it sounds a little pretentious, I recommend giving Utopia's introductory video a watch, where they explain the concept and overall approach:
Over on their website they provide a couple of free tools, like font calculators, for you to use and get started with fluid typography yourself:
[UtopiaFluid responsive designUtopia](https://utopia.fyi/?ref=gorillasun.de)
### CSS Scroll-triggered Animations
Modern CSS is truly a treat - Ryan Mulligan recently wrote an interesting article about scroll-triggered animations that are purely done with CSS:
[CSS Scroll-triggered Animations with Style QueriesCombine scroll-driven animations and style queries to trigger an animation sequence powered only by CSS.Ryan Mulligan](https://ryanmulligan.dev/blog/scroll-triggered-animations-style-queries/?ref=gorillasun.de)
His article is inspired by an experiment from last year by Bramus van Damme that's also worth a read:
[Creating Scroll-Triggered Animations by combining Scroll-Driven Animations, Custom Properties, Style Queries, and TransitionsWhen you combine Scroll-Driven Animations with Custom Properties, Style Queries, and Transitions you hack your way into creating Scroll-Triggered Animations.Bram.usView more posts](https://www.bram.us/2023/06/15/scroll-triggered-animations/?ref=gorillasun.de)
## AI Corner
### Why future AI won't revolve around Chatbots
The hype around our AI powered chat partners has yet to die down - and deservedly so, they've proven themselves to be extremely powerful tools for all sorts of tasks. We are however still limited in that our only means of communicating with them is through a prompt based interface. Fast Company discusses this issue in a recent article of theirs and showcases three companies that have already leveraged LLMs in innovative manners:

[Link to Article](https://www.fastcompany.com/91034315/these-three-companies-show-why-the-next-ai-wave-wont-revolve-around-chatbots?ref=gorillasun.de)
For instance, the second example they provide, a company pitted two LLMs against each other in a sort of conversation to come up with new ideas:
> He started playing around with the idea of combining two [large language models](https://www.fastcompany.com/90826178/generative-ai?ref=gorillasun.de) (LLMs), one to gather travel data and the other to analyze company spending. What if those two LLMs had a kind of conversation? And what if they instructed one of those LLMs to act as if it were a CFO who needed to prepare a board presentation on how to save money on corporate travel?
A relevant article in this regard is by Amelia Wattenberger back from 2023, in which she had already identified this same issue and also tackles it from a UI perspective:
[Why Chatbots Are Not the Future of InterfacesAmelia Wattenberger’s personal websiteAmelia Wattenberger](https://wattenberger.com/thoughts/boo-chatbots?ref=gorillasun.de)
### An AI masterpiece better than Dune 2
This one isn't educative in the least bit, but as someone who's attempted to make ASCII art with ChatGPT's help, I highly enjoyed watching this dramatic chat of someone with far more patience that I do:
[](https://twitter.com/petergyang/status/1765611617960747246?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/petergyang/status/1765611617960747246?ref=gorillasun.de)
## Gorilla Updates
I've been deep, deep in CSS hell again this past week, in an attempt to figure out a relatively decent design for a new landing page for the Newsletter, and there's still not much to really show right now, except a big stinkin pile of broken CSS. I did however find a little bit of time for some generative shenanigans - I already mentioned the little Akiyoshi Kitaoka inspired optical illusion sketch earlier - but I also explored another idea that involves a triangular lattice inspired by yet another thing I saw on Pinterest:


I thought that the unfolded cutout for the star tetrahedron looked really cool - from an artistic POV it's more interesting than the actual 3D shape that it forms, to me at least. Apparently these are called nets:

Looking just a little bit more into it, if you're looking for an algorithm to unfold a 3D shape onto a 2D plane you'd probably be looking at [UV unwrapping](https://computergraphics.stackexchange.com/questions/8774/unfold-a-3d-mesh-to-a-2d-plane?ref=gorillasun.de). But yet again, I was all out of time for exploring internet rabbit holes this week... so maybe that's something better left for next week. And that's not really what I wanted to do in the first place, I just wanted to generate some interesting triangle patterns, so I started out simple and just did a little grid/lattice in which I apply some random rotations to the individual triangles, and I feel that there's already something there:



Besides that I also finally got another idea out of my system that I've been thinking about ever since I made my sketch for Genuary 2024's Wobbly prompt - and it turned out differently from what I had envisioned, but in a good way actually! In my mind I was envisioning a circular thing that had wavy bands shooting outwards from the center, but it ended up looking somewhat 3D, with the bend of the bands conveying some sort of additional depth:
0:00
/0:10
1×
## Music for Coding
If you're a fan of Nujabes, then this one by Uyama Hiroto will hit the sweet spot - Freeform Jazz is Hiroto san's third full-length studio album released in 2016:
The overall sound is hard to describe, somehow distant and mysterious, but still raw and intimate, uneasy but relaxed. Each track is very different and unique, but the entirety of the album still flows really well and blends into a beautiful larger whole that never loses your attention. A relevant piece of writing here is a conversation between Uyama with his editor and music compiler Hashimoto Toru that shines light on how the album came to be:
[Uyama Hiroto “freeform jazz” Interview (2016)This is an interview about Uyama Hiroto’s third full-length album, freeform jazz. Joining Uyama here is close friend Hashimoto Toru. This interview is particularly recommended reading for fan…kumomiHenkka](http://kumomi.org/2022/12/02/uyama-hiroto-freeform-jazz-interview-2016/?ref=gorillasun.de)
> It is, as implied by the title, a work that is free in form. Alongside the beautiful ensembles characteristic of Uyama, the release is filled with freaky beats, experimental ideas, and dope song progressions, lulling the listener into a false sense of security.
In the famous words of Patrick Star "Now you must acquire a taste for... Freeform Jazz" - but I believe that it's not too difficult to do so when the Jazz is presented as beautifully as this. After giving the album a full listen, I have to say that it's very likely going to establish itself as a personal favorite. Being considered as Nujabes right-hand man, they have worked closely together on multiple tracks - here's one of them that I found to be stellar:
That's it from me this week, hope you enjoyed this week's curated list of generative art and tech shenanigans - now that you've made it through the newsletter, you might as well share it with someone that you know who might enjoy this kind of *content* \- sharing the newsletter is one of the best ways to support it!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 46Compressionism as an Art Movement - Particle based Fluid Simulations - Infinite Procedural Photorealistic Worlds - Molnar’s Paris - Plotting on Jackson Cubes - The Blockchain was Invented for NFTs, not Currency - A CMS for Github Pages - A Netlify Horror Story +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-46/)
*And if that's not enough, you can find a backlog of all previous Gorilla Newsletter issues here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 46
URL: https://www.gorillasun.de/blog/gorilla-newsletter-46/
Last updated: 2024-03-04T11:00:21.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 46th 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Compressionism as an Art Movement
Compression isn't only crucial for all sorts of technical purposes and applications, but has also occupied an art-centric role over the years - it is actually quite fascinating to think about how the size limitations of early computers have influenced the overall trajectory of digital art over the past decades, not only from a technical point of view but also the aesthetics thereof.
Twitter user Diid, who's currently building out [The Center for the Advancement of Digital Art](https://www.cada.art/?ref=gorillasun.de), recently published an article on this exact topic, diving into the origins of the term *Compressionim*, positing it as an art movement in its own right, and how it is undergoing somewhat of a renaissance with blockchain art that is also confronted with the size limitations of the underlying tech:
[On Compressionism — The Center for the Advancement of Digital ArtA brief history and explanation of what compressionism is and where it came from.The Center for the Advancement of Digital Artdiid](https://www.cada.art/columns/compressionism?ref=gorillasun.de)
Diid starts us off by recounting the origins of the term *Compressionism*, first coined by James Powderly as a title for an interactive video project of his, but then later given to Nathaniel Stern for another performance art project:
[A short description of the project can be found here](https://artelectronicmedia.com/en/artwork/compressionism/?ref=gorillasun.de)
If you google the term *Compressionism* you don't actually find much about it, as an artform/art movement at least. But I would to some extent agree with Diid that it is an apt umbrella term for much of the art of our era, be it dither art that employs color reduction techniques for aesthetic purposes, ASCII art that reduces an image into letter symbols, size-coding and code-golfing that are often impressive feats of a human type of compression, and would go as far as saying that AI art falls under this category, where machine learning models up-sample imaginary outputs from compressed internal representations.
And especially with code based on-chain projects, we are seeing a renaissance of this phenomenon, where expensive blockchain storage pushes code artists make their projects as small as possible, such as to minimize the associated cost - just past December we observed many a generative artist size-code their systems for fxhash's launch on ETH.
The most notable project in that regard was Piter Pasma's [Blokkendoos](https://www.fxhash.xyz/generative/slug/blokkendoos?ref=gorillasun.de), in which he creates a Monte Carlo path tracer in only 5954 characters of dependecy-less vanilla JavaScript code. At the time Piter also shared an interesting thread on the importance of size optimizing code, that I believe is relevant to this discussion:
[](https://twitter.com/piterpasma/status/1736000934923137413?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/piterpasma/status/1736000934923137413?ref=gorillasun.de)
Piter Pasma also chimes in with some questions of his own underneath Diid's tweet, raising some interesting points:
[](https://twitter.com/0xdiid/status/1763398889997005292?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/0xdiid/status/1763398889997005292?ref=gorillasun.de)
But as Diid points towards the end of his article, he's not trying to define the movement as a whole - if it can be called a movement that is. While it can be interesting to group different artforms under a collective -ism, to more easily categorize and compartmentalize, it can often lead to overly simplifying the complexity, the philosophical ideas and the historical context of these artforms. After all, an isms is not synonymous with idiosyncrasy, and I believe the distinction has to be made there. Art is generally beyond isms.
### Particle based Fluid Simulations
Although a bunch of circles bouncing around on a virtual canvas might at first glance seem a bit underwhelming, the implementation thereof lies at the foundation of some quite advanced computational concepts. The first culprit in that regard being numerical stability - when simulating physics computationally we are entirely at the whims of the internal finite precision arithmetic of our computers, and in many cases achieving a somewhat stable system can be quite challenging.
Particle simulations are also fascinating because they're an integral component of many other interesting types of simulations, such as collision systems, mesh and soft body simulations, flocking simulations, and as I most recently learned, also fluid simulations. I came across a tutorial series by PixelPhysics over on YouTube, in which they show us how to implement a particle based fluid sim from scratch, entirely in vanilla JavaScript:
Their implementation is based on a paper back from 2005 titled [*Particle based viscoelastic fluid Simulation*](https://www.semanticscholar.org/paper/Particle-based-viscoelastic-fluid-simulation-Clavet-Beaudoin/6090b0c36b0867ee249648072caf641a0fb37009?ref=gorillasun.de) (the paper is not an incredibly difficult read), which describes a system that allows the simulation of surface tension via a double density relaxation procedure - but before this starts sounding like some strange technobabble straight from r/VXJunkies, I'll leave it to PixelPhysics to do the heavy lifting and explain how it works. I might attempt my own implementation at some point though.
A commonality that I see between particle simulations, is that the behavior of particles often boils down to their proximity to other neighboring particles and their movement. In a flocking simulation, following [Craig Reynolds famous model](https://www.red3d.com/cwr/boids/?ref=gorillasun.de), the movement of the individual particles is influenced by steering behaviors that depend on the vector forces of other nearby *Boids* (other particles).
When it comes to fluid sims, another important resource is this Coding Adventure by the OG Sebastian Lague, in which he also creates a proper fluid simulation:
When I explored physics simulations for myself last year and wrote a number of posts on the topic, I always felt that there was a lot more there to explore, and it's definitely something that I'll likely tackle again in the coming months - especially flocking and fluid sims. So the main take-away here, is that investigating the behavior of bouncing virtual particles is frequently a worthwhile scientific endeavor.
### Infinite Photorealistic Worlds using Procedural Generation
Whenever I see the term 'Procedural' nowadays, it almost feels like a relic from an era long past - considering how far along generative AI has come. This week I came across an interesting, relatively recent, paper that claims an entirely procedural approach to creating photorealistic scenes:
[](https://arxiv.org/abs/2306.09310?ref=gorillasun.de)
[Link to Paper](https://arxiv.org/abs/2306.09310?ref=gorillasun.de) | [Link to Project Page](https://infinigen.org/?ref=gorillasun.de)
The results look quite impressive, especially since the generator not only creates images but also 3D asset files (Blender) for the depicted scenes. As always, the Hackernews comment section for the article is quite polarized:

[Link to Hackernews Comments Section](https://news.ycombinator.com/item?id=36376071&ref=gorillasun.de)
I can get behind both points of view though; on the one hand the system seems quite useful for generating novel 3D training data, and the paper actually already has a few citations that use it for this purpose - but on the other hand I also have to give it to the other opinions that question the photo-realism of the generated scenes. It might not be the best descriptor, and a procedural approach might just be a little too late for that considering what we're doing with machine learning these days.
But I find it strange to diminish the value of a project like this one, just because we can do things with AI now, I strongly believe that there's always merit to exploring alternative approaches to different tasks even when they might not be cutting-edge. Genuinely curious, what do you think about this issue?
### Molnár's Paris
And to top off this generative column, and with NFT Paris conlcuding, Le Random leaves us with a historical travel guide that takes us through Paris, recounting the important places of Vera Molnár's life in the bustling art capital:
[Molnár’s ParisVera Molnár moved to Paris at the end of 1947 and would call the city home for the rest of her storied life. Use our interactive map to follow in her footsteps across the French capital and discover the entwined narrative of artistic evolution and urban existence that defined her practice.Le RandomPeter BaumanPeter Bauman (Monk Antony) is Le Random’s Editor-in-Chief.](https://www.lerandom.art/editorial/molnars-paris?ref=gorillasun.de)
I was especially curious to see what Monk had to say about Le Select, the Hungarian expat café that Molnár would frequent, through which she got to know Sonia Delauney. When I wrote my own piece on Molnár's life I came across some resources stating that she met Kandinsky and Malevich there, although I couldn't find further information if these claims were accurate. Maybe it was only meant metaphorically. Next time you find yourself in Paris, you might just want to build in some of these locations into your itinerary!
## Pen and Plottery
The occasional plotter segment of the Newsletter is back! ✏️ There were quite a few plotter-related things this week that warranted its return 👇
### Plotting on Jackson Cubes
If you've noticed, I'm a big fan of written resources that inspire us with new ideas, teach us new things and/or provide us with interesting methods to make interesting art - and that's exactly what Jos Vromans did with a recent post of his, in which he checks all three of those boxes. In *Plotting on Jackson Cubes*, Jos introduces us to Jackson Cubes, shows us how they can be decorated with different plotted patterns and even provides us with a couple of SVG generators to easily create these patterns:
[](https://www.josvromans.com/blog/2024/2/jackson-cubes/?ref=gorillasun.de)
[Link to Article](https://www.josvromans.com/blog/2024/2/jackson-cubes/?ref=gorillasun.de)
If you're not familiar with what a Jackson Cube is, it's essentially an Origami cube that's assembled out of 6 interlocking pieces of folded paper. There's different variations, like the one shown above that have one or more corner sliced off, resulting from a slightly different folding procedure, and making them stackable on top of each other.
These cubes derive their name from their creator Paul Jackson, who came up with the folding technique in the early 1970s - there is a cool video of his back from 2018, in which he personally demonstrates the folding technique:
Looking into it a bit more, I also found this interesting list of the different variations that Paul Jackson came up with, and I guess the proper term for the cubes with the corners sliced off is *Columbus Cubes*:
[David Mitchell’s Origami Heaven - MODE - Designs From the Paul Jackson CubeThe web-site of paperfolding designer, author and publisher David MitchellDesigns From the Paul Jackson Cube](http://www.origamiheaven.com/designsfrompauljacksonscube.htm?ref=gorillasun.de)
Decorating these cubes with generative patterns is the cherry on top, and imo makes them really *pop*. Jos points us towards two pattern generators of his, that allow you to directly export SVG files and feed them into your own plotter if you have one. Although I've messed around quite a bit with the 10 print pattern, I actually never experimented with triangle subdivisions - so I found it super cool that Jos also wrote a bit about how to create these patterns in another post of his:
[](https://www.josvromans.com/blog/2021/1/triangle-subdivisions/?ref=gorillasun.de)
[Link to Article](https://www.josvromans.com/blog/2021/1/triangle-subdivisions/?ref=gorillasun.de)
Overall, I really love the plotter+origami combo, feels like a match made in heaven. Besides that, a little bird also told me that Jos is already working on a couple more articles that we'll likely see quite soon over on his blog.
### Plotter Animation by Compote de Plot
Another cool thing that you can do with plotters are stop-motion animations - such that each individual frame is plotted and then later recombined into a complete digital animation. The cool thing here is that it's often difficult to align frames perfectly, giving it that nice stop-motion jitter effect.
Compote de plot created a really cool one recently, in which a tessellated sphere disintegrates into individual tiles and then reappears from the void:
0:00
/0:06
1×
[Link to Tweet](https://twitter.com/loic%5Fgoulefert/status/1763177069964345589?ref=gorillasun.de)
I thought that the pattern on the sphere was really cool, it reminds me of a Voronoi diagram with the added effect that the edges between them are slightly bent due to the curvature of the sphere's surface. Compote de Plot sheds some light on how they did it after I inquired about it on Twitter, revealing that he's using blender's *cell fracture* tool to generate the pattern on the sphere:
[](https://twitter.com/gorillasu/status/1763154663933698467?ref=gorillasun.de)
[Link to Thread](https://twitter.com/gorillasu/status/1763154663933698467?ref=gorillasun.de)
I'll have to try and figure out how to generate a Voronoi Diagram/Delaunay Triangulation on a sphere now, I think the challenge here is having the tessellation wrap around- a quick google actually reveals that Red Blob Games has written about this, so I might just dig into it sometime this week:
[Delaunay+Voronoi on a sphere](https://www.redblobgames.com/x/1842-delaunay-voronoi-sphere/?ref=gorillasun.de)
### Plotter assisted Lithographs
And in other news, Licia He has been experimenting with making plotter assisted lithographs:
0:00
/0:26
1×
[Link to Tweet](https://twitter.com/Licia%5FHe/status/1762539025502539907?ref=gorillasun.de)
What's a lithograph, you ask? A lithograph is essentially a printmaking technique that involves creating an image on a flat surface with ink (or other painting materials), typically a stone or metal plate, and then pressing a piece of paper against that surface to transfer the image from the surface to the paper. Here, Licia prepares the lithograph surface with her plotters.
I found this cool article that shows the process step-by-step by means of a series of animated GIFs:
[LithographLithography is a planographic printmaking process in which a design is drawn onto a flat stone (or prepared metal plate, usually zinc or aluminum) and affixed by means of a chemical reaction.The Metropolitan Museum of Art](https://www.metmuseum.org/about-the-met/collection-areas/drawings-and-prints/materials-and-techniques/printmaking/lithograph?ref=gorillasun.de)
## Web3 News
### The Blockchain Was Invented for NFTs, not Currency
The invention of the blockchain is probably most often erroneously attributed to the elusive figure of *Satoshi Nakamoto.* Although the original white-paper for the bitcoin blockchain was revolutionary, from a historical point of view, that wasn't actually the inception of the cryptographic and decentralized notions that most blockchains build upon today.
Satoshi based his decentralized financial system on the ideas of Stuart Haber and Scott Stornetta, that were previously more concerned with developing a system for proving the integrity of digital records of any form, which led them to the conception of an early blockchain system. In this interview with Jason Bailey for RCS they recount their story:
[The Blockchain Was Invented For NFTs, Not CurrencyA candid interview with the inventors of the blockchainAlex Estorick](https://www.rightclicksave.com/article/the-blockchain-was-invented-for-nfts-not-currency?ref=gorillasun.de)
Throughout the interview they do emphasize that Satoshi made impactful contributions in the manner that their system was leveraged for financial purposes. They also state that NFTs in their current form are essentially the manifestation of their long-term goals for the system that they've built, and are moreover big proponents of an interoperable multi-chain future, where the decentralized ledgers can seamlessly communicate with each other. And we've actually already been witnessing this to some extent in recent months. As always, a highly interesting read from RCS.
### Deep-dive into Farcaster NFTs
The Farcaster scene has been unfolding more and more rapidly, especially with Farcaster Frames that make it possible to directly mint NFTs from the social feed. Kaloh did some number crunching and reports back with what seem to be the most valuable collectibles in the current eco-system:
[🟣 Deep Dive: Farcaster NFTsLet’s dive in Farcaster NFT ecosystem with a market analysis and a curated listKaloh’s NewsletterKaloh](https://www.kaloh.xyz/p/deep-dive-farcaster-nfts?ref=gorillasun.de)
If you're curious about how Kaloh aggregates these numbers I also highly encourage you to check out another piece he's written in which he explains all of it:
[📈 How To Crunch The Numbers Behind NFTsUnderstand how to use my market analysis spreadsheetsKaloh’s NewsletterKaloh](https://www.kaloh.xyz/p/-how-to-crunch-the-numbers-behind?ref=gorillasun.de)
## Tech and Web Dev things
### A CMS for Github Pages
Github pages is really cool, it makes the deployment of static websites incredibly straightforward. But once that static site grows just a little bit larger, working with it can quickly become a hassle - managing a bunch of markdown files in form of a github repo and manually linking image and media files through markdown can get messy really quick. This is where Pages CMS comes in, as an attempt to alleviate these pain points by creating a proper content management system for Github pages:
[Pages CMS: The No-Hassle CMS for GitHubTired of juggling Git and YAML to update your Next.js, Astro, Hugo or Nuxt website? Make it easy on you and your team, get a user-friendly CMS running straight on top of GitHub.](https://pagescms.org/?ref=gorillasun.de)
I spent some time and took it for a spin with a side project of mine - and I have to say, I'm really impressed! You simply link it to an existing github repo of yours, be it a Jekyll, 11ty, or any other static site generator, and set up a configuration file that defines the relevant folders in your project, mainly those that contain your media and markdown files, then you can already get started creating and managing your content via the CMS. Definitely worth keeping an eye on how this project develops in the future!
### CSS :has() Rule
Our favorite web dev Ahmad Shadeed, as well as repeat offender of the Newsletter, is back with another deep-dive, this time teaching us about the :has() rule in CSS:
[CSS :has() Interactive GuideEverything you need to know about CSS :has() selector.Ahmad Shadeed](https://ishadeed.com/article/css-has-guide?ref=gorillasun.de)
If you're not familiar the :has() rule, it's essentially a means for us to 'look ahead' and check what kind of element comes after the current element. A scenario where this comes in really handy is when you want to override the bottom-margin of the current element depending on what the next element is - for instance, we sometimes want a bigger margin when a block of text is followed by an image, to allow for some visual breathing room. Ahmad Shadeed guides us through all of the intricacies of this special CSS rule.
### DOOM Rendered via Checkboxes
I came for *DOOM Rendered via Checkboxes* \- I stayed for interesting Web Assembly internet lore and the Nerd Sniping phenomenon:
[DOOM Rendered via CheckboxesWebAssembly meets 16000 HTML checkboxes.](https://healeycodes.com/doom-rendered-via-checkboxes?ref=gorillasun.de)
Andrew Healey's was inspired by Bryan Braun's checkbox shenanigans to create a version of DOOM that's entirely rendered via HTML checkbox elements. Apparently you can make a lot of things on the Web entirely with checkboxes as Bryan explains in an article of his:
[I keep making things out of checkboxesSomething happened earlier this year where I got on a run making checkbox animations and just couldn’t stop.Bryan Braun - Frontend Developer](https://www.bryanbraun.com/2021/09/21/i-keep-making-things-out-of-checkboxes/?ref=gorillasun.de)
Andrew builds his creation on top of Diek Mann's Web Assembly port of the original DOOM, pointing us to an interesting repo in which Diek Man not only teaches us about Web Assembly but also show us how the port is made possible:
[GitHub - diekmann/wasm-fizzbuzz: WebAssembly from Scratch: From FizzBuzz to DooM.WebAssembly from Scratch: From FizzBuzz to DooM. Contribute to diekmann/wasm-fizzbuzz development by creating an account on GitHub.GitHubdiekmann](https://github.com/diekmann/wasm-fizzbuzz?tab=readme-ov-file&ref=gorillasun.de)
Have you been Nerd Sniped yet?
### A Netlify Horror Story
A post from r/webdev has recently been making the rounds, in which a Netlify user has been billed a whopping $104k by Netlify for the bandwidth consumption of a simple static site:
[](https://www.reddit.com/r/webdev/comments/1b14bty/netlify%5Fjust%5Fsent%5Fme%5Fa%5F104k%5Fbill%5Ffor%5Fa%5Fsimple/?ref=gorillasun.de)
[Link to entire reddit post](https://www.reddit.com/r/webdev/comments/1b14bty/netlify%5Fjust%5Fsent%5Fme%5Fa%5F104k%5Fbill%5Ffor%5Fa%5Fsimple/?ref=gorillasun.de)
After reaching out to Netlify's customer support it turns out that the site has in fact succumbed to a DDOS attack and incurred these exorbitant bandwidth costs - Netlify informs that the subject of this attack was an .mp3 file of an old Cantonese song included on the page. Netlify then offered to reduce the cost to 5% in light of it being a DDOS attack. Reddit comments recommended OP to post the story over on Hackernews before actually paying the outstanding cost - which then actually led the entire thing to catch on fire, even prompting a reply from Netlify's CEO over on Hackernews:
[](https://news.ycombinator.com/item?id=39520776&ref=gorillasun.de)
[Link to Hackernews Story](https://news.ycombinator.com/item?id=39520776&ref=gorillasun.de)
As well as an official statement from Netlify over on Twitter:
[](https://twitter.com/Netlify/status/1762518910107033798?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Netlify/status/1762518910107033798?ref=gorillasun.de)
## AI Corner
### Runway Studios Creative Dialogues
Generative AI is unarguably going to transform the film-making scene in the coming years, and Runway Studios is currently at the helm of driving the creative dialogue around the cutting edge technology. Runway Studios, an off-shoot of the generative AI tooling company Runway, recently started a series of conversations between creatives that use AI for the purpose of creative expression - I found them to be highly insightful and really enjoyable to watch, here's episode 2 featuring Anna Ridler and Lex Fefegha:
You can keep an eye on upcoming episodes here, one of them will feature Golan Levin, so definitely worth keeping an eye on:
[Creative Dialogues from Runway StudiosA series of conversations exploring human creativity and artificial intelligence.](https://studios.runwayml.com/creative-dialogues/episode-2?ref=gorillasun.de)
### AI and Design Systems
Last week I shared an article by Brad Frost from early January 2024 in which he proposes a global design system that I found highly interesting. Frost returns with a new article, this time exploring the role that AI models currently occupy in aiding the creation of design systems:
[AI and Design SystemsWe’ve all watched with simultaneous fascination and trepidation as a flood of AI-powered tools continues to wash over the digital landscape. At Big Medium, we help complex organizations design at scale and pragmatically adopt new technologies, so naturally we’ve been putting AI tools through their pBrad FrostBrad Frost](https://bradfrost.com/blog/post/ai-and-design-systems/?ref=gorillasun.de)
The main point of the article is that LLMs can be super powerful in generating the code for new components when trained on an already existing design system's codebase:
> **When you train a LLM on a design system’s codebase, conventions, syntax and documentation, you get a component boilerplate generator on steroids.**
However, as we've already seen in recent history, it is still not a replacement for human judgement, and still requires a guiding hand to yield satisfactory outputs.
## Gorilla Updates
### Generative Irregular Puzzle Tilings
This week I worked a little more on my generative puzzle generator - I was wondering what it would look like to combine it with my code for irregular grids, albeit still a bit rough around the edges it did end up working out:


It was actually quite tricky to coordinate the connections between the irregular rectangular tiles - if done manually, you'd have to check which tiles are adjacent and at what positions their adjacency falls which is non-trivial.
I cheated a little, and create a preliminary regular square grid of puzzle tiles, for which we already lock in place the adjacency between each of the tiles. This grid is then overlayed it with an irregular grid that will then simply imitate the adjacency of the square tiles - if there is a shared edge that is. Maybe it's not a hack, since it still required quite a bit of code. Here's two debug outputs to visualize what's actually going on behind the scenes:


Maybe once I've wrapped up this project I can make a proper write-up. I'm also interested in seeing what it would look like when adapted to other tesselations, and in the future maybe I can also figure out how to bring this to life and create physical versions of these generative puzzles.
### Designing Landing Pages and making things wonky
This past week I've been hard at work re-designing and re-structuring the blog - there's still sooo much to be done, but I'm slowly etching my way closer to something that I think I'll be really proud of:

I shared a couple of WIPs and asked for feedback over in [Raph's birbsnest discord](https://discord.gg/xawSKAAG3N?ref=gorillasun.de), which led to an interesting chain of events where Dave suggested adding a tiny css rotation to every element of the page:

This inspired Jordanne to create a tiny script called Wonky.js that does exactly that:

[](https://wonky-js.glitch.me/?ref=gorillasun.de)
[Link to Wonky.js](https://wonky-js.glitch.me/?ref=gorillasun.de)
So, what are you waiting for? Do the right thing and wonkify your page right now.
### A pit-stop at Unit London
Last week I went on a brief trip to the UK, visiting my partner who's recently started her PhD over there (so proud of her btw), and I used it as a chance to stop by Unit London that's currently exhibiting some works by Zach Lieberman and Ziping Wang. It was really awesome to see generative art in person for the first time. Zach's prints are really out of this world:
[](https://twitter.com/gorillasu/status/1763675306160718043?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1763675306160718043?ref=gorillasun.de)
Ziping Wang's oil paintings are also incredible up close, I had to double and triple check that they actually were oil paintings. If you're in London for some reason, I highly recommend passing by - entrance is free of charge!
## Music for Coding
I generally like to shout-out individual artists, but I've listened to this playlist so many times at this point I just had to share it - the cosmopolitan sound of the city pop genre might not be everyone's cup of tea, but to me it just instantly flips a *feel good* switch. Especially this playlist, with classics like Stay With Me by Miki Matsubara and Bay City by Junko Yagami, that just encapsulate the genre so beautifully:
That's it from me this week, hope you enjoyed this week's curated list of content - and now that you've made it through this week's newsletter, you might as well share it with someone that you know who might enjoy this kind of *content* \- sharing the newsletter is one of the best ways to support it!
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 45This week 📬 Weighted Voronoi Stippling - All about Color Spaces - Speaking in Net Language - fxhash comes to base - Zancan’s Aux Arbres - Global Design and Documentation Systems +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-45/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸** *If you're interested in sponsoring or advertising with the Newsletter - reach out!*
### Gorilla Newsletter 45
URL: https://www.gorillasun.de/blog/gorilla-newsletter-45/
Last updated: 2024-02-26T09:14:58.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 45th 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## Weighted Voronoi Stippling
When I read the title of the newest coding challenge I immediately dropped everything and had to watch it start to finish. This time around Mr. Shiffman breaks down quite a tricky one for us — Weighted Voronoi Stippling!
I'm super excited about this topic because it's something that I've looked into myself about 2 years ago, at a time when I was exploring Voronoi diagrams and Delaunay triangulations. Back then however I gave up on pursuing a stippling effect, because I ultimately couldn't figure out how to implement the algorithm.
If you look into it yourself, you'll come across the very same paper that Shiffman implements in the challenge - which makes up the very first result that comes up for the search query *Weighted Voronoi Stippling*:
[](https://www.cs.ubc.ca/labs/imager/tr/2002/secord2002b/secord.2002b.pdf?ref=gorillasun.de)
[Link to Paper](https://www.cs.ubc.ca/labs/imager/tr/2002/secord2002b/secord.2002b.pdf?ref=gorillasun.de)
The effect really comes to life when it's used to represent 3D scenes, such as the little mannequin/figurine that's shown in one of the paper's figures (see above) - it's fascinating how the human eye can make out shadows/illumination simply through the density of the individual points. That makes me think of a recent collaboration between Joannie Lemercier and Quentin Hocde that's also powered by a stippling algorithm, titled *Nuages Possibles*,in which beautiful cloudscapes are brought to life through many thousands of individual dots:

What's bonkers about this project is that each iteration was also sent out to collectors as a pen plot. Poor plotter. | [Link to Project](https://www.fxhash.xyz/generative/slug/nuages-possibles?ref=gorillasun.de)
But what actually are Voronoi Diagrams? A Voronoi diagram is essentially a type of space partitioning, in which a 2 dimensional surface is split into individual polygons based on the distance to a set of points that's scattered across this surface - we basically need to distribute some points on a plane as a starting condition to construct a Voronoi diagram. The defining characteristic of each polygon is that it corresponds to the region that is closer to a specific point than to any other point in the set.
Here's what this looks like, next to some art I made with the concept back from Genuary 2023:


[Link to Wikipedia page on Voronoi Diagrams](https://en.wikipedia.org/wiki/Voronoi%5Fdiagram?ref=gorillasun.de)
Voronoi Diagrams are also closely related to Delaunay Triangulations, in fact, they're duals! This means that we can derive a Delaunay Triangulation from every Voronoi Diagram and vice versa - we can do so by simply connecting the centroids of each two adjacent Voronoi regions with a line. Here's what this looks like, as well as some art I made with Delaunay triangulations:


A fun fact here is that Delone, the mathematician that came up with/discovered this kind of triangulation, actually knew Georgy Voronoy, and if you're curious about some of the history between these two types of fascinating patterns, I encourage you to check out something I've written about it:
[Delaunay Triangulation and Voronoi DiagramsThis is the first one of a two part series of blog posts on Delaunay Triangulations. In this one we have a look at artworks that have been created with Delaunay Triangulations, a little bit of it’s history, possible strategies to create them, and the related Voronoi Diagram.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/delaunay-triangulation-and-voronoi-diagrams/)
If you want something a bit more technical, and want to challenge yourself with an algorithm that can construct a Delaunay triangulation from an initial set of points, here's an explanation of the Bowyer-Watson algorithm:
[Bowyer-Watson Algorithm for Delaunay TriangulationThe Bowyer-Watson algorithm for Delaunay triangulation is maybe one of the easier methods to implement and understand for obtaining a Delaunay Triangulation.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/bowyer-watson-algorithm-for-delaunay-triangulation/)
But back to the main topic, how do Voronoi Diagrams lead us to a Stippling effect? There's this cool algorithm called Lloyd's relaxation, that iteratively 'relaxes' a Voronoi diagram until all of the individual regions attain a somewhat equal size, essentially iteratively nudging the seed points that predicate the individual regions in the direction of their centroids - here's what this looks like:

[Link to Tweet in which I originally shared this GIF](https://twitter.com/gorillasu/status/1536349815931654144?ref=gorillasun.de) (back from 2022)
[](https://en.wikipedia.org/wiki/Lloyd%27s%5Falgorithm?ref=gorillasun.de)
[Link to Wikipedia page about Lloyd's relaxation](https://en.wikipedia.org/wiki/Lloyd%27s%5Falgorithm?ref=gorillasun.de)
This already looks really cool, but it's not very interesting since the resulting diagrams will always end up looking similarly even after the relaxation has come to a conclusion.
However, what if we modified this procedure, and relaxed the Voronoi diagram based on some probability distribution? Meaning that we don't nudge the seed points towards the geometric centers of the cells, but rather in a weighted direction, towards a weighted centroid. This weighted centroid could for example be derived from the underlying pixel values that fall under the Voronoi cell, nudging the seed points in the direction of darker colors, ultimately achieving the stippling effect described when we place an image underneath our Voronoi diagram.
And this is the part that I couldn't figure back then, how to calculate the weighted centroid basically - that's where Shiffman comes in, tackling it in the latter part of the video! I haven't had time to experiment with it yet but I'm super excited to do so. And kudos, the recent coding challenges have just been banger after banger!
## Okay, Color Spaces
**My therapist:** *color spaces aren't real, they can't hurt you...*
**Color Spaces:** *RGB, CMYK, HSB/HSV, HSL, LAB, YUV, XYZ, YCbCr, LCH (CIELCh), sRGB...*
If you've ever wondered about Color Spaces, what the differences are, what each one of them is useful for, why we need so many and why there are so many in the first place - this is likely going to be the last article that you'll need to read about the topic. Eric provides us with all of the answers in this massive article:
[](https://ericportis.com/posts/2024/okay-color-spaces/?ref=gorillasun.de)
[Link to Article](https://ericportis.com/posts/2024/okay-color-spaces/?ref=gorillasun.de)
[Okay, Color Spaces — ericportis.comEric Portis](https://ericportis.com/posts/2024/okay-color-spaces/?ref=gorillasun.de)
I was shocked to learn that Oklab, a perceptual lab-like color space, is actually only 4 years old, and proposed in 2020 by Björn Ottoson through a blog post of his - now tell me that you can't change the world with a blog - and it actually seems to have become quite a big deal seeing that it has a number of advantages in certain areas:
[A perceptual color space for image processingA perceptual color space for image processing A perceptual color space is desirable when doing many kinds of image processing. It is useful…Björn Ottosson](https://bottosson.github.io/posts/oklab/?ref=gorillasun.de)
Unfortunately I'm all out of time for investigating strange internet rabbit-holes this week, so you'll have to be satisfied with this thread over on the Processing forums about the Oklab color space:

How time flies, feels like the 'OK boomer' meme was trending just yesterday | [Link to Thread](https://discuss.pixls.us/t/oklab-colorspace/21964/4?ref=gorillasun.de)
Anyway, lots of cool stuff here again. Read the article.
## Speaking in Net Language
Credit for discovering this one goes to Tom aka pumaparded, sharing it over in the birbsnest discord's inspiration channel - leading me to one of the most fascinating reads I've had in a while. Michael Connor recounts the story behind Olia Lialina's net.art masterpiece "My boyfriend came back from the War":
[Speaking in Net Language: My Boyfriend Came Back from the WarOn hypertext and memory in Olia Lialina’s groundbreaking 1996 work.RhizomeMichael Connor](https://rhizome.org/editorial/2016/nov/10/my-boyfriend-came-back-from-the-war/?ref=gorillasun.de)
If you're not familiar with Net art, short for networked art, it's and artform and art movement that emerged in the 1990s with the increasing accessibility of the internet, and used the emerging web technologies as the primary medium - it's a really interesting piece internet history to dive into:
[net.art - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects_2.jpg/220px-Teo_Spiller_net.art.trade_(net.art)_2.jpg)](https://en.wikipedia.org/wiki/Net.art?ref=gorillasun.de)
Olia Lialina's work is a prominent example of this. In "My boyfriend came back from the War" she retells the reunion with her boyfriend as an interactive web experience, and it can still be accessed [here](http://www.teleportacia.org/war/wara.htm?ref=gorillasun.de).
I have to say it again, the Rhizome article is an absolutely fascinating read, not just analysing Lialina's work, but also contextualizing it and providing insights and commentary on the net.art movement from a historical point of view. Olia Lialina's work is part of the Net Art Anthology, where efforts have been made to present and preserve many more of these kinds of works:
[NET ART ANTHOLOGYRETELLING THE HISTORY OF NET ART FROM THE 1980S THROUGH THE PRESENT DAY.NET ART ANTHOLOGY](https://anthology.rhizome.org/?ref=gorillasun.de)
## Web3 News
The FOMO this past week has been absolutely unreal with all of the NFT Paris shenanigans in full-swing and seeing everyone having a good time over in France - if you're curious about all of that you just gotta hop on over to Twitter and check out what everyone's posted over the past week:
[](https://twitter.com/thefunnyguysNFT/status/1761739362335678936?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/thefunnyguysNFT/status/1761739362335678936?ref=gorillasun.de)
Doesn't mean that there hasn't been some other cool Web3 things to report on throughout the week 👇
### fxhash launches on base
[](https://twitter.com/fx%5Fhash%5F/status/1760418609292316746?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1760418609292316746?ref=gorillasun.de)
Holup... what is Base?
*Base-ically an Ethereum L2!*
... and what is an L2? 😅
L2s are solutions built on top of a blockchain's mainnet (L1) to improve scalability, and usually drastically lower gas fees! Base is actually only one of Ethereum's L2s, you might have heard other terms thrown around, like Polygon and Arbitrum that refer to other L2s. I have no idea how they work from a technical point of view, but I found this nice article by Lipsa Das from Ledger, that provides us with a good and easy to understand overview:
[What Are Ethereum Layer 2 Blockchains and How Do They Work? | LedgerBuilt on top of Ethereum, Layer 2 blockchains help speed up transaction processing while keeping the costs down for the L1 network.LedgerLipsa Das](https://www.ledger.com/academy/topics/blockchain/what-are-ethereum-layer-2-blockchains-and-how-do-they-work?ref=gorillasun.de)

If I'm understanding this correctly, minting an NFT on base should then theoretically also make it available on mainnet Ethereum? Depending on how the L2 stores the token on the blockchain? Maybe one of you guys can chime in on this. But anyway, big W for fxhash - not an L at all.
### Aux Arbres by Zancan
And while we're talking about base, in light of the Coinbase's France kick-off, Zancan was tasked with creating a generative artwork for the occasion - and it turned out to be a really impressive one:


[Link to Thread](https://twitter.com/Highlight%5Fxyz/status/1760024190529245419?ref=gorillasun.de) | [Link to Project](https://highlight.xyz/mint/65d4c33f139818e311c5011e?ref=gorillasun.de)
Continuing with his signature aesthetic, Zancan lets us take individual snapshots of larger growths with *Aux Arbres,* that translates to "To the Trees", each mint presents part of the branches or trunks of a number of trees. What's special about this generative artwork is that each unique mint from *Aux Arbers* is part of a bigger whole, in the literal sense of the word; highlight provides us with a special interface to visualize where each one of those minted snapshots falls and to which tree they belong:
[Aux Arbres by zancan 🌿Aux Arbres “To the Trees” Infinite variations around the universal symbol of a tree. Browse the trees at https://auxarbres.xyz - Generative Art - Made with original JavaScript code - zancan, 2024Highlight](https://highlight.xyz/mint/65d4c33f139818e311c5011e?ref=gorillasun.de)
What's more, it's a free mint, and the gas fees are super low due to it being minted on base - so if you've every wanted a Zancan piece, now's your chance! The project's still open for minting for a couple of days, and at this point over 50k individual snapshots have been taken.
### Iroh: IPFS Reimagined
Recently learned about Iroh, an IPFS alternative that seems to do things in a little bit of a different manner, aiming to be a more efficient and scalable version of IPFS:
[](https://www.iroh.computer/design/iroh/?ref=gorillasun.de)
[Link to official page](https://www.iroh.computer/design/iroh/?ref=gorillasun.de)
But there seem to be some mixed opinions on the project when juxtaposed with IPFS.
## Thoughts on a Global Design System
An interesting article from early January that I only recently came across is a piece by Brad Frost, titled 'A Global Design System'. The article caught my eye because when the term 'global' is attached to something, it often incites political undertones. In recent years the globalization debate has become more nuanced, more politically charged, and opposing views have emerged around it in different context.
Moreover, the notion doesn't only concern itself with global trade and economics, but can also be conceptually extended to other practices, like web design in this instance:
[A Global Design SystemTL;DR: This is a call to action to create a Global Design System that provides the world’s web designers & developers a library of common UI components. A Global Design System would improve the quality and accessibility of the world’s web experiences, save the world’s web designers and developerBrad FrostBrad Frost](https://bradfrost.com/blog/post/a-global-design-system/?ref=gorillasun.de)
Frost argues that we live in *a duplicative present*, where organizations invest valuable labor time and resources into creating design systems that are to a large extent the same - naturally because everyone needs to adhere to the same web standards. The main argument of the article is that we'd alleviate much of this wasted time with a unified global design system - Frost doesn't just preach, but also follows up with an actual proposal for such a design system.
You could now argue that it is not necessarily a bad thing that different companies are creating their own individual proprietary design systems - isn't it a good thing that there's diversity in brand identities and how they design things? On a related note, I only learned about 'A Global Design System' through a more recent article by Piccalilli that argues for a similar globalization scheme in the context of documentation platforms:
[A Global Documentation Platform - PiccalilliInspired by the recent “A Global Design System” article, I talk about what worries me: the future of MDN and a possible alternative to it.Piccalilli](https://piccalil.li/blog/a-global-documentation-platform/?ref=gorillasun.de)
And another interesting piece of content by Brad Frost is this talk he gave at TEDx, almost a decade ago now, that I think pertains to many of the creative folk on here:
## Web Dev Things
### TC39 Meeting Notes
Ecma International's TC39 is a group of JavaScript developers, implementers, and academics, that collaborates with the community to maintain and evolve the definition of JavaScript - and they recently held their 100th meeting. Hemanth captured all of the points of discussion of this 100th meeting in form of a dev.to writeup:
[Updates from the 100th TC39 meetingThere were several items on the agenda, this post focuses on feature proposals and their progress…DEV Community](https://dev.to/hemanth/updates-from-the-100th-tc39-meeting-4j2f?ref=gorillasun.de)
### Interactive Guide to SVG Loading Spinners
Who doesn't love loading spinners? A repeat offender of the Newsletter, Sébastien Noël from fffuel, wrote this cool interactive guide to making them:
[Making SVG Loading Spinners: An Interactive GuideLearn to create a cool SVG loading spinner with this step-by-step guide. We’ll use attributes like stroke-dasharray and stroke-dashoffset to make it easy.fffuel](https://fffuel.co/svg-spinner/?ref=gorillasun.de)
### Book Reviews by Adam Majmudar
Adam Majmudar built a really cool page for his book reviews, with an interactive scrolling bookshelf that lets you click on the individual books to read their reviews:
0:00
/0:13
1×
[Link to Tweet](https://twitter.com/MajmudarAdam/status/1760485637680198099?ref=gorillasun.de)
You can check it out here:
[Books | Adam MajmudarI’m a constant learner and aspiring technical generalist. I’m also a founding enginer at thirdweb and on gap year from the University of Pennsylvania.Adam Majmudar](https://adammaj.com/books?ref=gorillasun.de)
And also have a look at the code here:
[adammaj.com/components/Bookshelf.tsx at main · adam-maj/adammaj.comadammaj.com | Built with Next & Chakra. Contribute to adam-maj/adammaj.com development by creating an account on GitHub.GitHubadam-maj](https://github.com/adam-maj/adammaj.com/blob/main/components/Bookshelf.tsx?ref=gorillasun.de)
## The Importance of Page Footers
I got sick again this week, and came down Tuesday morning with some sort of food poisoning, which left me bedridden for the most of Tuesday and Wednesday. The older I'm getting, the more sensitive my stomach is becoming it seems.
I did however come out on top of it pretty quickly, had a relatively clear head again on Thursday, and decided to pick up the re-design of the blog again as a way to ease myself back into things. I'd actually started working a little on designing a page footer back in January, hence it made sense to resume with that and try to finish it. A page footer is quite an important part of a webapge - some studies show that users will often scroll all the way down to the bottom of the page before actually reading any of the actual content of a page, usually in search of more information about the page, or alternatively as a navigation portal:
[Why Optimizing Your Website Footer is More Important Than You ThinkThe website footer is one of the most overlooked areas of a company’s website. Learn why it deserves more attention and how to optimize it.Jon MacDonald](https://www.linkedin.com/pulse/why-optimizing-your-website-footer-more-important-than-jon-macdonald?ref=gorillasun.de)
Here's what I have come up with so far - and I must say, I'm quite happy with how it turned out:
0:00
/0:05
1×
Wowowow, fancy schmancy animated cards. Figuring out the JS part that slides in the card description from below was actually trickier than I expected.
It's still a bit rough around the edges, and the layout of the footer card still needs to be fixed up a little - but I'm quite proud of the idea of including the footer as an element within an article grid, making it feel sort of like a business card, while also being somewhat modular in design such that I can include it on other pages and grids as well.
I also ended up spending quite some time designing the surrounding article cards, which I think will replace the current card design that you can find over on the article/archive page - that is currently a bit bare-bone. It's always a question of how information rich you want to make the elements, so that you catch the user's eye and make them want to click on it.
The trickiest part here was overlaying text on an image; if the images aren't hard coded, then you can't always predict on top of what color your text will be placed - sometimes there will not be enough contrast for the text to be readable. When using white text, a solution is to underlay the text section of the cards with a soft blur that transitions to a darker color towards the bottom. This way we bring back enough contrast and the text becomes readable again.
Also, you might've noticed the lack of a Gorilla Updates section - I thought I might try something a little different and give the section a proper title in context of what I've been working on in throughout the week. Expect a lot more web dev/design mini updates in the coming weeks!
## Music for Coding
Neon Indian is one of those artists that has their very own sonic identity - it really isn't comparable to anything else. I thoroughly enjoy listening to his tracks every now and then. Drawing inspiration from 1980s pop and electronic music, with heavily analog and textured sounds, the overall mood he evokes is often described as nostalgic, capturing a sense of dreamy escapism:
**And that's it from me this week, ~~while I'm typing out these last words I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.~~**
Maybe you've noticed already, I've tried a little bit of a different tone/writing style this week, and now that I'm reading the previous closing statement, it's just a bit too *meh* for my taste, let's try something a bit more quirky - it was definitely a lot of fun putting together this week's issue.
And now that you've made it through this week's newsletter, you might as well share it with someone that you know who might enjoy this kind of *content*, or not, but send it anyway - what's the worst thing that could happen?
**If you've read this far, thanks a million!** *And if you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 44This week 📬 Lauren Lee McCarthy on Software Values - Intro to sizecoding with Mathieu Henri - Patt Vira tutorials - Tezumie’s AIJS Editor - Vetro Editions at Galeria Data - The Confusing 2024 Crypto-Art Meta - OpenAI’s text-to-video Sora model +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-44/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
*If you're interested in sponsoring or advertising through the Newsletter - reach out!*
### Gorilla Newsletter 44
URL: https://www.gorillasun.de/blog/gorilla-newsletter-44/
Last updated: 2024-02-19T18:26:15.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 44th 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 - as well as a sprinkle of my own endeavors.
That said, **hope you're all having a great start into the week!** Let's get straight into it! 👇
## All the Generative Things
### Lauren Lee McCarthy on Software Values
Yet again, Monk blesses our timelines with a stellar interview, this time with none other than Lauren Lee McCarthy. Having created P5 back in 2013, and having been part of the board of directors for the Processing Foundation from 2015 till 2021, she's done tremendous efforts in creating a more inclusive and accessible community for those that have not historically had the privilege to learn code and tech literacy.
More than that, she is also an accomplished artist that creates profound conceptual work. In their conversation they address her most recent project 'Seeing Voices' that's releasing with Bright Moments as part of the Paris AI collection. The artworks are a curated set of collages, in which a system combines AI generated messages with generative compositions consisting of drawings by McCarthy.

The generated messages are an echo from her previous work 'Voices in my head' that she collaborated on with Kyle McDonald. Both pieces are about attributing meaning to software, asking questions about control and how software can influence and change us. McCarthy states that software is not a neutral product; that it inherits the ideas, biases and values of its creators.
I believe that this is an incredibly important topic that isn't talked about enough. We engage with software on a daily basis, what effect does it have on us? How are we collectively changing through our interactions with it?
[Lauren Lee McCarthy on Software ValuesLauren Lee McCarthy, celebrated artist, UCLA professor and creator of p5.js, spoke with Peter Bauman (Monk Antony) about Seeing Voices, her first long-form generative art project. They also discuss collaborating with AI and inclusive community building, while questioning the inherent values embedded in software.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/lauren-lee-mccarthy-on-software-values?ref=gorillasun.de)
And if that's not enough Le Random for you, there's another interview with Linda Dounia, that I just haven't had the time to dig into yet:
[Linda Dounia on Memory MachinesArtist Linda Dounia spoke with Peter Bauman (Monk Antony) about the potential of AI to combat cultural as well as biological loss, using her project Flore Perdue as a springboard.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/linda-dounia-on-memory-machines?ref=gorillasun.de)
### Introduction to size-coding by Mathieu Henri
In last week's newsletter I mentioned Lovebyte 2024, a yearly online celebration of everything related to sizecoding and the demoscene. Although the 2024 edition of the event is over now, there's still a couple of cool things that I missed and that are very worth sharing still.
For instance, the closing ceremony that took place the same day I published the previous issue, in which all of the winning submissions were presented. The event concluded with a whopping 351 submissions from participants all around the world:
Another really cool recording that came from the event, is this awesome video seminar by Mathieu Henri who's been part of the demoscene since the very start, and still highly involved. In the video he introduces us to sizecoding in JavaScript and also tells us a little bit about the history of the demoscene:
Mathieu starts us off with some of the features that make Javascript a great language for sizecoding - pointing out its leniency and some of the shenanigans that allow us to shave off quite a few bytes from our code. He proceeds to give a recount about the early days of the demoscene, showcasing some of the very first competitions that were held in that context and pointing out the competition websites - that somehow still work today - where the participants' submissions were documented, such as [Web4096](http://web4096.message.sk/?ref=gorillasun.de) held in 1999, as well as the impossible [256B](http://www.p01.org/256b%5Fhtm/?ref=gorillasun.de) challenge in 2002, where you had to somehow make a sketch in only 256 bytes.
Mathieu actually documented his participation in some of these events over on his portfolio and even provides us with the code that he submitted back then, alongside modern equivalents - I was really blown away by his entry to the 256B challenge in which he made a Metaball sketch in just 256 bytes:


[Link to Matthieu's Portfolio](http://www.p01.org/256b%5Fhtm/?ref=gorillasun.de)
### Patt Vira on the Persistence of Vision
I've become a huge fan of Patt Vira's content over on YouTube; her code-along tutorials are very polished and easy to follow - her video on marching squares got me back into exploring the algorithm in more depth for myself after Genuary concluded, and unlocked a lot of new ideas that I wouldn't have otherwise had.
Patt has a knack for exploring interesting ideas. Here's one that I highly enjoyed, in which she explores the concept of 'Persistence of Vision' where a drawn cube only appears within a noisy grid of pixels when it is in motion:
Persistence of Vision is a phenomenon that occurs when the visual perception of an object remains for a few brief moments after the fact that it has actually vanished from our vision. A good example of this are lightning strikes at night-time, you can often still see their outline for an instant after they've struck. On the Wikipedia page there's a nice excerpt from Leonardo da Vinci's notebook on this:
[](https://en.wikipedia.org/wiki/Persistence%5Fof%5Fvision?ref=gorillasun.de)
[Link to Wikipedia page](https://en.wikipedia.org/wiki/Persistence%5Fof%5Fvision?ref=gorillasun.de)
This effect seemingly also works great in the setting of a noisy grid of pixels. Patt was inspired by a recent video from Chris Long, in which he goes over how he first discovered that effect back in the eighties, while experimenting with line intersections on his home computer - noticing that the apparent shapes could only be made out while they were in motion:
The comment section to the video is also highly interesting with other chiming in with their thoughts on the effect. Go and show both of their channels some love and leave them a sub and a thumbs up! Definitely recommend keeping up with what Patt's doing - I have a hunch that we're going to see a lot more stellar content from her in the coming months.
### Tezumie's AIJS Editor Updates
Tezumie has been hard at work and consistently adding new features to his AI powered code editor - it's been really exciting seeing him turn his initial idea into more and more of a complete platform. Now it even boasts profile pages for users, the ability to save sketches, as well as an explore page and many more cool and convenient things. Tezumie frequently posts updates about it in the AIJS discord:

[Link to AIJS discord](https://discord.gg/CRrPc5Tuqt?ref=gorillasun.de)
One update that I've been super excited about and have to yet take for a spin is the custom embeds, I mentioned it to Tezumie a couple of weeks ago, asking about it and explaining why I don't usually use the P5 editor's or OpenProcessing's embeds. It's mainly due to them slowing down the initial page load since they have to load in additional script files - if you have multiple embeds on a single page (a tutorial for instance) they don't share those resources, but rather, each individual embed needs to load in its own assets:
[](https://twitter.com/aijs%5Feditor/status/1758969520981487749?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/aijs%5Feditor/status/1758969520981487749?ref=gorillasun.de)
Checking out the docs for AIJS it's always a breath of fresh air when effort is put into that aspect of a software - I thought that it was a really nice touch to also support Farcaster frames as a potential embed:

I think what's really cool about AIJS, is that it's made by someone that is a creative coder and generative artist themself - building the relevant features that are useful for that specific workflow. Openprocessing, you better watch out, Tezumie's coming for you!
## Web3 News
### A Web3 Travel Guide for Paris
Next week is going to be big with everyone gearing up for the annual NFT Paris show - if you're visiting, you might also want to stop by some of the other spots in Paris that hold significance in the Web3 space. Ana Maria wrote a Web3 travel guide for the occasion over on Forbes, pointing out the important galleries in the area with some of their upcoming shows:
[Web3 Travel Guides: The Parisian Crypto Art SceneParis, the City of Light, has long been a magnet for the cultural avant-garde. In the case of Web3 innovators, the same holds true.ForbesAna María Caballero](https://www.forbes.com/sites/digital-assets/2023/10/30/web3-travel-guides-the-parisian-crypto-art-scene/amp/?ref=gorillasun.de)
Btw, if you end taking any cool pics or see any cool generative art and Web3 related things, send'em over, would love to include them in the next issue of the newsletter!
### Vetro Editions at Galerie Data
If you end up finding yourself in Paris tomorrow (20th of February), you'll have to stop by Galerie Data, they're hosting our favorite genart publishing house Vetro Editions, celebrating the launch of four of their books alongside some of the artists featured in those books:

Their roster includes the second issue of Matt DesLaurier's Meridian art book, Julien Gachadoat's "Pathways" that recently came out, "Tracing the Line" that recounts the plotter work of many pioneering and contemporary generative artists, as well an entirely new addition, that just came out this past week for RCS:


[Link to RCS](https://www.clubnft.com/book?ref=gorillasun.de) | [Link to Tweet](https://twitter.com/artnome/status/1758634110594191498?ref=gorillasun.de)
RCS also published a complementary announcement post over on their site, in which Carla Gannis from the RCS team recounts the motivations behind starting the site, their position in amplifying the voices of the crypto art scene as well as a brief overview of what's happened in recent years. I believe that the book features the 250 articles that have been published on RCS over the course of the past 2 years, and likely more material. If you're interested in getting the book, you can learn a bit more about it here:
[ANNOUNCING THE RCS BOOKAfter two years and more than 250 articles, it’s time to put digital art’s global community into printCarla Gannis](https://www.rightclicksave.com/article/introducing-the-rcs-book-right-click-save-the-new-digital-art-community?ref=gorillasun.de)
Just to disclose, I'm not sponsored by any of the mentioned parties - I simply think that Vetro Editions makes really awesome books, and all of these are very worth having in your genart book collection.
### The Confusing 2024 Crypto-Art Meta
Although 2024 is shaping up to be a year with many new and exciting Web3 developments, and while there's many efforts being made into making things more interoperable, it also seems that things are becoming more and more fragmented - I'm personally having a really hard time to keep up with everything, and I believe I'm not the only one in this.
Sgt\_slaughtermellon wrote an interesting think piece about the current state of crypto art, providing us with the bigger picture of what's happening with the different marketplaces and chains, how to adapt as an artist, and that it's all just a bit too chaotic:
[The Confusing Meta of Early 2024 Crypto-ArtIf you’re an artist who has been around NFTs for a minute but aren’t considered “blue chip” - what’s this year looking like for you? I’m going to take a second to offer some thoughts on the current scene, the market, and toss out some potential strategies.](https://mirror.xyz/sgtslaughtermelon.eth/GUQMZGtax7C8VzBOC-8yJtLwc3wszvSR7nxx82YQIkI?ref=gorillasun.de)
### Anna Lucia's Spellbound
One other thing that I wanted to share here is Anna Lucia's newest project over on fxhash, a redeemable collaboration with the German fashion lab Phoebe Heess. Conceptually, the artwork is fascinating: via fxhash's code driven parameters, collectors can record their voice or upload an audio file, where the waveform of that audio then determines the pattern visualized on the scarf:

[Link to Tweet](https://twitter.com/annaluciacodes/status/1758549059063697920?ref=gorillasun.de)
Being the first manufactured redeemable on fxhash makes this one a very special digital token to collect.
## Tech and AI
### Mario Kart 3 in the Browser
A fan of Mario Kart? Well you can now play it in your browser [here](https://mario-kart-3-js.vercel.app/?ref=gorillasun.de#r=R9C3D), and you can even build your own version of it using Alex Lunakepio's recently open sourced project:


[Link to Tweet](https://twitter.com/Lunakepio/status/1757060065306022315?ref=gorillasun.de)
Here's a link to the github repo, which has amassed a whopping 1.2k stars in just a couple of days - there isn't too much to say here, simply that it's a really cool project:
[GitHub - Lunakepio/Mario-Kart-3.jsContribute to Lunakepio/Mario-Kart-3.js development by creating an account on GitHub.GitHubLunakepio](https://github.com/Lunakepio/Mario-Kart-3.js?ref=gorillasun.de)
### 10 Minecraft Facts by Alan Zucconi
Minecraft has quite a long history, and was very popular when it first came out in 2009, but slowly fizzling away over the 2010s. The game then saw a massive boom in 2021 when PewDiePie returned to the game, popularizing it again and allowing it to have somewhat of a renaissance. And it seems to have retained its popularity even in 2024, with over half a million daily players.
I'm bringing all of this up because Minecraft is also interesting from a computational point of view, recently came across a re-tweet from Alan Zucconi, a thread that he'd posted back in 2022 enumerating 10 interesting facts about the game, mainly revolving around its world generating system, that I found highly interesting:
[](https://twitter.com/AlanZucconi/status/1533124547695845376?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/AlanZucconi/status/1533124547695845376?ref=gorillasun.de)
If you don't know Alan Zucconi, he's a bit of a super star in the game dev scene, having created an impressive number of tutorials on his blog - if you're getting into game dev things you need to check it out:
[Tutorials - Alan ZucconiGame Development, Machine Learning, Programming and Electronics. Browse all the tutorials.Alan Zucconi](https://www.alanzucconi.com/tutorials/?ref=gorillasun.de)
### OpenAI's text to video model Sora
It's been a minute since I've been genuinely impressed by AI, last time I was floored was when I took DALL-E3 for a spin (which is freely accessible via the Bing browser). OpenAI's new Sora model seems to take things to the next level by generating coherent and realistic high quality videos given an input prompt. OpenAI's already shared a number of videos in their announcement page showcasing some of the strengths and weaknesses of the new model:
[Sora: Creating video from text](https://openai.com/sora?ref=gorillasun.de)
The videos aren't perfect - it's not so difficult to determine that they're still clearly AI generated with specific giveaway details - for instance, it doesn't really know too much about the physics of the real world. One of the generated videos that's been making the rounds features a team of archeologists where they dig up a plastic chair - the chair materializes from the sand and floats around the scene almost like it isn't a part of it:
0:00
/0:20
1×
The input prompt to this one was: "Archeologists discover a generic plastic chair in the desert, excavating and dusting it with great care." | [Link to page in which the video is shared](https://openai.com/sora?ref=gorillasun.de)
The chair was most definitely an unpaid actor in this scene. Another thing that immediately jumped out to me was how eerily synchronous motion sometimes is in the generated videos, like the manner in which pedestrians in the background walk or the waves crashing onto the cliffs featured in some of the other videos. It all feels a little surreal. But on the other hand it seems that we're incredibly close to what might just alter the entire movie, VFX and video game industry - not only can the model generate video based on input prompts but it can also do so from input images and videos. Here's a link to a more technical write-up from the OpenAI team:
[Video generation models as world simulatorsWe explore large-scale training of generative models on video data. Specifically, we train text-conditional diffusion models jointly on videos and images of variable durations, resolutions and aspect ratios. We leverage a transformer architecture that operates on spacetime patches of video and image latent codes. Our largest model, Sora, is capable of generating a minute of high fidelity video. Our results suggest that scaling video generation models is a promising path towards building general purpose simulators of the physical world.](https://openai.com/research/video-generation-models-as-world-simulators?ref=gorillasun.de)
### AlphaCode2: Gemini for Competitive Programming
Google recently replaced their previous AI powered chat partner Bard with a more powerful LLM called Gemini:
[Introducing Gemini: our largest and most capable AI modelGemini is our most capable and general model, built to be multimodal and optimized for three different sizes: Ultra, Pro and Nano.GoogleSundar Pichai](https://blog.google/technology/ai/google-gemini-ai/?utm%5Fsource=yt&utm%5Fmedium=social&utm%5Fcampaign=og&utm%5Fcontent=&utm%5Fterm=#sundar-note)
And it seems that there are quite a few differences, with Gemini leveraging a more modern model architecture similar to the other chat-bots out there, multi-modality being an important feature to have for it to compete. What's more is that they built another model on top of Gemini that's specifically devised for solving programming problems - even at the competitive level - called AlphaCode2\. They announced it in the following video:
The cool thing about AlphaCode2 is that it not only provides an answer but also the reasoning and how it approaches the given problems:

As of now it is not a public model and is still kept secret, so we'll have to take their word for it - looking into the previous AlphaCode model I also couldn't really find any concrete pointers to where it can be taken for a test run, or if it has been open sourced somewhere except for this [demo](https://alphacode.deepmind.com/?ref=gorillasun.de#layer=18,problem=114,heads=00000000000). They do however have an interesting writeup on the model back from 2022:
[Competitive programming with AlphaCodeSolving novel problems and setting a new milestone in competitive programming.Google DeepMindThe AlphaCode team](https://deepmind.google/discover/blog/competitive-programming-with-alphacode/?ref=gorillasun.de)
## Gorilla Updates
What have I been up to this week? I resumed my exploration of marching squares - extending the code to also become able of finding the contours of arbitrary polygonal shapes. Here's what this looks like:

I think there's already some interesting possibilities here that are worth exploring more in depth in the future. The trick to do this is by using raycasting to check if grid vertices fall under the areas of the polygonal shapes, setting them to active if they do, such that the marching squares algo can subsequently find the contours. This can be extended with a point-line distance function to determine how close the grid vertices are to the polygonal region, and setting them to an active value based on proximity - which leads to this nice rounded off look of the contours that I thought looked really great.
This all started after browsing Pinterest for inspiration, a platform I've grown to love more and more over the past year. I found an interesting artwork that immediately drew me in:



Inspiration / Sketchbook Idea / Generative Shape
I couldn't find the artist behind the drawing (image on the left, if you know that artist let me know), but I thought that it was brilliant and gave me many ideas - I immediately had to ask myself what it would look like in generative form. The first step would be to figure out how to create the shape of a puzzle tile algorithmically. And it turned out to be trickier than I initially assumed.
Whenever you're trying to make any shape that's a bit more complicated than a simple circle or a convex regular n-gon you run into all sorts of problems. Although marching squares is a viable approach, it also comes with a lot of problems. For instance, the smoothness of the final 'rendered' shape entirely depends on the resolution of the underlying grid that's used to trace the contours - and the higher that resolution of that grid, the longer it takes for the shape to render.
The code ended up being an absolute mess when I finally managed to make it produce a the shape of a puzzle tile, which can be done by lining up 4 circles at the edges of a square and then letting the contour algo do its magic. Inward dents are achieved by setting the circles as "negative" and making them toggle off the grid vertices. One thing that I really wanted was the round and organic feel that many puzzle tiles have, which was difficult to do with how the vertices of the final shape were distributed along its contour.

After spending nearly three days on this exploration, I ultimately came to the conclusion that marching squares was not the right approach for this task - I probably could have spent some time optimizing my code but I just wanted to get the idea to work and see what it looked like. I ended up using the polybool.js library that allows the compositing of geometric shapes via boolean operations, a topic that I'm likely going to talk about more at some point. Here's what I ended up with:


Happy with where it's at now, but this is still not the final form of it.
## Music for Coding
The opening to Evangelion is an absolute masterpiece; arguably one of my favorite songs of all time - I must've listened to a few dozen different versions of it over the past years, and I recently had a craving to listen to it again. One of the results that popped up in YouTube search was this a Capella version by Ignite Vocal, and I was instantly floored - what an absolute banger:
The group's simply stellar, there isn't a single thing to dislike about their rendition. Their other stuff is great as well. I'm surprised that they only have 619 subscribers on their channel (at the time of writing this) - I think they deserve at least a hundred times that number.
**And that's it from me this week, while I'm typing out these last words I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 43A la recherche de Vera Molnár - Poems in Code - Pioneers of ’80s generative art - Matt DesLauriers’ Sierra - Lovebyte 2024 - Jeres’ Heuristics of Emotion - Simulating Infinite Grids - State of the Long-Form Generative Art Market +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-43/#generative-art-goes-international)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
*If you're interested in sponsoring the Newsletter or advertising - reach out!*
### Gorilla Newsletter 43
URL: https://www.gorillasun.de/blog/gorilla-newsletter-43/
Last updated: 2024-02-12T12:45:18.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 43rd 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 - as well as a sprinkle of my own endeavors.
**If you're interested in sponsoring the Newsletter - reach out! That said, hope you're all having a great start into the week! L**et's get straight into it!
## Generative Art goes International
It seems that everyone's properly recovered from Genuary 2024, and that a whole slew of generative art exhibitions are afoot around the globe - from Budapest to London, and all the way to Japan 🌎
### À la recherche de Vera Molnár
Vera Molnár passed away early December of 2023, just a month prior to what would have been her 100th birthday - she lives on however, not only through her art, but also through the new generation of generative artists for many of which she is still a big inspiration. Just two days ago on the 10th of February, the exhibition *À la recherche de Vera Molnár* kicked off at the Ludwig Museum for Contemporary Art in Budapest to celebrate her life's work:

[À LA RECHERCHE DE VERA MOLNAR – Artworks by Vera Molnar and Homages by Internationally Acclaimed ArtistsThe Ludwig Museum’s exhibition titled À la recherche de Vera Molnar pays tribute to the artistic legacy of Vera Molnar, who passed away shortly before her 100th birthday. Born in Hungary and educated at the Hungarian Academy of Fine Arts, Molnar lived and created in France from 1947 until her death. From 1968, she was among the first to create artworks using a real computer, and she is still widely regarded as one of the most significant pioneers of computer art.Ludwig Museum](https://www.ludwigmuseum.hu/en/exhibition/la-recherche-de-vera-molnar-artworks-vera-molnar-and-homages-internationally-acclaimed?ref=gorillasun.de)
A highlight of the exhibition's opening ceremony, was a talk given by Frieder Nake, another one of the generative art OGs. From what I see in the picture, it's remarkable how many people came together to celebrate Vera Molnár that day:

I couldn't find if there was a recording of the talk | [Link to Tweet](https://twitter.com/pointline%5F/status/1756009639555026974?ref=gorillasun.de)
Moreover, two tribute pieces were presented, one from Mario Klingemann and another by Iskra Velitchkova:


[Link to Quasimondo's Tweet](https://twitter.com/quasimondo/status/1756263413997613417?ref=gorillasun.de) | [Link to Iskra's Tweet](https://twitter.com/pointline%5F/status/1756352834977636676?ref=gorillasun.de)
In light of the exhibition, [Aurèce Vettier](https://twitter.com/aurecevettier?ref=gorillasun.de) was asked by the centre Pompidou to reflect on his collaboration with Vera back in 2023\. He wrote a beautiful article in which she pays tribute to the Grande Dame, describing how she never lost her passion for making art even with old age:
[AI, NFT: Vera Molnár, a step aheadAs early as the 1960s, Vera Molnár was exploring the infinite possibilities of computer-assisted art. A few months before her death at the end of 2023, at the age of 99, she was working on new works generated using... artificial intelligence. As the Musée National d’Art Moderne presents a major retrospective of her work, the artist aurèce vettier, who worked with her, recounts the outstanding creativity of an eternal pioneer.Centre Pompidouaurèce vettier/Paul Mouginot](https://www.centrepompidou.fr/en/magazine/article/ai-nft-vera-molnar-a-step-ahead?ref=gorillasun.de)
Over on Twitter he also lets us in on a little personal anecdote :

[Link to Tweet](https://twitter.com/aurecevettier/status/1754633111193690572?ref=gorillasun.de)
Many more words and resources about the exhibition and Vera Molnár were shared over on social networks - I merely tried to showcase the highlights here. If you somehow find yourself in Budapest, the Ludwig Museum is definitely worth a visit, with several other simultaneously ongoing exhibitions.
As an addendum, towards the end of the exhibition page, a nice little booklet is linked which I thought was very well made, but also very easy to overlook - here's some excerpts:


[Link to the Booklet](https://www.ludwigmuseum.hu/system/files/news/attachments/2024-02/LUDWIG%5FVeraMolnar%5F100x180%5Fbooklet%5F0125%5FIII.pdf?ref=gorillasun.de)
### Poems in Code
Poems in Code is a beautiful single screen exhibit set up in the middle of Ebisu square, a big open space located in the heart of Tokyo:


[Link to Takawo-san's Tweet](https://twitter.com/takawo/status/1756254542491263024?ref=gorillasun.de) | [Link to Takumanakata's tweet](https://twitter.com/takumanakata/status/1756189199664140452?ref=gorillasun.de)
The massive screen showcases animated pieces by Shunsuke Takawo, Zach Liebermann, Casey Reas, Seohyo, Alexis Andre, fingacode, and many other Japanese and international artists. Don't be scared by the following big block of Japanese text, you can find a complete list of artists + showcased artworks in this event page - translating it through your browser should do the trick:
[CCBT×恵比寿映像祭2024「Poems in Code——ジェネラティブ・アートの現在/プログラミングで生成される映像」 - シビック・クリエイティブ・ベース東京 \[CCBT\]CCBTの未来提案型キャンプを発展させ、大型ビジョンによるジェネラティブ・アート作品の上映を恵比寿映像祭202シビック・クリエイティブ・ベース東京 \[CCBT\] -](https://ccbt.rekibun.or.jp/events/poemsincode?ref=gorillasun.de)
### Zach Lieberman solo Exhibition
Over in London, Zach Lieberman kicked off his very first solo exhibition with Unit London, filling an entire exhibition space with his trademark circular gradients and biomorphic blobs:

I've been a big fan of Zach's approach ever since I discovered generative art for myself. His concept of poetic computation, that likens writing code to writing poetry, really resonated with me and was one of the ideas that got me hooked on creative coding as an artform.
One the first few videos I ever saw on creative coding was actually by talk by Zach, in which he talks about his concept of poetic computation, showcases his process, and live codes a little squiggly shape to demonstrate what it's all about:
If you're in London, definitely go check out the exhibition - I'm actually going to be in London towards the end of February, so I'll definitely stop by. You can learn a little more about the exhibition and see a list of the presented Lieberman works over on the exhibition page:
[Zachary Lieberman | Circles, Blobs, Ripples | UnitZachary Lieberman’s first solo exhibition with Unit explores the unexpected effects of geometries crafted with code, revealing how a systematic approach to image-making can transform shapes into mesmerising visual experiences.Unit](https://unitlondon.com/exhibitions/zachary-lieberman-circles-blobs-ripples/?ref=gorillasun.de)
## All the Generative Things
And here's some other generative news that you can enjoy no matter where you currently are in the world right now 🎨
### Pioneers of '80s Art & Innovation
Le Random has been going strong in the past weeks, not only consistently expanding their timeline, but also putting their best foot forward in terms of Twitter spaces and publishing the recordings in podcast format. In the most recent talk they invited 9 of the pioneers that were at forefront of generative art in the 80s, letting them present their stories and reflecting with them on the practice at that point in time:

[Link to Podcast](https://podcasts.apple.com/us/podcast/le-random/id1726153340?i=1000644631183&ref=gorillasun.de)
We often talk about the pioneers from the 50s and 60s, but not much about the following decades, and I believe that the artists from those eras are in many ways overlooked and not given the credit that they deserve. Le Random steps in as the middle-man to introduce us to them - I'm a bit embarrassed to admit, that I didn't know any of the invited guests other than Geoff Davis prior to listening to the talk. You can also find the group talk in video format here if you prefer that:
[](https://twitter.com/lerandomart/status/1755585860043423788?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/lerandomart/status/1755585860043423788?ref=gorillasun.de)
I know, at this point I'm sharing a piece of Le Random content about every other week, but they're simply doing efforts in the genart space that no one else is - quite literally documenting the entire history of it. Go support them and share their content! Also looking forward to Monk's next article!
### Matt DesLauriers' Sierra
Following his previous project Hachure, which exhibited with Verse towards the end of 2023, Matt DesLauriers returns with another Web Assembly project in which he takes a step back from the long-form approach in favor of letting his system fulfill a more curatorial role in the art making process:
[In conversation: Matt DesLauriers | Avant ArteGenerative artist Matt DesLauriers and Master printmaker Tom Murphy discuss the process behind Sierra, a print that explores systems in colour and systems in printmaking.Avant Arte](https://avantarte.com/insights/articles/Matt-DesLauriers-Generative-printmaking-and-systems-of-colour?ref=gorillasun.de)
Matt DesLauriers details the making of Sierra in form of a meticulous project page over on his site, that isn't just a treat for the eye, but also reveals and explains to us the code that brings the single output to life:

I really appreciate how much thought and care Matt puts into presenting and documenting his works - something that I don't see from many artists. I think it's really important to capture these moments in time for future reference. Here's also a link to the Github repo in which he open sources part of the code that helps in creating the screen print:
[GitHub - mattdesl/lcms-wasm: a WASM reboot of lcms.js (Little-CMS for JS)a WASM reboot of lcms.js (Little-CMS for JS). Contribute to mattdesl/lcms-wasm development by creating an account on GitHub.GitHubmattdesl](https://github.com/mattdesl/lcms-wasm?ref=gorillasun.de)
Now you might ask, what actually is WebAssembly? Often abbreviated as wasm, it's basically a technology that allows developers to run high-performance code on web browsers. It's like a common language that different programming languages can be translated into, enabling them to work together seamlessly on the web. A good starting point for Web Assembly is the mdn web documentation:
[WebAssembly | MDNWebAssembly is a type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C# and Rust with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together.MDN Web Docs](https://developer.mozilla.org/en-US/docs/WebAssembly?ref=gorillasun.de)
It's interesting to see Matt shift to this more curatorial approach considering that he's previously previously mainly been making long-form projects, most notably Meridian and FOLIO. I wonder if it's to adjust to the current generative art market. We'll talk a bit more about that in one of the following sections.
### Lovebyte 2024
I only learned about Lovebyte through a tweet by Frank Force, in which he announced that he was working on a tiny demo for the event - the demo itself is super impressive, considering that it's roughly 1kb in size, and also generates music in addition the animation:
0:00
/0:13
1×
The video also has sound, which I couldn't screencap, so check out the tweet as well | [Link to Tweet](https://twitter.com/KilledByAPixel/status/1755470294565699827?ref=gorillasun.de)
And it seems that Lovebyte is an absolutely crazy event, that comes to life in its entirety through a number of live streams, where coders present their bytesized creations and also live code them. You can find some of the recordings over on their Youtube channel, including this year's opening show - if you're into size-coding this is going to be a treat for you:
Link
Here's a link to [the event page](https://lovebyte.party/?ref=gorillasun.de#About), as well as an [overview to all submissions](https://demozoo.org/parties/4760/?ref=gorillasun.de).
### Jeres' Heuristics of Emotion
Jeres wrote a beautiful article accompanying his newest generative art project 'Heuristics of Emotion', which is an attempt at giving shape and color to the digital emotions of the machine:
[Jeres | Heuristics of EmotionHeuristics of Emotion](https://jeres.xyz/heuristics-of-emotion/?ref=gorillasun.de)
I really love the blend of essay-like introduction, intertwined with anecdotal storytelling and technical details sprinkled on top - it seems Jeres is not just great at making generative art, but also at putting his thoughts into written form. If you're going to read one thing this week, I recommend that you read this one.
### Creating an Animated 3D Starfield Effect
One interesting tutorial I came across this week is over on the kirupa site, teaching us how to create a 3D Starfield Effect - basically an animation that simulates the POV of flying through a starfield in space:
[Creating an Animated 3D Starfield EffectLearn how to create this fun effect where we simulate us flying past endless stars in outer space.kirupa.comKirupa Chinnathambi](https://www.kirupa.com/animations/animated%5F3d%5Fstarfield%5Feffect.htm?ref=gorillasun.de)
This was interesting to me because I attempted this myself at some point, and found that it's a nice little illusion that can actually be achieved entirely in 2D, but is still kind of tricky to get right - you can find [my sketch over on OpenProcessing](https://openprocessing.org/sketch/1763038?ref=gorillasun.de). Over on kirupa they do it entirely with the canvas drawing API without P5\. Now I'm really tempted to give it another go 🤔
I also recommend checking out the rest of the site - it's actually quite massive and a really good resource for beginners to intermediate coders, specifically if you're trying to get better at JavaScript coding. They've got tutorials about making animations, dealing with the canvas element, as well as more general JavaScript things:
[Working with the CanvasLearn all about this thing called the canvas and how it helps bring pixels to life using just JavaScript!kirupa.comKirupa Chinnathambi](https://www.kirupa.com/canvas/index.htm?ref=gorillasun.de)
### Simulating an Infinite Grid
Giorgio Fnool shows us how to create a fake infinite grid, which basically is nothing more than a draggable grid that creates the illusion of being infinite by wrapping around on itself when items leave the viewport - the 'making of' style video he shared already gives a good idea of how it's done, but he further elaborates in the replies to his thread:
0:00
/0:08
1×
[Link to Tweet](https://twitter.com/gfnool/status/1755531785272734075?ref=gorillasun.de)
This reminds me of a tweet from Juhani Halkomakki back from early 2022, in which he created a similar proof of concept:
0:00
/0:15
1×
[Link to Tweet](https://twitter.com/JuhaniHalkomaki/status/1599469014891532288?ref=gorillasun.de)
And on a related note, if this idea is something that interests you, definitely also give Amelia Wattenberger's article 'Evolving the Infinite Canvas' a read:
[Evolving the infinite canvasAmelia Wattenberger’s personal websiteAmelia Wattenberger](https://wattenberger.com/thoughts/evolving-the-infinite-canvas?ref=gorillasun.de)
## State of the Long-Form Generative Art Market
If I've learned one thing from putting together this newsletter over the course of the past year (almost a year now), it's that the Web3 space is evolving at an insanely rapid pace. It's often hard to keep track of how things are advancing, what the different players in the field are up to every week, and what the new trends are. I believe that it's really important to stay on top of things in that way, especially when you're an artist that's trying to get a foot in the door.
Having curated an impressive number of projects with Dawn Contemporary, Haiver has some of the best insights when it comes to artists trying to make a living from generative art - in a long-form tweet of his, he provides us with some of his thoughts about how the market has changed over the past three years and gives some words of advice on how artists can adjust:
[](https://twitter.com/HaiverArt/status/1755660425369153649?ref=gorillasun.de)
[Link to entire Tweet](https://twitter.com/HaiverArt/status/1755660425369153649?ref=gorillasun.de)
Fact is, the space has gotten a lot more competitive — the art's gotten a whole lot better, and collectors have gotten a whole lot smarter at detecting what good art is, whether it's the aesthetics of it or the conceptual idea.
With the advent of long-form generative art and the underlying blockchain technology that makes it possible, selling out *fast* has become one of those hot topics that's established itself as an important factor in determining the value of a collection - one of the points that Haiver tackles in his tweet. Recently however, it's been less and less the case that projects sell out instantly.
But did we actually all really think that **everything** would sell out **all** the time? One thing that I want to stress here right off the bat, is that selling out should not be one of the factors that your happiness and mental health depend on. If you're an artist that's been consistently selling out with every project, and it's the first time that a collection isn't an instant complete, it might hit you very hard. Maybe not if you're a seasoned veteran and have been in the art game for a long time.
With some of my own earlier works that didn't sell out I'd be lying if I said that it didn't hurt a bit, especially with those projects that were labors of love. At the same time however, it's a very sobering experience, and presents you with a different reality - it requires you to take a step back and objectively assess in which ways your work fell short. There's really no point in blaming yourslef, or the market, because after all nobody owes you anything, but rather take it as a chance to learn from and grow as an artist. I don't go into releases anymore with the romantic idea that they will be smash hits.
*I mean, what are you gonna do if your project doesn't sell out? Throw in the towel and just stop making art altogether?*
Maybe instead of bragging about how fast our collections have sold out, we can brag about who collected one of our works? When I released Hex Appeal back in December, and saw that two of my internet friends showed up so quickly to mint the very first 2 iterations, it felt as if the collection was already complete:

Thank you meezwhite and Melissa, it genuinely made my day when I released the project and it still brings me joy to see you two pop up whenever I look at the collection.
A relevant statement on this matter is from Kevin Abosch:
[](https://twitter.com/kevinabosch/status/1749009202754830753?ref=gorillasun.de)
[Link to entire Tweet](https://twitter.com/kevinabosch/status/1749009202754830753?ref=gorillasun.de)
I believe that there's a lot more that can be said here, because it's a topic that I've thought about a lot and that I've tried to understand - it's definitely an important part of the generative art game that we're all trying to play. I'm certain however that in a couple of months things will have changed drastically again, and that there's going to be different rules to the game. Best thing we can collectively do is try to steer the space in a better direction where we talk in a balanced manner about the art and the underlying market dynamics.
## Web3 News
### Foundation Exhibitions
And while we're talking about Art, NFTs and the market, just a couple of days ago, Foundation announced a new feature that's coming to their platform, with the self-explanatory title "*Exhibitions"*:

[Link to Thread](https://twitter.com/saturnial/status/1755284828034077029?ref=gorillasun.de)
There isn't much information about how it'll work at this point, but I'm assuming that it'll be some sort of combination between web page editor and curatorial tool that's native to foundation, where curators and artists can showcase their works and provide additional information in form of text and supplementary material - I'm purely going off of the little 'Add content' popup that's shown in kayvon's tweet.
Conversations and stories quickly get lost on social media, hence I think that this is a great initiative from Foundation, providing artists and curators means to document their work within little self-contained spaces. The feature is planned to go live for everyone on the 26th of February, but they've already got a few exhibitions lined up to kick things off - a list of partners can be seen here:
[Exhibitions by FNDA new era of Exhibitions. Coming 2.26.24.Exhibitions by FND](https://exhibitions.foundation.app/?ref=gorillasun.de)
I'm also still eagerly awaiting what fxhash has planned in this regard, in an interview with Le Random, Ciphrd hinted that a curatorial tool was in the works, but that was the only mention of it. But from what it seems, 2024 is shaping up to be the year of curatorial tools.
### arltcollector in conversation with Han
I love me a good interview, and this one from arltcollector with Han fit the bill just right - if you're not familiar with Han, he's an architect turned NFT artist, and the creator of Crypto Cubes, arguably one of the earliest instances of generative art minted on the blockchain. In the interview Han talks about his practice, reminisces about how the Crypto Cubes project came to be back in 2020, and also tells us about his upcoming endeavors:
[1 of 1 Art Pieces with Han — ARTXCODEHan is most well-known for his early OG generative art NFT collection that was launched in 2020 called CryptoCubes. If you were around back then you would know how collectible and exciting these cubes were. It’s the end of 2023 and Han hasn’t stopped innovating. Han presents a collection of 1 of 1ARTXCODEarltcollector](https://www.artxcode.io/journal/han-interview?ref=gorillasun.de)
I don't fully understand how Han's new project works, because my technical knowledge of smart contracts is limited, but it seems that he's creating a series of 1/1 pieces, each of which consisting of its very own smart contract that enables it as a marketizable piece of digital art.
## Tech, Code and Web
There's also a lot of other interesting things that I found on the Web in the past week - here's a little sampler of different Tech and Code related thingamabobs 👇
### A Self-balancing Cube
Willem Pennings designed a mechanical cube that balances itself on one of its corners:

As he points out himself in the explanatory article that he posted, there isn't much practical value to this esoteric gadget, but still a worthwhile idea to explore - he details the technical aspects of it:
[Balancing cube – Willem PenningsWillem Pennings Personal projectsWillem](https://willempennings.nl/balancing-cube/?ref=gorillasun.de)
### A Search Engine in 80 Lines of Python
We already talked about size-coding earlier, but this takes it to the next level - with an itch to learn how search engines work, Alex Molas decided to create his own from scratch, and ended up doing so in just 80 lines of code - the interesting part of it at least. He details how he did it in this write-up:
[A search engine in 80 lines of PythonIn this post I explain how I built a search engine from scratch using python. The resulting search engine is used to search in the posts of the blogs I follow.](https://www.alexmolas.com/2024/02/05/a-search-engine-in-80-lines.html?ref=gorillasun.de)
If you've ever wanted to build your own search engine, this might just be your starting point. It turns out that you don't actually need that much: obviously a first is some data (pages) to actually search, then an index to store references to this data based on the information that occurs in this data (keywords), followed by a ranking mechanism that produces a curated list of outputs from a query, and last but not least also an interface through which all of this can be accessed by a user.
### The Cursed Library
The Cursed Library is not really a game, but rather an interactive web experience, in which you explore books in a library, each of which tells a different sordid tale through meticulously crafted 3D scenes - I'm not going to lie, the little experiment immediately took me in and transported me away into another world:
[](https://cursed.epic.net/?ref=gorillasun.de)
[Link to the Cursed Library](https://cursed.epic.net/?ref=gorillasun.de)
The little interactive page was put together by [EPIC](https://twitter.com/epicwebagency?ref=gorillasun.de) \- not the games launcher Epic Games, just EPIC - a digital agency from Belgium, that describes itself as a group with a unique blend of technical, strategic and creative skills. Check them out, they do all sorts of interesting Web experiments.
### Curated: A Web Design Inspiration Catalogue
Pinterest is usually my go to resource when I'm in need of inspiration when I'm trying to get in just the right mood for my next generative art project, but when it comes to web design and styling something in CSS, I find it best to look at other pages and borrow visual concepts from them - and recently came across Curated, an aggregator site that collects and showcases elegantly designed pages across the web:
[Curated web design inspiration catalogUnleash your creativity with out-of-this-world web design inspiration from across the web.](https://www.curated.design/?ref=gorillasun.de)
### Trillions to reshape the Semi-Conductor Industry
Altman has been one of the most polarizing individuals in the world of AI last year, being ousted from OpenAI back in November of 2023, and quickly being reinstated in a matter of few days after the incident triggered a wave of resignations, or at least threats thereof.
Currently there's no public knowledge if his current plans are in relation to this incident, but there's reports of him seeking funding for a prospective chip venture just prior to that. Now it seems that he is looking for a much larger sum of money, to completely dwarf the current chip industry:
[OpenAI CEO Sam Altman seeks as much as $7 trillion for new AI chip project: ReportOpenAI CEO Sam Altman wants to overhaul the global semiconductor industry with trillions of dollars in investment, The Wall Street Journal reported.CNBCHayden Field](https://www.cnbc.com/2024/02/09/openai-ceo-sam-altman-reportedly-seeking-trillions-of-dollars-for-ai-chip-project.html?ref=gorillasun.de)
## Gorilla Updates
I've also been up to some shenanigans of my own. In the first half of this week I explored [Reaction Diffusion](https://en.wikipedia.org/wiki/Reaction%E2%80%93diffusion%5Fsystem?ref=gorillasun.de) again after roughly two years of having first encountered it. I think I have acquired a much better understanding of it now, and how to actually get some nice looking patterns out of it. Here's a little demo of what I ended up making:
0:00
/0:40
1×
Reaction Diffusion is really cool, it basically simulates the change in concentration of two chemicals, where the concentration thereof is representing through the color of the canvas pixels. Reaction Diffusion brings to life a multitude of intricate and organic patterns, that are also more commonly known as [Turing Patterns](https://en.wikipedia.org/wiki/Turing%5Fpattern?ref=gorillasun.de).
The most popular way to implement a Reaction Diffusion system is via the Gray-Scott model, that basically postulates of a set of two equations which simulate the interaction of the two chemicals at any given pixel and how this concentration should evolve over time:

[Link to Equations](https://itp.uni-frankfurt.de/~gros/StudentProjects/Projects%5F2020/projekt%5Fschulz%5Fkaefer/?ref=gorillasun.de)
I'm not certain if you can call this a cellular automaton still, but it's also a kind of system where cells (pixels) update their state based on the state of adjacent cells. I'm working on putting together a proper tutorial for it at the moment, so I'm not going to dive too deep just now - but if you want a great introduction and a guide to implementing it for yourself, I recommend this video from the Codingtrain:
What's more, is that I also actually managed to implement it in form of a shader - but since that's not really my fortee there's still a lot of things that I need to figure out there to bring it closer to the pixelized aesthetic that I achieved in JS:

[Link to Shadertoy](https://www.shadertoy.com/view/lXfGW8?ref=gorillasun.de)
Besides Reaction Diffusion, I also spent a copious amount of time on making weird pixelized generative numbers and packing them on across the canvas - goal for this one is kind of ambitious, and I'm already happy with where it's at:



I'll likely have more updates about it in the coming week - keep your eyes peeled!
## Music for Coding
Last week while I was collecting pieces for my personal [Genuary 2024 recap](https://www.gorillasun.de/blog/genuary-2024-personal-recap/), I featured a sketch by [Roni Kaufman](https://twitter.com/KaufmanRoni?ref=gorillasun.de), and came across [his gorgeous portfolio page](https://ronikaufman.github.io/?ref=gorillasun.de) \- found out that he'd done an album cover for the stellar guitarist Adrian Holovaty. The album leans quite heavily into gypsy jazz with the chugging rhythm guitar and arpeggiated melodic elements layered on top:
[Melodic Guitar Music, by Adrian Holovaty10 track albumAdrian HolovatyBandcamp New & Notable Mar 11, 2021](https://adrianholovaty.bandcamp.com/album/melodic-guitar-music?ref=gorillasun.de)
You can give the album a listen over on Bandcamp
I've been a big fan of Django Reinhardt for years, so this really did it for me - I found that the tracks were quite a treat for the ear, while I was chucking away at some code!
**And that's it from me this week, while I'm typing out these last words I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 42Warpcast and Farcaster Frames - Genuary 2024 Concludes - Harold Cohen Retrospective - Infini Craft by Neal Agarwal - Generative audio with vanilla JS - Custom Highlight Embeds - Artblocks Acquires Sansa - Digen Open Call - Interop 2024 +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-42/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**

And a little closing meme | [Link to Tweet](https://twitter.com/mathladyhazel/status/1756077355779383703?ref=gorillasun.de)
### Gorilla Newsletter 42
URL: https://www.gorillasun.de/blog/gorilla-newsletter-42/
Last updated: 2024-02-05T09:58:21.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 42nd 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 - as well as a sprinkle of my own endeavors.
**Hope you're all having a great start into the week!** That said, let's get straight into it!👇
## Warpcast & Farcaster Frames
Let's start this week's issue with some words about Farcaster - a big chunk of the generative art community has recently joined the budding Web3 social media platform, and it's overall been gaining a lot of traction as a Twitter alternative for the Web3 crowd.
Warpcast is a relatively new social media platform that's built on top of Farcaster, which is a Web3 protocol for building decentralized social media apps, conceived and developed by Dan Romero - I actually signed up to Warpcast about a month ago, without knowing too much about the platform, after I saw a Tweet from Romero in which he attempted to address and clear up some of the notions that were cause for confusion:

[Link to Tweet](https://twitter.com/dwr/status/1740082379124023495?ref=gorillasun.de)
Maybe it's erroneous to compare the two, but I think a good point of reference is the Fediverse if you're familiar with it. In the last two years we've seen a big migration of people over to Mastodon, in the aftermath of Musk's Twitter takeover, which is a decentralized social media platform that exists in the larger context of the Fediverse, in which the different entities make use of the ActivityPub protocol to communicate with each other. This means that things in the Fediverse are interoperable, due to them using the same underlying protocol.
Farcaster is similar in this manner, that it's also such a decentralized protocol, with the big difference that it's built on Ethereum, enhancing it with blockchain powered capabilities. For isntance, your identity on Farcaster is tied to your wallet address, and is also one of the primary ways to interact with apps and features that it integrates. In this scenario, Warpcast is simply the interface that you use to interact with the Farcaster protocol:

[Link to Tweet](https://twitter.com/fabdaRice/status/1740086938147938673?ref=gorillasun.de)
The following post provides a good explanation and some insights into all of this:
[What is Farcaster? A Beginner’s Guide (2023)Farcaster is a decentralized protocol for building web3 social media apps. Learn more about what it is, how it works, and how to build on it.thirdwebMrig P](https://blog.thirdweb.com/what-is-farcaster/?ref=gorillasun.de)
> *Picture it as a unified platform where social apps like X, Instagram, and Facebook coexist and users can connect them all with one decentralized ID. This means even if any app imposes restrictions, users still have their identity and can seamlessly migrate their connections to alternative apps on the network.*
If this has piqued your interest and you're interested in joining Farcaster, you can use [this invite link](https://warpcast.com/~/invite-page/212516?id=94b37123&ref=gorillasun.de), which gives the both of us warps - a kind of token that can be redeemed within the Farcaster eco-system. It's important to note here that Farcaster costs 5 bucks a year, which is used to cover the associated gas fees.
One of the biggest developments in the Farcaster eco-system so far happened last week, where a feature called Frames was introduced: a new kind of interactive embed that Farcaster users can build themselves and inject into the Farcaster feed. This probably sounds a little bit esoteric, but in other words, people can now code their own little embeddable apps and share them directly as casts on Farcaster - think of them as interactive media tweets. some notable examples of this are Onframe Chess by 5/9 and Base Quest by Sean:


Link to Onframe Chess Cast | [Link to Base Quest Cast](https://warpcast.com/seangeng/0x3ad1d126?ref=gorillasun.de)
Basically you can now play Chess as well as a text adventure directly in your Farcast feed, I believe that this really sets Farcaster apart from other social media apps. If you're curious about learning more about Frames, here's another recent article that introduces them with a little more context than I do:
[What Are Farcaster Frames? Discover the Top 5 Best Frames So Far!The introduction of Frames by Farcaster is a game changer in the Decentralized Social Media space, significantly boosting Warpcast’s daily…PERCSJojo\_Percs](https://medium.com/percs/what-are-farcaster-frames-discover-the-top-5-best-frames-so-far-6a5528c07514?ref=gorillasun.de)
And if you're interested in building your own Farcaster Frame, you need to check out Nader Dabit's tutorial that he's posted over on TwitterX:

[Link to Tweet](https://twitter.com/dabit3/status/1752400805938758058?ref=gorillasun.de)
Alright, that's enough about Farcaster for starters, lest this sounds more and more like some made up technobabble straight from r/VXJunkies, I'll cut things off here and move on to the regular Newsletter segments. Let me know if you end up joining! And especially if you build some interesting Frame!
[](https://twitter.com/Zeneca/status/1753680732701036645?ref=gorillasun.de)
Here's another Great long-form Tweet explaining Farcaster | [Link to Tweet](https://twitter.com/Zeneca/status/1753680732701036645?ref=gorillasun.de)
## All the Generative Things
Of course there's also been a bunch of interesting developments in the genart space over the course of the past week 👇
### Genuary 2024 comes to an End
Most notably, Genuary 2024 concluded on the 31st of January. With hundreds of participants and thousands of submissions across multiple platforms it's unarguably been the biggest iteration of the event yet. Albeit I'm a little sad that it's over, since it's such a great way to get so many ideas out of your system, I'm at the same time excited to spend some more quality time on some of my favorite ideas that came to be throughout the month.
For the occasion, the Le Random team came together with Joyn, organizing a Twitter space in which they invited Piter Pasma, who's in charge of organizing and selecting the prompts for Genuary every year, as well as some of the participating artists, such as Darien Brito, Ella, and yours truly, to talk a little about the entire experience - the Twitter space has been recorded and can be found in a shortened version (minus all of the fluff) over on Apple Podcasts:
[](https://podcasts.apple.com/us/podcast/le-random/id1726153340?i=1000644045715&ref=gorillasun.de)
[Link to Podcast](https://podcasts.apple.com/us/podcast/le-random/id1726153340?i=1000644045715&ref=gorillasun.de) | [Link to complete Twitter Space Recording](https://twitter.com/lerandomart/status/1752655636544827518?ref=gorillasun.de)
I thoroughly enjoyed the thoughtful questions from the Le Random team as well as Piter's thoughtful answers to them, providing insights and reflecting on how Genuary has grown over the past 4 years and now occupies an important spot that ties the community together every year. As a platform independent event, generative artists get the opportunity to connect with each other simply for the joy of making generative art, without any other incentives.
Besides that, we also find Monk out in the wild with an exclusive article for Joyn, complementary to the Twitter space, covering some of his favorite artworks for 10 of the Genuary prompts that he found most interesting:
[Celebrating GenuaryI’m Peter Bauman, or Monk Antony, and I do the content at Le Random. Freed from Le Random’s tyrannical editor (me), I share my thoughts on Genuary’s unique ability to propel communal creativity before reflecting on the #genuary2024 prompts and pieces I found most compelling.Joyn](https://www.joyn.xyz/showcase/celebrating-genuary-b8961725b413?ref=gorillasun.de)
In the Twitter space I was asked about how the overall Genuary experience was like. And I had actually thought a bit about it beforehand - to me the beauty of Genuary lies in the creative interpretation of the prompts. It's not as much of a coding challenge as it simply a creative challenge, where you aim to make something that will surprise in the context of the given prompt. I try to not look at anyone else's creations before I've finished my own, while it keeps what I make authentic, it also makes discovering what others made so much more fun.
Piter tells us that the set of prompts that he had conceived for the very first Genuary mainly revolved around programming techniques and algorithms, which then changed quite a bit when he asked others for suggestions, pitching ideas that were not necessarily directly related to any programming specific things.
Another big factor is the time limit, of course there's no hard rule to do the prompts within their allocated day, but I believe that it adds another aspect to the challenge that will frequently push artists outside of their comfort zone. This makes me think back to an article that I've shared a couple of weeks ago, a piece by Ralph Amer, where he talks about the *Creative Playground -* "Creative limitations set our creativity free":
[The Creative Playground - Ralph AmmerHave fun with drawing! Create yourself a creative playground we need a goal and rules. Here is why and how:Ralph Ammerralphammer](https://ralphammer.com/how-to-get-started/?ref=gorillasun.de)
Others also like to create additional challenges factors of their own, like Roni Kaufman, who chose to only create static artworks for each prompt, even when some of them were inherently referring to concepts that are associated with movement, like prompt #15 that asks you to use a physics library, or #19 that simply states 'flocking'.


[Link to #15](https://twitter.com/KaufmanRoni/status/1746965232436564197?ref=gorillasun.de) | [Link to #19](https://twitter.com/KaufmanRoni/status/1748383749228712074?ref=gorillasun.de)
Or for instance Raphaël de Courville's AI assisted Genuary speedrun. Some people do the prompts on their allocated days, others spread them out over the entire year, and Raph just wants to see the world burn and do all of the prompts in a single sitting. His final time clocks in at 1 hour 46 minutes and 56 seconds. you can watch a recording of his stream here:
[Genuary 2024 Any% Tool Assisted Speedrun - sableraph on Twitchsableraph went live on Twitch. Catch up on their Art VOD now.Twitch](https://www.twitch.tv/videos/2046285891?ref=gorillasun.de)
Towards the end of the stream Raph challenges Shiffman to also attempt the speedrun and see if he can beat his time. We now eagerly await his response. Also subscribe to Raph on Twitch, when he reaches 2000 subs he'll record another funny bird sound that we can then trigger through the Twitch chat.
Genuary is just such a beautiful event, and the community never feels more alive than throughout it's course - I'm already looking forward to next year!
### Harold Cohen Retrospective
Last week the Harold Cohen Retrospective exhibition showcasing his AARON works kicked off at the Whitney Museum of American Art in Manhatten:
[](https://whitney.org/exhibitions/harold-cohen-aaron?ref=gorillasun.de)
[Link to exhibition page](https://whitney.org/exhibitions/harold-cohen-aaron?ref=gorillasun.de)
Harold Cohen is one of the earliest names that experimented with AI for the purpose of making art, most notably he conceived a set of algorithms under the name AARON:
> AARON is the collective name for **a series of computer programs written by artist Harold Cohen that create original artistic images**. Proceeding from Cohen's initial question "What are the minimum conditions under which a set of marks functions as an image?", AARON was in development between 1972 and the 2010s - [excerpt from the AARON Wikipedia page](https://en.wikipedia.org/wiki/AARON?ref=gorillasun.de)
Although the source code for AARON is not publicly available, it likely is a vastly different type of AI that we are familiar with today. Harold Cohen was also one the first that explicitly asked questions about the collaborative practice between artist and machine, and being a catalyst for the conversation around authorship and agency. Naturally, we can count on Le Random for stellar coverage, interviewing Christiane Paul, the curator in charge of the AARON exhibition:
[Christiane Paul on Curating Cohen’s AARONChristiane Paul’s curation of the Whitney’s Harold Cohen: AARON informs a conversation with Peter Bauman (Monk Antony), where they discuss Cohen’s persistent impact to this day while reflecting on the nature of digital expression.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/christiane-paul-on-curating-cohens-aaron?ref=gorillasun.de)
It was interesting to see Sougwen Chung being brought up, which I also immediately had to think of when I saw pictures of the AARON plotters - in many ways she follows in the footsteps of Harold Cohen, [Le Random also did an interview with her a while back](https://www.lerandom.art/editorial/sougwen-chung-on-us-in-another-form?ref=gorillasun.de).
I believe that only a fraction of the newsletter readership is actually physically somewhere near Manhatten, we do however get a glimpse into the exhibition through ClownVamp's excellent Twitter thread, in which some highlights are showcased:

[Link to Thread](https://twitter.com/ClownVamp/status/1753457936490266897?ref=gorillasun.de)
### Infini Craft by Neal Agarwal
Neal really outdid himself again with his latest project Infini Craft - an LLM powered crafting game:
0:00
/0:11
1×
[Link to Tweet](https://twitter.com/nealagarwal/status/1752716375255101440?ref=gorillasun.de)
And as its name suggests, it's an infinite one at that. If you remember a game called [Little Alchemy](https://littlealchemy.com/?ref=gorillasun.de) from way back when, it's essentially that - a sandbox game in which you can combine elements by dragging and dropping them onto each other, where they'll then combine into new elements that can be used to discover even more elements and so on. There isn't really a specific goal to it, the entire fun of it stems from trying out different combinations and seeing what it'll produce.
I remember that Little Alchemy would quickly get frustrating once you'd tried out most of the combinations and weren't able to really progress anymore, naturally the combinations in the game are hard coded so once you've got everything it's done. Throwing an LLM into the mix that can endlessly conjure new combinations of things makes this *infinitely* more exciting:

[Link to Tweet](https://twitter.com/nealagarwal/status/1752719299691647395?ref=gorillasun.de)
I'm not entirely sure about how it's implemented, there probably is an input prompt that asks the language model "What do you get when you combine X and Y?" in addition to some database that stores combinations that have already been discovered, it is deterministic in the sense that combining the same two elements will always yield the same output - but sometimes you'll get a notice under an element indicating that it's a *first discovery,* meaning that no one else has managed to discover it previously:

[Link to Tweet](https://twitter.com/meodai/status/1753582667407217056?ref=gorillasun.de)
David Aerne somehow managed to produce an Obamacrab - and if that doesn't make you want to try the game out for yourself, then I don't know what will. Let me know if you end up getting any cool combos:
[Infinite CraftA game about crafting](https://neal.fun/infinite-craft/?ref=gorillasun.de)
### Generative Audio with Vanilla JS
While putting together my top picks for Genuary 2024 (which should come out sometime next week), I was scouring the r/generative subreddit to see what the folks did over there, and came across an interesting generative audio demo (I think that it was a creation for the final prompt) that claimed it was done entirely in Javascript with zero dependencies, which I thought was quite impressive:
[](https://www.reddit.com/r/generative/comments/1afb20f/generative%5Fmusic%5Fin%5Fjavascript%5F250%5Flines%5Fof%5Fzero/?ref=gorillasun.de)
[Link to Reddit Post](https://www.reddit.com/r/generative/comments/1afb20f/generative%5Fmusic%5Fin%5Fjavascript%5F250%5Flines%5Fof%5Fzero/?ref=gorillasun.de)
I'd always assumed that you need some library to make Javascript produce any sort of sound, like Tone.js, but that doesn't seem to be the case, as JS actually comes with its own Audio context that can be used for this purpose - I'm guessing that Tone.js is actually built on top of that context:
[AudioContext - Web APIs | MDNThe AudioContext interface represents an audio-processing graph built from audio modules linked together, each represented by an AudioNode.MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext?ref=gorillasun.de)
Manav Rathi aka u/thousandsongs wrote a brief introduction to the audio context here:
[](https://mrmr.io/mj?ref=gorillasun.de)
[Link to Post](https://mrmr.io/mj?ref=gorillasun.de)
This post is complementary to another one in which he explains the demo, introducing Euclid's algorithm that seems to be a potent method for creating interesting rhythmic patterns - [you can read about it here](https://mrmr.io/mj/euclid?ref=gorillasun.de). So that was definitely a treasure trove, Manav also shares a fully commented synth implementation in Typescript with zero dependencies:
[mrmr.io/pages/raag/synth.ts at main · mnvr/mrmr.iowords | colors / music •◦◎◉⦿ code – https://mrmr.io - mnvr/mrmr.ioGitHubmnvr](https://github.com/mnvr/mrmr.io/blob/main/pages/raag/synth.ts?ref=gorillasun.de)
## Web3 News
There's way too much going on in the Web3 x genart space to cover every week, but besides the big traction that Farcaster has recently been getting, here's some of the things that I think are worth mentioning 👇
### Custom Highlight Embeds
Highlight now makes it possible for artists to share and distribute their generative mints directly from their own websites with custom embeds - here's a quick video run-down of how it works:
Seeing that the Gorilla Sun blog is my main home on the internet, this is super exciting to me - essentially saving the trouble of having to redirect people to another page to mint something. I have yet to release something over on highlight, but there's a couple of ideas that are already brewing - I'm definitely releasing something this month.
Overall I'm really impressed with how many new features Highlight has put out since their launch last year, and this is definitely a big one, giving artists even more control over how they release their artworks.
### Artblocks Acquires Sansa
Art Blocks made the announcement that they're acquiring Sansa with the goal of integrating their versatile marketplace into the Art Blocks eco-system:

I think we're all familiar with Art Blocks at this point, the pioneering platform that made generative art NFTs possible on the Ethereum blockchain. As far as I understand, Sansa was later developed independently from the Art Blocks platform, enabling a secondary market place for generative artworks on ETH, due to Art Blocks not having its own proprietary secondary marketplace - I think OpenSea was one of the few options for this purpose.
Art Blocks wrote a little announcement post explaining a bit how this is going to go down and the road-map is:
[Spectrum: Welcoming Sansa to the Art Blocks Family | Art BlocksArt Blocks welcomes Sansa to its family! Discover how this acquisition is set to fuel the evolution and growth of on-chain generative art.Art Blocks](https://www.artblocks.io/info/spectrum/art-blocks-sansa-acquisition?ref=gorillasun.de)
### Digen's Digital Me Open Call
After their successful soft launch at the end of December, DiGen Art has been hard at work putting together their inaugural group show "Digital Me" - and they're inviting artists from the MENA region in their open call:

[Link to Tweet](https://twitter.com/DiGenArt/status/1752335634356703612?ref=gorillasun.de)
If you are an artist from the MENA region or know someone that is, consider applying, you can learn more about what they're looking and the criteria with which they will select the artists through the exhibition page and the accompanying brochure:
[](https://digen.art/exhibition/digital-me/?ref=gorillasun.de)
[Link to exhibition page](https://digen.art/exhibition/digital-me/?ref=gorillasun.de)
## Tech and Code
### Interop 2024
The results from Interop 2024 just dropped, and it's looking good - the modern web is more interoperable than ever!
[The web just gets better with Interop 2024The web is amazing.WebKitJen Simmons](https://webkit.org/blog/14955/the-web-just-gets-better-with-interop/?ref=gorillasun.de)
The Interop project is essentially a yearly big comparison between the different modern ever-green browsers where some of the differences are ironed out making it such that features work identically across the different browsers. Jen Simmons from the Webkit team recapitulates the findings from 2024 in this article, going over each one of the different focus areas, explaining the issues and elaborating on what's been done to remedy them.
### 12 Modern CSS One-Line Upgrades
CSS has been evolving more and more over the past years, gradually accommodating the increasing needs of the modern web. We're frequently seeing new rules being added that previously had to be implemented in a hack-y way by combining several different statements, for purposes that they weren't originally designed for. Stephanie Eckles writes about some of these new one-liners:
[12 Modern CSS One-Line Upgrades | Modern CSS SolutionsSometimes, improving your application CSS just takes a one-line upgrade or enhancement! Learn about 12 properties to start incorporating into your projects, and enjoy reducing technical debt, removing JavaScript, and scoring easy wins for user experience.Modern CSS SolutionsWritten by Stephanie Eckles](https://moderncss.dev/12-modern-css-one-line-upgrades?ref=gorillasun.de)
One other resource that's mentioned, and that I think is worth sharing here as well, is the SmolCSS page; basically a library of small (smol) CSS snippets that accomplish a lot of the reoccurring general purpose tasks, like reoccurring types of layouts, various types of grids, etc. - definitely worth a bookmark:
[SmolCSSMinimal snippets for modern CSS layouts and components](https://smolcss.dev/?ref=gorillasun.de#smol-flexbox-grid)
### Making Sense of Senseless Javascript Features
Javascript may be the most popular programming language today, but at the same time has quite a few quirks that will most likely leave you scratching your head when you encounter them for the first time - this article by Juan Diego Rodriguez goes over some of them and tries to explain what is going on:
[Making Sense Of “Senseless” JavaScript Features — Smashing MagazineJavaScript may be the most popular client-side language in the world, but it’s far from perfect and not without its quirks. Juan Diego Rodriguez examines several “absurd” JavaScript eccentricities and explains how they made it into the language as well as how to avoid them in your own code.Smashing MagazineJuan Diego Rodríguez](https://www.smashingmagazine.com/2023/12/making-sense-of-senseless-javascript-features?ref=gorillasun.de)
I've shared it before, but if you haven't seen it yet, you need to watch this iconic talk that Brian Leroux gave at dotjs back in 2012, in which bravely descends into the madness of Javascript all while demonstrating the language's most bizarre features in a live coding session:
## OLMo: An Open Source Language Model
Arguably the biggest news in the AI world from the past week is the release of OLMo: an open source state of the art large language model. The Allen Institute for AI aims to democratize this type of new technology, to help researchers better understand the inner workings of LLMs, experiment with their capabilities, as well as enabling developers to create interesting LLM powered applications in which they have full control. Here's a quick run-down of the features that come with this project:
[](https://blog.allenai.org/hello-olmo-a-truly-open-llm-43f7e7359222?ref=gorillasun.de)
[Link to Announcement Article](https://blog.allenai.org/hello-olmo-a-truly-open-llm-43f7e7359222?ref=gorillasun.de)
If you're doing anything with AI, this is probably something you'll want to keep an eye on:
[OLMo - Open Language Model by AI2OLMo is a series of Open Language Models designed to enable the science of language models. The OLMo models are trained on the Dolma dataset.Open Language Model by AI2](https://allenai.org/olmo?ref=gorillasun.de)
## Gorilla Updates
### Hot off the Press
Last week I put together one big recap of everything that I made over the course of Genuary 2024 - turns out that you end up making quite a few interesting things when you make a thing everyday for a month. Wrote a little commentary for each one of my creations, explaining what's going on and covering the inspirations and concepts that inspired each individual sketch:
[Genuary 2024: A Personal RecapGenuary 2024 is now officially over! And while we emerge with folders loaded with sketches and ideas to work on throughout the coming weeks, here’s my personal celebratory recap of everything I’ve made in Genuary.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/genuary-2024-personal-recap/)
Another thing I'd like to mention here, for documentation purposes, is that I was mentioned in the Collector Stories Season 2 Episode 4 by SUBI at around the 1 hour 30 minute mark - this is in light of SUBI, a collector that's primarily active on the Solana chain, making the decision to join Tezos with my token 'Somewhere in Between' as their first mint. I'm really honored that they chose one of my works:

Somewhere in Between #69 | [Link to Token](https://www.fxhash.xyz/gentk/KT1EfsNuqwLAWDd3o4pvfUx1CAh5GMdTrRvr-170880?ref=gorillasun.de) | [Link to Project](https://www.fxhash.xyz/generative/27652?ref=gorillasun.de)
Here's a link to the recording of the Twitter space, in which some interesting points were raised:
[](https://twitter.com/aychhe/status/1753068385343275348?ref=gorillasun.de)
[You can listen to the recording here](https://twitter.com/aychhe/status/1753068385343275348?ref=gorillasun.de)
### Fresh off the Easel
Besides wrapping up those final Genuary prompts, I actually found some time this week to start investigating some of the ideas that started taking shape over the course of Genuary. After redoing a Marching Squares algo for the 12th prompt "Lava Lamp", it got me thinking that I don't necessarily need to use it for anything animated, but could be an equally potent method for generating static shapes, especially in the scenario when it's difficult to construct a shape with a geometric approach - this might sound a bit esoteric, but if it unfolds as I'm envisioning it, you might see some of those in the next Newsletter.
Here's two WIP outputs, which might not look like much at first glance, but I'm quite happy with what I achieved in them:



Besides just being able to find the contour of some regions on the canvas, I'm also able to determine the individual regions in addition to the their vertex information, which means that I can freely control the contour and do more stuff with it, like deforming it, or rounding off the corners, etc.
If you're not familiar with Marching Squares: it's a neat algorithm that works in 2D and 3D, and lets you draw the contour of certain regions in a grid depending if the values at those grid points exceed a certain value - in the examples above this value is determined by the proximity of a grid vertex to the surrounding circles. Each of the cells in the grid, depending on which one of it's four vertices is active, will draw a certain type of line, outlining the active region. It's smart and feels a little like magic because the concept is so simple. Wikipedia gives a good overview of the algo:

[Link to Wikipedia Page](https://en.wikipedia.org/wiki/Marching%5Fsquares?ref=gorillasun.de)
Naturally, it's not as easy as it sounds, and you'll run into some complications when you're trying to do more with later on down the line. There's also more advanced versions of the algorithm that are more powerful, but at the cost of more complex code - over on Farcaster, Claus Wilke chimed in with a larger project that he's worked on which involved isobands that are more difficult to implement, he also points out that Wikipedia is a really good resource for this algorithm in particular:
[](https://warpcast.com/clauswilke/0xbce8e550?ref=gorillasun.de)
[Link to Cast](https://warpcast.com/clauswilke/0xbce8e550?ref=gorillasun.de) | [Link to Iso-band Project](https://isoband.r-lib.org/?ref=gorillasun.de)
## Music for Coding
This week I've got a blast from the past for you all, and it's... *drum-roll* \- Weezer!
It's a bit of an odd choice, since it might not be the best music to code along to, but after discovering that the singer and guitarist of the band Rivers Cuomo is currently actually active over on Github and a significant amount of time on programming, it was a no-brainer to include:
[](https://github.com/riverscuomo?ref=gorillasun.de)
[Link to Rivers Github](https://github.com/riverscuomo?ref=gorillasun.de)
It seems that he is mainly working on a discord bot. Another interesting piece of Trivia that I discovered by going down this Rabbit hole, is that the music video for Buddy Holly was actually included with the Windows 95 installation CD:
[](https://news.ycombinator.com/item?id=39222196&ref=gorillasun.de)
[Link to Hackernews comment section](https://news.ycombinator.com/item?id=39222196&ref=gorillasun.de)
The interesting part of this is that the band had no idea about this until afterwards, after being pissed initially they came around to realise that it probably played a factor in the song becoming as popular as it is today:
[](https://en.wikipedia.org/wiki/Buddy%5FHolly%5F%28song%29?ref=gorillasun.de)
[Link to Wikipedia page](https://en.wikipedia.org/wiki/Buddy%5FHolly%5F%28song%29?ref=gorillasun.de)
**And that's it from me this week, while I'm typing out these last words I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 41This week 📬 the Tickle #90 - Falling Sand Simulation with the coding train - Maxime Heckel on Caustics - Building 3D scenes for the browser by Yasmin P. - Snippets for Art by Chris McCully - Zed going Open Source +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-41/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Genuary 2024: A Personal Recap
URL: https://www.gorillasun.de/blog/genuary-2024-personal-recap/
Last updated: 2024-02-01T10:35:37.000Z
***Dear diary, today I completed all Genuary 2024 prompts! It wasn't easy with all of the other things that I had to do throughout this first month of the year, but I kept at it until there were no more prompts left to code. And I actually managed to not miss a single day! \*virtual pat on the shoulder\****
This is the third Genuary that I participate in, and I think it's the first one where I managed to complete all of the prompts on their respective day. I definitely had my doubts about being able to make it through all of them, especially since I'm a bit obsessive about things like this, where I not only want to cross off the prompt from the list, but also want to make something that I can proudly present on my socials.

What I noticed this time around, and I think I've gotten better at, is that I was quickly able to determine if an idea is worth spending more time on or not. Some of the prompts took me a couple of attempts before I had something that I was satisfied with sharing, others turned out pretty good right off the bat.
I'm also super surprised with how well some of my #genuary2024 posts did on my socials - in terms of likes, I've gotten numbers that I hadn't seen for quite a while. It's been a minute since I had a post get over a hundred likes, but it's happened on a couple of occasions this month:



#genuary2024 tweets be doing numbers
Maybe Elon Musk changed something with the algorithm again, picking up on my consistent posting and somehow giving me an engagement boost. Or maybe it's just the Genuary effect, where there's lots of people actively looking for the hashtag to get inspiration? The numbers were definitely encouraging, motivating me throughout to keep at it. So, big thanks if you liked, retweeted or engaged with some of my posts, it made my month!
Overall, the entire generative art space has felt a lot more vibrant with everyone coding and sharing, simply for the love of creating, without any strings attached. Moreover, it was also really fun to get back into a daily coding routine, giving me something to look forward to every single day. All of that said, here's another meme before I show you all of the things I've made over the course of Genuary 2024:

I tried to include relevant material whenever the chance presented itself, maybe you haven't finished all of your prompts yet and still need inspiration for some of them - otherwise maybe you'll discover some new concepts and ideas that you might want to try out for yourself!
## Prompts 1 to 7
### #01 - Particles, lots of them
For the very first prompt I didn't really want to do a particle sim, but rather something a little more artful and aesthetic. The day before I had coincidentally just seen p1xelfool post a new sketch and that really inspired me:
0:00
/0:03
1×
[Link to Tweet](https://twitter.com/p1xelfool/status/1741138449732944232?ref=gorillasun.de)
I could watch this GIF forever! I don't know how p1xelfool actually manages to get these pixelized animations to be so crisp. The way I did it was by using a tiny 64x64 graphics buffer in P5 that's then scaled up to a larger canvas. What's important here, is to also turn off anti-aliasing on the larger canvas - which is easily done with the noSmooth() function - such that it doesn't garble the colors of the individual pixels. Here's what I ended up with:
0:00
/0:10
1×
#01 - [Link to Tweet ](https://twitter.com/gorillasu/status/1741595089099436476?ref=gorillasun.de)
Basically just a trigonometry powered 3D spiral. Planning on exploring this aesthetic a bit more in the future.
### #02 - No Palettes
Although this second prompt's intent was the algorithmic generation of colors, I chose to interpret it a bit differently and just do a black and white sketch, while also using it as an excuse to recreate an iconic sketch by the OG Dave Whyte aka beesandbombs:
0:00
/0:24
1×
#02 No Palettes - [Link to Tweet](https://twitter.com/gorillasu/status/1741999683529064952?ref=gorillasun.de) | [Link to Original](https://twitter.com/beesandbombs/status/1732168044510580818?ref=gorillasun.de)
I've been meaning to figure out how this sketch is done, for a while now, and it actually turned out to be relatively straightforward once you figure out how the rectangles need to be rotated, and at what point you have to switch out the grid of white rectangles with black ones. If you want to give it a try yourself, P5's push(), pop() and rotate() functions will definitely come in super handy for this purpose. Let me know if you'd like a write-up for this one, I think it would be worth it!
### #03 - Droste Effect
This was the prompt that I struggled with the most, not just because I fell utterly sick on the same day, coming down with a heavy Covid fever (for the third time), but also because I was overly ambitious with my idea and it turned out to be quite technically involved. Here's what I ultimately ended up with:
0:00
/0:08
1×
#03 - [Link to Tweet](https://twitter.com/gorillasu/status/1742621402371346899?ref=gorillasun.de)
I initially attempted this in 3D, using P5's WEBGL mode, zooming in with the camera on a grid made of quads - but that turned out to be a doozy because you now also have to deal with the viewing frustum of the camera which simply doesn't show the shapes if you're either too far or too close to them. I fell back to doing things in 2D, such that I'm simply scaling the dimensions of the entire grid, then bringing a randomly selected rectangle to the center and zooming in on it, swapping it out with a second grid when it's grown to the size of the canvas (minus some margin). Rinse and repeat. Bringing back the first grid, this conceptually simulates an endlessly zooming effect.
Ideally, the grid itself would also be a bit more interesting, and there'd be more than just 2 grids/phases the animation goes through, but with being sick and all I just wanted to wrap it up and check off the prompt.
### #04 - Pixels
Throughout 2023 I experimented a lot with graph algorithms, maze generation algos being the favorite rabbit hole that I discovered. What's cool about these algos is that you don't actually have to use them to generate mazes, but can simply use them as space filling methods to grow regions on a 2D canvas - here's something I made with this idea, using Prim's algorithm specifically:

Letting multiple space filling generators loose on a square grid creates interesting regioned patterns.
These maze generating algorithms coming in many different flavors and therefore produce various kinds of patterns - due to something called the 'river factor', look it up, it's super interesting. For Genuary's 4th prompt I'm essentially just doing that, with the difference that I'm using a small canvas and filling in the pixel colors directly instead of drawing rectangles (then up-scaling it to a larger canvas).
Adding an individual unique ID to each region allows me to prune the boundaries between the final regions, which carves out paths between them and results in something that reminds of the patterns that you'd find on a giraffe:
0:00
/0:22
1×
#04 Pixels - [Link to Tweet](https://twitter.com/gorillasu/status/1742682500680622477?ref=gorillasun.de)
I ended up playing quite a bit with this idea throughout some of the other Genuary prompts.
### #05 - In the style of Vera Molnár (1924-2023)
RIP Vera Molnár, one of the pioneers of generative art, and one of my biggest personal inspirations. This 5th prompt was actually purposefully chosen to coincide with her 100th birthday - I thought that it was a really nice gesture to honor her legacy. The inspiration for my creation is actually one of the first pictures of hers that pops up when you look her up on google - the image that's also shown on her Wikipedia page:
[](https://de.wikipedia.org/wiki/Vera%5FMoln%C3%A1r?ref=gorillasun.de)
[Link to Vera Molnar's Wikipedia Page](https://de.wikipedia.org/wiki/Vera%5FMoln%C3%A1r?ref=gorillasun.de)
I don't actually know what the name of the artwork is, but I decided to do an animated version of it:
0:00
/0:08
1×
#05 - [Link to Tweet](https://twitter.com/gorillasu/status/1743276463875354971?ref=gorillasun.de)
If you're curious to learn more about Vera Molnár, I've written a little about her early career here:
[The Art of Vera Molnar 1947-1974Vera Molnar is one of the pioneers of what we know today as Generative Art. She was one of the firsts to dare and use computers for the purpose of making art. In this article we have a look at her rich artistic career and how she paved the way for the computer artists of today.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-art-of-vera-molnar/)
### #06 - Screen Saver
Here I wanted to make something that looked a bit *retro* as well as a little esoteric like the famous "Plumber's Nighmare". An initial version of the pixel particle spiral that I made for the first prompt was actually just some particles sampled within a rotating shere, here's what that looked like:
0:00
/0:10
1×
I thought that it looked pretty nice and that there was something there, hence I simply recycled the idea for the 6th prompt:
0:00
/0:20
1×
#06 - [Link to Tweet](https://twitter.com/gorillasu/status/1743407276176580926?ref=gorillasun.de)
I additionally used a posterization shader by [BarneyCodes](https://twitter.com/BarneyCodes?ref=gorillasun.de) that creates these cool shifting color bands on the spheres. The final animation ultimately turned out crunchier than I would've liked it to be - but I think that's in the spirit of being *retro*.
### #07 - Progress Bar
Similarly to the 4th Genuary prompt, here I'm letting Prim's algo do its magic and expand across the pixels of the canvas, consuming more and more pixels as the red region expands:
0:00
/0:33
1×
#07 - [Link to Tweet](https://twitter.com/gorillasu/status/1743769664029606311?ref=gorillasun.de)
The cool thing here is the pixel font, since it's a tiny canvas - 64x128 - using a regular font is not an option. Hence I made my own pixel font to be able to visualize the digits 0 through 9, representing them as 3x7 boolean matrices which get printed to the canvas simply by setting the pixels that coincide with a truth-y value to white. Naturally, there's more code to position the digits properly and space them out a bit.
All that's left is to calculate the ratio of pixels that are already filled in by the expander, with respect to the pixels that are still awaiting their red fate, to determine the *loading* percentage.
## Prompts 8 to 14
### #08 - Chaotic System
And yet another take on the maze/graph expansion strategy. Here I asked myself what it would look like if I cleared the interior of the regions after they were done expanding based on some adjacency rules, and that led to really interesting patterns:
0:00
/1:35
1×
#08 - [Link to Tweet](https://twitter.com/gorillasu/status/1744159664420360249?ref=gorillasun.de)
### #09 - ASCII
Nothing too mind boggling for this one, just a circular SDF applied to a grid, where the grid is represented by ASCII characters picked from an array that's sorted by brightness:
0:00
/0:12
1×
#09 -[ Link to Tweet](https://twitter.com/gorillasu/status/1744494439840481619?ref=gorillasun.de)
This is directly inspired by the famous donut Shaped C-code, that generates a spinning 3D donut made of ASCII characters:
### #10 - Hexagonal
This one was easy, simply took the code for my generative token [Hex Appeal](https://www.fxhash.xyz/generative/29784?ref=gorillasun.de) that I released over on fxhash in December, stripped the textures for a more minimal aesthetic, and turned the individual functions that create the individual regions into generators to animate the entire procedure - and you might've guessed it already, yet again it's Prim's algo that's at work here, carving out regions from the hexagonal grid:
0:00
/3:08
1×
#10 - [Link to Tweet](https://twitter.com/gorillasu/status/1744856827878359418?ref=gorillasun.de)
I might still make a "Making Of" style post about my Hex Appeal project in the future, if I find the time for it. If you're curious about Javascript generators however, I've actually written about them on two separate occasions, here's two bookmarks if you'd like to check those posts out:
[An Introduction to Javascript GeneratorsIn this post we’ll go over everything that you should know about Javascript Generators. Javascript generators are a versatile feature of ES6 and allow for interesting programming strategies, that otherwise wouldn’t be possible.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-introduction-to-javascript-generators/)
[Javascript Generators for Animated Generative SketchesIn this tutorial we’ll have a look at javascript generators and how they can be used for animating the drawing phase for our generative sketches. We’ll cover everything from syntax to actually implementing a simple example using p5’s draw loop.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/javascript-generators-for-animated-generative-sketches/)
### #11 - In the style of Anni Albers (1899-1994)
This was arguably the post that got the most likes over on Twitter, clocking in at a whopping 178 hearts as of writing this:



#11 - [Link to Tweet](https://twitter.com/gorillasu/status/1745219215626486232?ref=gorillasun.de)
This was the first non-animated artwork that I'd made for Genuary at that point - I don't know why but these turned out much better than I'd anticipated. Conceptually it's very simple, it's powered by a nested loop that places rectangles in a grid like manner, where some of the rows have a random chance to stretch a longer span occasionally. The individual rectangles then also have the chance to be further subdivided into smaller rectangles, to emulate that famous Anni Albers vertical stripe pattern that can be seen in many of her works.
Shout-out to Roni Kaufman and his gorgeous Ten palette that I used here, with some additional colors of my choice! Roni has this cool website called [Color Pals](https://ronikaufman.github.io/color%5Fpals/?ref=gorillasun.de) where he collects some of his personal palettes - you should check it out, I use that page a lot!
### #12 - Lava Lamp
Lava Lamp you say? Or did you mean Marching Squares? ... Yeah I think you meant Marching Squares:
0:00
/0:45
1×
#12 - [Link to Tweet](https://twitter.com/gorillasu/status/1745581603517083719?ref=gorillasun.de)
If you're not familiar, Marching Squares is an algorithm that lets you compute the contours of specific regions on a square grid. In this scenario, the regions are determined by the grid vertices that fall underneath a number of circles that are bouncing around the canvas. If two such circles are close enough, the Marching Squares procedure will produce a sort of blob like shape that spans across those two circles. A great guide to implementing this is by Patt Vira:
Patt's been putting out stellar tutorials at an absolutely dizzying rate, highly recommend checking out her channel!
### #13 - Wobbly Function Day
Really proud of this one, it was something that I wanted to make some time ago but couldn't really figure out how to do it. The effect in question was the thickening and thinning of the outward spiraling band:
0:00
/0:04
1×
#13 - [Link to Tweet](https://twitter.com/gorillasu/status/1745943991282192856?ref=gorillasun.de)
The wobbly effect ultimately boiled down to feeding in the angle of rotation and the distance to the center correctly into the sine wave that determines if a given entry on the grid should be drawn.
### #14 - Less than 1KB Artwork
One thing that I've always wanted to try out, was programming an animation in vanilla Javascript, without relying on P5's draw loop. And that's exactly what I ended up doing for the 14th prompt, the trigonometric/parametric animation that you see below clocks in at less than 1kb, including HTML and CSS code:
0:00
/0:06
1×
#14 - [Link to Tweet](https://twitter.com/gorillasu/status/1746540670318162363?ref=gorillasun.de)
And here's the entire code that sits behind the animation:
[](https://codepen.io/gorillasu/pen/LYabKXL?ref=gorillasun.de)
And here's the code for the above animation | [Link to Codepen](https://codepen.io/gorillasu/pen/LYabKXL?ref=gorillasun.de)
Note to self, need to figure out how to run an animation loop at a specific frame rate - because exporting the gif/video was a bit of a hassle. If you're interested in code golfing and Tsubuyaki processing, I've written a bit about it here:
[9 Tips for Tsubuyaki ProcessingTsubuyaki processing has become a popular and fun little challenge on Twitter. In this post I’ll be going over some character saving tricks that can come in clutch when you’re out of ideas for reducing the size of your code!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/9-tips-for-tsubuyaki-processing/)
## Prompts 15 to 21
### #15 - Use a physics Library
Another thing that I heavily explored in 2023 besides graph algorithms, were physics sims, which culminated in me learning a lot more about particle, spring and soft body physics - I was a bit short on time that day hence I just took the code that I'd already written and played a bit with it to make these little squishy blobs:
0:00
/0:50
1×
#15 - [Link to Tweet](https://twitter.com/gorillasu/status/1746994480635343106?ref=gorillasun.de)
I've always been meaning to return to it for further optimizations as well as implementing a soft body simulation with the Verlet Integration method. Maybe at some point throughout the year I will find the time for it. If you're curious about implementing something like this, here's two posts that should get you up to speed on the topic:
[Spring Physics, Particles and MeshesSprings are an integral concept to physics, fundamental components used in many applications, coming to life with Hooke’s Law from the 17th century. In this post we have a look at how to code and simulate such springs and extend a previous particle system with them.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/spring-physics-and-connecting-particles-with-springs/)
[Programming Soft Body Physics and BlobsOne approach to modeling deformable objects in computer graphics are spring-mass systems: a technique that allows us to bring Soft Body physics to life. Picking up from the particle mesh that we created last time; in this post we’ll tackle different configurations for blob-like shapes.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/soft-body-physics-and-blobs/)
### #16 - Draw 10 000 of Something
I love these kinds of prompts, since they're open-ended and allow you to experiment a bit. I've had this idea for drawing a Delaunay triangulation where the individual triangles are represented as hachures, and it turns out that the resulting pattern is quite fascinating:



#16 - [Link to Tweet](https://twitter.com/gorillasu/status/1747220373005856900?ref=gorillasun.de)
The alternative version in which the triangles are filled in with circles came later, but I ended up kind of preferring it over the initial one.
### #17 - Inspired by Islamic Art
I've actually attempted Islamic geometric patterns before, in February of 2022 to be precise (feels like it's centuries ago now) for Raph's weekly creative coding challenge, where the topic was "Arabesque":
[](https://openprocessing.org/sketch/1491053?ref=gorillasun.de)
[Link to Sketch on OpenProcessing](https://openprocessing.org/sketch/1491053?ref=gorillasun.de) | A submission for Raph's WCCChallenge so the code's super clean!
Remembering that it was quite time consuming to code this kind of tessellation, I decided to look for other patterns that might be a bit more straightforward - ended up discovering Samira Mian's work over on Pinterest, an artist that specializes in Islamic Geometry. And she's actually collaborated with Amy Goodchild in the past, another prolific generative artist. One of her patterns stood out to me in particular:
[](https://www.pinterest.de/pin/1084945366468052086/?ref=gorillasun.de)
[Link to Pin](https://www.pinterest.de/pin/1084945366468052086/?ref=gorillasun.de)
It seems very intricate at first, but once you look a little closer it's actually not so difficult to deconstruct into individual shapes: 4 octagons positioned on the vertices of a central square that rotate by 45° degrees, plus some additional lines that extend outwards from the square's vertices. And that's essentially the pattern that I recreated for the 18th prompt:



#17 - [Link to Tweet](https://twitter.com/gorillasu/status/1747607023636623772?ref=gorillasun.de)
I particularly really like the middle version, with the dark background that really accentuates the pattern. For this sketch the p5 graphics buffer came in super handy, making it possible to line up the colors of the tiles seamlessly whenever it is repeated. I detailed how this idea works in this article of mine:
[The P5 Graphics BufferIn this post we’ll have a look at the P5JS graphics buffer and how to effectively use it in your P5 sketching practice. We’ll also create a variation of the 10 PRINT pattern that repeats seamlessly.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-p5-graphics-buffer/)
### #18 - Bauhaus
I've been a huge fan of Gunta Stölzl's generative approach to textile work for the longest time, and wanted to create something that at least captured the visual rhythm that can be seen in many of her works - I'm not sure if I came close to it, but I'm still happy with the minimal geometric compositions that I ended up with. Here's a few curated outputs:

#18 - [Link to Tweet](https://twitter.com/gorillasu/status/1748077055793566035?ref=gorillasun.de)
### #19 - Flocking
Although I've implemented quite a few particle systems in the past, I've never actually tried my hand at coding a flocking simulation. Luckily we have Mr. Shiffman that's covered the topic on several occasions, highly recommend checking out coding challenge #124 in which he explains and implements such a flocking sketch from start to finish:
In addition to the alignment, cohesion and separation rules that are at the core of a flocking simulation, I added in collisions to make the particles not clump up too closely to each other:
0:00
/0:30
1×
#19 - [Link to Tweet](https://twitter.com/gorillasu/status/1748370261206851971?ref=gorillasun.de)
### #20 - Generative Typography
Not entirely certain if it counts as Generative Typography, but here I'm reusing the pixel font that I'd made for the 7th Genuary prompt, adding in more letters and scrolling them upwards on the canvas:
0:00
/0:06
1×
#20 - [Link to Tweet](https://twitter.com/gorillasu/status/1748820492667002962?ref=gorillasun.de)
I think this idea could be very useful in the context of a video game, aesthetically and conceptually. An additional property of these tiny letter matrices is that they're super light weight as opposed to regular font faces that needs to store vertex and stroke information.
### #21 - A Library that you haven’t used before
Never used ml5.js before, and was pleasantly surprised how easy it is to use - if you're not familiar, ml5 is essentially a web friendly JavaScript machine learning library. It comes equipped with a number of different pre-trained models that you can use straight out of the box, and is super easy to spin up alongside P5 to create all sorts of ML powered demos and visualizations.
In the sketch I made for Genuary, I used MobileNetV1 that lets you detect hand poses that occur within a given video feed (P5 lets you easily create one). The model then returns the coordinates of the landmarks of your hand - basically the fingertips and joints of your hand - I then leveraged this to control the position of a bigger particle with my index finger:
0:00
/0:16
1×
#21 - Link to Tweet
The only downside of it is that the hand/pose detection is a little slow and can't really run at a smooth frame rate - on my machine at least, maybe on a windows pc equipped with an NVIDIA graphics card things would be smoother. Would be such a cool idea for a live installation! Need to investigate this more in the future.
## Prompts 22 to 27
### #22 - Point - Line - Plane
I've done a lot of work in the past that tries to recreate a Suprematist aesthetic and I simply didn't feel like taking another stab at it that day. When I read the prompt I immediately had to think about a sketch from the prolific Loackme, in which he morphs a point into a line, then the line into a square, and then morphs them back again - had to do a cover of it for this prompt:
0:00
/0:04
1×
#22 - [Link to Tweet ](https://twitter.com/gorillasu/status/1749466737286713425?ref=gorillasun.de)
### #23 - 64x64
I didn't really know what I wanted to do for the 23rd prompt, but then I saw lots of pixelized falling sand simulations popping up on my Twitter timeline, leading me to discover that Daniel Shiffman had recently released a new video in his coding challenge series:
A remembering exploring falling sand simulations a couple of years ago, at a time where I still didn't really know much about creative coding, I never ended up implementing it for myself at the time, but here it was too compelling not to do so. My sketch didn't end up being too different from what Shiffman ended up with in his video:
0:00
/0:16
1×
#23 - [Link to Tweet](https://twitter.com/gorillasu/status/1749856633151164764?ref=gorillasun.de)
I talked a little more in depth about Cellular Automata in this issue of the Newsletter:
[Gorilla Newsletter 41This week 📬 the Tickle #90 - Falling Sand Simulation with the coding train - Maxime Heckel on Caustics - Building 3D scenes for the browser by Yasmin P. - Snippets for Art by Chris McCully - Zed going Open Source +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-41/)
What's noteworthy is the 3 part tutorial series by Jason McGhee on falling sand simulations, in which he explains how to implement a falling sand simulation and make it feel relatively realistic. He concludes by additionally implementing fire, smoke and wood elements as CAs:
[](https://jason.today/falling-sand?ref=gorillasun.de)
[Link to 1st part](https://jason.today/falling-sand?ref=gorillasun.de)
### #24 - Impossible Objects (Undecided Geometry)
Yet another pinterest discovery turned generative art, and although I don't know if it satisfies the prompt, I think it turned out pretty cool with the ambiguous perspective where it isn't immediately evident if the inner square grids are falling inwards or protruding outwards:



#24 - [Link to Tweet](https://twitter.com/gorillasu/status/1750176159965360208?ref=gorillasun.de)
I definitely want to play with this sketch a bit more in the coming days, I have a feeling that this has the potential to even become a generative token with just a little more work.
### #25 - Recreate this with Code
I visited my fam over the Christmas holidays, and naturally we went out a couple of times to grab food and such - the things that you do with family. On one of our post-meal walks near the Rhine (largest river in Germany, passing through Düsseldorf) I came across this paved pattern in front of a coffee shop. I don't usually take pictures, but seeing that I had done something similar with code before, I felt compelled to snap a pic - which came in really handy for this prompt:



#25 - [Link to Tweet](https://twitter.com/gorillasu/status/1750522520200261716?ref=gorillasun.de)
On the left you can see the sketch that I made a while back before coming across the tile pattern, in the middle the pic I snapped of the tile pattern, and on the right's the redo. Code for this isn't that difficult, the two main ingredients are linear interpolation and a sine wave.
### #26 - Grow a Seed
Still inspired from Shiffman's coding challenge #180, and after playing for way too long with Max Bittker's Sanspiel I just had to figure out how those cute little fungal growths came to be in the game - or at least try to recreate them. After about an hour of researching the topic and not finding much on the topic, I circled back around to Diffusion Limited Aggregation with which you can create these growth like patterns.
The way I implemented the sketch though probably doesn't have much to do with DLA anymore. Instead of throwing random walks or particles at the initial seeds to grow them, they proliferate outwards by consuming vacant adjacent cells. The main idea here is that all active cells have the ability to place new cells on immediate vacant neighboring cells, except if there's already too many active cells nearby within a given radius - that's why the branches can sometimes be thicker than just one pixel:
0:00
/1:34
1×
#26 - [Link to Tweet](https://twitter.com/gorillasu/status/1750905726870978688?ref=gorillasun.de)
I think that there's still many more additional rules that can be tacked onto this CA to make the shapes more interesting. For instance, the color change at the extremities results from tracking the distance of newly activated cells to the original seed.
### #27 - Code for One Hour
I had ambitious plans for this one - in my mind I'd record myself coding for an hour, turning the recording it into an epic timelapse, but ultimately I didn't have time for any of those ideas. Ultimately I simply decided to code for an hour, and see what comes of it.
In the past year I've started using Pinterest a lot more, not only to post my own creations, but to also discover new ideas and inspirations - it really is a treasure trove for digital art. Came across this super cool interlaced pattern that had these really vibrant margins between the interlacing lines - decided to recreate it with code which wasn't too difficult:


#27 - [Link to Tweet](https://twitter.com/gorillasu/status/1751375092959838421?ref=gorillasun.de)
This design is actually made by Florence Broadhurst, who's a really fascinating artist with a super interesting career, highly recommend checking out her works:
[Florence Broadhurst - WikipediaWikimedia Foundation, Inc.Contributors to Wikimedia projects.jpg/1200px-Tennis_party_at_Mount_Perry_(16283007683).jpg)](https://en.wikipedia.org/wiki/Florence%5FBroadhurst?ref=gorillasun.de)
## Prompts 28 to 31
### #28 - Skeuomorphism
These last couple of prompts also ended up being quite tough to get through, not only because they were quite specific but also because I was super short on time
After spending the entire day packing my entire existence into a couple of cardboard boxes I was able to finally sit down at 11:00 PM to start working on the 28th Genuary prompt. I decide to redo something I'd done before and see if I could recreate it - a simple flowfield of that's made out of short line segments that looks a little like grassy meadow (if you squint real hard):


#28 - [Link to Tweet](https://twitter.com/gorillasu/status/1751741805643661738?ref=gorillasun.de)
Here's also a polaroid of me packing my stuff that my partner snapped while I wasn't paying attention. Genuary really helped me power through this month, like I said it gave me something to look forward to every day when there was a lot of uncertainty in other aspects of my life. Will need to take it easy in the coming days to process and see where things will go from here.
### #29 - Signed Distance Functions
I absolutely love me my SDFs - having finally wrapped up the big move to the new place I finally had time to wind down a bit and take my time with this prompt:
0:00
/0:08
1×
#29 - [Link to Tweet](https://twitter.com/gorillasu/status/1752100759569612859?ref=gorillasun.de)
If you're interested in learning how to make something like this, I have good news, a series on coding grid based SDFs is already planned for the coming weeks! It's actually a lot easier than it looks.
### #30 - Shaders
Oof... this one definitely felt like the final boss of Genuary. I've attempted shader coding a couple of times in the past, without much success, not until this absolutely stellar video by Kishimisu dropped that helped me wrap my head around them a bit more:
If you want to get into shader coding you need to watch this video. Period. Not only does it introduce some of the essential concepts, it also additionally leaves you with a sketch to play with and modify. I think that's an underrated aspect of many tutorials, giving the audience something to take with them and experiment with after the tutorial. I think I've watched Kishimisu's video like 5 times now, and every time I feel like I'm getting a better grasp on what's going on. I managed to make my own bastardized version of what Kishimisu creates in the video, here:
0:00
/0:15
1×
#30 - [Link to Tweet](https://twitter.com/gorillasu/status/1752333052108239103?ref=gorillasun.de)
I also have no idea how to export perfectly looping animations from shadertoy yet - if it's even possible. Maybe I need to route the shader through P5's WEBGL mode and then use the convenient saveGif() function.
### #31 - Generative Music
And we already find ourselves at the end of Genuary again with this final prompt - this is the only video on here for which you'll have to turn on the audio. A simple idea where the bouncing particles produce a sound whenever they collide with each other, built with tone.js:
0:00
/0:34
1×
#31 - [Link to Tweet](https://twitter.com/gorillasu/status/1752623881544692122?ref=gorillasun.de)
## Concluding Thoughts
And that's it - we made it through Genuary 2024! Ultimately it's always nice to come out on the other end with a massive folder full of ideas to explore and work on throughout the coming weeks of the year. A couple of the prompts definitely turned out unexpectedly nicer than I had anticipated, hence I'd like to explore these a little more while they're still fresh in my mind.
**This concludes my personal Genuary Recap, keep your eyes peeled in the coming days for another recap in which I'll showcase some of the creations from others!**
**If you enjoyed this post, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithms know that this is good content! And if you've read this far, thanks a million!**
*If you're still hungry for more Generative Art and Creative Coding content, consider checking out the weekly newsletter here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
### Gorilla Newsletter 41
URL: https://www.gorillasun.de/blog/gorilla-newsletter-41/
Last updated: 2024-08-15T08:00:42.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 41st 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 - as well as a sprinkle of my own endeavors.
**Hope you're all having a great start into the week!** That said, let's get straight into it!👇
## The Tickle #90
I'm stoked to announce that I'm featured in the 90th issue of the Tickle, a monthly magazine that covers the people and happenings in contemporary digital art, with a focus on the Web3 space:


And hats off, Johnny did an amazing job at making my rambly answers read in a coherent manner - he asked about how I got into programming and generative art in the first place, as well as the motivations behind my blog. You can check out this issue and all previous tickle issues over on [the official website](https://thetickle.art/?ref=gorillasun.de). Also consider supporting the Tickle for all of the effort that's going into interviewing different individuals in the space, transcription and putting together a beautiful layout to provide stellar coverage of the digital art space - the tickle is a magazine that's primarily distributed as a digital token:
[](https://objkt.com/tokens/KT1KhepNMQ38DQ84QzT2ijVtsP1cMrvAyzJj/19?ref=tz1hXx6tvTV3kzxpBR6E4hDYcxdgcRGHUTFj)
[Link to Issue](https://objkt.com/tokens/KT1KhepNMQ38DQ84QzT2ijVtsP1cMrvAyzJj/19?ref=tz1hXx6tvTV3kzxpBR6E4hDYcxdgcRGHUTFj)
An interesting story here is that Johnny actually reached out to me at the beginning of 2022, but my life was a bit chaotic back then (spoilers, it still is) hence I never ended up getting back to him. I was super happy when he reached out again asking for a call. Another thing to mention here is that it's not actually my very first appearance in the tickle - I was mentioned in [issue #57](https://teia.art/objkt/765721?ref=gorillasun.de) by the prolific Aleksandra Jovanić, and I still cherish her words till today:
[](https://teia.art/objkt/765721?ref=gorillasun.de)
[Link to Issue](https://teia.art/objkt/765721?ref=gorillasun.de)
## All the Generative Things
### Simulating Sand with Cellular Automata
Daniel Shiffman's long running coding challenge series on YouTube resumes with video #180, this time teaching us how to implement a falling sand simulation:
This coding challenge is actually closely related to a number of previous challenges, all of which revolve around Cellular Automata like [#85](https://www.youtube.com/watch?v=FWSR%5F7kZuYg&ref=gorillasun.de) (Conway's Game of Life) and [#179](https://www.youtube.com/watch?v=Ggxt06qSAe4&ref=gorillasun.de) (Wolfram's Elementary Automaton), and you might've heard of the term before, as it pops up in a few different places in computation.
*But what actually are Cellular Automata?* In simple terms, they're computer simulations that consist of a grid of cells, each of which can be in a certain state. The state of these cells can then change and evolve over the course of a number of discrete time steps, as the simulation progresses, based on certain rules. These rules often have to do with the state of adjacent neighbors of a given cell.
The most famous example of a cellular automaton is [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s%5FGame%5Fof%5FLife?ref=gorillasun.de), which gives rise to all sorts of fascinating patterns:

[Gosper's](https://en.wikipedia.org/wiki/Bill%5FGosper?ref=gorillasun.de "Bill Gosper")[Glider Gun](https://en.wikipedia.org/wiki/Gun%5F%28cellular%5Fautomaton%29?ref=gorillasun.de "Gun (cellular automaton)") creating "[gliders](https://en.wikipedia.org/wiki/Glider%5F%28Conway%27s%5FLife%29?ref=gorillasun.de "Glider (Conway's Life)")" in the cellular automaton [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s%5FGame%5Fof%5FLife?ref=gorillasun.de "Conway's Game of Life")
Conway's Game of Life was a catalyst in making CAs much more popular not just in academia, but also in other contexts - creative coding and generative art for instance. A fun anecdote here is that Conway was actually annoyed at how popular his idea became, in many ways overshadowing his other works in mathematics and computation. If you've got an hour to spare you should give the following video a watch in which Conway talks about surreal numbers, a fascinating number system that he invented:
But to get back on track, the cool thing about CAs is that you can come up with all sorts of rules to simulate different kinds of behaviors, falling sand simulations are just one type thereof. A stellar example of what you can do with CAs is Max Bittker's Sandspiel, a falling sand sandbox game that introduces many other elements and materials besides just sand, all of which interact in some manner. For example, you can place a pile of sand, then drop a seed, which then grows into a plant, that you can then burn with fire, then douse with water to extinguish the fire and regrow the plant, and so on.
[](https://sandspiel.club/?ref=gorillasun.de)
[Link to Sandspiel](https://sandspiel.club/?ref=gorillasun.de) | Try it, it's super addictive
The game's essentially one big Cellular Automaton. Moreover, it runs fully in the browser, so you can give it a try yourself - but careful, it's kind of super addictive. Max Bittker also made [a write-up](https://maxbittker.com/making-sandspiel?ref=gorillasun.de) in which he elaborates on the motivations behind Sandspiel and some of the implementation details, that do get a little technical towards the middle.
As pointed out in the coding challenge however, one of the best written guides on implementing a falling sand simulation is by Jason McGhee:
[](https://jason.today/falling-sand?ref=gorillasun.de)
[Link to Article](https://jason.today/falling-sand?ref=gorillasun.de)
I think I found myself on this article a few years back, or maybe it was another tutorial, but I was delighted to see that it's now actually turned into a three part series, in the last of which McGhee goes as far as showing us how to code Fire, Smoke and Wood elements as well - I don't think there's other resources on the internet that cover these.
By complete coincidence I also came across a Tweet by none other than John Maeda, pointing out a sort of fractal/recursive take on Conway's Game of Life which lets you infinitely zoom into the simulation to reveal that the individual cells are made out of cells as well:
0:00
/0:10
1×
It's CAs all the way down | [Link to Tweet](https://twitter.com/johnmaeda/status/1749872776549367828?ref=gorillasun.de) | [Link to Demo](https://oimo.io/works/life/?ref=gorillasun.de)
I was about to say that "I have absolutely no idea how you would implement something like this" before I dug around a bit more and found that there's actually a blog post on how it's made - although translated from Japanese it still provides interesting insights:
[Life Universe: A Technical ExplanationThis is a translation of the original article. It was mostly processed by ChatGPT and DeepL and then I fixed the details. It’s been a while since it was released, but I’ll explain the technical details of “Life Universe”. About Life Universe First, there are some things you should know befおいもログshr](https://blog.oimo.io/2023/04/10/life-universe-en/?ref=gorillasun.de)
I've said this before, but there's something strangely poetic about English translations of Japanese texts:

That said, all the mentioned resources should get you started with CAs and maybe you end up with some interesting sketches through it, I came up with my own little fungus CA for Genuary 27 "Grow a Seed" which you can see towards the end of the Newsletter.
### Shiffbot: An educative AI Experiment
If that wasn't all, Shiffman has also been up to other shenanigans - with some friends over at Google Labs he created his own coding assistant/tutoring chat bot:

[Link to Tweet](https://twitter.com/shiffman/status/1750229844233752962?ref=gorillasun.de) | [Link to ShiffBot Waitlist](https://shiffbot.withgoogle.com/?ref=gorillasun.de)
Basically, ShiffBot ships as a Chrome extension, where Shiffman's head idly sits in the corner of your browser window (staring into the depths of your soul) awaiting your programming questions whenever you might be stuck on something. Google Labs also released an interesting blog post in which they detail how the bot is actually made:
[How it’s Made - Exploring AI x Learning through ShiffBot, an AI experiment powered by the Gemini APIThis Lab Session gives you a glimpse of what’s possible using the Gemini API. Use Google’s AI offerings to bring your own ideas to life.Google Developers Blog Logo](https://developers.googleblog.com/2024/01/how-its-made-learning-through-shiffbot-powered-by-gemini-api.html?ref=gorillasun.de)
In essence the Gemini powered chat bot is fine-tuned on the many resources that Shiffman's created, making the replies that it returns sound as if they were coming directly from Shiffman himself. If that sounds interesting to you, you can sign up to it via a waiting list [here](https://shiffbot.withgoogle.com/?ref=gorillasun.de).
### Maxime Heckel on Caustics
Maxim Heckel is back with another stellar tutorial! Calling them blog posts as he does in his announcement Tweet is a gross understatement, as these pieces of writing are incredibly detailed and in depth. Following his previous two explorations on [Raymarching](https://blog.maximeheckel.com/posts/painting-with-math-a-gentle-study-of-raymarching/?ref=gorillasun.de) and [Volumetric Raymarching](https://blog.maximeheckel.com/posts/real-time-cloudscapes-with-volumetric-raymarching/?ref=gorillasun.de), this time around he teaches us about simulating caustics with shaders:

[Link to Tweet](https://twitter.com/MaximeHeckel/status/1749828336040526044?ref=gorillasun.de)
The term *Caustic* refers to the patterns that emerge when light shines and travels through transparent material, like water or glass. Simulating this behavior of light computationally is quite involved, but Maxime breaks down all of the individual steps and demonstrates them with interactive code examples:
[Shining a light on Caustics with Shaders and React Three Fiber - Maxime Heckel’s BlogA step-by-step guide on how to build a caustic light effect for your React Three Fiber project using shaders, render targets, normal maps, and custom materials.Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/caustics-in-webgl/?ref=gorillasun.de)
Highly recommend checking out all of Maxime's articles!
### Building 3D Scenes by Yasmin P.
And while we're talking about 3D things, here's a gorgeous 3D scene created by Yasmin P. that also runs fully in the browser, in a thread she details how she created the scene with Blender and react-three-fiber:
0:00
/0:15
1×
[Link to Thread](https://twitter.com/oyaaaaaaaasumi/status/1749498053692686680?ref=gorillasun.de)
I think we're all familiar with Blender already, a software that allows you to create 3D scenes and assets. But what's "react-three-fiber" though? I've heard of the framework before, but I had never actually looked into it before, and apparently it's a library that glues together the popular Three.js, which streamlines creating 3D things in the browser, and the React framework. React-three-fiber thus makes it possible to create interactive 3D environments in the browser. Yasmin also has many other really beautiful projects on her website, highly recommend checking it out for yourself here:
[Yasmin P.Design engineer and digital 3D artist, currently at Vercel.](https://www.yasmins.site/?ref=gorillasun.de)
### Chris McCully's Snippets for Art
Chris McCully has built a little lookup tool/library for code snippets that are useful for generative art purposes:
[](https://snippets-js.vercel.app/?ref=gorillasun.de)
[You can use the tool here](https://snippets-js.vercel.app/?ref=gorillasun.de)
Depending on what type of sketch/artwork you're making, there's a often number of general purpose functions that reoccur - I think a lot of us just copy them over from other projects and browser bookmarks whenever we need them, or even create our own little library files and duplicate them when we start new projects - like calculating the angle between two vectors, or shuffling an array, etc. But both approaches are not very efficient, you either sacrifice some of your time to dig through your stuff and find the snippet that you need, or end up sacrificing storage space.
Chris' tool solves it with this little library of useful snippets, presenting them in a little display box where they can be browsed and copied from. Moreover, everyone's invited to contribute to it and submit their own snippets that they might deem useful. As you can see the list entries have the contributor's name attached to them. Chris also made a little write-up for the motivations behind it here:
[Snippets for ArtA simple library of generative art toolsMediumChris McCully](https://medium.com/@chriswmccully/snippets-for-art-7dcea97d68b3?ref=gorillasun.de)
I think it's a super cool initiative, and I've had a similar idea in the past for a personal lookup tool, but never really got around to making it although I started collecting some of my own functions in a little list. One thing that almost always makes its way into my own projects are functions that test the intersection between different shapes, like two lines, or the intersection between a line and a circle to determine the intersection coordinates - one resource that's been mega useful for that has always been Paul Bourke's notes on these geometrical calculations, might be worth adding these in:
[](https://paulbourke.net/geometry/pointlineplane/?ref=gorillasun.de)
[Link to Paul Bourke's notes](https://paulbourke.net/geometry/pointlineplane/?ref=gorillasun.de)
## Tech and Code
### Zed an open source collaborative code Editor
Hailed as being the *VS Code Killer*, Zed recently announced that it's now open-source under a copyleft license. If you haven't heard of Zed before, it's made by the same people that created the customisable code editor [Atom](https://atom-editor.cc/?ref=gorillasun.de) (which is no longer being developed as of 2022) and [Tree-sitter](https://github.com/tree-sitter/tree-sitter?ref=gorillasun.de), and is essentially a code editor that's mainly geared towards a collaborative approach to writing code. You can learn more about the motivations to turn Zed open source here and how the team is planning to finance it's development in the future:
[Zed is now open source - Zed BlogWe hope you’ll join us in our mission to fundamentally advance software collaboration.Nathan Sobo](https://zed.dev/blog/zed-is-now-open-source?ref=gorillasun.de)
What makes Zed better than VS Code? I have yet to try it for myself, but the team behind it boasts over a decade of experience in building that type of software - for instance, did you know that they originally built electron for making Atom? I found this video by Theo highly informative about everything that's going on with Zed, in which he also goes over the editor and showcases how it works, exploring its features and comparing it to VS Code:
Besides blistering fast performance, Zed places emphasis on inviting other coders into your project - which is something that has become more important in this current age of content creation, where code is now also frequently written live on stream:

A comment under Theo's video directly from the creators of Zed.
I personally switched over to VS Code from using Atom for a long time, because it was becoming more and more clunky, and I'm pretty happy so far, but I will definitely give Zed a shot in the coming days and test it out for myself. Zed also has a blog section over on their official website that I found highly enjoyable to read:
[From The Blog - Zed - Code at the speed of thoughtZed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.Code at the speed of thought](https://zed.dev/blog?ref=gorillasun.de)
### Only 90s Web Devs Remember This
In a humorous article, Zach Holman transports us back to the 90s by sharing with us all sorts of web dev tricks that were the *hot-shit* back then:
[Only 90s Web Developers Remember ThisWritten pieces, talks, and other bits by Zach Holman.Zach Holman!Zach Holman](https://zachholman.com/posts/only-90s-developers/?ref=gorillasun.de)
### What every JavaScript developer should know about Unicode
I've never actually spent any time on learning about Unicode beyond that it is an encoding standard that computers use to display the letters and symbols that we see on our screens. Dmitri Pavlutin wrote a deep dive on the topic, specifically in the context of Javascript, which turns out to actually have quite a few features that allow us to manipulate and work with unicode directly:
[](https://dmitripavlutin.com/what-every-javascript-developer-should-know-about-unicode/?ref=gorillasun.de)
[Link to Article](https://dmitripavlutin.com/what-every-javascript-developer-should-know-about-unicode/?ref=gorillasun.de)
## AI Corner
### Salmon in the Loop
The Gradient is one of my favorite publications when it comes to AI, boasting a large collection of thoughtful essays from many of the individuals that are deeply involved with the tech. In a recent article from December of the past year Kevin McCraney talks about a challenging problem that he had to solve: Fish Counting, specifically in the context of hydroelectric dams:
[Salmon in the LoopOn fish counting – a complex sociotechnical problem in a field that is going through the process of digital transformation.The GradientKevin McCraney](https://thegradient.pub/salmon-in-the-loop/?ref=gorillasun.de)
The title of the article is a play of words on the term "Human in the Loop", which refers to systems in which an expert individual is needed for monitoring and decision making. The article explains that a "Human in the loop" has been the main approach to fish counting, and contrary to how simple the task sounds, it's actually a physically demanding job where you not only have to count the number of passing fish, but also need to monitor the characteristics of them, if they're presenting indications of being injured or ill in some manner, for instance.
Kevin continues to explain how computer vision models can help with this task and elaborates on how they need to be configured and trained towards that end.
### Building an LLM from Scratch
Ravin Kumar has been working on a guidebook for generative AI, specifically geared towards building your own *small* large language models from scratch - although currently still a work in progress, it seems to be taking shape steadily, having already accrued over 2k stars on github:
[The GenAI GuideGenAI capabilities used to be limited to researchers or folks in a few organizations. Not anymore. These capabilities are widely available, whether it be popular chat style interfaces, through apis…PythonRavin Kumar](https://ravinkumar.com/GenAiGuidebook/book%5Fintro.html?ref=gorillasun.de)
## Gorilla's Genuary so far...
We're actually almost through Genuary 2024, and I've managed to stay on top of all the daily prompts not missing a single one so far - although the last couple of days have been quite hectic - here's a quick recap of my sketches this week again:
0:00
/0:04
1×
Genuary 22 - Point - Line - Plane | I didn't feel like doing a Suprematist composition that day, and remembered a sketch by loackme from a couple of weeks ago, hence I simply challenged myself to recreate it. It turned out to be quite tricky.
0:00
/0:16
1×
Genuary 23 - 64x64 | This challenge was a little different for eveyone as the prompt was manipulated with a little Javascript, showing everyone a different power of 2 depending on what browser they use. I took inspiration from the Coding Train's most recent video trying my hand for the first time at a falling sand simulation.



Genuary 24 - Impossible Geometry | While browsing pinterest I came across a Tron-like graphic that was simply made out of lines but appeared to me like it portrayed an inward going corridor of some sorts. On a second glance I could also visualize the grids as patterns that were protruding outwards. Here I recreated the idea with code.


Genuary 25 - I should try to recreate this with code | While visiting family on Christmas I came across an interesting tile pattern in Düsseldorf somewhere near a cafe at the river, and it reminded me of a sketch that I'd done before, so I challenged myself to recreate it again.
0:00
/1:34
1×
Genuary 26 - Grow a Seed | This is the Cellular Automata that I concocted, inspired by Diffusion Limited Aggregation I expand initial mouse presses on the grid and grow the emerging shapes outwards. I will likely write about this in more detail sometime soon.


Genuary 27 - Code for one hour | Yet another thing that was inspired by something I saw on Pinterest. I came across this interesting interlaced pattern, that had something very vibrant about it - it's a design by Florence Broadhurst, who's a fascinating artist and individual with an equally interesting career. Recommend checking out her other works.
## Music for Coding
I discovered Kurt Rosenwinkel a couple of years ago when I was actively trying to get better at Jazz improvisation, and this song just stuck with me ever since. Kurt Rosenwinkel is just out of this world when it comes to improvisation, and there's something about this song in particular that I really love, as if you'd taken a sunset view out on the ocean and channeled it into the form of a song:
**And that's it from me this week, while I'm typing out these last words I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 40This week Bantam Tools acquires Evil Mad Scientist - The Flood by Yoshi Sodeoka - Digital Art recap of 2023 - Fractal Forums - Procedural Generation in Dwarf Fortress - Lesser known Accessibility Issues - Designing target sizes +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-40/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 40
URL: https://www.gorillasun.de/blog/gorilla-newsletter-40/
Last updated: 2024-01-22T11:52:37.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 40th 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 - as well as a sprinkle of my own endeavors.
**This week we reach a milestone with 40 weeks of consecutive newsletter issues,** I'll have to think about something special for the 50th installment, if you have ideas shoot me a message - that said, **hope you're having a great start into the week!** Let's get into it!👇
## All the Generative Things
### Bantam Tools acquires Evil Mad Scientist
Our favorite plotter company, Evil Mad Scientist, recently announced that they've been acquired by Bantam Tools:
[](https://twitter.com/EMSL/status/1747323288722772094?ref=gorillasun.de)
[****Link to Tweet**](https://twitter.com/EMSL/status/1747323288722772094?ref=gorillasun.de)
If you're not familiar with Evil Mad Scientist - in contrast to what the company name might suggest, they do not produce weapons of mass destruction, but rather supply generative artists with programmable drawing machines called pen plotters - you can see a lot of what people make with them if you search for [#plottertwitter over on TwitterX](https://twitter.com/hashtag/plottertwitter?ref=gorillasun.de). In a similar vein, Bantam Tools builds desktop CNC milling machines - basically high precision 3D printers that can carve things out of soft metals, plastic as well as some other materials, and mainly used to create components to build other kinds of devices.
[Bantam Tools Blog — Bantam Tools Acquires Evil Mad Scientist to Accelerate Development of Next Generation Art and Handwriting MachinesBantam Tools Acquires Evil Mad Scientist to Accelerate Development of Next Generation Art and Handwriting Machines Windell Oskay and Lenore Edman of Evil Mad Scientist named CTO and COO of Bantam ToolsBantam ToolsDevin Cooper](https://www.bantamtools.com/blog/bantam-tools-acquires-evil-mad-scientist?ref=gorillasun.de)
What does that mean for all those who've been fans of EMS plotters? Well, we can look forward to a new generation of plotter machines under this new joint force - and they've actually already posted a page for the new product that's in the works and coming in Spring 2024, and you can already have a look at it here (not sponsored):
[](https://store.bantamtools.com/products/bantam-tools-nextdraw?ref=gorillasun.de)
[Link to NextDraw](https://store.bantamtools.com/products/bantam-tools-nextdraw?ref=gorillasun.de)
If you're like me and don't actually know the first thing about plotters, Raph did a little review of NextDraw's features yesterday on his stream, comparing them to the previous AxiDraw features - he's has an AxiDraw and knows what he's talking about, so I found him going over the features really helpful. From what it seems the NextDraw will be an improved version of its predecessor:
0:00
/0:30
1×
[****Link to Stream**](https://www.twitch.tv/videos/2039414864?t=01h16m13s&ref=gorillasun.de)
### The Flood by Yoshi Sodeoka
Verse's most recent exhibition features Yoshi Sodeoka, an accomplished multidisciplinary artist, who's gained recognition for his experimental and psychedelic visual creations, as well as being one of the early pioneers in combining art and technology. A stand out piece of his was his 2004 creation *ASCII Bush* in which he transforms two presidential speeches into works of art by representing them entirely with ASCII characters alongside distorting the audio into alien sounding noises:
[ASCII BUSH — Yoshi SodeokaVideo 2004 ASCII BUSH View this project at Turbulence.org ASCII BUSH is an ascii video rendition of two State of the Union addresses — one delivered by…](https://sodeoka.com/ASCII-BUSH?ref=gorillasun.de)
> The result produces a very grating, flat, and programmatic feel to the topic of war and politics. The stateliness, patriotism, and presidential feel are erased, replaced with a cold, cruel, and unwavering drone of unfamiliar visuals and audio. The viewer is forced to experience the political message through a completely different lens \~ [Cale Mooth, Yoshi Sodeoka Rides the Psychedelic Wave ](https://midnightcheese.com/2022/05/yoshi-sodeoka-rides-the-psychedelic-wave/?ref=gorillasun.de)
I'm wondering if this is historically actually the very first instance of someone attempting to visualize a video with ASCII characters - today it isn't really an innovative thing anymore. Seems like it might be worth investigating this for an article.
Beyond that, Sodeoka has also been exhibited in several venues around the globe, such as the Centre Pompidou, Tate Britain, the Museum of Modern Art, and many more. He's also worked with several bigger brands and artists - one notable example from last year being his involvement in directing the music video for Metallica's track "You must Burn!". You can actually browse all of his works in chronological order over on his portfolio - with the first one dating back to 2001:
[Yoshi SodeokaPortfolio Website of Yoshi Sodeoka, Video Artist.](https://sodeoka.com/?ref=gorillasun.de)
If you want to learn more about Yoshi Sodeoka, here's a stellar essay that summarizes his long career very nicely:
[Yoshi Sodeoka Rides the Psychedelic WaveA blend of analog and digital signals interacting, shifting in shape and color, and creating a sometimes-dizzying barrage of visual intensity.Midnight CheeseCale Mooth](https://midnightcheese.com/2022/05/yoshi-sodeoka-rides-the-psychedelic-wave/?ref=gorillasun.de)
To return to the actual topic of discussion, for his recent Verse exhibition he created a series of animations that are quite unlike anything I've seen, I actually have no clue how they're made - my hunch being Touchdesigner due to the shader-esque qualities of the graphics. The animations essentially visualize a number of little digital spider creatures that sprawl out around the canvas, leaving trails behind them, weaving digital spider webs as they explore the canvas. The animations are a bit eerie, but at the same time mesmerizingly beautiful - I had a lot of fun going through the series and watching each one a couple of times:
[The Flood | VerseYoshi Sodeoka’s two latest series, The Flood: Orchestrated and The Flood: Chaos consist of code-based simulations that juxtapose the organic behavioural patternVerse](https://verse.works/exhibitions/the-flood?ref=gorillasun.de)
Highly recommend checking out Sodeoka's work.
### Most Interesting Digital-Art Experiments of 2023
Jiayin Chen from artnet compiled a personal list of the digital-art projects/experiments/happenings from 2023 that she deems as the most interesting, mainly in context of blockchain technology. Quite a few spots on her list are taken up by generative art related projects:
[](https://news.artnet.com/art-world/art-and-tech-2023-on-chain-art-2419622?ref=gorillasun.de)
[Link to Article](https://news.artnet.com/art-world/art-and-tech-2023-on-chain-art-2419622?ref=gorillasun.de)
It's a really good recap of everything that's happened in 2023, and 2023 has definitely been an amazing year for digital and generative art alike. There were a bunch of standout moments throughout, for instance, the auction of Ringers #879's (The Goose) at Sotheby, or fxhash 2.0's announcement and launch later in the crazy month of December, among many more things. I don't know how we'll top all of that in 2024, but I have a strong feeling that a lot of things are already brewing.
### From Islamic Geometry to Fractal Forums
After finishing my creation for Genuary's 17th prompt "Islamic Geometry" (today's banner) I went ahead and browsed some of the creations of others, coming across a really beautiful pattern by Pablo Andrioli:
[](https://twitter.com/kali%5Fshade/status/1747725680115102082?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/kali%5Fshade/status/1747725680115102082?ref=gorillasun.de) | [Other Tweet with an animated version](https://twitter.com/kali%5Fshade/status/1747615501738545440?ref=gorillasun.de)
Mesmerized, I inquired about how it's done, or at least pointers towards that end, and when I asked Pablo over on discord he mentions that he learned how to do these patterns over Fractal Forums:

And it seems to be indeed the case that the forum is no longer in use - you can no longer post or register to it - but now serves as a gigantic searchable resource for fractal related notions and discussions:
[](http://www.fractalforums.com/m?ref=gorillasun.de)
[Link to old Fractal Forums](http://www.fractalforums.com/m?ref=gorillasun.de)
As the banner of the deprecated site indicates, there is a newer iteration of the website that is currently active - so if you're looking to exchange ideas with other Fractal enthusiasts, it's probably your go-to place:
[Fractalforums - Indexthe largest resource for fractal art, fractal research and fractal programming online - learn to create fractalsFractalforums](https://fractalforums.org/?ref=gorillasun.de)
### Procedural Generation in Dwarf Fortress
And from the World of Video games this week, I came across a GDC talk back from 2016, where the creators of Moon Hunters and Dwarf Fortress talk about the procedural components in these games:
In the talk, the creator of DF talks about how the game procedurally generates centuries of history of a given world instance, which the player then picks up when they start a new game:
[](https://www.reddit.com/r/proceduralgeneration/comments/193evav/comment/kh8o1x8/?utm%5Fsource=share&utm%5Fmedium=web2x&context=3)
[Link to comment](https://www.reddit.com/r/proceduralgeneration/comments/193evav/comment/kh8o1x8/?utm%5Fsource=share&utm%5Fmedium=web2x&context=3)
If you're not familiar with Dwarf Frotress, it's arguably one of the most ambitious games ever, and two decades after it's inception it is still in development today, and has amassed a massive hard-core community around it, you can read a bit about it in this article from Marie Dealessandri from last year, interviewing the two creators of the game:
[Slow and steady wins the race: How Dwarf Fortress reinvented itself after 20 yearsDwarf Fortress is an oddity across the games industry. The life’s work of brothers Tarn and Zach Adams (under the name …GamesIndustry.bizMarie Dealessandri](https://www.gamesindustry.biz/slow-and-steady-wins-the-race-how-dwarf-fortress-reinvented-itself-after-20-years?ref=gorillasun.de)
But what makes Dwarf Frotress so special? From what I read it seems that it is the procedural approach that it takes towards simulating an entire phatansy world, where each individual character in that world acts as if they had a volition of their own, and interact with other characters in that game without us, the player, necessarily knowing about it:

[Link to comment](https://www.reddit.com/r/dwarffortress/comments/1jego3/comment/cbdv90t/?utm%5Fsource=share&utm%5Fmedium=web2x&context=3)
[You can read about the development progress of DF here](http://www.bay12games.com/dwarves/?ref=gorillasun.de). Tanya Short and Tarn Adams also edited a book titled [Procedural Generation in Game Design](https://www.amazon.de/-/en/Tanya-Short/dp/1498799191?ref=gorillasun.de), where texts from many game devs were compiled - seems like a relavant read here.
### Generative Minis
1. In yet another interview following his Cytographia release, [Golan Levin talks to Regina Harsanyi, this time in video format](https://www.youtube.com/watch?v=7RIFl%5FgJfL0&ref=gorillasun.de), where they fill in some of the details that the other interviews might not have covered. For instance, Golan is asked about his thoughts on asemic writing systems, and also digs a little deeper into the controls that are built into the token (which I wasn't aware of) that allow the viewer to toggle certain things in the generative artwork.
2. Lynn Cherny runs a newsletter titled "Things I Think Are Awesome" or TITAA over on SubStack in which she talks about all sorts of things related to creative coding and generative AI as well as a broad range of other topics, like popular media and book recommendations. The highlight of her newsletter are the opening anecdotes in which she recounts interesting facts based in folklore - [highly recommend checking out the latest installment of TITAA](https://arnicas.substack.com/).
3. [Chris McCully wrote a little bit about Polar Shapes - shapes made with trigonometry - and how to achieve them with code.](https://medium.com/@chriswmccully/intro-to-polar-shapes-77251125ae8e?ref=gorillasun.de)
4. Patricio Gonzalez Vivo is back with another article, this time writing about [Depth estimation from single images](https://medium.com/@patriciogv/the-state-of-the-art-of-depth-estimation-from-single-images-9e245d51a315?ref=gorillasun.de) explaining where the filed is currently at and comparing some of the state of the art approaches today.
## Tech and Code
### 16 Lesser Known Accessibility Issues
Accessibility is a big part of the modern web, and should be kept in mind when developing and designing any sort of webpage - it's never possible to anticipate who might be visiting your page, how they intend on navigating it, or what assistive technology they might have to rely on to navigate the web.
Toward is a digital branding agency that had their website thoroughly tested, and reports on some of the issues that they missed and were discovered through this process:
[16 Lesser Known Accessibility Issues | TowardIn this post Matt discusses 16 accessibility issues and solutions we’ve encountered while building a bi-lingual website application for a public sector…Toward](https://toward.studio/latest/16-lesser-known-accessibility-issues?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
I already knew about aria labels that need to be included for users with screen readers, but I never thought about 'focus'. For instance, when you display a popup (modal) on screen and the user keeps exploring the page, you need to shift focus to that modal now instead of just continuing with the page underneath it. I don't actually know how to achieve that right now so I'll have to look into that... designing websites is really hard.
### Designing better Target Sizes
And while we're talking about accessibility - Ahmad Shadeed is back with yet another in depth CSS resource - like really in depth, the page is absolutely massive - this time teaching us about designing better target sizes on our webpages:
[Designing better target sizesAn interactive guide on designing better target sizes on the web.LogoAhmad Shadeed](https://ishadeed.com/article/target-size?ref=gorillasun.de)
What actually is a target size? It's essentially the effective size of the area of a clickable UI element in which the user's interaction is detected. You'll probably have noticed that on mobile phones you can sometimes get away with clicking slightly outside of a tiny text and still have it trigger something - that's because you managed to hit within the target size. Now, how do you actually design these target sizes? And what should you keep in mind when creating them for different devices?

Ahmad Shadeed proceeds to explain how to implement these target sizes for different navigation elements.
### Most Hearted Pens of 2023
CodePen compiled a list with the most hearted pens of 2023, all of which are some really cool innovative concepts, if you have a couple of minutes you should check them out for yourself and play around a bit with them - my personal favorite is actually #9 that showcases a cool blend mode trick:
[](https://codepen.io/2023/popular/pens/10?ref=gorillasun.de)
[Link to most hearted pens of 2023](https://codepen.io/2023/popular/pens/10?ref=gorillasun.de)
### 4 Billion if Statements
It's been a minute since I've enjoyed reading an article this much - Andreas Karlson really outdid himself with this post, trying to write a program that can check if a number is even or odd... the *hard* way:
[4 billion if statementsI recently stumbled upon this screenshot while researching social media on the train. Of course, it was followed by a cascade of spiteful comments, criticizing this fresh programmer’s attempt to solve a classical problem in computer science. The modulus operation.Blabbin’Blabbin’](https://andreasjhkarlsson.github.io//jekyll/update/2023/12/27/4-billion-if-statements.html?ref=gorillasun.de)
## AI Corner
### DeepMind's Alpha Geometry
DeepMind unveils a new model called Alpha Geometry, that is apparently capable of solving Olympiad level geometry problems with ease, while showing all of the reasoning steps involved - which is kind of bonkers:
[AlphaGeometry: An Olympiad-level AI system for geometryOur AI system surpasses the state-of-the-art approach for geometry problems, advancing AI reasoning in mathematicsGoogle DeepMindTrieu Trinh and Thang Luong](https://deepmind.google/discover/blog/alphageometry-an-olympiad-level-ai-system-for-geometry/?utm%5Fsource=twitter&utm%5Fmedium=social)
If you're curious to learn more about the IMO, the International Mathematics Olympiad, you should check out 3Blue1Browns video from a few years back in which he covers a particularly difficult problem, breaking it down for us mere mortals to understand:
### Bill Gates in conversation with Sam Altman
I wasn't aware that Bill Gates had a podcast, on a recent episode he invites Sam Altman, avoiding a discussion about the things that went down at OpenAI in the past week, and simply address the tech, talking about ChatGPT and some of the new upcoming things that we can look forward to this year:
## Gorilla Updates
### In Conversation with Daniel Aguilar
First article of the year is out, and it's a massive one at that. A couple of weeks ago, towards the end of October of 2023, I had the chance to talk to Daniel Aguilar, interviewing him, and asking him a serious of questions about the projects that he's been involved in over the course of his career, as well as his more recent generative art endeavors:
[In Conversation with Daniel AguilarA conversation with Daniel Aguilar, a creative coder, generative artist and freelancing web dev based in Spain. He recounts how he got into creative coding in the early 2000s with Flash, about his long freelancing career, and also lets us in on his current generative art practice. This is his story.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-daniel-aguilar/)
It was really insightful to hear from someone that's been freelancing for as long as he has, and I really admire that he was able to make it work out for himself. Here's my favorite moment from our conversation:

### Gorilla's Genuary so far...
And it's been yet another week full of prompts - here's a quick recap of everything that I've created for Genuary these past couple of days alongside some tidbits of information:
0:00
/0:50
1×
Genuary 15 Use a Physics Library | Ended up using the code that I wrote last year for my article on programming Soft Body Physics without much modification - but I've always been meaning to return to it for further optimizations. Maybe at some point throughout the year I will find the time for it.



Genuary 16 - Draw 10000 of Something | I love these kinds of prompts, since they're open-ended and allow you to experiment a bit. I've had this idea for drawing a Delaunay triangulation where the individual triangles are represented as hachures, and it turns out that this effect works pretty well. The alternative version in which the triangles are filled in with circles also works pretty well.



Genuary 17 - Islamic Geometry | Discovered Samira Mian while looking for inspiration on Pinterest, an artist that specializes in Islamic geometry - highly recommend checking her out - the pattern that I recreated was one that stood out to me in particular. I really like how the sketch turned out ultimately, especially the middle one with the dark background is really nice.

Genuary 18 - Bauhaus | I've been a huge fan of Gunta Stölzl's textile work for a long time, for the Bauhaus prompt I wanted to make something that captures the essence of that, mainly focusing on recreating the visually compelling patterns. I don't know if I'm close at all.
0:00
/0:30
1×
Genuary 19 - Flocking | Although I've experimented extensively with physics simulations, I've never actually looked into flocking behaviors - not properly at least - this genuary prompt was the perfect excuse to finally write the code for it.
0:00
/0:06
1×
Genuary 20 - Generative Typography | In the 5th Genuary prompt "Loading Bar" I made little pixelized numbers to indicate the progress of the loader. I liked the idea of representing numbers and letters as tiny matrices - I think this could be very useful for some sort of tiny video game. I will have to experiment more with it in the future. I also really like how they look.
0:00
/0:16
1×
Genuary 21 - Use a library that you haven't used before | Never used ml5.js before, and was pleasantly surprised how easy it is to use - threw this little experiment together in a couple of minutes actually. The downside of it however is that the hand/pose detection is quite slow, but maybe I'm not using it optimally.
You can find my other creations over on my Twitter or in the previous two Newsletter issues!
## Music for Coding
Distant jazz music, thick layers of vinyl noise, and a mysterious image of a rotund rock smoking a cigarette set the scene for a heavily melancholic album - that almost seems eerie at some points - "An Empty Bliss Beyond This World" transports the listener to a distant era long past:
The story behind the album is also quite fascinating, the tracks being based on samples of pre-World War II ballroom music, with it's almost broken sounding texture, aims to be a reflection of how people afflicted with Alzheimer remember music that they heard in their youth, and can sometimes remember how they felt:

The top comment over on YoutTube perfectly describes the overall mood of this Album:

**And that's it from me this week again — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 39Issue #39 — Golan Levin on the Potentiality of Blobs - Wobbly functions by Piter Pasma - RCS interviews Jared Tarbell - Jamie Wong on Color - LittleJS 2 year Anniversary - Age of Empires written in Assembly - Declarative Programming - The Package that broke NPM +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-39/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### In Conversation with Daniel Aguilar
URL: https://www.gorillasun.de/blog/in-conversation-with-daniel-aguilar/
Last updated: 2024-08-28T13:36:13.000Z
**Recently, I had the pleasure of speaking with Daniel Aguilar, a multifaceted professional with a diverse skill set ranging from interface design to back-end programming. Beyond that, he has also established himself as a prolific generative artist, leaving an indelible mark on the generative art scene in recent years.**
From working and experimenting with Flash in the early 2000s, Daniel Aguilar made a career for himself as a freelancing web developer and designer, working with numerous companies and clients in and outside of Spain, always pursuing a creative element within the projects that he takes on. Daniel generously shared details about his various professional pursuits, providing a glimpse into the intricacies of freelance work as a programmer.
We also talked copiously about the generative artworks that he's released in recent years, the inspirations that brought them to life, the ideas that he aims to express through his artworks, and also talks us through the generative systems that power these artworks behind the scenes.
## Early Career
**GS: First off, thanks so much for taking the time to talk to me today. I've been following you for a while now and I'm a huge fan of your work. For the readers, maybe you can tell us a little about how got started with programming? And then later on how you got into generative art.**
DA: The first time I actually got to touch a computer, in a way that involved programming of some sort was in my childhood in the mid 80s. My parents had bought a computer, a model MSX, which came with a simple operating system and an instruction manual. The cool thing about the instruction manual was that it taught you a little how to program certain things. I remember spending many afternoons playing with it, coding text based adventures. I also recall that it came with Logo, if you're familiar, basically a program in which you could program turtle graphics. We also did some of that at school.

The Sony HB-20P | [Link to Instruction Manual](https://archive.org/details/ManualSonyHB20P/page/n3/mode/2up)
Fast forwarding a bit, the first time I did some programming that is similar to what I do today was probably around 1999 or 2000, at the time I had all sorts of jobs, tending bars and restaurants. I had a couple of crazy years after I finished school, but after that I had the desire to do something more with my life. At that point in time the internet was just starting to blow up, and was being talked about more and more in newspapers here in Spain. And it was super interesting to me, as I'd always been a huge fan of technology, science fiction and cyberpunk stuff, I thought that all of the computer things were really cool - hacking and stuff you know \[laughs\]
Not long after that I enrolled in a government sponsored course, where they taught basic things like HTML and Javascript, as well as a software called Director, published by the same company that later made Flash (Macromedia, which was acquired by Adobe in 2005\. Director and Flash have been discontinued in 2017 and 2020 respectively). I later put all of that in my CV, heavily inflating it, to be able to land a job. That somehow worked out, and I started out as a design assistant at a smaller company where I designed assets for e-learning materials.
One of the softwares that they used was Flash - and after seeing that you could create animations and interactive things with it, I thought to myself "Wow, that's so cool!" so I started learning it on my own, at night at home with my 56kb modem \[laughs\]. I discovered that there was a whole scene of people around it that were creating all sorts of cool stuff with it.
**GS: That's really interesting, a lot of people actually found their way into the entire creative coding thing through Flash. How did that progress from there? Did you stay with that company for a while?**
DA: Yeah I spent a couple of years there, learning a lot both in terms of programming and design, things like web applications and user interfaces. After that I switched between a couple of smaller different companies here in Barcelona. At some point in 2005-2006 I decided that I wanted to try and do it on my own, which led me to legally registering as a freelancer to have my own clients and have my freedom in that manner. That was the idea at least, but once you go solo it turns out to be not as freeing as it sounds \[laughs\] - but I loved it, and still work in that manner today.
So I simply sent out emails to everyone that I thought could be interested in the things that I was doing, and ended up building many websites, and also made a lot of weird things with flash which I would show to potential clients, which is actually how I managed to get my first couple of clients. Those first couple of jobs pushed me to learn other things, like connecting databases, back-end programming, server side scripting - basically all of the things that my clients were asking about. At the time I would simply say yes to everything, my general response being "yeah, yeah I can do it" and then going home to try and figure out how things actually worked \[laughs\].
That's what I did for several years, but at some point I then realized that what I actually enjoyed most about this kind of work was the creative part of it - that's when I tried to shift a little bit and take on gigs that had such an aspect to them. At the time I was very active in different forums, and in 2007-2008 I got lucky when someone found my portfolio and reached out to me; a small studio that was just starting out, targeting museums and companies that wanted to present their corporate information in creative ways. That sounded really exciting to me and I was quickly onboard with it. The digital agency was called Bestiario, and [they're actually still active today](https://www.bestiario.org/?ref=gorillasun.de). I worked with them for maybe 4-5 years, still as a freelancer, but under a contract - and again, it was a great opportunity, and I ended up learning a lot about information design, interactivity, and data visualization.
One of the people that worked there was Santiago Ortiz, who became one of my best friends and collaborators later on. He studied Mathematics, but was also a very creative person, and we ended up working together on many projects, such as installations for museums and similar kinds of things.
[](https://twitter.com/moebio?ref=gorillasun.de)
You should check out [Santiago Ortiz on Twitter](https://twitter.com/moebio?ref=gorillasun.de), he's often working on interesting projects
### Mosi Mosi Metaverse
DA: After that I got in contact again with some old friends, they were kind of a weird bunch that were really into punk culture. Most of them were designers and had a studio in downtown Barcelona, that mainly made websites for fashion brands to showcase their catalogues and products. So I started doing some projects with them.

Mosi Website
At some point we discovered this thing called "Second Life" that was being hyped up by newspapers at the time - you know how it goes with the media, inflating things beyond what they actually are. It was essentially a virtual 3D world in which you could create an avatar and build different kinds of spaces - a "Metaverse" of sorts.
We thought that the idea sounded really exciting and that it was something that we could pitch to clients. We quickly founded a new company called "Mosi Mosi Metaverse", and somehow managed to convince some bigger brands in Spain to actually engage with us, using our idea for promotional purposes. And that was super fun time - we were just a bunch of punks in a small studio, coming up with all sorts of crazy ideas.



Second Life actually still exists today - and has more active users than Meta's Metaverse | [Link to Second Life](https://secondlife.com/?ref=gorillasun.de)
**GS: Oh that's interesting, Metaverse was actually a part of the company name? Was that a term that people were familiar with at the time?**
DA: Yeah, a year earlier I had read a novel called "Snow Crash", I think the term Metaverse was actually coined in it, and that's where we took it from!


[More info about Snow Crash](https://en.wikipedia.org/wiki/Snow%5FCrash?ref=gorillasun.de)
**GS: What about "Mosi Mosi", what does the word stand for?**
DA: It's based on a common Japanese greeting when answering the phone - "Moshi Moshi", which basically translates to "Hello, how are you?". That was the name of their existing company, so when we created the new company we just combined the two terms.
[](https://blog.busuu.com/moshi-moshi/?ref=gorillasun.de)
[More info about the Japanese greeting](https://blog.busuu.com/moshi-moshi/?ref=gorillasun.de)
Actually before we pitched the idea to clients we were doing this Metaverse thing for ourselves for fun, doing cross-reality parties (parties that were held simultaneously in the virtual and real world, connected via audio/video streaming and projections), asking some of our DJ friends if they'd like to perform, broadcasting them in the Metaverse, while broadcasting the audience back to them on a projector. And that's how we pitched it to our clients - after cutting out all the non-politically correct stuff of course \[laughs\] - showing them that they could do really cool interactive stuff with it.
Example of a Metaverse party
**GS: And how long did that go for?**
DA: That was for a couple of years, like I said, we were a bunch of punks and not really business people \[laughs\] so after the hype died down it wasn't sustainable anymore. We still occasionally work under that company name, doing some social media campaigns and the like, but after 2-3 years it was over.
### Tips for Freelancing
**GS: On a bit of a unrelated note, but out of personal interest seeing that you've had such a long career in freelancing, I'm quite curious what kind of tips you would offer to someone like me and others that are trying to make freelancing work out for them?**
DA: I think it's really important to capture and document the things that you do. At the beginning when I just started out, I was only focused on figuring out what I was doing, but wasn't really documenting anything. Having those materials is invaluable though, and are really useful when approaching new clients.
For instance, I wish I had documented the projects with Mosi Mosi more; at the time I didn't think that it was anything serious, and thought that it was just play. But thinking back, what we did was actually really meaningful and really unique - I was actually just looking if I had some videos but they're all low quality. Nowadays I try to take some time every now and then to write down what I'm doing or take some screenshots of my projects.
Another thing, that you probably already do - but since you asked - when I take on new projects, it's not only always about the money, but I also try to tackle projects that can teach me something, or that put me in a position in which I have to learn something new. I know some other freelancers that say no to projects that seem daunting or intimidating when they require skills that they might not have - obviously if you know nothing about what is required, then you should probably decline, or at least be honest and state that upfront - but in my case I always agreed to everything, because I simply loved to learn new things.
I would suggest to do this as well, even if the pay isn't that great, you can always gain other things, like new skills, experience from working with other people, and connections that might bring new work later on down the line, etc.
**GS: That's the experience that I've been making lately, documenting things with the articles and the newsletter, it's really important to me to be able to remember what I did, and to some extent keep track of my work and my life in that manner.**
**And these interviews are also super important, on the one hand to get to know people and have a nice exchange, but also to provide value to the readers by putting our words into written form.**
DA: Yeah I think those interviews are a super good idea, on the one hand it benefits you because you get to meet people that you're interested in, but it also benefits others, like the articles and code that you share so generously, and the weekly update that covers some of the things in the generative art scene - I find it super useful.
**GS: I'm happy to hear that from you, often I don't know how valuable these things are but hearing it from you is awesome.**
## Spirals, Maps and Timelines
*For context, here Daniel shared his screen and showed me some projects of his, in part works he'd done for clients but also personal projects that he's tackled purely out of his passion for building meaningful and aesthetically pleasing user interfaces - all while putting a lot of love and care into the details.*
### Curriculum Spiral for Ross School

**GS: While preparing for this conversation and looking through the stuff that you've made I came across your non-generative art portfolio, in which you showcase a couple of projects that you've been involved with.**
**One of them was this super cool curriculum spiral, that is part visualization, part interface. Could you talk a bit more about that? How did that project come to be? It's a bit of an unusual geometric shape to represent data - I don't think I've seen anything like it before - I'm curious to know why you chose a spiral as the main component of the interface.**
DA: That's easy to answer - the decision of it being a spiral came directly from the client \[laughs\]. It was actually a client of my friend Santiago, and they wanted to do something fancy where they already had an idea of how they wanted it to look like. That's why he contacted me to help with its development.
They \[Ross School\] have this educational model that's a bit unusual. It isn't a linear progression on the material, where you learn something and then build on top of it - their approach differs in that different concepts circle back around to each other. They also have a very horizontal approach to teaching, where subjects aren't taught in isolation, but rather, in relationship to each other. For instance if you learn something in mathematics, it's also presented in a cultural and historical context as well. It's a bit crazy when compared to normal education systems.
The founders of that school came up with an idea to formulate this in a way that made sense, such that a student's knowledge basically evolves and grows, and in that manner has a upward trend, but isn't necessarily linear because you often revisit things that you already know. Geometrically, they thought that a spiral made the most sense to represent their approach.
**GS: Did you agree at the time that this was the best way to represent things?**
DA: Yeah, I was sold when they presented it to me. It was also a very memorable project because they invited us over to stay roughly two weeks with them to plan out the project. During that process, while sketching out the model, I was convinced that it is actually a great idea.

Some of the sketches that are showcase on Daniel's portfolio | [Link to portfolio page](https://www.danaguilar.com/work/ross-spiral?ref=gorillasun.de)
But it was also challenging, thinking forward to all of the work that I had to do when I got back home \[laughs\]. It needed to be a fancy software interface, as a means for them to show off a little, but that at the same represented things in a way that made sense and was easy to use from their end.
**GS: That's really cool. It's a bit funny to me, that so much thought was put into the curriculum, when the school that I went didn't even have a website or anything like that.**
DA: Mine neither \[laughs\]
**GS: What was implementing all of this like?**
DA: The project ran over the course of almost 2-3 years. The beautiful 3D part of it was mainly coded by Santiago, whereas I did most of the other stuff, like the user interface, the database, the back-end interface for them to enter their content, the navigation and all of that. After a year we had the initial version, after which we added in more things that they wanted.
### Interactive 3D Map of Geneva for the UN
**GS: What are some of the other projects that you've worked on? I saw that you had quite a few interesting things on your portfolio!**
DA: I haven't updated that page in quite a while now, and what's showcased there is maybe 25% of the projects that I've done that I think are worth showing. One that I think is interesting, is the project I did for the United Nations in Geneva - a collaboration with a company here in Barcelona called One Big Robot, a communication and digital design agency - where the goal was to build an interactive 3D map that showcases international organizations, NGOs, and academic institutions throughout Geneva. This project was a bit of a challenge, since it was the first time I used Three.js.
It might not be super innovative, nowadays there's many websites that have a map like that, but to me that kind of thing was a first since I had to figure out a lot of things. For instance, the individual buildings on the map are also 3D, so I had to find something on the internet that was useful for this, and then transform it, learn a little bit of cinema4D to handle 3D assets, etc. In retrospect, I always end up investing a lot of time into these small details that aren't the main thing, but I don't care, I really prefer to take every little opportunity to learn new stuff even if that means that my hourly rate drops because I'm taking more time than I need to.
### Warp Records 25th Anniversary Music Timeline
Another project that I'm super proud of, was a personal one - are you familiar with Warp Records? They're a record label that have published many big artists, like Aphex Twin and Boards of Canada.
[WARPWarp’s artists create groundbreaking music, videos and cinema. Aphex Twin, Boards of Canada, Flying Lotus, Kelela, Nala Sinephro and Yves Tumor are just a few who represent the label. Watch and listen here.WARP](https://warp.net/?ref=gorillasun.de)
The year I started this project, Warp Records were celebrating their 25th anniversary, and I noticed that their website, in my opinion, was really crappy - it was really difficult to navigate and to find stuff, and I thought to myself that I could do it better. So I went through the source code of the website, found out from where they were loading in the data, built my own web scraper that collected all of the information, structured it in a big JSON file and made my own interface for it.

And there was a lot of stuff to work with. I wanted to make something useful that was easy to navigate and allow the discovery of all of the albums that they had released over the course of 25 years - I had the idea of structuring it as a timeline. I also took it as another excuse to use Three.js. Ultimately I was super happy with the interface that I had built and ended up posting a couple of demo clips to Twitter, which led to someone that worked at Warp Records to notice it and saying something along the lines of "Hey man, what is this? What are you doing?" \[said enthusiastically\]. So it seemed like there was the opportunity to work with them more formally, but ultimately it didn't work out.
**GS: They didn't want to have it?**
DA: The conversation just fell off at some point, and it seemed like they weren't really into it for some reason. But that wasn't the initial goal anyway, I just did it for myself and wanted a project that I could play with.
## Getting into Generative Art
### Genuary 2022 and NFTs
**GS: How did you get from that kind of work later into generative art? When did that start and what's the story there?**
DA: Well, the honest answer would be that it was the other way around, the creative coding that I did early on with Flash was what put on this path, evolving into a more professional career.
If we're talking about the current work that I do, I got much more serious about generative art and my entire artistic practice roughly 3 years ago, mid 2021\. I was becoming a little tired of the client works; making websites and forms and all of that kind of stuff is okay, it pays the bills, but it's not really what I love.
Just by chance I found out about what was going on in the genart space - out of curiosity I wanted to check in with the people that I was following back in the Flash days, to see what they were up to today, like Joshua Davis and Flight404\. I found out that they were still at it doing cool stuff, and that there were thousands of others now that were doing that kind of thing as well.
[](https://twitter.com/protozoo/status/1482323651663904768?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/protozoo/status/1482323651663904768?ref=gorillasun.de)
That was November or December 2021, and shortly after that I found out about Genuary and thought to myself "man this is so cool" and it was essentially the perfect excuse for me to get back into it, even if I just coded one of the prompts. At the same time I was wrapping up a project with a client that I wasn't extremely happy with, thinking to myself that I'd give generative art a shot for a little while, not taking on any new client work, and to invest a couple of months to allow myself to rediscover this passion of mine, while also trying to build a portfolio that I could use to take my career in that direction.
[](https://twitter.com/protozoo/status/1480985023427846144?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/protozoo/status/1480985023427846144?ref=gorillasun.de)
I didn't end up doing too many of the Genuary prompts - maybe like 10 of them - but posting them to Twitter let me get some feedback on my work and I managed to discover and connect with other people through that. I think you were probably one of them, and all of that really energized me. Naturally, after a while I also returned to my regular client work.
In the spring of 2022 there was this event called Tezos4Tezos or tez4tez, for which I minted a simple piece on Objkt.com:
[](https://objkt.com/tokens/versum%5Fitems/23075?ref=gorillasun.de)
"Rhythms" created for the tez4tez event in 2022 | [Link to Token](https://objkt.com/tokens/versum%5Fitems/23075?ref=gorillasun.de)
That day I was actually on the beach with my partner, suddenly getting notifications that one after the other had sold, until it had quickly minted out. I was so excited and told my partner "Look! I sold out!". She asked if I was rich now, to which I replied "Well, not really" - I had sold the editions for 1 tezos, but that didn't matter, I was just happy that there were people interested in my work.
After asking on Twitter if it would make sense to turn that piece into a generative token people quickly told me "of course, just tune the code for fxhash". And this became my first serious fxhash project: Rhythms. It ended up doing really well. I had published a project prior to that, just as a test to learn how the platform worked, but I think I only sold like 5 or so.
[](https://www.fxhash.xyz/generative/13311?ref=gorillasun.de)
[Link to Project](https://www.fxhash.xyz/generative/13311?ref=gorillasun.de)
**GS: What's the timeline here, did you discover fxhash before or after Genuary?**
DA: It was probably at the same time. I had been looking into crypto and NFTs prior to that, and had actually also traded a little bit before that, but the apes and cryptopunks never really caught my attention, they were just PFP projects to me. Things changed with fxhash however, discovering that there was a lot more to it with generative tokens. So it was all in parallel somehow.
### The Value of Digital Tokens
**GS: With where we're currently at, it's not possible to separate the two terms "Generative Art" and NFTs anymore - many generative artists are making money from selling their artworks as NFTs, and many of the most interesting projects are created with that in mind. What are your thoughts on that?**
DA: I've noticed that there's criticism towards this issue, which I understand, because there's always a risk involved when you attach a monetary value to things, this risk of corrupting. Because money corrupts I guess. But at the same time, economic value is a super powerful driving force, and everyone needs to pay the bills. So I understand the criticism, but being able to monetize the thing that you love doing is just gold.
At the same time, many other artistic fields have been doing that for a long time, and no one bats an eye to that. In music and cinema, they do talk about the technical aspects of it, but they also talk a lot about the industry and how it's going, who the big players are, new technologies etc. why is it so broadly accepted in those fields, but in digital art, where we now have this new technology called NFTs, it's constantly being questioned when it's created an entirely new industry around it.
I was actually talking about that with a friend recently, he told me "man I don't understand, so you basically sell digital images to people, that they could simply just download. What's the point?" I told him "Open another bottle of wine, let's talk about this".
If you take streaming services for instance, like Spotify or Netflix, why do we pay for these services? You can get all of that content for free by pirating it, but a lot of people don't do it, why? Of course, because it's not ethical, but the other big reason is convenience, if someone creates a service that I can pay for, a reasonable amount, to get all of this cultural content that I have a human right to, I will happily pay - why should digital art be different? I think it's difficult for some to understand.
**GS: I think a big factor in it is ownership, the fact that you can sell digital tokens plays a big part in it. Nobody is going to buy a PNG from you. Besides that, the entire concept is very innovative, platforms like Fxhash which enables artists to distribute and monetize their art in a unique manner is actually allowing them to do spend more time on it that ever before.**
DA: It's something very irrational, and I admit it, this feeling of knowing that you *own* something - even if that thing that you own is something very abstract, a few bytes somewhere on some decentralized ledger.
The fact that I found something that I like, that I valued, and that I made an action that testifies that I contributed to it, that is value in of itself for me. It's kind of like collecting stones at the beach - why would you do that? There's thousands of them! - yeah but that one caught my eye, and now it's sitting here on my table and I will always remember the moment that I got it. I feel like that with NFTs.
Another super important part of this technology, is the ability to contribute to someone's work, in a way that isn't just words of praise or felicitation, but actually financially contributing to their work that directly helps them continue their endeavors, with the added benefit that this gets recorded somewhere. I understand that some people would find this totally bonkers, but to me it just makes sense.
### On Monikers, Music, and Creativity
**GS: Where does the name Protozoo come from?**
DA: It's an old name, it's the moniker that I got when I started out on my freelancing career many years ago. I basically wanted some sort of artist/brand name for what I was doing, and I chose it because it resonated with me, where the 'proto' part stands for something that is becoming - something that is almost becoming something - and zoo standing for an animal, that moves, is alive, and makes things.
So in that way it stood out to me at the time, I'm not sure if I would pick it today \[laughs\] but it's the one that I've been using for more than 15 years now and have been using as my domain name and handle throughout different platforms. But yeah, there's no deep meaning to it other than that.
**GS: I understands, it's the same for 'Gorilla Sun', it's just a name that I initially picked as an artist name when I wanted to make music. But it grew on me with time.**
DA: Yeah I saw that you've made some music from some stuff that you published. In my teenage years I also spent a lot of time with music, especially electronic stuff, composing things with my Soundblaster soundcard and the software that existed back then, like Propellerhead's Reason, Cubase, and Cakewalk. I still do sometimes make some stuff, for many of my fxhash projects I usually make a teaser video with some sound that I make myself.
**GS: It took me a long time to get into electronic music. I started playing the guitar when I was like 13 years old, and for the longest time I had the view that music had to be played on an instrument, and that making music with a computer was somehow cheating. But then I heard Tycho for the first time which simply blew me away and I think sometime around then I got Ableton and discovered this entire new world.**
DA: \[I had my guitar in the background, Daniel points at his\] I always have it here in the room as well, sometimes I get more serious about it, but it's always been something to relax with whenever I get fed up with coding \[laughs\] it's therapy in a way.
**GS: What I've noticed is that a lot of creative coders and programmers are also musicians, I'm not entirely sure if there is a connection there.**
DA: I think it makes a lot of sense. Creative people are usually not only interested in one single thing, it's more of a character, being interested in creating things and testing things out, whether it's drawing or painting or doodling. I doodle a lot and try out a lot of handcraft stuff. A few months ago I was experimenting with pinhole photography, you know, with a can and a film, and just brainstorming how I could combine it with coding. I also experimented a little with cyanotypes with some transparent printed sheets of my work.
[](https://twitter.com/protozoo/status/1583132697136074752?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/protozoo/status/1583132697136074752?ref=gorillasun.de)
I have yet to incorporate generative music into my work, but there are some ideas for that already, currently talking to someone for a potential collaboration.
**GS: Now that you mention collaborations, you actually did one with Andrew Brereton, your piece 'Hidden Intersections'.**
DA: Yeah that one was super fun, especially because it was very informal and impromptu, there wasn't this pressure that comes with bigger projects and we just wanted to get something out rather soon-ish without any big expectations. It was interesting because I usually work by myself, so it was a very nice experience and Andrew having ideas that I wouldn't have had by myself.
[](https://www.fxhash.xyz/generative/23188?ref=gorillasun.de)
[Link to Project](https://www.fxhash.xyz/generative/23188?ref=gorillasun.de)
**GS: Andrew is a really nice guy, he's actually one of the first people I talked to on Twitter, him and Jeff aka ippsketch.**
DA: Yeah ippsketch is also one of the first guys I discovered. I actually have one of his tweets printed, the one about imposter syndrome, I can't find it right now... it must've fallen. But it's something along the lines "sometimes I need to remind myself that I don't know what I'm doing" or something like that, and it really resonated with me, because that's was exactly how I feel. I also have a lot of impostor syndrome with my work since I'm self taught - seeing so many smart guys doing all sorts of cool things all the time, reinforces it sometimes.
**GS: I think I know which one you're referring to:**
[](https://twitter.com/ippsketch/status/1519312121556881408?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/ippsketch/status/1519312121556881408?ref=gorillasun.de)
DA: yeah, yeah exactly that one!
**GS: I don't think that you missed anything by not going to university, or that others are necessarily 'smarter' because they have a degree, many of the things that I use today I had to learn while struggling through the material on my own. I think you did the same teaching yourself with all of the projects that you've done at this point.**
DA: A lot of people tell me this and I think there's some truth to it, I've been able to sustain myself so far, but sometimes I think that I maybe would have a deeper understanding of things if I had studied them properly, I feel like that especially when I'm struggling with some dumb things occasionally, like some basic geometric and trigonometric problems that they teach you in secondary school...
## Long-form Generative Art
### About Effluence
[](https://objkt.com/tokens/hicetnunc/784519?ref=gorillasun.de)
Prefluence - A study piece by Daniel leading up to the release of Effluence | [Link to ](https://objkt.com/tokens/hicetnunc/784519?ref=gorillasun.de)[Token](https://objkt.com/tokens/hicetnunc/784519?ref=gorillasun.de)
**GS: Now that you bring up trigonometry, you have that really beautiful piece called Effluence, does it use some form of Trigonometry?**
DA: That one is really near and dear to my heart, and yeah, it does involve a little trigonometry. I guess it's explicit through it's description that's up on fxhash what I wanted to express, but it's probably the piece that has a deeper meaning to it and comes from a specific state of mind that I was in when I created it. Technically and aesthetically I'm happy with it, maybe the final collection is a bit lacking in variety, but it captures what I wanted to express really well.
[](https://www.fxhash.xyz/generative/20722?ref=gorillasun.de)
[Link to Project](https://www.fxhash.xyz/generative/20722?ref=gorillasun.de)
At the time I was regularly meditating and wanted to make something that captured that. Something with a little bit of mystery, and a little bit of menace. The initial outputs looked to me like exploding stars, flowers, mandalas, and also sometimes like eyes looking back at me. And then it felt like it was the universe looking at me, and me looking back at the universe, and I was super excited about the project and thought to myself "wow this is really good" - but then I also told myself that I needed to calm down a little bit \[laughs\] that's usually how it goes.

Effluence preview seed
**GS: What I really like about it, and not a lot of works make me feel that way, but when I look at the outputs it seems to me that I'm looking at some very large structure, and there's this feeling of scale.**
DA: It's interesting that you bring that up, I haven't gotten that feedback from many people, but I think that's due to the different size of the elements and how they compose a larger whole. There's also this shading effect, that somehow looks like mist or fog, which we usually associate with landscapes, or bigger places.
**GS: Is that texture a shader?**
DA: No, that's just thousands of transparent lines drawn within a circle that make up that effect, kind of like a cloud.
**GS: Does Perlin noise play a part in the composition?**
DA: Yeah it does! Essentially the composition is made out of several concentric circles, created by dots positioned on their circumference, then these dots try to connect to other dots on the next circle. Sometimes there are spans on the circumference where those dots aren't drawn which is due to Perlin noise. But even if there is gaps, the dots will still try to connect to other places which kind of creates this organic structure. Perlin noise is also involved in the positioning and sizing of some of these dots.
I think introducing 'breaking points' or 'disconnections' in a composition adds interest, because visually the piece lures you in with a pattern and then also breaks it, making the viewer have to think a bit more about what the actual pattern is.
**GS: Another cool thing about your works are the introduction screens, what inspired that?**
DA: I guess I inherited that trait from my flash days, where it was common to add a loading screen, and very often, flash was actually only used for that purpose, to display something while pages loaded. And I would always include a loader in my projects, so that people had something to watch while they were waiting for things to load. I also think it contributes to the experience, conveying to the viewer that they're not just viewing an image, but are actually entering a new space, preparing them and putting them in the mood for what they're going to see. Basically telling the viewer "Okay, get ready now and forget about everything else for a second". I don't know if that makes sense.
**GS: It absolutely does, it definitely has that effect. It builds up anticipation towards seeing the piece instead of having it immediately shown. And obviously the intro screen itself is beautiful, with the font and being able to see the piece in the background through the font.**
DA: Another reason that I do it is because I just like it \[laughs\] similarly to the teaser videos, I like to fantasize that I'm creating some sort of brand image for each one of my projects.
**GS: Personally I really like it. It makes it look more polished and complete in a way. But on the other hand, some people might feel differently, because maybe they want their token to be 'pure' without any additional stuff. I noticed that when you add a lot of extra stuff, like key presses and interactions some people might not be into that.**
DA: Well, first, it's a free world \[laughs\] so you can do what you want, and secondly I think there's room for everything and I like to experiment a lot, with Obliqua for instance that was the first piece in which I used params, and I thought it was such a cool concept that people could participate in a meaningful way to help create the artwork and shape the final collection.
But then I also understand the other perspective, maybe I'm a little lazy in that way, because it does take some effort to create a beautiful individual output and when there's a lot of things to modify you have to kind of mentally keep track what the different sliders and toggles do. And maybe that should be on the artist to decide how that works.
When fxhash announced the code driven params I was very excited, I considered using it for my newest project, building a custom and artistic UI, but I think I won't do that ultimately because it would also introduce many more points of failure where you could mess up. But basically what I'm trying to say is that we have all of these option now to create custom art experiences with this medium.
0:00
/0:32
1×
[Link to Twitter Thread](https://twitter.com/protozoo/status/1724041850539954292?ref=gorillasun.de)
### About Obliqua
**GS: Let's talk a bit about Obliqua, is it inspired by Jared Tarbell's substrate algorithm?**
DA: I've gotten a couple of people asking me the same thing. I've been a big fan of Jared Tarbell for a long time, and substrate is just an iconic artwork, so maybe it somehow influenced me, but it wasn't a direct influence while working on Obliqua.
[](https://www.fxhash.xyz/generative/26424?ref=gorillasun.de)
[Link to Project](https://www.fxhash.xyz/generative/26424?ref=gorillasun.de)
The main inspiration was actually a painter, Derek Lerner, he makes these huge paintings, 3-4 meters wide, and I found them super interesting for the way in which he combines elements. I discovered him while I was working on my own framework, putting together all of the functions that I was frequently using for quickly creating different kinds of layouts and patterns, while testing it and looking for some patterns to recreate I discovered his work.
[](https://www.roberthenrycontemporary.com/artists/derek-lerner/artwork/avex4-2?ref=gorillasun.de)
[More info about this piece](https://www.roberthenrycontemporary.com/artists/derek-lerner/artwork/avex4-2?ref=gorillasun.de)
Lots of his stuff are reminiscent of aerial and urban maps, and I found them super inspiring. I remember one evening deciding after dinner that I'd try and recreate the patterns that occur throughout some of his work, thinking to myself that I could do it before heading to bed... but it ended up being super challenging. But that hooked me and I kept pursuing it, and I ended up with something that didn't look similar but was still interesting in of itself.
I don't know how the original substrate algorithm works, but I was experimenting with specific angles, and one particular configuration with 30 and 60 degree angles ended up looking very isometric, or at least added an isometric perspective, which was ultimately the reason why I called it Obliqua. Then the gradients and patterns came into play, in particular these half tone dots. You can also see that the main structure is repeated, occurring in the background, which makes it seem like it's some sort of transparent paper sheet, adding depth and creating a sort of conceptual rhythm.

Obliqua #24 - in the collection of yours truly
There were other reasons why I ended up calling it Obliqua, which came a posteriori - btw here, I think it's totally fine to create theories about your own work after it is created - the idea of "Mirada Oblicua", or "oblique gaze", as understood relative to José Saramgo's work:
> The oblique gaze is the one that is crossed by error, doubt and suspicion, it is the one that questions what is being looked at or the one that makes one think about the possibility of another response to what is established, thinking that there are no definitive truths.
**GS: I like the patterns in the background, they really do convey depth. I think that transparency is quite underused in generative art but can be very powerful.**
DA: Sometimes transparent shapes in the background can look like reflections, or even erased images of previous iterations of the structure that were drawn onto the sheet and then discarded to be replaced by the current artwork, somehow presenting a pencil like quality. I really liked that idea and wanted to lean into it more, because that reinforced this concept of sketching and conveying an iterative process.
[](https://katiecgutierrez.wordpress.com/?ref=gorillasun.de)
Daniel mentioned another inspiration for Obliqua, an artwork by Cathie Gutierrez | [More Info](https://katiecgutierrez.wordpress.com/?ref=gorillasun.de)
It probably sounds like I'm making these things up as I'm going, but that's how my artistic process works, I make things up as I'm working on these projects and experimenting with ideas - it's part of the magic of doing this work. When developing ideas sometimes things don't really pan out as you had envisioned them, but you discover little treasures and jewels along the way that trigger other things, and then seeing if they compliment each other or not.
Sometimes I have to remove things because they just don't make sense or don't add value to the piece, but sometimes they can also only need a little modification to fall into the place. That's the fun part of this work.
**GS: I think that you're touching on something really important here, you don't want elements in the artwork to just be aesthetically pleasing, but you also want them to fit in conceptually and contribute to the bigger picture. Sometimes you have to remove things if they don't fit.**
DA: I think, creating things just because they're beautiful or visually interesting is justification enough, I don't think you need more justification than that. That's value in itself. But of course, you can go a little deeper and try to make things express something more - often you don't even need to try too hard to do that when you're inspired by other things. That's what makes art unique, each one of us has a different life, has different inputs that manifest themselves through your art.
### About Sendas
*Sendas is the working title of an unpublished project of Daniel.*

**GS: Is this also how you're going about your newest project? I've been seeing that it's gone through a lot of different stages, all beautiful, but quite different.**
DA: I still don't know how I'm going to release this one, and I'm not sure if you can call it progress what I'm doing right now - I'm still just exploring and I might very well release the initial version. Or release it as a series of projects. I think it's a common problem that generative artists have, where the output space needs to be cropped, trimmed and constrained such that the generated artworks are coherent, instead of unleashing the complete generative potential of such a system.


A crazy way to do it would be to combine several projects in one and then releasing that, maybe building in a way that incentivizes collectors to maximize the variety of the final collection - I really would love to not have to leave out some of the things that I made, I think that some of those outputs are cool in their own way.
**GS: I often think about doing series as well, when I end up with variations of a project, that are fairly similar but still distinct enough to be their own releases - you know, like Aleksandra Jovanić did with** [**Chromatlas**](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de).
DA: Since I started taking my artistic practice more seriously, I've been reading quite a lot of resources that sort of teach you "how to go about being an artist", one of the things that always pops up is to "have your own voice" and "develop your own style" so that people can recognize you and your work. And I understand that, but I struggle with it - if I had to describe what drives me to make art, it would be the exact opposite of that. I find joy in exploring new things, and enjoying the feeling of awe when you discover a new things. If I had to drop that to be an artist, it would feel like cutting off an arm. So I'm always thinking about how to articulate this, so that I can keep on doing very different things, but at the same time still have some connection between my works.
The starting point for this project, were Truchet tiles, which I hadn't experimented with before. I started out with square tiles, but they quickly felt very limiting so I decided on using a hexagonal tiling, which added another layer of difficulty since I had never used them before. It took me maybe a week to figure out how to figure things out and how to structure the hexagonal grid for what I had in mind.
[](https://www.redblobgames.com/grids/hexagons/?ref=gorillasun.de)
If you want to implement your own hexagonal grids you should check out Red Blob Games' resource on the topic that explains these structures in detail | [Link to Tutorial](https://www.redblobgames.com/grids/hexagons/?ref=gorillasun.de)
Once I had implemented that I started experimenting and adding in more rules, for instance disabling specific cells that couldn't be traversed and I felt like there was something there already - it creates this negative space and breaks up the grid a bit:


**GS: I like the interplay between the structured parts and the negative space, it feels a bit incomplete, but in a deliberate manner.**
DA: It's interesting that you mention because that's actually something that I sometimes introduce in my pieces, without actively trying for it, which is this idea of the unseen, or unrevealed, which kind of conceptually matches and mirrors what we do in generative art, where output spaces are potentially infinite and you there will always be unseen iterations. It's similar in Obliqua, the faded transparent patterns in the background are a hint towards that, hinting at the idea that there's more.
**GS: I'm curious about how the path-finding logic works - it's not just Truchet tiles anymore, but the bands actually move from one cell to the other, right?**
DA: It's very simple actually, you just start at a specific hexagon, then look around and find another active adjacent hexagon to move to at random, repeating this process. I actually built a version where this path is encoded as a string, which would let collectors create their own patterns by writing out their own traversal strings. Kind of like turtle graphics in Logo. Talking about it now makes me really excited, but this kind of idea can quickly expand into all sorts of problems, and would open the gates for lots of bugs and points of failure. So it's probably not going to happen.
### About Tetra
*I had this conversation with Daniel prior to Tetra's release on Alba on the 19th of December 2023\. It's quickly become one of Daniel's smash hits.*

DA: Tetra is actually based on a very simple idea - and the name gives it away already - it's entirely based on squares. When you zoom in on one particular output you'll notice that it's all squares, but they're just a little bit deformed.
Tetra started as a question: as a digital artist, what is the simplest element that we can play with? Obviously, the most elemental thing that we interact with on a daily basis are the pixels on our screens - it's kind of the atom that makes up our displays. What properties does it have? A coordinate, a color, as well as a dimension - it still needs to somehow physically exist. I wanted to challenge myself and create something interesting just by using that idea.
So I started layering these squares, and obviously I ended up with what looked like a quadtree. To make it more interesting I started slightly varying the position of the vertices of these squares, to allow for a little movement, and then suddenly I had created a really interesting texture that way. And I found it really fascinating - sometimes I'm intentionally trying to produce a certain texture but here it just happened, and I love how you can sometimes make out a landscape or other kinds of objects within the textures.
**GS: I really love the emergent texture in these, or the illusion of a texture at least. To me they resemble flocks of birds in some way, it's really beautiful.**
## Inspirations and Shoutouts
**GS: To wrap up, who are some of the people that inspire you and that you look up to?**
DA: That's a difficult question, because obviously there's so many people in the space that are doing cool stuff. There's the OGs like Joshua Davis, Paul Prudence, and Robert Hodgins... actually, a couple of weeks ago, I noticed that Joshua Davis collected one of the first Obliqua's so I sent him a message to thank him, and I had never talked to him beforem telling him that I've been a fan ever since I saw him in Barcelona on stage giving a talk 20 years ago. I freaked out when he replied saying that he'd actually been waiting for Obliqua, and sent a screenshot that he had a dedicated shortcut with the url to the project, and man, I was like "I'm printing this on a t-shirt" \[laughs\]
But if I just mention the big names that everyone already knows, I don't think that there's much value to that. I looked through my timeline and there are a couple of people that I'm following and that I think are doing interesting stuff but maybe don't get the recognition that they deserve. They're not all generative artists.
For instance there's purz, he mainly does AI art, but what I find interesting is his creative approach and how he experiments with the different tools. He also always deflects the critique that AI art gets in a very humorous way, and shares insights and educative material on the entire process.
[](https://twitter.com/PurzBeats?ref=gorillasun.de)
[Purz Website](https://www.purz.xyz/?ref=gorillasun.de) | [Purz on Twitter](https://twitter.com/PurzBeats?ref=gorillasun.de)
Another one is Julia Vergazova, I really like her style, it's pretty unique to me, I think she combines a couple of different techniques to create her works:


[Julia Vergazova on Twitter](https://twitter.com/julia%5Fvergazova?ref=gorillasun.de) | [Imprimatura on Alba](https://www.alba.art/projects/imprimatura?ref=gorillasun.de)
Someone I just recently discovered is Marta Timmer, and I found her stuff so cool, the aesthetics of her work really resonated with me, so much so that I messaged her asking a little bit about her work and how she does it.
[](https://twitter.com/MartaTimmer/status/1709050238831591708?ref=gorillasun.de)
[Marta Timmer on Twitter](https://twitter.com/MartaTimmer/status/1709050238831591708?ref=gorillasun.de)
And then there's also Gina Choy - I just recently listened to a Twitter space in which she introduced herself, and her approach to painting is in many ways very generative. Apparently she studied at a traditional art school in China, where art making is taught in a very meditative manner, where the process itself is the art, and the artwork being a resulting artifact of this process.


[Gina Choy on Twitter](https://twitter.com/GinaChoy%5F?ref=gorillasun.de) | [Infinity Series 2018-2023](https://www.ginachoy.com/gallery?ref=gorillasun.de#/infinity-series-2018-2021)
I also reached out to her to learn more about her practice. Recently I've been doing that a lot, but it's been a nice way to connect with people, I guess it's similar to what you're doing with these interviews.
**GS: I mean it's always nice to get genuine messages from people that are interested in your work. I really appreciate the thoughtful answer, mentioning some new people that are doing interesting work in their own right.**
## Closing Thoughts
To wrap things up, I'd like to give a big thanks to Daniel, not just for taking the time to talk to me, but also for sharing his story, his ideas, and putting thought into the questions that I asked him. I found it all very fascinating, and it is always very insightful to get a peek into the brain of another generative artist.
[](https://www.protozoo.xyz/about?ref=gorillasun.de)
From Daniel Aguilar's Portfolio | [Link](https://www.protozoo.xyz/about?ref=gorillasun.de)
**And yet again, we find ourselves at the end of the article; here's the mandatory call to action - if you've reached and read this far, it most likely is an indicator that you've enjoyed this article - if you did, consider sharing it on your socials, with friends and followers, it helps tremendously and tells the algorithm that this is meaningful content.**
**Otherwise consider signing up to the newsletter to receive updates directly in your inbox whenever there's new content. That said, that's it from me - see you in the next one, cheers and happy sketching - Gorilla Sun 🌸**
### Gorilla Newsletter 39
URL: https://www.gorillasun.de/blog/gorilla-newsletter-39/
Last updated: 2024-08-15T08:06:35.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 39th 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 - as well as a sprinkle of my own endeavors.
**Hope you're all having a great start into the week!** That said, let's get straight into it!👇
## All the Generative Things
### Golan Levin on the Potentiality of Blobs
Le Random is back with their very first article of 2024, getting a hold of Golan Levin for an interview in light of his very first ETH release over on Art Blocks titled 'Cytographia' - a project that's been two years in the making.
And as always, Monk knocks it out of the park; with his thoughtful questions he provides us with the bigger picture, inquiring about the inspirations behind the generative system, how it came to be, and what it is that Golan wanted to express - we learn that there's a lot more to blobs than just being squiggly digital shapes:
[Golan Levin on the Potentiality of BlobsArtist and educator Golan Levin dips between anecdote and insight with Monk Antony (Peter Bauman), covering Levin’s Art Blocks Curated release Cytographia, his drive to unleash the latent capabilities of computers and his role inspiring and promoting open-source art toolkits.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/golan-levin-on-the-potentiality-of-blobs?ref=gorillasun.de)
We also featured Golan in [last week's issue](https://www.gorillasun.de/blog/gorilla-newsletter-38/#in-conversation-with-golan-levin).
Cytographia occupies an interesting space in the current long-form generative art meta - it places itself in juxtaposition to many other contemporary projects that adhere to a general trend of static canvases that display artful graphics. Cytographia doesn't go down this route, brings animated and interactive elements into the mix, while still leaning into a skeuomorphic aesthetic to emulate the faded look of old science books. In that manner, Cytographia accomplishes something that not many other projects do, threading a fine line between the arguably controversial skeuomorphic aesthetics and the capabilities of the modern digital medium that it is created in, to create little digital organisms that feel very alive.
Levin also lets us in on his fascination with blob shapes, and how they essentially are a product of the medium. When processing made it possible to create shapes by means of placing and connecting individual vertices, it greatly extended the capabilities of artists to create completely new shapes and forms that were only achievable with difficulty before. Which leads us to blobs - if you're long enough into creative coding, it's very likely that you'll have attempted the creation of these kinds of shapes at some point - and they're very special and expressive little creatures, since there isn't a single correct way of generating them with code:
> Everyone is going to make blobs that are really uniquely theirs, that are going to be, however you're going to make it, because there's no right answer; there's no correct way to do it. There's no single algorithm to make a blob. I could list six different ways of doing it. That’s what drew me to these quirky forms.
And I find it infinitely fascinating how the tools, methods and algorithms, that the original Processing made available to code artists out of the box, have had a profound impact on the aesthetic of the artworks created with them - would the generative art of today have a completely different aesthetic if the original versions of Processing included a different set of tools? For instance, would Perlin noise not be as much of an integral part of generative art as it is today if it wasn't made readily available with Processing and P5?
On a related note, this also makes me think of modern video games, where we find many that attempt to recreate the aesthetics of the past decades when machines weren't as powerful as today. Objectively these pixelated graphics might not look great, but the familiarity that they evoke has a profound impact on the experience that they leave the player with. In that scenario, the graphics were most definitely a product of the limitations of that era, and nowadays there is absolutely no need for this aesthetic except for stylistic reasons.
On the other hand there's many games today that go into the complete opposite direction, trying to look as realistic as possible - when that actually isn't a defining factor in it being a good or bad game. It becomes a question of aesthetics and stylism, and similarly we shouldn't judge artworks based on their aesthetics alone.
What I've noticed, is that many of the more negative stances towards skeuomorphism in generative art come from the established artists whose careers span more than a decade or two - maybe this disinclination towards it stems from having had a formative experience with those tools of a previous era of creative coding, and it might just seem strange when a younger generation tries too hard to emulate an aesthetic that isn't nativel digital. But if the medium allows for it, why not?
In this manner blob shapes have been a career long endeavour that Levin has pursued and brought to life with Cytographia.
[](https://twitter.com/IOivm/status/1745720974350467420?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/IOivm/status/1745720974350467420?ref=gorillasun.de)
If you're interested in creating your own blobs, here's something I wrote on the topic - fittingly for today's genuary prompt 'Using a physics engine', you might want to have a look at this tutorial of mine where I've written about programming soft body physics, one of the many methods to make little interactive blobby shapes:
[Programming Soft Body Physics and BlobsOne approach to modeling deformable objects in computer graphics are spring-mass systems: a technique that allows us to bring Soft Body physics to life. Picking up from the particle mesh that we created last time; in this post we’ll tackle different configurations for blob-like shapes.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/soft-body-physics-and-blobs/)
If you're interested in creating your own blobs - here's something I wrote in 2023 on the topic.
In other news from LeRandom, just two days ago I received this gift from them:



Thanks a million for the generous gifts, it made my week, and I might just have to start my print business now with those beautiful paperweights - been putting it off for far too long. And as always, kudos to Monk, for the stellar article and for putting these slices of generative art history into written form.
### Wobbly Functions by Piter Pasma
While we're on the topic of blobby and wobbly shapes, Piter Pasma re-published on of his previously unfinished articles on the topic for the 13th Genuary prompt *Wobbly functions*:
[](https://twitter.com/piterpasma/status/1745956336045580314?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/piterpasma/status/1745956336045580314?ref=gorillasun.de)
[How to make sinusoid wobbly functions – Piter Pasma’s Pages](https://piterpasma.nl/articles/wobbly?ref=gorillasun.de)
The article features several interactive examples showcasing some of the methods with which sine waves can be combined to create all sorts of interesting wobbly functions:
[](https://piterpasma.nl/articles/wobbly?ref=gorillasun.de)
[Link to Article](https://piterpasma.nl/articles/wobbly?ref=gorillasun.de)
If you find this interesting you should also look into domain warping, a method which combines different noise and displacement functions to create interesting effects - here's an interactive primer by Mathias Isaksen:
[](https://st4yho.me/domain-warping-an-interactive-introduction/?ref=gorillasun.de)
[Link to article](https://st4yho.me/domain-warping-an-interactive-introduction/?ref=gorillasun.de)
### RCS interview with Jared Tarbell
Besides Golan Levin, another very influential figure in generative art is Jared Tarbell, having worked with the earliest versions of Processing and created many an iconic artwork that still inspire today. Just a couple of days ago, Right Click Save released an interview with him, giving us insights into his newest artwork created for the Kate Vass Gallery, as well as some reflections on the early days of creative coding:
[The Interview | Jared S. TarbellThe iconic creator shares how generative art can unite computation and spirituality with Kate Vass and Alex EstorickJared S. TarbellZsofi Valyi-Nagy](https://www.rightclicksave.com/article/the-interview-jared-s-tarbell-generative-art-etsy?ref=gorillasun.de)
There's so many interesting points throughout, that I found it difficult to pick one to give commentary on - I found it really interesting when he addressed the question why his works are primarily in black and white rather than using colors; he explains that is to put emphasis on the emergent structure of his generative systems:
> I stick to black and white because I’m most interested in the structure and less the vibrancy or artistic quality of the piece. I want to expose the structure. Whenever possible, I try to reduce it to the heart of the phenomena that I’m exploring.
There's actually quite a few artists that have dedicated themselves to only working in black and white, such as Etienne Jacob, Julien Gachadoat, and loackme for instance. All of them create highly geometric works.
In my own generative art, I like to think about generative compositions in two parts: structure and texture. I always start with the structure, such that one part of the algorithm focuses on constructing an interesting layout which is then used as a scaffold to fill in textures and colors. Sometimes the structure can imply and guide the texture and vice versa, so naturally the two aren't always completely separable. [A good example for this is Daniel Aguilar's recent project Tetra](https://www.alba.art/projects/tetra?ref=gorillasun.de). Assessing the interplay between the two has been a meaningful way for me to evaluate if my project is doing something interesting. I tend to struggle with texture and color, because it's more than often very subjectively perceived by different individuals.
If you enjoyed this interview with Jared Tarbell, you should definitely also check out Artnome's interview released in 2020:
[Interview With Generative Artist Jared Tarbell — ArtnomeAt its best, art is transcendent and sublime. However, few artists can regularly create works that evoke feelings of awe and wonder on that level in its viewers. Even fewer artists have managed to do this by writing code on a computer, a tool which many consider to be at odds with natural beauty, anArtnomeJason Bailey](https://www.artnome.com/news/2020/8/24/interview-with-generative-artist-jared-tarbell?ref=gorillasun.de)
I also recently discovered that RCS have their own podcast - highly recommend listening in to this episode where Danielle King talks to many of the people currently involved in the generative AI scene:
[](https://open.spotify.com/episode/0XNxk4oeT3y1823DhKgWSA?si=d89b5d30fccc43e5&nd=1&dlsi=3abb8410f2134017&ref=gorillasun.de)
[Link to Episode](https://open.spotify.com/episode/0XNxk4oeT3y1823DhKgWSA?si=d89b5d30fccc43e5&nd=1&dlsi=3abb8410f2134017&ref=gorillasun.de)
### LittleJS 2 year Anniversary
Frank Force is a force of nature when it comes to creative coding and game dev things - I've already featured him a couple of times on the newsletter - in issue [#23](https://www.gorillasun.de/blog/gorilla-newsletter-23/) for his cool generative pottery project on fxhash and in issue [#25](https://www.gorillasun.de/blog/gorilla-newsletter-25/#tinycode) for a size coding talk that he gave at the JS game development summit. This week we're celebrating the 2 year anniversary of a lightweight HTML5 game engine that he's built and actively developing:

Javascript gets a lot of bad rep for being on the spectrum as one of the slower programming language, but I actually think that it's a wonderfully expressive language that's suitable for building all sorts of things - especially for video games. Building them directly for the browsers makes it super easy to share them with others, which is ultimately the entire point of games. If you're comfortable with Javascript and want to build your own little game, LittleJS might be a perfect starting point for that, here's a link if you want to check it out for yourself:
[GitHub - KilledByAPixel/LittleJS: LittleJS is a lightweight HTML5 game engine with many features and no depenencies. 🚂 Choo-Choo!LittleJS is a lightweight HTML5 game engine with many features and no depenencies. 🚂 Choo-Choo! - GitHub - KilledByAPixel/LittleJS: LittleJS is a lightweight HTML5 game engine with many features an…GitHubKilledByAPixel](https://github.com/KilledByAPixel/LittleJS?ref=gorillasun.de)

### From Hexcodes to Eyeballs by Jamie Wong
Have you ever wondered about how we perceive color with our eyes? How displays translate hexcodes into colors? And what color actually is in the physical sense of the word? Jamie Wong provides us with all of the answers in this massive article of his back from 2018:
[Color: From Hexcodes to EyeballsIf you’re curious about rainbows, colorimetry, gamma encoding, and experiments run in the late 1920s, then this is the post for you!Zero Wind :: Jamie WongLogo Created using Figma](https://jamie-wong.com/post/color/?ref=gorillasun.de)
### Generative Minis
1. [](https://github.com/quinton-ashley/p5play?ref=gorillasun.de)[Video games in P5 with P5Play](https://p5play.org/index.html?ref=gorillasun.de): P5Play is yet another game engine that builds on top of P5 (for the graphics) and enables quick and easy development of video games in the browser. Quinton Ashley the creator of P5Play also documents his work on the library [here](https://github.com/quinton-ashley/p5play/wiki/Developer-Log?ref=gorillasun.de), where he talks about all sorts of different programming challenges.
2. [Ben Moren makes interesting installations, experiments and artworks that lie somewhere at the intersection of creative coding, technology and nature](http://benmoren.com/?ref=gorillasun.de).
## Tech and Code
### Age of Empires, mostly written in Assembly
I'm a bit too young for the original Age of Empires (weird flex but okay), but AOE 2 was one of my favorite childhood games. I remember spending many Saturdays in the sandbox mode, building gigantic fortresses and pitting massive armies against each other - I think I spent more time doing that than playing the actual game.
And at that point in time I had yet to write my first line of code. I recently came across an interesting article by PC Gamer that recounts an interesting story from the original games that recently emerged, it turns out that the original games were to a big extent written in low-level Assembly code, making the iconic graphics possible:
[Age of Empires developer confirms the game is mostly written in low-level Assembly code because ‘we could scroll the screen and fill it with sprites as fast or faster’ than competitors like Starcraft ‘even though we had twice as many pixels’“I guess I can clarify this, since I wrote all the assembly code used in Age of Empires and Age of Kings.”PC GamerRich Stanton](https://www.pcgamer.com/age-of-empires-developer-confirms-the-game-is-mostly-written-in-low-level-assembly-code-because-we-could-scroll-the-screen-and-fill-it-with-sprites-as-fast-or-faster-than-competitors-like-starcraft-even-though-we-had-twice-as-many-pixels/?ref=gorillasun.de)
PC Gamer needs to chill with their headlines
This came to light in a recent reddit post that blew up after one of the original AOE devs left a reply, elaborating the claim and providing a detailed answer on the matter - here's the post:

[Link to reddit post](https://www.reddit.com/r/aoe2/comments/18ysttu/aoe%5Fis%5Fwritten%5Fin%5Fassembly%5Fis%5Fthis%5Factually%5Ftrue%5Fo/?ref=gorillasun.de)
And here's Matt Pritchard, one of the founding members of Ensemble Studios, who was in charge of graphics and optimisation on the early games. He chimes in:
[](https://www.reddit.com/r/aoe2/comments/18ysttu/comment/kgltqrg/?utm%5Fsource=share&utm%5Fmedium=web2x&context=3)
[Link to comment](https://www.reddit.com/r/aoe2/comments/18ysttu/comment/kgltqrg/?utm%5Fsource=share&utm%5Fmedium=web2x&context=3)
Games from that era really don't get enough credit for the massive feats of programming that they were.
### What's actually Declarative programming?
You've probably heard the term "declarative programming" at some point now, but can you actually clearly explain what it entails? For this, we first need to understand what a programming paradigm is. According to wikipedia, programming paradigms *"are a way to classify programming languages based on their features*"*,* which is technically correct, but I think that it's easier to think of programming paradigms as "problem solving methodologies" or even "programming styles".
This might sound a bit esoteric, but it's essentially a bunch of commonly agreed on strategies to solve specific programming tasks by leveraging the features of the language that's used. Some languages lend themselves to specific paradigms, because they're designed for that purpose, but then you also have languages that can do a little bit of everything, like Javascript for instance.
Two terms that are often thrown around in that context are the "imperative" and "declarative" paradigms, and in recent years we've been gushing a lot about how good and easy declarative programming is, when it's not actually so clear what that actually entails. While "imperative" simply means that we spell out every minute instruction to achieve a certain task, the declarative approach, that is often described as telling the computer "what to do", is not as obvious in comparison.
The cool people from UI.dev put together an in-depth article explaining the difference, while providing a good idea what declarative programming is all about:
[](https://ui.dev/c/react/imperative-vs-declarative?ref=gorillasun.de)
[Link to article](https://ui.dev/c/react/imperative-vs-declarative?ref=gorillasun.de)
### The Package that broke NPM
In their bizarre quest (or act of digital mischief) for publishing an everything-package on npm, a package that depends on every other package on npm, high school student uncenter and his collaborators stress tested the limits of github and the node package manager while making quite the news in the process:
[The package that broke NPM (accidentally) - uncenter.devHow we made a package that depends on every single NPM package... and broke NPM in the process.uncenter.devuncenter](https://uncenter.dev/posts/npm-install-everything?ref=gorillasun.de)
Alebti the digital logistics of this endeavour being quite fascinating, github ultimately decided in the aftermath to not allow this, with the main issue of it being that the everything package, being dependent on all other packages, makes it so that these can't be unpublished anymore. Which would not be the case if they weren't dependencies.

## AI Corner
### LLMs and Programming in the first days of 2024
I don't know who antirez is, but from what it looks like it seems that they've been around for a while, with their very first piece of writing dating back 4072 days (as of writing this) which is just tad bit more than 11 years. I came across a recent piece of his in which he talks about his experience with LLMs and how they greatly simplify many of the tedious programming tasks today:
[](http://antirez.com/news/140?ref=gorillasun.de)
[Link to Article](http://antirez.com/news/140?ref=gorillasun.de)
And overall it reflects my own experience, and I'd like to assume that of many programmers that have been programming 'the hard way' prior to the advent of LLMs. LLMs are super powerful but at the same time also really dumb - as antirez states "an idiot who knows everything is a precious ally" which is a really good way to put it, LLMs fail miserably when you ask them to produce something novel or to reason with nuance about certain very niche tasks, but excel when asked about things that are general knowledge. Like doing task X with framework Y, in that setting LLMs can go a long way. Recommend giving the article a read - I'm curious how things will change in the future as these language models become more powerful and nuanced, but as of now I think most programming jobs are still not at danger.
### Attention Mechanism in Transformers
In a TwitterX thread deep dive Eduardo Slonski elucidates the Attention mechanism in transformers - the main machine learning component that powers LLMs:
[](https://twitter.com/EduardoSlonski/status/1745130935727894616?ref=gorillasun.de)
[Link to thread](https://twitter.com/EduardoSlonski/status/1745130935727894616?ref=gorillasun.de)
A transformer is essentially a neural network in of itself with a very specific structure. Transformers were initially introduced in a paper titled "Attention is all you need" by Vaswani et al. in 2017 - and as the title already reveals these innovative part of transformers is an "attention" mechanism, which allows it to weigh the importance of different parts of the input sequence that is fed into it, in contrast to previous types of neural networks that had been used up to that point.
In Eduardo's thread he showcases examples and visualizations of how this works and explains some of technicalities behind it. The thread is a bit esoteric without prior knowledge on transformers, I never actually took the time to learn how they work but I guess I should at this point. Definitely bookmarking it for later.
## Gorilla's Genuary so far...
It's been yet another week full of genuary prompts, and it's been going surprisingly smooth for me so far. I've been able to get every prompt done in time and am actually very happy with all of my creations. Here's a recap of what I've made this week:
0:00
/1:35
1×
Genuary 8 - Chaotic System, similar idea to the previous genuary 'Loading Bar' prompt (see previous newsletter). Here I'm using Prim's maze generating algo to expand the pixelated regions and then doing an additional pass to clear the interiors based on some adjacency rules. It made for some really cool pixelated patterns, will definitely explore this one more at a later point in time.
0:00
/0:12
1×
Genuary 9 - ASCII. A simple circular SDF, selecting characters from an array based on a sine wave, where those characters are sorted by brightness in the array. Somehow looks like an eye staring back at me.
0:00
/3:08
1×
Genuary 10 - Hexagonal. This one simply borrows the same code from my generative artwork Hex Appeal, that also involves Prim's algorithm and an additional procedure that then traces the contours of the regions. Modified the code to animate how this works.



Genuary 11 - In the style of Anni Albers. The only static artwork that I made for Genuary so far, and people over on Twitter really enjoyed it. I don't know why but these turned out better than anticipated, it's simply a nested loop that places rectangles in a grid like manner, where some rows occasionally stretch a longer span. Individual rectangles also have the chance to be further subdivided into smaller rectangles. Using Roni's Ten palette, with some additional colors.
0:00
/0:45
1×
Genuary 12 - Lava Lamp. A little digital lava lamp powered with a ray-marching algorithm, shoutout to Patt Vira's cool tutorial on how to implement this. I've actually attempted this two years ago, but then never got back to it.
0:00
/0:04
1×
Genuary 13 - Wobbly Functions. This one was a lot of fun to make, a classic Gorilla spiral SDF with some additional wobble that modulates the outward traveling bands. I had this one in mind before, but never got around to figuring it out. It ended up being relatively straight forward.
0:00
/0:06
1×
Genuary 14 - Less than 1kb Artwork. Wanted to create a cute parametric animation, inspired yet again by some of beesandbombs stuff. As an additional challenge I wanted to do it purely in vanilla JS which ended up not being too difficult. Note to self, need to figure out how to run an animation loop at a specific frame rate, because exporting the gif was a bit of a hassle.

And here's the code for the above animation.
How's your genuary going so far?
## Music for Coding
It's been a minute since I've enjoyed an album quite as much as this one - The Ironsides are a trio that make music inspired by Italian cinema, blending sounds from soul and jazz and creating something truly special in the process:
**And that's it from me this week, while I'm jamming out to some of these tunes, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 38This week: Damoon Rashidi on Flow Fields - Digital Morphogenesis by Jason Webb - Unit by Samuel Timbo - In Conversation with Golan Levin - Highlight’s Gengine - Amit Patel’s Red Blob Games - Tom Scott’s goodbye +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-38/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 38
URL: https://www.gorillasun.de/blog/gorilla-newsletter-38/
Last updated: 2024-01-25T17:44:49.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined in the past week!**
> **This is the 38th 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 - as well as a sprinkle of my own endeavors.
**Hope you've all already had a great start into the new year!** That said, let's get straight into it!👇
## All the Generative Things
### Damoon Rashidi on Flow Fields
Have you ever wondered how the code behind a generative artwork like the highly acclaimed Fidenza works? After exploring the topic for himself, Damoon Rashidi provides us with the answers packaged in the form of a comprehensive article:
[What I’ve learned about flow fields so far.Noise values and a tiny bit of math can take you a long way.](https://damoonrashidi.me/articles/flow-field-methods?ref=gorillasun.de)
As the title might've already given away, the secret ingredient are flow fields. After providing a break down and explanation of the involved concepts that allow for the creation of these flow fields, Rashidi proceeds to explain how they can be used as an underlying structure for guiding the squiggly lines as we see them in Fidenza.
In a nutshell, flow fields are simply number grids, where these numbers represent small velocity vectors. Tracing the paths that these vectors predicate allows us to visualize certain 'flows' - simply squiggly lines that traverse the grid. These number grids aren't generated at random though, but rather by means of different noise functions that present a certain smoothness, with the consequence that adjacent entries in the vector grid are not too dissimilar and point in a relatively similar direction. Perlin and Simplex noise are often two popular choices for this purpose.
Rashidi's article is a great introduction to topic with several interactive examples for you to play with and get a feel for how these noise fields function, also going a step further to elaborate how the colored bands in Tyler Hobbs Fidenza can be achieved.


If you've read some of the past articles on here, collision detection and grid lookups might be familiar concepts!
Here we also have to point out an article on flow fields written by Tyler Hobbs himself:
[Flow Fields — Tyler HobbsFlow fields are incredibly powerful and flexible tools for producing interesting curves. They are one of the main tools I’ve used in my own generative art over the last few years, and I find myself going back to them over and over again. It’s entirely possible that I’ve used them in more programs thTyler HobbsFlow Fields](https://tylerxhobbs.com/essays/2020/flow-fields?ref=gorillasun.de)
And just a btw here, I came across this article when I noticed that I was getting some newsletter signups over from Hackernews - a quick "Hackernews Gorilla Sun" search led me to Damoon's post under which abetusk had kindly given me a shoutout:

Thanks everyone who's joined over from Hackernews! Thanks abetusk!
If you ever come across any cool resource that you think would be a good fit for the newsletter, don't hesitate to shoot me a message on my socials! But anyway, awesome article, hope to see more like it in the future!
### Digital Morphogenesis by Jason Webb
I'm not entirely certain if I've shared this resource before, but even if I have, it most definitely deserves another shoutout - it's a massive list of resources on Digital Morphogenesis put together by Jason Webb:
[GitHub - jasonwebb/morphogenesis-resources: Resources on the topic of digital morphogenesis (creating form with code). Includes links to major articles, code repos, creative projects, books, software, and more.Resources on the topic of digital morphogenesis (creating form with code). Includes links to major articles, code repos, creative projects, books, software, and more. - GitHub - jasonwebb/morphogen…GitHubjasonwebb](https://github.com/jasonwebb/morphogenesis-resources?ref=gorillasun.de)
Digital Morphogenesis refers to the process of generating complex, intricate, and often organic-like forms using algorithms and computational methods. Often the goal is to recreate and simulate physical and chemical processes that occur in nature that produce interesting organic shapes and patterns. A popular example for this is the proliferation of slime mold and it's resulting patterns:
[physarum - Sage JensonNEW SITE + PORTFOLIO + NEWSLETTER @ sagejenson.com All images / gifs in this post are from my implentation of a Physarum transport model (described below). This February I spent a bit of time simulating slime mold (Physarum polycephalum).…Sage Jenson](https://cargocollective.com/sagejenson/physarum?ref=gorillasun.de)
If you've ever wanted to learn about reaction diffusion, differential growth, diffusion limited aggregation, etc. this github repository is your starting point! Here's a differential growth simulation I've made some time ago:
0:00
/0:19
1×
### Unit by Samuel Timbo
I've been seeing a few twets by Samuel Timbo float around in which he showcases interesting little interactive machineries that look like state machines at a first glance:
0:00
/0:07
1×
[Link to Tweet](https://twitter.com/io%5Fsammt/status/1738186448619139158?ref=gorillasun.de)
And that's actually not too far off - Samuel has in fact been developing his own visual programming language that operates on the basis of nodes. You can learn more about *Unit* from it's official github repo:
[GitHub - samuelmtimbo/unit: Next Generation Visual Programming SystemNext Generation Visual Programming System. Contribute to samuelmtimbo/unit development by creating an account on GitHub.GitHubsamuelmtimbo](https://github.com/samuelmtimbo/unit/?ref=gorillasun.de)
> Unit is a General Purpose Visual Programming Language and Environment built with a primary focus on Developer Experience. It is heavily inspired by Live, Data Flow, Reactive, Functional and Object Oriented Programming paradigms. Formally, units are Multi Input Multi Output (MIMO) Finite State Machines (FSM). A program in Unit is represented as a Graph.
I find this deeply fascinating, there are already tools that are devised for the visualization of codebases as a connected graphs and or diagrams that clarify how different functions feed into other. In Unit, the code is written by constructing such a connected graph, besides occupying an important position as a transitory tool from visual coding and no-code platforms to actually writing code, I believe it could also be interesting to see what experienced programmers can achieve with it. You can try it out in your browser [here](https://unit.land/?ref=gorillasun.de).
### Generative Minis
1. [Jo Wood's ObservableHQ notebook on Maze Generation](https://observablehq.com/@jwolondon/mazes?collection=@jwolondon/mazes&ref=gorillasun.de): Jo Wood's created a number of cool notebooks that go over implementing maze generating algorithms. If you've tried your hand at generating mazes with code, this is a starting point - a lot of my recent work takes inspiration from these types of algorithms.
2. [Matt Perkins on creating interesting lines with code](https://twitter.com/nudoru/status/1743318022515781767?ref=gorillasun.de): Matt Perkins' another prolific generative artist that stands out from the crowd with his unique style - he recently released two tutorials showing us how to generate interesting lines.
3. [Daniel Velasquez's WEBGL Newsletter](https://offscreencanvas.com/?ref=gorillasun.de): one of the newsletters that I always look forward is from Daniel Velasquez, a creative Web Developer that shares insights and tutorials about WEBGL things. Highly recommend checking it out!
## Genart & Web3
### In Conversation with Golan Levin
With a career of almost 3 decades in creative coding and media art, and having made numerous contributions over the years, Golan Levin has unarguably risen to be one of the most influential figures in the space. Gearing up for his ArtBlocks curated release, Golan tells us about his career as a teacher and creator, and also provides insights into his process and the principles under which he creates work:
[Spectrum: In Conversation with Golan Levin on Cytographia | Art BlocksInterview with computational interactive new-media artist Golan Levin. In this conversation, we hear more about his generative artwork, Cytographia, his artistic practice, and his use of the blockchain as an artistic medium.Art Blocks](https://www.artblocks.io/info/spectrum/in-conversation-with-golan-levin-on-cytographia?ref=gorillasun.de)
Golan explains how interactivity has always been the focal point of his work - more so than the generative aspect of it - with the main goal of provoking "wonder" and "surprise" from the audience that engages with his creations. One prime example that he cites in the interview is his Augmented Hand series from 2014; a real-time interactive software system that transforms and alters the audience's hands in uncanny ways by subtracting or adding fingers to them:
[](https://flong.com/archive/projects/augmented-hand-series/index.html?ref=gorillasun.de)
[Link to Article](https://flong.com/archive/projects/augmented-hand-series/index.html?ref=gorillasun.de)
For his upcoming release Cytographia he relaxes his own rules a little and focuses more on the generative aspect of things. Worth mentioning again, here is Golan's almost two year long Twitter thread in which he's shared each minute step of the making of Cytographia
[](https://twitter.com/golan/status/1472819559791013891?ref=gorillasun.de)
[Link to Thread](https://twitter.com/golan/status/1472819559791013891?ref=gorillasun.de)
Not only has Golan impacted the field through his work, but also through the many creatives that he's mentored and taught, such as Zack Lieberamn, Huw Messie, and many others.
### Highlight announces Gengine
A few days ago Highlight announced a private beta for a new developer platform called Gengine, that aims at greatly extending artists' capabilities in customizing their generative systems minted on Highlight:
[Announcing Gengine™We’re announcing a new generative developer platform today called Gengine™ and opening up private beta to interested artists and developers. If you’re interested in using Gengine, send us an email with details on your project to gm@highlight.xyz.](https://highlight.mirror.xyz/bbkwLrT-Cft7mg0K7sWIpc1S-YobOZmSS-Q44E5OFtg?ref=gorillasun.de)
As far as I understand it, Gengine essentially exposes a set of APIs, called *engines*, that artists can make use of to configure how their generative artworks behave once they go live. For instance, the data engine is aimed at streamlining access to blockchain data if devs choose to base aspects of their generative artworks off of it, instead of having to code these manually.
[](https://twitter.com/Highlight%5Fxyz/status/1743319230257189051?ref=gorillasun.de)
You can also read more about it in [this thread](https://twitter.com/Highlight%5Fxyz/status/1743319230257189051?ref=gorillasun.de)
If you have some interesting ideas that could come to life with Gengine, you can reach out to them through the article.
### Thoughts on Selling Generative Art by Phil Mohun
In other news from Highlight, they've invited Phil Mohun from Bright Moments to talk about some of his considerations when it comes to selling generative art on the blockchain. The Twitter space goes live on Tuesday the 9th of January (the day after this issue comes out) - you can listen to it [here](https://twitter.com/Highlight%5Fxyz/status/1743633639668175305?ref=gorillasun.de). This is in light of a recent article that he's written:
[Thoughts on Selling Generative ArtHow independent creators can build an audience and make a living with NFTs](https://highlight.mirror.xyz/%5FeUKOZ2fS24FbLejgDkvOST%5FYSco1HTIBeLFfus%5F6EQ?ref=gorillasun.de)
In the article, Mohun addresses several important factors involved in publishing and selling generative artworks, and with the experience he's acquired from working at Bright Moments, he makes some good very points. Especially when it comes to pricing and supply, which is arguably one of the more challenging calls to make prior to release.
Deciding on an appropriate number of editions for an artwork without over or under-pricing, requires you to have a good understanding of your audience as well as the current market - I think I've definitely messed this up on several occasions, especially considering that sold out collections are extremely attractive to collectors on the secondary market and likewise good indicators for future collectors. I recommend bookmarking that page for future reference when you're releasing your next project.
## Red Blob Games by Amit Patel
Amit Patel is the mastermind behind the website [Red Blob Games](https://www.redblobgames.com/?ref=gorillasun.de), an incredible resource for game development and creative coding that boasts numerous in depth articles on algorithms and techniques that are frequently used for the purpose of making video games. I genuinely recommend checking out the site and bookmarking it for later - Patel's been working on the website for almost 3 decades now, and there is an absurd of stuff there to learn from:

Some of these tutorials are simply timeless pieces of information - and have most definitely helped me tremendously on several occasions. **Some pieces of information that Amit shares on his site you will simply not find anywhere else on the internet**. For instance, the Hexagonal Grid reference (my favorite) explains some of the methods with which you can arrange and store hexagonal tilings that makes working with them a lot easier.


I used an axial coordinate system in my generative artwork Hex Appeal, which I would not have known about if it weren't for the Red Blob Games reference.
I also admire Amit for the way in which he creates his work and shares it on the internet. I thoroughly enjoyed the recap that he published at the end of 2023 - one paragraph that resonated deeply with me and found really insightful touches on something that I've experienced as well:

[Link to Article](https://simblob.blogspot.com/2023/12/what-i-did-in-2023.html?ref=gorillasun.de#more)
I've talked about this in my own recap for 2023, but writing these big articles/tutorials takes a massive amount of time, sometimes months. And when the hard work comes to fruition and people acknowledge these polished pieces you start holding yourself to a certain standard, which is really not a healthy mindset and hampers you from creating new work. Important to point out here, that I'm not comparing myself to Patel - I still have a very long way ahead of me.
In one tutorial that I recently found, back from the beginning of 2023, he reveals to us some of the magic that make the interactive demos on his site possible, in particular he focuses on how to create interactive draggable objects which are actually not very straightforward to achieve as there's a lot of things to consider when implementing them:

[Link to Tutorial](https://www.redblobgames.com/making-of/draggable/?ref=gorillasun.de)
## Ten years of Tom Scott
Last week the Youtube science icon Tom Scott announced that he's going to take a step back from making videos after 10 years of consistent weekly uploads. It's not a *goodbye* goodbye per se, as his other content is still going to resume, but the weekly uploads are going to take a pause for at least a while, as he explains in his official statement on it:
It's insane to think that he's uploaded a piece of content every single week for 10 years without missing a beat - the amount of dedication, consistency, and sacrifice that must've taken is unimagineable. I'm only a little over half a year into this weekly newsletter, and I already struggle on some weeks to get things ready on time, sometimes there's just a lot of other things that take precedence - will I still find myself making this newsletter in a couple of years? In 10 years?
But in any case, Tom Scott's and his weekly videos will be sorely missed by many.

[Link to Reddit post](https://www.reddit.com/r/youtube/comments/18w0b41/tom%5Fscott%5Fafter%5Ften%5Fyears%5Fits%5Ftime%5Fto%5Fstop%5Fmaking/?ref=gorillasun.de)
## Tech and Code
### Making Small Games
And while we're on the topic of video games, here's another cool article that I found that talks about the importance of building small games:
[How To Make Good Small GamesPolly the Frog by…John Thyer](https://farawaytimes.blogspot.com/2023/02/how-to-make-good-small-games.html?ref=gorillasun.de)
Building a game is a completely different challenge compared to other kinds of programming, because it involves so many different things besides coding itself - in many ways it can be considered as an artform in of itself. Being an expert programmer naturally helps, but it's not only about that, it's also about crafting an experience, telling a story and expressing something to the player, leaving them with something more once they've played your game.
The article argues that it's a worthwhile and meaningful endeavor to build small games and to try out different concepts before throwing yourself into building massively large games - and I strongly believe that's a good piece of advice for any creative endeavor, to try and make many small works, all the time, rather than dedicating the entirety of your time to developing one larger project that might ultimately not make it. Some of the best artists that I look up to do this, so it can't be too far off the mark.
The article proceeds to act as sort of a manifesto, describing what makes good small games. I found the enumerated points really interesting, and I think they're actually applicable to other artforms - it's all about what you promises with your art to the audience and how it delivers on these promises. Here's two other interesting pages that discuss the same topic and that I really wanted to include here as well:
[Make and release lots of small games before making a big oneThe only piece of eternally relevant gamedev advice.Tyler Glaiel's BlogTyler Glaiel](https://blog.tylerglaiel.com/p/make-and-release-lots-of-small-games?ref=gorillasun.de)
[Making small games, which is fun in itself · Joys of Small Game Developmentabagames](https://abagames.github.io/joys-of-small-game-development-en/fun%5Fto%5Fmake%5Fsmall%5Fgames.html?ref=gorillasun.de)
That said, I'm noticing more and more parallels between generative art and game development, not only because of similarities in the algorithms and techniques that are used for the two, but also as artforms and mediums of expression - hence I might just start mentioning gamedev related things a bit more in the future.
### The Implied Web
Another interesting article from HTMLHell, this time by Halvor William Sanden, about the Implied Web. It's a bit of a heavy article, but it tackles an important issue in modern web design, where pages on the web often rely too heavily on explicit cues to inform users how to interact with interface and navigation elements:
[The Implied Web - HTMHellA collection of bad practices in HTML, copied from real websites.The Implied Web - HTMHell](https://www.htmhell.dev/adventcalendar/2023/21?ref=gorillasun.de)
That makes me think of my dad, he has somehow acquired the bad habit of double clicking links on the web as if they were folders on his desktop. I pointed out to him that he didn't need to do that, but it's simply ingrained in him that to open something you have to double click it. And I can't blame him for it, because from his perspective it kind of makes sense.
I guess this is what the implied web is about, consistency of behaviour, where users know how to navigate and interact with things from acquired past experiences.
## AI Corner
### Gemini's Multimodal Perception
When it comes to AI related things, I find that I can't keep up sometimes with all of the developments every week. Recently came across this tweet by Alexanader Chen in which he experiments with a demo put together by Grant Custer that showcases Gemini's multimodal reasoning capabilities. Basically, he feeds doodles into the model and asks it to tell him what the represented concepts are:
0:00
/0:30
1×
[Link to Tweet](https://twitter.com/alexanderchen/status/1738356963753308466?ref=gorillasun.de) | [Try it for yourself](https://replit.com/@GrantCuster/gemini-vision-example?ref=gorillasun.de#README.md)
### Wacom Controversy
In a recent turn of events, the company Wacom, that mainly builds drawing tablets for artists, decided to use an AI generated image for a promotional banner - which caused a severe backlash from digital artists that I are already not on friendly terms with AI generated imagery:

[Link to Tweet](https://twitter.com/JoJoesArt/status/1743745530021191812?ref=gorillasun.de)
I have nothing against AI generated imagery, when it's done ethically of course, but it simply leaves you scratching your head when you see a company like Wacom, who's main audience is digital artists that create their art by hand, use an AI generated image to promote their product.
## Gorilla's Genuary so far
Well, there hasn't really been much from my end and it's been a rather rough start into the year. I've been down and sick with Covid for a third time - not as badly as the first two times - but it's still severely impeded me with everything that I've been wanting to get done over the past week. The worst part of it was the brain fog and the inability to focus on anything at all.
I did manage to get the newsletter done however \*pats myself on the back\* and also powered through all of the first 7 Genuary prompts. Here's everything that I made at a quick glance - my personal challenge so far's been that all of my creations gotta be animations:
0:00
/0:10
1×
#1 Particles, lots of them - for the first prompt I chose to do something in the style of [pixelfool](https://twitter.com/p1xelfool?ref=gorillasun.de) and ended up with this cute little 3D spiral.
0:00
/0:24
1×
#2 No Palettes - Used as an excuse to recreate this iconic sketch by beesandbombs | Link to Original
0:00
/0:08
1×
#3 Droste - that one was a bit of a curveball and I was overly ambitious with the prompt, that's also when covid really hit me and I didn't have the energy or desire to continue polishing this. So that's that.
0:00
/0:22
1×
#4 Pixels - Initial Idea turned into a giraffe pattern generator.
0:00
/0:08
1×
#5 Vera Molnár - the Genuary prompt to honor Vera Molnár was chosen to coincide with her 100th birthday - RIP.
0:00
/0:20
1×
#6 Screen Saver
0:00
/0:33
1×
#7 Progress bar / indicator / loading animation - this is actually a tiny canvas, with the individual pixels being filled out. The numbers were a bit of a hack.
The thing about Genuary is that some of your creations will inevitably end up being crap, but I think that's just a part of it.

## Music for Coding
I'm only 17 years late to the party, but here's a blast from the past with Bloc Party, yet another find that I came across through the Youtube recommendation algorithm. I thoroughly enjoyed the music video for their track Flux, that pays homage to japanese Kaiju (gigantic monsters) movies:
Bloc Party is a British pop-punk band that came together in 1999, and quickly rose to fame over the 2000s with their distinct danceable and uplifting take on the genre in comparison to their contemporaries. They faded a bit over the 2010s with multiple longer bouts of inactivity in which the members focused on their own respective side-projects. Recently they've been making a come back however, with the release of their album Alpha Games in 2022:
**And that's it from me this week, while I'm jamming out to some Bloc Party tunes, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 37This week - Procedural Hydrology by Nicholas McDonald - Stolen Buttons by Anatoly Zenkov - Massive Book recommendation thread by Casey Reas - Understanding Abstract Art by LoneWick - Julian Gachadoat’s DiceGL - RevDanCatt’s Plotter Shenanigans - 37C3 +++ lots more!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-37/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a fantastic week! See you in the next one, cheers - Gorilla Sun 🌸**
### Gorilla Newsletter 37
URL: https://www.gorillasun.de/blog/gorilla-newsletter-37/
Last updated: 2024-01-01T16:05:18.000Z
**Welcome back everyone** 👋 **and a heartfelt thank you to all new subscribers that joined along for the ride in the past week!**
> **This is the 37th 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 - as well as a sprinkle of my own endeavors.
**With this issue I'm wishing you all an amazing start into the new year - really can't believe that we're already in 2024!** In case you missed it, last week I published a big recap for all my endeavors in 2023 as well as what's in store for the blog in 2024 👇
[Gorilla Sun 2023Aaaaand — CUT! It’s been yet another eventful year, with much generative art, many an article and so many other projects. Here’s a big recap to wrap up a great year, diving into all of the Gorilla endeavors over the course of the year!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-sun-2023/)
That said, let's kick off 2024 with a mixed bag of generative goodies! 🌸
## All the Generative Things
*The best part about the holiday season is that people have a lot more time to build cool things, we start off with quite a few interesting finds in the genart and creative coding space this time around!*
### Procedural Hydrology by **Nicholas McDonald**
A couple of months back I did a deep dive on Nat Sarkissian's Eucalyptus and Sagebrush - a generative artwork that revolves around the creation of stunning stylized landscapes by means of a hydraulic erosion algorithm. That's how I found my way into the interesting world of procedural terrain generation: a huge topic with a lot of research backing it due it's usefulness in several applications, from video games to terrain simulations.
Last week, while browsing the r/generative subreddit I came across a post that peaked my interest in that regard, titled *Procedural Hydrology*:


[Link to Reddit Post](https://www.reddit.com/r/proceduralgeneration/comments/18kesza/procedural%5Fhydrology%5Fmeandering%5Frivers/?ref=gorillasun.de)
[Procedural Hydrology: Improvements and Meandering Rivers in Particle-Based Hydraulic Erosion Simulations – Nick’s Blog](https://nickmcd.me/2023/12/12/meandering-rivers-in-particle-based-hydraulic-erosion-simulations/?ref=gorillasun.de)
Especially since it also mentions the creation of meandering rivers, referring to the natural and organic formations of rivers within a landscape, which is quite a difficult thing to achieve with code - two years ago I've actually looked into it a little, but at the time the task seemed just a little bit over my head so I quickly dropped it again.
[](https://en.wikipedia.org/wiki/Meander?ref=gorillasun.de)
[Link to Wikipedia Page](https://en.wikipedia.org/wiki/Meander?ref=gorillasun.de)
McDonald's project finds its beginnings 3 years ago when he released an open source C++ software for the simulation of particle based hydraulic erosion over on github, as well as an accompanying article that explains what the code does - it now stands as one of the most starred repos in that regard:
[GitHub - weigert/SimpleHydrology: Procedural Hydrology / River / Lake SimulationProcedural Hydrology / River / Lake Simulation. Contribute to weigert/SimpleHydrology development by creating an account on GitHub.GitHubweigert](https://github.com/weigert/SimpleHydrology?ref=gorillasun.de)
[Procedural Hydrology: Dynamic Lake and River Simulation – Nick’s Blog](https://nickmcd.me/2020/04/15/procedural-hydrology/?ref=gorillasun.de)
It's mentioned that the first article isn't necessary, and you can directly dive into the newer version.
Algorithmic hydraulic processes essentially try to mimic and simulate the organic erosion processes that occur in nature, where the interaction of water particles with the terrain lead to the formation of ridges and valleys. This is what I covered in my article about Nat Sarkissian's piece:
[Nat Sarkissian’s Eucalyptus and SagebrushIn this post we’ll have a closer look at Nat Sarkissian’s generative FxHash token: Eucalyptus and Sagebrush. The token seamlessly bridges between visually stunning graphics and an intricate terrain generation algorithm. Additionally there’s a lot to learn on simulating brush strokes algorithmicallyGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/eucalyptus-and-sagebrush/)
These hydraulic erosion algorithms come in many shapes and flavors, depending on how complex you want the simulation to be, as there's many different ways to model the interaction between water particles and the terrain. For instance, my article doesn't account for the pooling of water in valleys and makes the assumption that water evaporates over time, whereas McDonalds approach accounts for that and further extends the concept to achieve the formation of rivers. Highly recommend the article if you want to learn more about it and implement such a system for yourself!
### Ringing Perlin Noise Effect
I actually spent more time than I'd like to admit on the r/generative subreddit in the past week. Another post that I came across was asking about an interesting pattern seen on the rim of a bowl made by Greg Blanpied:
[](https://www.reddit.com/r/generative/comments/18rlbj4/saw%5Fthis%5Fbowl%5Fby%5Fgreg%5Fblanpied%5Fand%5Freally%5Flike/?ref=gorillasun.de)
[Link to Reddit Post](https://www.reddit.com/r/generative/comments/18rlbj4/saw%5Fthis%5Fbowl%5Fby%5Fgreg%5Fblanpied%5Fand%5Freally%5Flike/?ref=gorillasun.de)
One of the comments elaborated that this ring pattern can be achieved with a simple function that modulates the noise field:

Can't be as easy as that now, can it?
Naturally I had to try this for myself and quickly threw together a p5 sketch testing the idea, and... it actually works! Here's what it looks like:

I additionally did a little domain warping (I think that's what it's called) to have alternating brighter and darker rings, which I think looks pretty cool.
I actually did something similar a while back, which was much more inefficient than this approach, by manually threshholding the noise values and assigning colors to them if they fall into a certain range - see image on the right:
[](https://www.instagram.com/p/CgRgIS6qDvQ?ref=gorillasun.de)
[Link to Insta post](https://www.instagram.com/p/CgRgIS6qDvQ?ref=gorillasun.de)
### Stolen Buttons
And yet another cool project that really stood out this week was Anatoly Zenkov's *Stolen Buttons* \- a tool that snatches stylized buttons from websites that Anatoly visits:

You can check out the entire collection of buttons here:
[Stolen ButtonsEvery website I visit, I steal a button from it. Check out my stash!Stolen ButtonsAnatoly Zenkov](https://anatolyzenkov.com/stolen-buttons?ref=gorillasun.de)
### Massive Book Thread from Casey Reas
If you're still on vacation and hungry for books about creative coding, generative art and computational design, you should definitely checkout this massive thread by Casey Reas, listing some of the most important books throughout the years in that regard:
[](https://twitter.com/REAS/status/1473041398962159617?ref=gorillasun.de)
[Link to Thread](https://twitter.com/REAS/status/1473041398962159617?ref=gorillasun.de)
### Understanding Abstract Art by LoneWick
Another thing that's recently come to my attention were [LoneWick](https://twitter.com/LoneWick%5F?ref=gorillasun.de)'s writings and analyses of abstract and generative art - and I have to say that I've thoroughly enjoyed his perspectives. Especially this post of his in which he elucidates why it isn't actually so difficult to understand abstract art - drawing parallels to music:

Check out the [Tweet](https://twitter.com/LoneWick%5F/status/1738439648945529231?ref=gorillasun.de) to read the rest of it.
You don't need to have studied music theory to "understand" music - just like you don't have to have studied cinematography to appreciate a good movie. The same is true for visual art, architecture, and all areas of design that don't have a temporal aspect to them - just like sounds can be harmonious or dissonant, shapes on a canvas can be as well.
I think the big difference here is that music and film are sufficiently powerful emotional vessels that can make you feel things whether you like it or not, whereas with a static artwork, more of an active effort is required for you to understand how it makes you feel.
One artwork that immediately comes to mind here is Kazimir Malevich's *Airplane flying*, which at first glance is just a bunch of rectangular shapes on a blank canvas - but the more you absorb the artwork, the more it becomes evident that there is a vibrant harmony between the disposition of the shapes on the canvas, making it appear as if the shapes are in motion and we're capturing a singular slice of time before the shapes disappear into the ether.

Airplan flying 1915
What I'm trying to say here, is that the visual arts present temporality in a different manner than the artforms where it is an inherent part of the medium.
You should check out LoneWick's substack, especially his ongoing series titled Abstract Art Analysis, in which he picks out a select few artworks for each issue, to analyse and evaluate how they draw the observer's eye with their compositions:
[Abstract Art Analysis 17: Perspective‘Hintperflections - Edition #11’ by Paolo Curtoni First impression: I explored the outputs of this collection before reading the description. Most of the pieces have a bold burst of color that quickly catch your eye. Something I really appreciate about all of the mints so far (enough to be representative of the full collection) is how every piece is very unique and complete in composition. I wrote a bit more about that in anArtletter by LoneWickLoneWick](https://lonewick.substack.com/p/abstract-art-analysis-17-perspective)
### Generative Minis
1. [**In Dynamic Existence by Fractal Kitty**](https://sophiawood.medium.com/in-dynamic-existence-3205a9bc6e07?ref=gorillasun.de): you might already know [Sophia Wood, aka Fractal Kitty](https://twitter.com/fractalkitty?ref=gorillasun.de), as the creator of Mathtober - besides being involved in mathematics, she is also a writer, poet, blogger, creative coder and generative artist, creating works that lie at the intersection of. In dynamic existence is a collection of 15 haikus and generative artworks that compliment each other. It's also worth taking a minute to explore her site, containing many more interesting writings and projects.
2. [**Chris Ried's Newsletter**](https://generative.substack.com/p/noisy-svgs-dynamic-wearables-and): aka Generative Collective, has his own Newsletter on Generative Art and Creative Coding related topics - I enjoyed browsing the list of internet content that he's curated, and is definitely something I'll follow more closely in the future. Go and check it out!
3. [Nahuel Gerth's Thought Sandbox](https://nahuelgerth.de/thoughts?ref=gorillasun.de): as the name suggests it's a space on Nahuel's website to explore ideas, concepts, reflections and brain farts. I enjoyed the couple of musings that he's published over there already.
## Pen & Plottery
### DiceGl by Julien Gachadoat
Julien Gachadoat, whom you might already know as a prolific generative artist, specifically for his plotter work, recently shared a video showcasing a super creative way for creating generative art with a plotter - simply by rolling some dice:
0:00
/0:29
1×
[Link to Tweet](https://twitter.com/v3ga/status/1734285242809065546?ref=gorillasun.de)
I'm not entirely certain how it's done, but my hunch is that it makes use of OpenCV, an open source computer vision library, to detect two red dice against a green background. The number of white dots, revealed by the upward facing side of the die, is then counted to inform the plotter what type of tile should be drawn.
What makes this even more special, is that Julien was able to show this to Vera Molnár back in November, collaboratively creating a plotter drawing with her - if you didn't know, Molnár also used dice for her very first computer-less generative systems.
[](https://twitter.com/v3ga/status/1741160912982053310?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/v3ga/status/1741160912982053310?ref=gorillasun.de)
If it interests you, I wrote an article about Vera Molnár's early life here:
[The Art of Vera Molnar 1947-1974Vera Molnar is one of the pioneers of what we know today as Generative Art. She was one of the firsts to dare and use computers for the purpose of making art. In this article we have a look at her rich artistic career and how she paved the way for the computer artists of today.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-art-of-vera-molnar/)
### RevDanCatt's Plotter Shenanigans
It's long overdue that I mention RevDanCatt in the newsletter - the man truly frightens me with how much stuff he gets done on such a consistent basis 😂 what's more, is that he's also really good at documenting his work in various formats:
One recent project of his that I thought was really impressive was a pen plotted landscape based off of AI generated scenery:
[](https://www.threads.net/@revdancatt/post/C1b2Y3CNEw1?ref=gorillasun.de)
[Link to Thread](https://www.threads.net/@revdancatt/post/C1b2Y3CNEw1?ref=gorillasun.de) \- thread as in a post on the threads app, not a series of posts over on Twitter... X I mean. You get the Idea.
He also gives us a rough breakdown of the process that converts the AI generated images into a plottable SVGs:

A quick behind the scenes into the process.
Another comment underneath the same post, I found a bit perplexing:

Something made with AI = bad
The comment makes it seem like "AI" did the entirety of the work without any creative or physical effort from RevDanCatt's side, when that is simply not the case. At this point I'm just a little tired of these kinds of absolutist stances that condemn work simply because "AI" was involved somewhere in the pipeline.
On another note, this also makes me think back to one of my favorite creations of his back from 2021, in which RevDanCatt plotted a whole bunch of bees from the Google Quick Draw dataset - which I think turned out really nicely with the bronze pen on a black sheet:
[](https://www.instagram.com/p/CSPz99UtnjA/?ref=gorillasun.de)
[Link to Instagram Post](https://www.instagram.com/p/CSPz99UtnjA/?ref=gorillasun.de)
That said, if you're into all of these creative plotter shenanigans, you should definitely follow RevDanCatt's social media accounts as well as his own newsletter here:
[📙 #026 - Art Studio Management as ArtIn the last newsletter, I promised not to do a year in review; however, today, I was putting together the script for my final “Weeknotes” video of the year. Reviewing all the previous videos pulled together a handful of threads that’d been trying to get my attention for the last couple of months. From those either I’ve had an incredible epiphany, my mind is deep into coping strategies, or maybe both.The Dan Catt Pen Plotting NewsletterDaniel Catt](https://newsletter.revdancatt.com/p/026-art-studio-management-as-art?ref=gorillasun.de)
### Generative Cross-stitching by Roni Kaufman
Cross-stitching meets generative art with Roni's most recent creation, which I really wanted to include here as well:
[](https://twitter.com/KaufmanRoni/status/1741444050064994540?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/KaufmanRoni/status/1741444050064994540?ref=gorillasun.de)
If you're looking for Genuary 2024 inspirations, you should also follow Roni on his socials to see what he's doing in that regard, where also very generously shares the code to his creations over on Openprocessing:

[Link to Tweet](https://twitter.com/KaufmanRoni/status/1741838111712133487?ref=gorillasun.de)
This year Roni chose to play Genuary on hard-mode!
## 37C3: Chaos Communication Congrees
I recently learned about 37C3, the Chaos Communication Congress through a couple of tweets by [Marcel Schwittlick](https://twitter.com/schwittlick%5F?ref=gorillasun.de)'s that linked to some of the interesting talks that were held at the congress. It is an annual four-day conference on technology, society and utopia organised by the Chaos Computer Club (CCC) and addresses a number of interesting contemporary information technology topics.
It does so by taking a critical-creative attitude towards technology, examining the effects of technological advances on society. For instance [Joscha Bach](https://twitter.com/Plinz?ref=gorillasun.de) gave a talk titled *Synthetic Sentience*, tackling the prospect of AI gaining conscience from a philosophical point of view:
Another really interesting talk was by Robert Seidel titled Image making fatigue:
The entire website is a treasure trove of information, for instance there's also a really [cool demoscene recap for 2023](https://media.ccc.de/v/c4.openchaos.2023.11.demoszene-jahresr%C3%BCckblick?ref=gorillasun.de) \- it is unfortunately in German without subtitles.
## Tech and Code
### 6 Days Spent on 1 Line of Code
Catching up with the primeagen on youtube, and his explosive manner of reviewing tech articles on stream - you just gotta love that thumbnail as well - this time diving into an article that recounts the story of a singular line of code taking a whopping 6 days to be changed:
Read the article here:
[It Takes 6 Days to Change 1 Line of Code(A true story.) Philip (President): Our factory is underutilized by 10%. Either we start building more of our backlog or we lay people off. I’d rather keep everyone busy, build inventory, and get…ed weissman— Rom](https://edw519.posthaven.com/it-takes-6-days-to-change-1-line-of-code?ref=gorillasun.de)
### UI Element Design by Aaron Iker
If you're looking to take the design of the buttons on your website to the next level, you should check out [Aaron Iker's codepen profile](https://codepen.io/aaroniker/pens/public?ref=gorillasun.de), which is essentially a massive resource for designs of different UI elements:
[](https://codepen.io/aaroniker/pens/public?ref=gorillasun.de)
[Link to Aaron Iker's Codepen profile](https://codepen.io/aaroniker/pens/public?ref=gorillasun.de)
He also shares CSS tips over on threads:
[](https://www.threads.net/@aaroniker/post/C1SRy9lNlt6?ref=gorillasun.de)
[Link to Thread](https://www.threads.net/@aaroniker/post/C1SRy9lNlt6?ref=gorillasun.de)
### The await event horizon in Javascript
Charles Lowell draws a beautiful analogy between black holes and the `await` keyword in javascript. `await` is used for the purpose of suspending execution of a function until a Promise resolved. If this Promise is never resolved, the awaiting function will never resume and be stuck in limbo, just like things are trapped in the event horizon of a black hole.
The article highlights the implications of this concept, particularly the potential problems and some approaches for mitigating it. For instance, the importance of proper Promise handling and synchronization strategies, as well as the avoidance of unnecessary deep nesting of `await` statements to minimize the risk of crossing this event horizon:
[The await event horizon in JavaScriptWhy async functions in JavaScript are insufficient as a Structured Concurrency primitive](https://frontside.com/blog/2023-12-11-await-event-horizon/?ref=gorillasun.de)
## Gorilla Updates
For my very first Genuary creation of 2024 I took inspiration from [p1xelfool](https://twitter.com/p1xelfool?ref=gorillasun.de), whom I've been a big fan of ever since I discovered him in the early HEN days, and attempted a retro-esque pixelated 3D animation:
0:00
/0:10
1×
I've always wondered how he achieved those pixelated aesthetics in combination with 3D animations, and after a proper investigation I managed to find an approach that makes use of an up-scaled graphics buffer in p5\. It turned out to be actually quite simple and if there's interest in this I might make a little post about it - let me know! Thinking
## Music for Coding
Fittingly for the first prompt of Genuary, we check out a song titled *Particle Dreams* from the Japanese indie band FujiFabric. They've been going strong ever since they came together in the year 2000 - I also thoroughly enjoyed the animated music video that accompanies the bubbly and poppy sounds of this track:
**And that's it from me this very first day of the year, while I'm jamming to this tune, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 36This week Genuary 2024 Prompts - Occlusion Culling in Video Games - CSS Wrapped 2023 - Digital Diluation by Ana Maria Cabbalero - The Creative Playground by Ralph Ammer - OpenAI Prompting Guide +++ lots more!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-36/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
**Cheers, happy sketching, and again, hope that you have a great start into the new year! See you in the next one - Gorilla Sun 🌸**
### Gorilla Sun 2023
URL: https://www.gorillasun.de/blog/gorilla-sun-2023/
Last updated: 2026-08-10T16:26:35.000Z
**Aaaaand — CUT! That's a wrap on another amazing Gorilla year! And how quickly it has gone by - it's a little surreal to find myself writing the yearly recap again so soon when it feels like I've written the 2022 recap only yesterday. And it's been yet another roller-coaster of a year, full of ups and downs, for me personally, for the Gorilla Sun Blog, as well as the generative art and creative coding space in general.**
It's always crazy to see how far the blog's come in the short span of 3 years, it might not be very impressive when compared to other pages on the internet, but you have to keep in mind that everything on here is done by a single person - moi - and I'm incredibly proud of all the hard work that I've put into it so far.
It's definitely been a steep learning curve to this multifaceted endeavor of mine - from building and running a website, to writing various, vastly different kinds of content, to programming and implementing algorithmic ideas, to running a newsletter, and interviewing people, all while also trying to be an artist in some capacity, and marketing myself as such on social media; no single part of it is very straightforward and there's always several hoops that you need to jump through to get things done - it often feels like a big puzzle, where the goal is to figure out how all of these things should fall into place.
I know that I don't have to do all of these things - but I simply want to, it wouldn't be as exciting if I just did one thing and one thing only, I'd get bored very quickly, and I wouldn't have been able to stick with it for as long as I did. Since I've found such a wonderfully welcoming and supportive space, it would be a waste to not live out all of these passions of mine. It is genuinely incredibly rewarding to attempt all of these things and grow as a person. I want to thank everyone that reads my writings, on the blog as well as on other platforms, and appreciates my art, by collecting it or simply by leaving a like wherever I post my creations. All of these things only come to life and gain meaning through my audience - through you. So a big heartfelt thank you.
At this point, I believe that I've got a much better picture of how all these endeavors need to play into each other moving forward. When I initially made this website I wanted it to be a place on which I can share my creations and my writing, as I've always been very passionate about both of building things and documenting for others to learn from.
That said, let's roll the end credits for 2023 and recap all of the noteworthy Gorilla things that happened this year. There's been some big changes to the blog, many an article, a LOT of generative art, as well as many other creative endeavors and projects that I've been involved in. I'll also let you in on some of the things that've happened behind the scenes, and to wrap up, I'll also talk about my plans for the next year.
*Let's get into the nitty gritty of it all to finish off this year, shall we?*
## The Blog in 2023
A significant chunk of my time this year has gone into writing again - I still think that it's one of the best mediums to convey information, and in many ways superior to video/audio formats. And that's a hill I'm willing to die on. I've published and written significantly more than I have in 2021 and 2022, even when you combine the numbers of both years.
Here's some rough numbers for 2023:



I aggregated these stats with my own webcrawler! I ended up writing a decent amount this year.
When I first started out in 2021, the main problem that I was facing was finding meaningful topics to write about - if you have a look at my earliest posts, they're all over the place since I was still trying to figure out what I actually wanted to write about.
In 2022 I then mainly focused on writing massive tutorials/solutions for certain timeless problems, such as computing collisions between polygonal shapes, different approaches for packing shapes in 2D space, the rounding of corners of pointy polygonal shapes, programming different types of grids and tessellations - all of them being non-trivial tasks in computational geometry, pursuing them mainly out of personal interest and for the lack of comprehensive and easy to digest resources on those topics.
I believe that these *big* articles are meaningful evergreen pieces of content, transcending generative art, and providing real educative value to those who need and/or want to learn about these techniques. **I'm really proud of these articles because they provide simple solutions to hard problems.** In the long run these types of resources also tend to be the best performing type of content on the blog:

The drawback however, is that they take a significant investment of time and effort - from initially identifying an interesting problem, to finding a solution and then implementing it, as well as preparing demonstrations for each part of the process to actually putting down the ideas in written form - it can take days/weeks before you have a first rough draft for such an article.
In the current climate of the internet, that primarily cares about engagement, and the consistency thereof, this doesn't work very well. It's also frustrating on a personal level when you announce something that you've been working on for a while just for it to be overshadowed by something else the very next day.
For engagement purposes, and to signal social media algorithms as well as SEO metrics that my website isn't outright flat-lining, a recurring piece of content makes much more sense, but is at the same time hard to reconcile with the type of content that I've been making up until that point. That's why I tried a couple of new formats in 2023, in the quest for publishing more frequently, while also not bringing myself to the brink of burnout, and still providing value to the readers. We'll get into the details of this in the next couple of subsections.
### Goodbye Jekyll
The biggest driving factor in turning the blog into more of a recurring publication was migrating to the Ghost CMS back in March:
[Goodbye JekyllI’ve been thinking about moving away from Jekyll for a while now. Don’t get me wrong, I love the static site generator, I really do, it’s served me well for over two years, but certain aspects of my workflow have become very clunky, and overall I haven’t been able to be as efficient…Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/goodbye-jekyll/)
I wrote a little about this back in March in my post titled "Goodbye Jekyll" - which was also the very first email that I sent out!
Although Jekyll had served me well for almost two years, it quickly became very clunky to work with. It's actually a great blogging tool, which I'd probably still recommend today as a quick and easy solution for smaller blog projects. But as time went on, there were more and more reasons for me to move away from it and to find a more efficient tool that suited my needs.
The biggest reason for which I wouldn't advise using Jekyll today, is that the open source project is frozen and in "permanent-hiatus" - and chances are slim that this will change at any point in the future. A secondary reason is that you'll quickly run into Jekyll's limitations when you're trying to do anything custom that exceeds statically generated blogging content.
Moreover, my workflow became more and more tedious the more content I had created - Jekyll being a blogging tool, and not a content management system, doesn't help out with any of that. All of my markdown and media files lived inside of an increasingly bloated github repo, that was starting to take several minutes to rebuild whenever I made a minute change, like fixing a typo or adding a paragraph/image somewhere. Handling media files was also quite tedious, having to manually link to them in markdown to their corresponding location in the github repo.
That's why I needed a CMS to help out with that - after trying a couple of alternatives I came back around to checking out Ghost. I had only heard about it briefly before, but the more I looked into it, the more it became clear that it would solve many of the problems that I was facing. And I'm really, really glad that I took the leap so quickly and pulled the trigger back then - it took me roughly two weeks to move everything over, but it was absolutely worth doing so, saving me lots of work when compared to my workflow from back then.
### Migration to Ghost
In a nutshell, Ghost is a CMS specifically designed for bloggers, journalists and content creators, providing a sleek interface and dashboard as well as a stellar editor in which you can write and create your content. At the same time, if you're savvy with web dev/desing things it's very flexible and customizable, letting you use and create your own custom themes, and routing your pages as you see fit.
When I decided to move over to Ghost, I modified one of the starter themes making the blog look a whole lot better than it did before:




Old design on top, new design on the bottom. I think that the blog looks a lot better when compared to what it used to look like in the early days. The design is however not final yet and will undergo further changes in the future. All in service of the readership, to make it as easy as possible to read the content found on the blog.
Another reason in favor of Ghost, is that it's actively being developed, with several new features being released every month that simply make it a better and better tool as time goes on. For instance, you can now edit your images natively in the editor - cropping, rotating, annotating, etc... all of those shenanigans.
[🎁 Build with Ghost: Wrapped 2023Explore the highlights of 2023 in our final Build with Ghost issue of the year, including all the features shipped, tutorials published, and links you clicked. We also have some brand new resources and ideas to check out if you aren’t one to live in the past 📟TutorialsTeam Ghost](https://ghost.org/tutorials/build-with-ghost-wrapped-2023/?ref=gorillasun.de)
It still has its limitations, but you really have to dig deep to encounter those. Overall, it provides everything that you could possibly need to run a online publication. For the foreseeable future I'm definitely sticking with Ghost..
*Disclaimer, I'm realizing that I'm gushing a bit too much about Ghost - I'm not sponsored by Ghost. In fact I pay for their pro plan that includes hosting - although self-hosting your own Ghost instance (on a digital ocean droplet for instance) is also perfectly viable solution, but entails more work and also isn't free. Their customer support is A+ btw.*
Why am bringing all of this up? Because it's genuinely been a big part of my process this year, and I wouldn't have been able to put out as much work as I did without this tool. I feel like a lot more people should use Ghost - it's really great.
### The Newsletter
One other really big thing about Ghost is that it makes it super easy to send out emails whenever you publish a new piece of content. Queue the Gorilla Newsletter.
Prior to that, I had a Mailchimp account set up for the purpose of collecting email addresses, but at the time I never actually ended up sending out any email. In hindsight I maybe should've - but at that point I was unaware of the importance of a mailing list for building an engaged audience - an audience that is untethered from your social media following. **Hence, in search for a recurring format, having gained the ability to easily send out emails, while also understanding the importance of a mailing list; it all culminated in the creation of the Gorilla Newsletter.**
In April I announced that I'd be publishing two pieces of content a week in addition to the newsletter - a tutorial on Thursdays and an Essay-like piece on Sundays. And well... that didn't go too well - I really struggled before ultimately dropping it as it wasn't doable, there was just not enough time for it.

The newsletter on the other hand was much more tangible - the fixed structure makes it much more manageable from my end to publish it on a weekly basis. The initial pain point of *What should I write about this time?* solves itself by virtue of the content. But that's not to say that it's easier to write, you still have to do your research and due diligence to report facts and incidents correctly. So far however, nobody that's been mentioned in the newsletter has complained, so I guess I'm doing something right. Drawing from social media as my main source I assume that people are generally okay with having their stuff featured.
Here's a throwback to the very first issue of the Newsletter - it was quite rough around the edges:
[Gorilla Recap 0First issue of the Gorilla Sun Newsletter! This week we ran a poll on how y’all learned to code, we made some #genart, built a widget, and read a couple of interesting things online about computer magazines, how LLMs work and determinants.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-recap/)
The very first newsletter issue that I sent out on the 17th of April 2023\. Feels crazy that I've been doing this for 37 weeks already!
There were other inspirations for the Newsletter though. Raph's weekly creative code news being one of them. Around the same time that I switched over to Ghost, Raph made the announcement that Creative Code News would be coming to an end, I thought that it would be a good moment in time to start my own version of it.
Partially, it was also something that I wanted to do for myself, in an effort to stay up-to-date with everything that was happening in the generative art and creative coding space - given that there's frequent period of time in which I'm honed in a on a particular project, letting happenings in the space pass me by. It then always feels difficult to emerge from these projects and to reconnect. I didn't want to feel like I was only doing things within my own bubble anymore, and have an active reason to keep up with developments in the space - committing to the newsletter gave me the best reason to do so.
With time it also became clear to me how fragmented conversations are on social media platforms, which is something that I started focusing on only recently, trying to provide a relatively complete picture of opinions on certain points of discussion that are floating around in the social media sphere.
### Tutorials
Besides that there were also quite a few tutorials this year, one topic that I explored in depth were physics systems, how to program them and the different approaches to it:
[Euler and Verlet Integration for Particle PhysicsIn this post we revisit our particle system, and have a first look at the Verlet Integration method, which is an alternate method for simulating particle physics. It is in many ways more robust that the regular Euler Integration method that we have employed so far.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/euler-and-verlet-integration-for-particle-physics/)
It actually ended up being a very intricate topic, which I would like to revisit in the future. Towards the end it was very interesting how a simple particle system can quickly turn into a soft-body physics simulation:
[Programming Soft Body Physics and BlobsOne approach to modeling deformable objects in computer graphics are spring-mass systems: a technique that allows us to bring Soft Body physics to life. Picking up from the particle mesh that we created last time; in this post we’ll tackle different configurations for blob-like shapes.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/soft-body-physics-and-blobs/)
I also wrote about other things, like interesting organic cellular patterns that can be achieved with a recursive circle packing strategy:
[A Recursive Circle Packing Algorithm for Organic Growth PatternsIn this post we have a look at a simple algorithmic idea that can produce some very interesting organic looking patterns. At it’s essence it’s a circle packing strategy, but with the added twist that these circles are connected in a tree like structure. 🌳🦠Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-recursive-circle-packing-strategy-for-organic-growth-patterns/)
There were also a few guides which were way overdue, like an introductions to P5JS and all of the things that can be done with it.
[Getting started with P5JSIn 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.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/getting-started-with-p5js/)
You can find all of these tutorials over on the articles page of the blog!
[ArticlesFrom essays on creative coding, to technical tutorials and instructive articles on programming, the Gorilla Sun Blog boasts a wide range of content!Gorilla SunAhmad Moussa](https://www.gorillasun.de/articles/)
### Towards Monetization
One other feature that I really wanted to have for the blog, was the ability to place posts and articles behind a subscription/paywall, in an ongoing endeavor to make the blog finance itself at some point in the future. Which was yet another reason for choosing Ghost as my CMS, which also allows for this. One initial solution that I found in that regard is memberspace, which is a tool that can be integrated into any website - but again, I would almost always prefer a native solution without having to manage things in a different location.
Another option that I considered, prior to checking out Ghost, was Substack which I actually gave a shot for a short period of time, bringing in all posts from my site using their import functionality, but there were quite a few issues to ir, since many of my pages had embeds and custom widgets that run code in them, which didn't import correctly. After exploring the platform a bit more and understanding how it worked, I came to the conclusion that it wouldn't work for my purposes.
All things considered, Substack is a stellar platform when it comes to running a newsletter/online publication, for building a community, as well as connecting with other creators. It provides all the tools to this end, and I'd say that it is superior to Ghost with its existing audience that uses the platform for the creation and consumption of content. But the drawback is that it is a very rigid and standardized platform when it comes to design and structure.
Not having complete control over the design of my pages, and the ability to add custom pages is really important to me. The Gorilla Sun blog is about generative art, and about building cool things with code, especially those things that run in the browser. Hence the blog needs to be artful and custom, to reflect this, and be capable of showcasing interesting things that run in the browser.
But to get back to the point, in the long run, doing all of this work for free is not sustainable, nor is it realistic - there have been very kind supporters that have donated via ko-fi in the past, which I am incredibly grateful for. But it would simply make much more sense to ask for direct support in exchange for "premium" type content, which would also greatly help in justifying all of the time that I spend on the blog and further build it out as an educative and journalistic platform/outlet.
One thing that I would like to do in the future, which is already in the works, is the creation of themed series of posts on certain programming and generative art topics - sort of like courses. Initially, the main goal would be to offset all of the fees associated with running the blog, such as the monthly hosting costs and the yearly domain registration fee.
### Blog Roadmap for 2024
Now the million dollar question: where's the blog headed in 2024? There's a few things that are already underway, that fell off over the past couple of months because I had to prioritize other things in the meantime, but here's a rough plan for the coming year (at least the first half of it):
1. **Revamping the design of the Blog**: the current design of the blog isn't optimal, for instance all of the main pages, like the landing page, the articles page, the about page - they all don't look very professional right now, and could really do with an overhaul. The main focus will however be the design of the content pages, I'd really like to have a custom design for each type of post, for instance a custom design for the Newsletter pages, for the Interviews, for the tutorials that often include interactive demos - and this will most likely take a significant amount of time to setup. The main difficulty of it being cleaning up the gigantic mess of a CSS file that's currently powering the design of the blog.
2. **Revision of the Content**: the more content I push, the more typos and grammatical errors find their way into the writing. Additionally, there's many older posts that could do with a complete re-write, because they're simply not up to par any more.
3. **The Gorilla Explorer:** I would also like to have a Portfolio page where visitors can explore all of my creations and artworks. I began working on this a couple of months ago, but I never managed to wrap it up, because it became more and more ambitious as I was developing, the main pain point being the amount of image files that need to be displayed. This is however something that I'm very excited to get my hands dirty with again!
4. **More Content, Tutorials, Interviews, Essays and Newsletters**: I definitely want to keep pushing new tutorials and essays, which is becoming increasingly harder the more tasks there are that need to be taken care of, so the first couple of months in 2024 might be a bit slow while I hammer out all of the other things. There is however already a couple of new interviews in the works!
We're also quickly approaching the 3rd anniversary of the blog - I yet have to think about what I'll do for that occasion, ideally the new design would already be in place at that point. We'll have to see though.
## Generative Art in 2023
*I've made quite a few things this year again - overall I didn't spend as much time on coding as I did on writing, but I had many meaningful sessions in which I explored new ideas, concepts and algorithmic problems, discovering new branching paths to pursue and explore in 2024\. Here's a brief recap of some of the pieces I did.*
### 3 Group Shows
This year I had the chance of participating in a couple of group shows/curations, which were really awesome experiences - creating an artwork with a set deadline is a completely different beast to just leisurely taking your time and exploring ideas. Mid 2023 I was contacted by Haiver to participate in Alba's inaugural 'Flatlands' exhibition, for which I created my piece 'The Great Traversal', a piece that I had started working on back in November of 2022, finally bringing it to completion:

[Link to curation Page](https://www.alba.art/exhibitions/flatlands?ref=gorillasun.de)
[](https://www.alba.art/projects/the-great-traversal?ref=gorillasun.de)
[Link to Project Page](https://www.alba.art/projects/the-great-traversal?ref=gorillasun.de)
Later I applied for an open call put out by the Kumaleon people, which gave me the opportunity to participate in the Proof of X live minting show in Tokyo - here's a pic of the setup:

[Making of Somewhere in BetweenIn this post we have a closer look at my generative token Somewhere in between and the code that generates it’s graphics. Building upon the irregular grid strategy from way back when I approached rectangle divisions in a completely new manner.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/making-of-somewhere-in-between/)
I also wrote a little more in depth about the project here.
Fast forward a couple of months, with another open call by KUMALEON x Okazz I had the chance to participate in their fxhash 2.0 launch curation titled 'Colorful' - I set out with an ambitious idea, and got a much needed extra two weeks to complete the piece when the launch was delayed:
[](https://www.fxhash.xyz/generative/29784?ref=gorillasun.de)
[Link to project page](https://www.fxhash.xyz/generative/29784?ref=gorillasun.de)
All three of these were incredible learning experiences, and I'm glad I got the chance to participate in them.
Here I have to mention how incredibly important it is to have a couple of projects in the pipeline at any given moment. People will at some point reach out to you, asking if you're interested in making a piece for this or that show/event, and when that happens you want to have something ready, even if it's just half-baked something, it's much much better to have a starting point than having to start from absolute zero. Moreover, it might also be a good idea to have some projects that are like 90% done for the occasions when a stellar offer comes your way with a tight deadline.
### Lots of other Ideas and Algorithms
But the works I created for the group shows were only a fraction of the creations this year, here are a couple more in no particular order:


Some ideas that took shape in early 2023 during Genuary - during that period I was incredibly obsessed with circles and circle packings, trying to squeeze as much as possible from the simple technique. The right picture is another project on fxhash titled Assemblage - [link to project page](https://www.fxhash.xyz/generative/24922?ref=gorillasun.de)


Sometimes there's also bigger projects that never get released. I worked on this heavily in February, but I never found the courage to put it out, although it is 95% done imo! It remains untitled as of today.

An instagram-esque picture from the development of that piece, my trusty notebook quickly at hand!


I also had an idea to extend my irregular grid algorithm - which I haven't documented yet because I haven't entirely explored it for myself at this point, but the patterns shown here emerged from a bug in my code. This also has nothing to do with graph algorithms.


Blöck on EditArt.xyz - a very simple piece, whose reception really surprised me. It minted out in roughly about a day. Thanks to Piero aka pxfragile for putting together the lovely platform.


I also made quite a few fxhash tokens - [Daze Maze](https://www.fxhash.xyz/generative/26169?ref=gorillasun.de) on the left, my first forray into fx(params) shortly after the feature was released, and I think the first token that is WYSIWYG, as well as Somewhere in Between my project for Proof of X.
0:00
/0:12
1×
I also explored SDFs again as well - spirals on a rectangular grid being something that I hadn't explored before.
There's many more things I made, but I don't want to unnecessarily bloat this post with everything that I've made over the course of the year. That's what the Gorilla Explorer is going to be for, so keep your eyes peeled for it!
### On Graph Algorithms
In the latter half of 2023 I mainly explored Graph algorithms, which I think is a relatively underused set of algorithms in generative art when compared to other methods like Perlin noise for instance - although the concepts and implementations thereof are not actually that complicated, here's some things I did with graph traversal shenanigans:




0:00
/0:28
1×
Here's Prim's algorithm in action used as a space filling technique, gradually populating a rectangular grid.
Especially in combination with tilings, that can be represented as adjacency graphs, this gives rise to many interesting patterns that might not be otherwise achievable. It's definitely going to be something that I'll pursue more in the future.
I think I will release a lot more art next year in comparison to what I did in 2023\. I don't know why I didn't release that much art, in part I was heavily focused on the blog, trying to build up a decent backlog of content and finding a release schedule that works for me. Life has also been quite turbulent, looking back it feels like every day there's been something to take care of, completely unrelated to the blog and generative art. But such is life and everyone has to manage that somehow. When you have a clogged kitchen sink, it's not going to fix itself by posting about it on Twitter.
It's really important to be able to find back into the groove when other things are going on in your life.
## Social Media
Once you decide to go solo and mainly start working on your own projects, be it coding, writing, or any other sort of individual endeavor, you end up spending a lot of time behind your workstation, by yourself. And you don't really have much reason to really talk or interact with people until you've actually completed the work. Which is in many ways counterproductive; the work that you are creating is ultimately intended to be seen and consumed by others - and if others have no connection to you or your work, or don't even know who your are, why would they then care about what you're doing once you decide to put your work out into the world?
It's undeniable that a strong social media presence and putting yourself out there is key in engaging with others, and signaling to others that you exist and creating work. I would definitely say that I'm not very good at it yet, it takes a significant amount of confidence and effort to post on a regular basis to the different social media platforms out there, which are additionally in a constant state of change as it seems . But if you want to get the word out, you have to be loud.
One of my personal goals in 2024 is to put myself out there even more, posting more regularly, while also not worrying too much about what others might think about the things that I'm posting - over on Twitter I've currently got a little over 8k followers, which is a sizeable audience, and I'm incredibly grateful for everyone that thought it's worth following me and keeping up with the things that I do, but there's also some pressure that comes with it when you know that your postings will be seen by so many people. I generally don't want to unnecessarily waste anyone's time with posts that don't have anything interesting to say or show. Hoping to be more relaxed about it though in 2024.
My best performing post in 2023 was actually something that I did for the second Genuary prompt "Made in 10 minutes", for which I simply recorded a timelapse of myself live-coding a piece from start to finish. I didn't really think too much about it prior to posting it to Twitter, I simply thought that it would be a cool thing to do - but it ended being something that people really thoroughly enjoyed - I think that being able to see the entire process at once is very satisfying, also seeing the different stages that the artwork goes through and how the code comes to life:
0:00
/1:00
1×
[Link to Tweet](https://twitter.com/gorillasu/status/1609980230839549954?ref=gorillasun.de)
Maybe I should after actually try and put in place a social media strategy for myself - I think there's a lot of things that I've coded and written at this point that would be worth sharing again in a revamped format.
## People and Projects in 2023
*Although social media can go a long way, there's nothing that beats getting to know someone face-to-face - either in person, or via a video chat - having a conversation is after all the most human way of communicating and exchanging ideas.*
### Interviews
First off, I'd like to give a big thanks to all of the people that have agreed to give me a significant chunk of their time and have had a chat with me for the blog: [Anna](https://www.gorillasun.de/blog/a-conversation-with-anna-the-nft-collector/), [Tezumie](https://www.gorillasun.de/blog/interview-tezumie/), [Monk](https://www.gorillasun.de/blog/in-conversation-with-peter-bauman-demystifying-monk-antony/), [pxlshrd](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/), [w](https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/)[hitecross](https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/), and [Nerios](https://www.gorillasun.de/blog/all-eyes-on-bohet-generative-prints-on-demand/) \- thank you so much. These conversations have been incredibly rewarding and enriching experiences, exchanging ideas face-to-face and connecting over shared topics of interest is always incredibly insightful and gives you new perspectives on the space as a whole, learning from the experiences of others.
With where I currently live, I don't really have the opportunity to meet people IRL that are into generative art or creative coding, which I think isn't too uncommon. I also really enjoy doing my research beforehand, and maybe catching the interviewees on some details that they might not have expected.
[](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/)
[In conversation with pxlshrd](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/)
Even if it isn't your goal to do interviews, it's incredibly rewarding to reach out to people, and simply tell them that you're interested in their work - and you'd be surprised how open everyone is to exchange ideas or to simply chat. This kind of "cold" calling is really the best way to make friends on the internet. To everyone that's reached out to me - thank you so much. **And if you want to talk to me, simply reach out, I'm always more than happy to do so!**
I was also extremely flattered to hear on several occasions that they've enjoyed reading my blog and following along with my generative art. At the same time it makes all of the blog-work so much more worthwhile, by being able to amplify other people's voice and stories through my platform, making the blog feel a little more alive in that manner as well, making it not just my own ideas and words, but also the thoughts of others. Currently, there's two more guest whose interviews will be released early 2024.
### Guest Lecture at ZHdK
This one was very exciting but also very nerve-wrecking at the same time. Sadly I don't have any pictures or recordings from the presentation.
Back in mid 2022 I got a message from Josef Renner, a teacher at the Zürcher Hochschule der Künste (ZHdK) asking me if I'd be interested to do a guest lecture for the class that he was teaching. I quickly agreed, because it just seemed like an amazing opportunity to present my work and connect with some new people. I felt very honored and humbled, asking me to present my work and talk a little about the career that I'd carved out for myself. At that point it'd been the first time I was invited to give a lecture.
The difficult part about it: it was in German - I can speak German fluently, but I'm not very confident about it. Moreover, it wasn't just a presentation but a full 2 hour lecture. Although I've done quite a few presentations before, preparing material for a run-time of 120 mins is very challenging.


I'll eventually redo the presentation in English and record it at some point.
Josef Renner was incredibly kind to me, meeting me at the entrance of the building, showing me around before taking me to the classroom - the university used to previously be a former dairy factory that had been repurposed - we passed by rooms with students practicing instruments and dance choreographies, and I did feel a little out of place, because I'm just a dude that writes code. But ultimately the presentation went very well.

It's one of my best memories of this year, Josef was very kind to invite me for this opportunity.
### Raph's Live Stream
It almost feels like it wasn't this year, but Raph and I also did another code review in which we had a closer look at Nat Sarkissian's Eucalyptus and Sagebrush:
[](https://twitter.com/gorillasu/status/1641022340564762625?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1641022340564762625?ref=gorillasun.de)
[Nat Sarkissian’s Eucalyptus and SagebrushIn this post we’ll have a closer look at Nat Sarkissian’s generative FxHash token: Eucalyptus and Sagebrush. The token seamlessly bridges between visually stunning graphics and an intricate terrain generation algorithm. Additionally there’s a lot to learn on simulating brush strokes algorithmicallyGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/eucalyptus-and-sagebrush/)
Nat's code was incredibly clean and structured, which lended itself very well for such a review, after getting a hold of him he was also so kind to give us permission to do the review. Procedural terrain generation is an incredibly interesting topic and has been heavily utilised a lot in the context of video games, but can also lend itself well for the purpose of generative art.
It's also been a minute since I've last checked in on the stream, life's been a bit crazy in the past couple of months, so I'm hoping that in the coming year I'll find more time for to participate in the weekly challenge again. On that note, you should [check out Raph's Birbsnest discord](https://discord.gg/PvzyN7ayw7?ref=gorillasun.de) where you'll find so many lovely people to nerd out about creative coding, among other things.
### DiGen Art Gallery in Lebanon
Back in August I got a message on Twitter asking me if I'd like to create a piece for an upcoming gallery in Lebanon, and I really didn't have to think twice about it. That's how I got to know Alex and Camille, the two brains behind DiGen Art, a gallery with the mission to bring digital art closer to the MENA region.
After they'd seen my little timelapse that I'd done for Genuary, they thought that it was a really good way to convey what creative coding is really about and wanted to showcase a similar piece on the DiGen homepage.
[](https://digen.art/?ref=gorillasun.de)
[Link to the DiGen Art page](https://digen.art/?ref=gorillasun.de)
I quickly got to the drawing board and after a couple of initial ideas, I thought it'd be best to create something in the same vein of the Genuary animation - a rotating SDF that included some aspects of the brand book that they shared with me, mainly their brand colors as well as the reoccurring arrow symbol.
0:00
/0:06
1×
The final DiGen Animation
Recording my hands as well as the code in sync proved to be quite challenging, and there's a also a certain choreography to how the code builds up to the final animation which is not very easy to do. It was genuinely a really fun project to work on and I'm hoping to collaborate more with them in early 2024\. You should check them out over on Insta, they're recently had their soft-launch and made some ripples in the local news:



Their gallery is in the vicinity of AUB where I did my bachelor studies, located in the area that I grew up in and spent most of my childhood.
### Helping out with the fxhash Docs
The last big project to conclude 2023, which I loved being involved in: helping out with the revamp of the fxhash docs leading up to the 2.0 release. It was also quite a challenging task, the writing per se not being the most difficult part, but rather the structuring and presentation of the concepts and notions that fxhash builds upon in a logical and chronological manner. For someone who doesn't know the first thing about blockchains, NFTs and generative art, there's so many things that need to be explained prior to getting into the nitty gritty.
[](https://fxhash-documentation.super.site/?ref=gorillasun.de)
[Link to docs](https://fxhash-documentation.super.site/?ref=gorillasun.de)
Because fxhash has evolved so quickly over the span of two years, with a truckload of features having been added, there were a lot of things in the docs that needed to be further elaborated on as well as shuffled around. At this point there's still a few things that need to be added, related to the new Ethereum integration that introduced many new functionalities to the platform.
And especially when it comes to the tools that fxhash makes available to the artists for building different kinds of tokens, there's so many things to keep track of, like the directory structure of a project, how to use randomness within your code to ensure deterministic behaviour, how to test a project in fx(lens), how to make a responsive generative artwork in the browser, etc. It's a very involved undertaking, and hopefully the docs can be of assistance in that regard to everyone who's starting out on fxhash.
It was also very insightful and educative for my own sake being able to do this deep dive - I now feel much more confident going into building my own tokens.
## Lessons Learned
Probably the biggest lesson I learned about myself throughout 2023 is that I want to make art, a lot of it actually - but don't necessarily want to be a full-time artist. I also want to be known as the guy that writes awesome articles about generative art and creative coding. Here's some of the tips I've picked up along the way and that I'd give to others
1. Always have some projects at the ready, that you can quickly turn into finished works. You never know, the next stellar offer might be just around the bend.
2. Work ahead of time and archive things. Sounds obvious, but especially with the Newsletter for instance, collecting interesting finds throughout the week is crucial, you can't leave it until the day before, because so many cool things will have vanished within the maws of the social media machine.
3. Reach out and talk to people. Even though the generative art thing exists to 90% online and in the social media bubble, networking is absolutely still a thing. Join a couple of chat groups, try to be active, talk to people, make friends and have fun.
4. Make your own website if you don't have one already. It's literally free real estate on the internet. Create a footprint and try to make that footprint as large of as possible. Be loud.
5. Document your work. People do read. It will come in handy when you're asked to give a talk, presentation or workshop. You'll have that information at the ready and just need to turn it into slide format.
6. Shoutout and support other people's work - it doesn't cost you anything to leave a like or to repost something, but it can have a big impact on the receiving person's end. When [Bjørn Staal](https://twitter.com/%5Fnonfigurativ%5F?ref=gorillasun.de) gave me a shoutout in one of his threads, I gained like 200 followers overnight, and that was massive. So thanks for that, Bjørn.
7. Stop being hypercritical of your own work. A particular project might suck, another one might be stellar, the important thing is that you learn from what works and what doesn't and try to refine your process, it's impossible to not get better with time if you keep churning out new works.
8. There often is no relation between the quality of your work and selling out. And you should absolutely not let it affect your mental health, moreover your self-worth is not tied to selling out. Make art for the joy of making art, for yourself, and be grateful for those that do collect your work and support you. No one owes you anything.
9. Credits for this one go to Frederik Vanhoutte and Joshua Davis, two artists that I admire: "Make the work that you want to be known for. Don't get trapped in making formula pieces because that's what you think will be popular."

[Link to Tweet](https://twitter.com/wblut/status/1729795418458853617?ref=gorillasun.de)
## Thank You
I can say with certainty that this has definitely been one of the more challenging years of my life, and there's been quite a few rough patches throughout 2023\. With times being as turbulent as they are, with social media platforms in a constant state of upheaval, with fears of AI changing the entirety of the internet landscape it hasn't been easy to create work under these circumstances. But I think that it's only normal to have worries and to sometimes struggle with reconciling an online presence with real life, and to manage the two in parallel.
The older I get, the more I feel that I'm getting a better grip on all of these things though, and looking back it feels like I've come such a long way already. I've grown as a person, emotionally and professionally. Moreover, I'm healthy and alive, and so are my loved ones, and that's all that really matters at the end of the day.
Moreover, I get to do this really amazing thing and share it with you all. It goes without saying that the blog only comes to life through it's readership - again a big thank you for reading these words. Thanks for sticking around and supporting me, it genuinely means a lot to me.
I find myself at a point again where there's way too many people that I'd like to thank. First off, my beautiful partner for supporting me, always pushing me to better myself, being my crutch in those moments when I find myself wanting to burn everything down to the ground, pushing me to keep going and not give up.
I'd also like to thank all of my internet friends. Anna, who's always first to share the newsletter whenever it comes out on Mondays, and for being so supportive of so many artists in the space.
Peter Bauman and thefunnyguys from Le Random for enriching the generative art space with their editorial efforts and supporting the newsletter.
Raph for having trust enough in me to bring me on his show, in 2022 and again in 2023, it takes a lot of effort and dedication to do the long live streams that he does and I admire him for it, I certainly couldn't do it. Thanks for being a cool dude in general and for fostering the lovely birbsnest community. Also big thanks to Dave for always being the first to aid whenever someone's in need over in the help channel.
Thanks again to the all the guests that have agreed to be interviewed on the blog Tezumie, Peter Bauman, Pxlshrd, Alessandro Fiore, as well as Daniel Aguilar, and Ryan Murdock whose interviews will be released early 2024\.
Thanks to Alex and Camille from DiGen for reaching out to me and letting me make their website banner.
Thanks to everyone who's collected one of my generative artworks on the blockchain. Everyone that's given me a shout. Everyone that's subscribed to the Newsletter. Every follower on every platform that I'm on. Everyone that's reading this.
**I wish you all much love and happiness and an amazing start into the next year! Cheers, and see you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 36
URL: https://www.gorillasun.de/blog/gorilla-newsletter-36/
Last updated: 2023-12-25T11:25:03.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
This issue of the Gorilla Newsletter comes out just in time for the holiday season - on this occasion I want to wish you all and your loved ones a joyous time filled with warmth, laughter, and cherished moments! 🎄 Happy Holidays!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### Genuary 2024 Prompts are Out
Ready or not, Genuary prompts for 2024 are out - and it looks like an absolutely fun list this time around again! You can find the full list over on [the Genuary page](https://genuary.art/?ref=gorillasun.de):
[](https://genuary.art/prompts?ref=gorillasun.de)
[Link to full list of Prompts](https://genuary.art/prompts?ref=gorillasun.de)
If you're not familiar, it's essentially the creative coding community's version of [Inktober](https://inktober.com/faq?ref=gorillasun.de), taking place in January instead of October, in which code artists flock together for a month long coding challenge. The concept's simple: given 31 prompts - one for each day of the month - the goal is to create an artwork/code sketch each day that brings the corresponding daily prompt to life. How closely you want to follow those prompts is entirely up to you, the fun part about it being that you can be as creative as you want, interpreting things in surprising and unexpected manners. Like Inktober, it's really just one big exercise in creativity to hone your sketching skills.
Some coders choose to go the extra mile, and put in place their own personal overarching constraints and/or themes; for instance you could challenge yourself to only make animations for all 31 prompts, or constrain yourself to only using a specific framework, etc... For this purpose, it's generally a good idea to prepare a little template for yourself beforehand that lets you to kickstart your sketches.
If you need inspiration or want to explore creations from previous years you can do so by typing in the hashtag #genuary23 / #genuary22 / #genuary21 in the search bar on Twitter - you should also do this for your creations this year, so that people can easily look up your stuff in the future:

Genuary is really one of the best ways to get out a lot of ideas at a rapid pace, without worrying too much about what others will think about them when you post them to your socials. It also sets you up with a boatload full of ideas that you can then pursue and develop later throughout the year - here's a couple of things I made back in Genuary 2023:

Some of my creations back from Genuary 2023
I also made a big recap post for my favorite creations from others for 2023 - the article might take a while to load though since it embeds so many tweets:
[Genuary 2023 RecapA big recap of Genuary 2023, all the sketches that I’ve made for the daily prompts as well as my personal favorites from other artists. This article contains a lot of twitter embeds, which might take a couple of seconds to load. Thank you for your patience!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/genuary-2023-recap/)
On this note, as we're undoubtedly bound to see some amazing creations this year again, I've been wondering about how to best report on all of the sketches. I've been thinking of doing a weekly recap in which I showcase some of my favorite creations - which would basically come in the form of an additional weekly issue, running in parallel to the newsletter throughout January. I believe that a daily issue would be a bit too much for me and you the readers. Would love to hear your thoughts on this and if that is something you'd want!
Last thing that I want to mention here - if it's your first time and Genuary seems like a daunting thing to attempt, you'd best try and join a chat group and/or discord channel to brainstorm with others and or collaborate on a couple of the prompts with another coder. I'd recommend [Raph](https://twitter.com/sableRaph?ref=gorillasun.de)'s birbsnest discord server for this and the lovely people in there who're already in full swing talking about potential collaborations.
### Generative Art Holiday Season
The dust's settled now and we emerge from fxhash's launch week with a large number of new works released into the world. I couldn't resist and ended up collecting a couple of things myself:
[](https://twitter.com/gorillasu/status/1738531789658783810?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1738531789658783810?ref=gorillasun.de)
If you want to support some of the artists, there's still quite a few stellar projects that haven't minted out at this point. Besides the hard work that has gone into the development of the platform, the fxhash team has also dedicated significant efforts into showcasing many of the releases that launched in the past week - something that completely flew under my radar were the fx(press) posts that contain interviews with some of the artists that had releases during launch week - and as an interview aficionado, I found these to be highly enjoyable, I recommend checking them out for yourself:


fx(press) interviews with various artists | [Link to Page](https://www.fxhash.xyz/u/fx%28press%29%20/articles?ref=gorillasun.de)
What's more, is that there's another group show in full swing over on Alba titled "Tiny Geometries" featuring highly textural works from 8 very talented artists - here's a sneak peek at some of the works:
[](https://www.alba.art/exhibitions/tiny-geometries?ref=gorillasun.de)
"I think texture is a very important part of an artwork because it communicates beyond the visual. It provides a sort of multisensory channel that can greatly expand the experience, giving a sense of materiality." - Daniel Aguilar | [Link to Curation](https://www.alba.art/exhibitions/tiny-geometries?ref=gorillasun.de)
I'm really impressed by all of the individual projects, they're all really gorgeous in their own right. And I also really enjoyed reading Haiver's accompanying essay that discusses texture in generative art a little more in detail, explaining all of what the term entails.
I believe that generative artworks generally consist of two separate components: structure and texture. With structure referring to the positioning of the elements on the canvas, and texture referring to the final visual aesthetic that is applied to the elements in the composition. It can sometimes be the case that texture emerges from the positioning of the elements itself, like in Daniel Aguilar's Tetra for instance, where the placement of many tiny rectangles produces an intricate tactile aesthetic. I also think the word "finish" is more appropriate than "texture" in certain scenarios.
Haiver also addresses the recently reignited conversation around Skeuomorphism in generative art, and how texture is one of the aspects that feeds into this discussion - when I work on my own projects I often find myself at a crossroads, having to make a choice between a digital aesthetic that "embraces the medium" or emulating a textured look that pretends to be tactile in some manner.
But in any case, I think at this point we collectively need a little break, to lay back and recover from the madness of the past weeks, and before we launch into Genuary.
### What Games don't show You
SimonDev's Youtube channel is a treasure trove of information when it comes to video game programming techniques. I initially discovered the channel a couple of months ago while researching methods for improving the speed of a javascript particle system that I was working on. At the time I found [a video of his that explains spatial hashing](https://www.youtube.com/watch?v=oewDaISQpw0&t=498s&ref=gorillasun.de) (grid lookup basically) and how to optimize it, and I had discovered a deeply insightful, elaborate and well made video that ended up helping me tremendously with the ideas that it presented.
What's more is that Simon was one of the devs behind [Prototype](https://en.wikipedia.org/wiki/Prototype%5F%28video%5Fgame%29?ref=gorillasun.de), a game that I thoroughly enjoyed in my teenage years. I haven't checked in with his channels in a couple of months now, but I was delighted to see that there's been a couple of new videos, with the newest one revolving around occlusion culling; a technique that is used to make massive open worlds possible in video games:
Essentially, occlusion culling boils down to only displaying the items that should really be visible to the player and there's quite a few nifty things that video games do to determine what things are hidden and don't need to be shown.
Videos like this one are incredibly important - you don't often find technical information like this presented in such a digestible manner while being an enjoyable watch at the same time. I hope Simon keeps making these incredibly educative videos.
### Other Generative Things
1. [WTBS released a new episode](https://twitter.com/WaitingToSign/status/1737836326664417678?ref=gorillasun.de) featuring [the collector bre](https://twitter.com/bre?ref=gorillasun.de)
2. [**Simulating Fluids, Fire, and Smoke in Real-Time**](https://andrewkchan.dev/posts/fire.html?ref=gorillasun.de): Andrew Chan explains some of the basic concepts and methods involved in fluid simulation.
3. [Math for Game Developers](https://pikuma.com/blog/math-for-game-developers?ref=gorillasun.de): Pikuma who's another awesome creator for game dev related programming content, wrote a massive article about the math used in game development.
4. [Julian Hespenheide started a series of posts titled Occasional Knowledge](https://www.threads.net/@julian%5Fhespenheide/post/C0%5F6ZHBLooC?ref=gorillasun.de) over on Threads, which recently became accessible to people in EU.
## Weekly Web Finds
### CSS Wrapped 2023
With 2023 coming to an end, we're no seeing an influx of wrapped style posts, summarizing the important happenings of the year. The Chrome for Developers blog published an article recapitulating all of the new CSS features that were released over the course of 2023 - not only listing those new features, but also showcasing them in action as live demos:
[CSS Wrapped: 2023! | Blog | Chrome for Developers2023 was a huge year for CSS! Learn about what landed in Chrome and across the web platform this year.Chrome for DevelopersTwitter](https://developer.chrome.com/blog/css-wrapped-2023?ref=gorillasun.de)
With the amount of new features added over the course of 2023, it's safe to say that the web is going to look better than ever! And with the various browsers continuously adapting and steadily rolling out support for new and old features I think we're on track for a better web overall, where making good looking and responsive websites is becoming easier than ever for devs. Here's some promising insights from InterOp 2023 to back this:
[](https://wpt.fyi/interop-2023?stable&ref=gorillasun.de)
[Link to Interop 2023](https://wpt.fyi/interop-2023?stable&ref=gorillasun.de)
What's more, is that some of these new features could potentially be very useful for generative art purposes; I'm especially excited for the new trigonometric functions and the color manipulation rules that could be used to recreate creative effects with CSS only. I've had an idea for a circular type of layout for a while now, which I quickly dropped because it seemed like a tricky problem to solve when I looked into it - but should have become very manageable now with the newly added trigonometric functions. Here's two articles that I found where these things are discussed in more detail if you're curious to learn more:
[Trigonometric functions in CSS | Articles | web.devCalculate the sine, cosine, tangent, and more in CSS.web.devTwitter](https://web.dev/articles/css-trig-functions?ref=gorillasun.de)
[New functions, gradients, and hues in CSS colors (Level 4) | MDN BlogLearn what’s new in CSS Colors Module Level 4, including color spaces, color functions, fancy gradients, and support for wide-gamut displays.MDN Web DocsBrian Smith](https://developer.mozilla.org/en-US/blog/css-color-module-level-4/?ref=gorillasun.de)
This year has also been a turning point for me personally - for the longest time, I've had a big fear of CSS, feeling that it wasn't something that I could get good at. But after diving deep into understanding the different rules, how they affect each other and completing a number of simpler layouts it suddenly seems like a much more manageable task, and really isn't that much different from programming other things.
0:00
/0:23
1×
Currently I'm trying to hype myself up for the redesign and a general overhaul of the blog - it's going to be a lot of work but at the same time I know it will be very rewarding for me personally and for you guys as well.
### Digital Dilution: Being There, Everywhere, Nowhere
I strive to be as prolific as Ana María Caballero, somehow managing to churn out amazing art and writing very consistently. Just last week she claimed another award, namely the Future Art Writers Award with her essay titled "Digital Dilution: Being There, Everywhere, Nowhere". In the essay she examines metaverse exhibitions through Bertolt Brecht’s theories and methods of alienation. The essay can be read over in the MOZAIK e-zine, alongside a number of other deeply insightful pieces:
[2023 E-ZINE — MOZAIK Future Art AwardsThis 3rd edition of the MOZAIK E-ZINE is titled “The Digital Awakening” — an arts-based exploration and interrogation of meta-futures.MOZAIK Philanthropy](https://mozaikphilanthropy.org/e-zine-2023/?ref=gorillasun.de)
Bertold Brecht's alienation effect, originally *Verfremdungseffekt* in german - which I think is a beautiful word - is a concept and method used in performing arts that encourages the audience to maintain a critical and reflective distance from the events on stage rather than becoming passively and complacently immersed in the narrative. This is to say that Brecht essentially used certain techniques to break immersion on purpose such that it allows for a nuanced experience of his work.
In her essay, Ana María examines virtual metaverse exhibitions through this lens, and points out that these exhibitions tend towards the other extreme, being so far removed from reality that they often incite a severe alienating effect, which doesn't allow for any emotional connection:
> If spectacle imparts no connection, the visitor exists with nothing but a furthered feeling of dilution, the sensation that the self must be ever-present to be considered a valuable (and valued) participant in the digital art ecosystem.
I've only explored a few exhibitions in this manner, and from what I've seen, I can say that I'm generally not a big fan. There's simply a big lack of narrative - I'd much rather experience the art on a well designed webpage, that elevates and emphasizes the art itself like a beautiful frame, rather than viewing distorted previews in an unnecessary 3D space.
Metaverse exhibitions start making sense when they're intended to be immersive experiences; as explorable virtual spaces in which the artworks can be discovered according to some order such that they tie into each other - maybe even letting the viewer forget for a moment that a virtual space is being traversed. However, often it's simply just a big pile of artworks thrown together with the label of "exhibition" tapered onto it.
And it's something that I've been experiencing more and more, the effect that social media has had on my personal perception of art, a certain fatigue and lethargy setting in, where I spend no more than a brief second on any image, no matter how compelling, quickly sending it on its merry way upwards, making it disappear never to be seen again in an endless stream of content that most social media platforms provide nowadays. But that's a can of worms that we'll open another day.
I found the essay very, very thought provoking and thoroughly enjoyed reading it. A very well deserved award in my opinion. Kudos and congrats!
### The Creative Playground
In his article "The Creative Playground", Ralph Ammer talks about the importance of creating your own structured frameworks for the exploration of ideas and concepts:
[The Creative Playground - Ralph AmmerHave fun with drawing! Create yourself a creative playground we need a goal and rules. Here is why and how:Ralph Ammerralphammer](https://ralphammer.com/how-to-get-started/?ref=gorillasun.de)
Ammer elaborates that creative exercises are nothing more than "structured, artistic games", in which you set your own rules and goals. Exploring concepts within such a controlled environment can be one of the best ways to hone your artistic skills and working towards developing a personal voice by trying out different concepts and methods in isolation, figuring out what works and what doesn't for you artistically. Essentially, an exercise in creativity itself.
I believe that the presented notions are closely related to the idea of *limitation breeding creativity* \- putting in place silly self-imposed rules can often actually have the paradoxical effect of being very liberating, in that it removes worries about medium and approach which are in this setting already fixed a priori. Exploring things in that manner eventually forces you to think outside the box: how can you make A if you can only use/do B?
This reminds of an amazing TED talk by Phil Hansen, now a decade old, titled "Embracing the Shake". After years of pursuing pointillism Hansen developed permanent nerve damage in his drawing hand, causing an irreversible shake, seemingly destroying all prospects of pursuing a career as an artist. Things changed however after he embraced this new limitation of his - embracing the shake - extending his horizons beyond the one particular approach that he'd been so fervently pursuing and opening the gates for many other forms of creative expression:
"Stop trying so hard to think outside of the box, get back into it" - Phil Hansen
That's why I love using code for making art - it's an inherently minimal medium with it's own self-imposed limitations: the only thing you can do is type characters into a code editor, characters have to adhere to a specific syntax, and there's really only a handful of concepts that you can use, like loops and functions. These couple of things can then however be leveraged to build an infinite number of different systems, all with their own emergent properties.
The next time you sit down to make art, try to make a game out of it, put in place some rules and goals. It might be the case that nothing comes from it, but you might also discover your new favorite approach to making art.
## OpenAI's Prompt Engineering Guide
OpenAI recetnyl released their very own prompt engineering guide - what better way is there to learn how to use LLMs than straight from the source?
[](https://platform.openai.com/docs/guides/prompt-engineering?ref=gorillasun.de)
[Link to Page](https://platform.openai.com/docs/guides/prompt-engineering?ref=gorillasun.de)
The guide outlines six prompting strategies for getting better results from the models. If you're using LLMs for any task in your life it's probably a good idea to check out the guide and step up your prompting skills:

## Gorilla Updates
This week I released my project Hex Appeal, and I'm incredibly happy with the response from everyone - 43 editions being minted so far:

I had just a little bit of a heart-attack in the first couple of minutes when the project first released and the first couple iterations sold. Apparently there was a bug (now fixed) where fxhash injects a null value into the hash parameter that seeds the token while the collected tokens are still being signed, which results in them generating the exact same output. At that moment I thought that I'd messed up pretty badly, heart racing, thinking that weeks of work had been for naught, simply because I didn't properly configure my project. **After a few minutes when the preview images started coming in, I sank back into my chair realizing that everything was in order after all.**
With every project that I'm releasing, impostor syndrome is becoming a little less - I'm starting to feel just a little more in control over my art. The biggest tip that I can give in this regard is to really take your time, not rush an artwork, and taking in every aspect of the process, savoring it and really understanding what it is that you're trying to do and express.
If you supported in one way or another, a big heartfelt thank you, it genuinely means a lot to me!
[](https://twitter.com/gorillasu/status/1736720276732231873?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1736720276732231873?ref=gorillasun.de)
One other thing that I want to mention here, is that I got a mention in the yearly recap of the Build with Ghost newsletter:
[](https://twitter.com/TheRoyalFig/status/1737133158422782281?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/TheRoyalFig/status/1737133158422782281?ref=gorillasun.de)

Can you spot the Gorilla? | [Link to Recap](https://ghost.org/tutorials/build-with-ghost-wrapped-2023/?ref=gorillasun.de)
Currently I'm hard at work at compiling the yearly gorilla recap, keep your eyes peeled for that one, it should come out in the next couple of days!
## Music for Coding
Came across this video through their biggest fan Dave Pagurek - King Gizzard and the Lizzard Wizzard is hands down the most prolific band in recent times, releasing a whopping 25 albums in just over a decade, making it a group that should definitely be on your radar:
**And that's it from me this week again, while I'm typing in these last words, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 35This week: fxhash 2.0 goes live - Processing Foundation Impact Report 2023 - Tyler Hobbs on Generative Aesthetics - 2023 Plotter Postcard Exchange - AB feat. Licia He +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-35/)
*Previous issues of the newsletter can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
### Gorilla Newsletter 35
URL: https://www.gorillasun.de/blog/gorilla-newsletter-35/
Last updated: 2023-12-18T11:42:21.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### fxhash 2.0 v2
After the necessary postponement, fxhash launched just a couple of days ago on the 14th and is now fully live with its Ethereum integration! Although there have been a couple of hiccups, things have gone relatively smoothly for the now multi-chain platform:
[](https://twitter.com/fx%5Fhash%5F/status/1735388045292007494?ref=gorillasun.de)
Big Congrats to the fxhash team | [Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1735388045292007494?ref=gorillasun.de)

A couple of the stellar projects that have minted on Ethereum so far.
One smash hit from the first couple of days that I'd like to highlight for its virtuosity, is Piter Pasma's Tender curated drop, titled Blokkendoos. You might know him as the brilliant mind behind the [Universal Ray Hatcher](https://www.gorillasun.de/blog/gorilla-recap-7/) from a couple of months ago, and he's back with another impressive feat of generative art.
By making use of a "global illumination Monte Carlo path tracer" his project generates stunning renders of glossy shapes, and does so in only 5954 characters of code, without using any external libraries - it's basically the modern day equivalent to sorcery. In one of his tweets, Piter shares the entire size optimized code as well as an example output:


The Code for Blokkendoos - 5954 characters render glossy graphics in the browser without any libraries | [Link to Tweet](https://twitter.com/piterpasma/status/1735764616871845923?ref=gorillasun.de)
Moreover he shares a thread in which he addresses the importance of size optimizing code, and why it isn't simply about reducing the length of a piece of code but actually has a deeper purpose to it:
[](https://twitter.com/piterpasma/status/1736000934923137413?ref=gorillasun.de)
Piter Pasma on the importance of size optimizing code | [Link to Thread](https://twitter.com/piterpasma/status/1736000934923137413?ref=gorillasun.de)
Hey also brings up the interesting notion of Kolmogorov complexity, which measures the complexity of objects by the length of the shortest computer program that produces the object as output:


### Processing Foundation Impact Report 2023
[In light of Ben Fry's resignation a couple of weeks ago](https://www.gorillasun.de/blog/gorilla-newsletter-25/), with controversial claims that put the foundation in a precarious position, we now get clarity on their entire activities throughout 2023 with the recently released impact report:
[Processing Foundation Impact Report 2023Processing Foundation Impact Report 2023Processing Foundation Impact Report 2023Made with <3 by Design Systems International](https://processingfoundation.report/?ref=gorillasun.de)
Processing's remit as a foundation has grown well beyond the initial vision of the software sketchbook, and now holds the responsibility for fostering a large, inclusive, and diverse community. In 2021 the foundation received a large spike in donations from their 20th anniversary fundraiser - where several NFT platforms made it possible for code artists to donate directly with their work to the foundation. Which led to the foundation receiving a funding sum magnitudes larger than any grant money previously received:

> With the influx of funding from our community, it was imperative to grow our core team to meet the needs of our growing community with deep focus and ensure thoughtful, equitable stewardship of foundation funds.
Naturally that prompted a big change in infrastructure and management to ensure the long term financial health of the foundation - the report states that the foundation can now safely continue operations for the next 12-13 years with their current budgeting while fairly compensating the core full-time members, while also providing a breakdown of spendings in that regard.
The report also shows some impressive numbers when it comes to the development of P5, which I believe to be much popular nowadays than the original Processing - especially with the commercialization of generative art via blockchain technology that demands for browser based code art - so there's definitely been progress on the development side of things:

I applaud the transparent and comprehensive report detailing the foundations current endeavors. I believe that it is well on track, and that we'll continue to see the community grow in coming years.
### Tyler Hobbs on Algorithmic Aesthetics
Monk gives us a look into the current mind of Tyler Hobbs with his newest interview for Le Random:
[Tyler Hobbs on Algorithmic AestheticsUsing the essays of Tyler Hobbs as a reference point, Peter Bauman (Monk Antony) spoke to Hobbs about coded generative art’s aesthetics.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/tyler-hobbs-on-algorithmic-aesthetics?ref=gorillasun.de)
Having coined the term "Long-form Generative Art" with his seminal essay [The Rise of Long-form Generative Art](https://tylerxhobbs.com/essays/2021/the-rise-of-long-form-generative-art?ref=gorillasun.de), Hobbs has unarguably become a household name in the genart space. Regarding that Hobbs has always been very generous with information, it is interesting to catch up and see how his views have evolved in the meantime.
One topic that I found particularly insightful was Monk's inquiry about Hobbs' criteria for evaluating generative art - where he provides an interesting perspective:
> It needs to be worth it to see all of the images in the output set. Ideally, the work should be compelling enough for you to want to look at every single image in the output. If it's not, then you may have generated too many of them.
And I believe that it's a shared struggle by generative artists; trying to strike a balance between variety and harmony, such that each individual output is interesting by itself but still ties into an overarching narrative - Hobbs' comment however goes beyond this, such that it's not only important that the code creates outputs that are interesting on their own, but also make you want to see the rest of the collection. Making long-form projects that are successful in that regard is incredibly difficult.
Although I've made quite a few longform generative artworks at this point, looking back this has been one of the hardest aspects to achieve. Making long-form generative art is the opposite of a formulaic process, each project is wildly different, hence I'm not certain how one would exactly harness such a global quality to the set of outputs with making any compromises. Hobbs elaborates that it's an ideal:
> Again, that's an ideal, as my own work probably falls short of that.
I also really appreciate that Monk tackled some of the recent ongoing debates around digital vs. traditional aesthetics, seeing that Hobbs has experimented extensively with [the simulation of painterly aesthetics](https://tylerxhobbs.com/essays/2017/a-generative-approach-to-simulating-watercolor-paints?ref=gorillasun.de) by means of computer code himself. To address the topic, he uses a term that I believe to be quite fitting and that captures a broad range of the problematic: richness.
A physical canvas is already inherently rich with texture, and trying to draw a rectangle by hand will result in something that is naturally rich with imperfections as Hobbs explains. The same thing can not be said about the pristine shapes that the machine draws onto a digital canvas, which I believe is why we see so many artists recur to the recreation of those aesthetics to make their work more interesting.
I've had this experience in particular with my attempts to add 'grain' to some of my generative artworks. It's simply a method that adds random perturbations to the pixels of the canvas, which is a quick and easy way to add texture to a work, when in reality it only makes the artwork appear richer, but often doesn't add much substance. So it's definitely a mistake to use texture as a cheap trick to make things appear richer than they actually are.
> I do think it is a mistake to focus on replicating specific analog media as an end. I don't think that digital work needs to pretend to be something it's not.
Again, a very insightful article by Monk, continuing to provide us with standout generative art content.
## Pen and Plottery
### Plotter Postcard Exchange 2023
Over the weekend I suddenly came across a bunch of tweets tagged with #ptpx. Upon closer inspection, it turns out to be an annual event organized by [Paul Butler](https://twitter.com/paulgb?ref=gorillasun.de), in which a number of plotter enthusiasts all across the world come together for an exchange of plotter artworks in postcard format:


[Link to Tweet #1](https://twitter.com/adamfuhrer/status/1736449943928185340?ref=gorillasun.de) | [Link to Tweet #2](https://twitter.com/ippsketch/status/1736488653348536584?ref=gorillasun.de)
Although sign-up for this year is already closed here's a brief break-down of how it works - via a google form you indicate how many postcards you'd like to send out and will then be matched accordingly with others, whom you'll exchange postcards with - a breakdown of this from one of the previous signup pages:
[](https://buttondown.email/ptpx/archive/ptpx-2022-holiday-card-exchange-is-starting/?ref=gorillasun.de)
[Link to Page](https://buttondown.email/ptpx/archive/ptpx-2022-holiday-card-exchange-is-starting/?ref=gorillasun.de)
Here's two really cool examples from past years:


[Link to Tweet #1](https://twitter.com/golan/status/1606067727898185730?ref=gorillasun.de) | [Link to Tweet #2](https://twitter.com/stombeur/status/1369246082241331204?ref=gorillasun.de)
Convinced that you should invest in a plotter now?
### Arbitrarily Deterministic feat. Licia He
Ken Consumer is back with another episode of Arbitrarily Deterministic, and this time he's joined by the prolific Licia He, where they gush about everything plotter related and whilst getting an insightful look into Licia's process:
[](https://podcasters.spotify.com/pod/show/kenconsumer?ref=gorillasun.de)
[Link to Podcast](https://podcasters.spotify.com/pod/show/kenconsumer?ref=gorillasun.de)
### Greweb's Medieval Era
Greweb's another prolific plotter wizard that recently released a project he's been working on for quite a while - generative depictions of medieval sceneries that can you can plot by yourself or be redeemed for physical plots straight from greweb:


[Link to Tweet #1](https://twitter.com/greweb/status/1735040632509395210?ref=gorillasun.de) | [Link to Tweet #2](https://twitter.com/ULuIQ12/status/1735605771646189907?ref=gorillasun.de)
What's more, is that greweb also occasionally streams his dev process on Twitch, albeit sometimes in french it makes for a great educative resource if you're looking to get into plotting - what a lot might not know is that greweb actually has aphantasia which makes things doubly impressive:
[](https://twitter.com/greweb/status/1735750432935362776?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/greweb/status/1735750432935362776?ref=gorillasun.de)
## Weekly Web Finds
### Examples of Great URLs
Did you know that URL design is a thing? Yes it is. If you've ever tried to do a little SEO optimization, you'll know how important URLs are, not just for linking back towards your website, but also for the purpose of conveying information to users and machines alike. Jim Nielsen lists a number of websites that have well crafted URL structures or have a creative take on it:
[Examples of Great URL DesignWriting about the big beautiful mess that is making things for the world wide web.Jim Nielsen’s Blog Verified ($10/year for the domain)Jim Nielsen](https://blog.jim-nielsen.com/2023/examples-of-great-urls?ref=gorillasun.de)

One example from the article that I really liked.
I'm kind of glad that I ran into this resource before I'm going to tackle the redesign of the blog in 2024 (design and structure) - with the amount of pages I have right now I want to introduce a better link structure as well, and I think it's gonna be a smart thing to sit down and plan it out before doing the overhaul.
For instance, if you're viewing this page in the browser you'll notice that the URL has a prefix /blog/ - which is the same for every piece of content on the blog, save the main pages. Instead, I would like this prefix to be different for different pieces of content, such as /newsletter/ for newsletter pages, /tutorial/ for tutorials, /interview/ for interviews, etc... this helps categorize the content, further clarifies what kind of content the page contains, and will help aggregate things in individual sections.
[](https://warpspire.com/posts/url-design/?ref=gorillasun.de)
Jim Nielsen links to another resource back from 2010 that contains information still relevant up until today, elaborating on some of the important URL design guidelines. [URL Design by Kyle Aster.](https://warpspire.com/posts/url-design/?ref=gorillasun.de)
### You don't need Javascript for that
Killian Valkhof introduces us to the rule of least power in web design - which simply means that you should try to use the least powerful language suitable for a task: if you can do something with HTML + CSS, you probably should do it with HTML + CSS instead of directly bringing in the cavalry.
Now you'd think that you usually only use JS when it's really needed, but with browsers evolving there's a lot of new HTML and CSS features that can nowadays actually replace Javascript on several occasions, as Valkhof demonstrates throughout the article:
[You don’t need JavaScript for that - HTMHellA collection of bad practices in HTML, copied from real websites.You don't need JavaScript for that - HTMHell](https://www.htmhell.dev/adventcalendar/2023/2/?ref=gorillasun.de)
Definitely bookmarking this one for later! Exploring the HTMLHell site a little bit more, I discovered that the article is actually part of an online advent calendar in which each day is a new resource loaded with HTML and CSS tricks and tips. I really recommend checking it out, so much good stuff over there:
[](https://www.htmhell.dev/adventcalendar/?ref=gorillasun.de)
[Link to Advent Calendar](https://www.htmhell.dev/adventcalendar/?ref=gorillasun.de)
### Webkit Features in Safari 17.2
Among Web devs it's commonly agreed upon that Safari sucks. This is generally due to it lacking severely behind other browsers in terms of feature support, or having specific behaviour that requires you to build exceptions into your website's code that account for this.
However it seems that a bunch of new features are now supported with latest version 17.2:
[WebKit Features in Safari 17.2Web technology is constantly moving forward, with both big new features and small subtle adjustments.WebKitJen Simmons and Marcos Cáceres](https://webkit.org/blog/14787/webkit-features-in-safari-17-2?ref=gorillasun.de)
Ideally we'd all agree to blacklist our websites from being used on Safari.
## AI Corner
### Can Machine Learning predict the price at Auctions
Recently discovered a scientific article by Jason Bailey, aka Artnome, in which he tackles a really interesting topic; as the title suggests, whether AI has the capability to predict prices at auctions:
[Can Machine Learning Predict the Price of Art at Auction?Harvard Data Science ReviewJason Bailey](https://hdsr.mitpress.mit.edu/pub/1vdc2z91/release/3?ref=gorillasun.de)
When it comes to machine learning models, they excel at dealing with tasks that have clear input-output relationships, and in essence can be seen as massive function approximators, making them great for the purpose of predicting new data points given previous information to draw from. For instance, that's the case for LLMs that are simply gigantic statistical models into which we feed an input sequence - the prompt - for which they then generate a completing sequence of characters. This same concept can be applied to other types of data, for instance the valuation of real-estate properties, where we could train a model to predict a price, given information about the particular property.
But when it comes to the valuation of things, where even we as humans struggle, how can we train AI to do so?
> In describing the art market, Plattner (1998) characterized it as having two unusual qualities. First, people spend enormous sums of money on objects that are nearly impossible to value. Second, given the limited number of potential buyers, it is difficult for artists to know if there will be any demand for the work they are creating.
Bailey proceeds to describe that there is actually tangible data that we can draw from and can be used for this purpose, more specifically we'd be attempting to make AI mimic how art appraisers tackle this difficult task by considering several contextual factors related to the artwork, as well as comparing it to other similar artworks that have already been sold in a recent timeframe. It is an incredibly insightful article and I really recommend reading, it doesn't get too technical, and gives further insights into the factors that play a role in the valuation of artworks, as well as how it can be approached as a machine learning task.
### In Defense of AI Art
Claus Wilke wrote a refreshing article on AI art, that stands in favor of the new artform in contrast to many of the contemporary pieces on it. Wilke provides a breakdown of the different methods that currently exist and are used for the purpose of creating AI art and gives good arguments why it is no less involved than other artforms:
[fxhash - In defense of AI artAn impassioned argument in favor of AI image creation as an art form in its own right.fx logo](https://www.fxhash.xyz/article/in-defense-of-ai-art?ref=gorillasun.de)
## Gorilla Updates
My project Hex Appeal is finally completed, and marks the last big project of 2023\. I'm incredibly proud and happy how it ultimately turned out, especially considering that there have been a lot of other things going on in my life at the same time. Trying to make art in the midst of moving out of my current place has been tough, doubly so when there's also been multiple other tasks in parallel that needed to be done. The project goes live in just about half an hour from writing these words:
[](https://www.fxhash.xyz/generative/29784?ref=gorillasun.de)
[Link to Project Page](https://www.fxhash.xyz/generative/29784?ref=gorillasun.de)
This time around I didn't let impostor syndrome get to me, even though it tried really hard. The code for this is a big amalgamation of different algorithms and methods, ranging from the construction and indexing of hexagonal lattices as connected graphs, all the way to graph traversal and polygon contouring algorithms. There were a couple of tough points throughout, but I powered through, reminding myself that I don't necessarily need to find a solution to NP hard graph traversal problems when I'm trying to make art. I'll probably make a "making of" style post about it over on the blog over the Christmas days. Here's a couple of sample outputs - I'm really happy with the compositions and the textures:



If you enjoy this newsletter, consider picking up one or two outputs from the project to support my work!
**And that's it from me this week again, while I'm typing in these last words, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 34Vera Molnár 1924-2023 - On embracing the Medium in Generative Art - Tezpole: from Meme to Internet Sensation - Genuary 2024 website is live - Compressing Hex Colors - Deepmind’s emebllished trailer for Gemini +++ lots more.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-34/)
*An archive of all past issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
### Gorilla Newsletter 34
URL: https://www.gorillasun.de/blog/gorilla-newsletter-34/
Last updated: 2023-12-11T10:19:18.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## Vera Molnár 1924-2023
Vera Molnár passed away last Thursday on the 7th of December.
She was one of the pioneers that paved the way for the generative artists of today. I'd argue that generative art would likely not be half as popular as it is today if it wasn't for Vera - against all odds and the scrutiny of her peers, Vera Molnar pursued the ideas that she found interesting and dared to use the machine for the purpose of making art. Deservedly, she became known as the Grand Dame of Generative Art.
[](https://twitter.com/HOLO%5Fmg/status/1732786542995800373?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/HOLO%5Fmg/status/1732786542995800373?ref=gorillasun.de)
Her intuitive approach to making generative art is still a great inspiration to many artists today - her ideas have most definitely had a profound impact on my personal practice. "I have no Regrets. My life is squares, triangles, lines." was one of her famous lines, and in that manner I think she lived life in a way that many can only aspire to.
Molnár pursued her life-long passion until the very end, and I truly believe that we'll still be talking about her impactful work for decades and centuries to come. Centre Pompidou is due to host [an exhibition of Molnár’s work](https://www.centrepompidou.fr/en/program/exhibitions?ref=gorillasun.de) in 2024.
## Embracing the Medium
The discourse around skeuomorphism in generative art has been a recurring conversation in the space, and again, things heated up to some degree over the past week. This time, the conversation escalated following this tweet from the generative OG Joshua Davis:
[](https://twitter.com/JoshuaDavis/status/1732149105084727353?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/JoshuaDavis/status/1732149105084727353?ref=gorillasun.de)
It's been my observation that more and more generative artists have leaned into skeuomorphism over the past couple of years. With the trend being set by the likes of Zancan and Nat Sarkissian, who saw much success from their skeuomorphic works putting a generative spin on the depiction of natural scenes and landscapes. With their brilliant execution these works quickly became smash hits among collectors, inspiring many other artists to follow suit and try their hand at skeuomorphic generative art.
Landscapes and natural imagery have been the subject of paintings for centuries now, they're something that we can immediately identify as being *beautiful* \- nature is objectively beautiful. The same is true for certain painterly textures and painting techniques that are also automatically equated to being artful. Replicating these subjects with code can be an easy way to elicit a *wow* reaction from the audience - to whom code art is at best some sort of sorcery.
I believe that a general dismay has built up towards skeuomorphism in the generative art space, not only because it's become somewhat overdone, but also due to their deceptive visual complexity. Especially when those works become critically acclaimed by non-programmers, considering that the underlying systems are in reality not necessarily that much more complex than for any other kind of work, that might not be as digestible. The deceptive complexity of these works thus becomes an issue. A solution to this is simply by educating, and I think the space is maturing in that regard, with a growing appetite for different aesthetics.

Another problem at this point, is that the art becomes disingenuous when stylistic decisions are made for commercial success rather than artistic expression. But in that regard I think that the space is self regulating, it's just not sustainable to make art in that manner.
The main argument against skeuomorphism in generative art that we've seen drive the conversation over the past week, is that it goes against the medium. For instance, when you try to simulate a brushstroke on a digital canvas you're essentially creating an illusion - zooming in, it is impossible escape the fact that the canvas is still made out of finite pixels. Why not embrace the pixel for what it is - as a unit of color on a display and work around that instead of against it?
At the same time, a lot of the aspects that make "painting" great in real life are lost, like the texture of the paper, the chemical qualities of the paint and how it interacts with the paper and blends different colors, the physical properties of the brush that is used to apply the paint, etc. Although we are getting very close in that regard, some of these things can't so easily be captured with an algorithm.
Now that I'm writing these words, it seems that simulating "paint" with an emotionless machine almost seems like an insult to the real practice. Why are we trying to pretend that we're painting? Who are we trying to impress? Is simulating a brush stroke with a computer more impressive than when done by hand? An essential read in this regard from the past week is the recent article by Le Random, in which Monk interviews the AGH trio that fully 'Embrace the Medium' and try to glorify the machine for what it is:
[AGH on Glorifying the ComputerAGH, the trio of Kim Asendorf, Andreas Gysin and Leander Herzog, spoke with Peter Bauman (Monk Antony) before their debut show in Berlin, covering the group’s formation, the digital aesthetic and glorifying the computer.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/agh-on-glorifying-the-computer?ref=gorillasun.de)
I found the text and the presented perspectives deeply insightful. I especially found it interesting how this artist constellation liberates them from the traditional curatorial model and makes them in that manner more autonomous.
And there's something almost dystopian about their purist approach to computer art. But if you think a bit more about it however, the position becomes a bit paradoxical - were digital displays ever meant to display art? Aren't we already defying the original purpose of the computer as a number crunching machine and using it as a tool for artistic expression? Isn't 'art' all about using materials in ways that defy their intended purpose?
Arguing about this feels a little bit like going back in time and asking the Suprematists why they suddenly rejected all of the previous techniques that came before, and started drawing geometric shapes and used simple colors. Why try to draw straight lines, when you can never actually achieve a perfectly straight line with a brush stroke?
I understand the different perspectives, but I think that we can collectively agree that there's no single 'correct' approach to making art. Each individual will be drawn to the specific aesthetics that evoke something within them - who are we to condemn specific modalities of artistic expression. And when you tell me that a lot of people aren't fans of making generative art look painterly, it just makes me want to fight the medium even more, and particularly do those things that I'm apparently not supposed to do.
Beyond that, I simply can't see myself committing to a single aesthetic at any point in the future - I have a very broad appetite in that regard, and the beauty of generative art to me is that it allows me to conjure vastly different looking things onto the digital canvas. I'd feel shackled if I'd have to commit to a single aesthetic for the rest of time.
**Maybe I just don't get it yet.** Maybe I'll evolve into completely rejecting curves and paint simulations at some point - all things considered, I'm very much a genart baby compared to some of the others that have stated their thoughts on the topic. I find beauty in both ends of the spectrum, and I find myself drawn to artworks that blend between the two, where computational geometry meets skeuomorphic colors and textures. I find skeuomorphism in generative art fascinating because it is something that I can not do in real life on a canvas, nor do I have the desire to learn how to do it IRL. I find great joy in approaching it as a computational problem.
It's exciting to see that there's different schools of thought emerging, and that there's an ongoing healthy discourse that's pushing artists to evolve and questions their own practice and the medium. As an artist, it's incredibly important to take pause and reflect on these things, asking yourself what it actually is that you want to achieve with your art, how you want to express it, and how it fits into the bigger contemporary picture.
## Tezpole: from Meme to Internet Sensation
In the unlikely event that you haven't seen it yet - this pic from the Tezos showcase of some artworks at the Miami Art Week made the rounds over on TwitterX, leading to a couple of interesting developments:
[](https://twitter.com/nicholas%5Fdimes/status/1732609242518155565?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/nicholas%5Fdimes/status/1732609242518155565?ref=gorillasun.de)
At first glance, I'd give the image the benefit of the doubt; maybe it's just an unfortunate angle in bad lighting, but which ever way you spin it, it just looks... sad, for a lack of a better descriptor. Maybe the intent was to go for an 'indie' or 'punk' vibe with this kind of DIY set-up, but I couldn't think of a worse place than a hotel lobby for it. The community quickly flocked together in mockery around the halfhearted showcase, baptizing it as the "Tezpole".
Many pointed out the irony of it all, the tezpole being representative of how much the Tezos foundation cares about the art community that rose to existence in the 2021 HEN days. In the chaos that ensued on TwitterX the picture quickly turned into an internet sensation, with many artists making Tezpole inspired artworks, launching into an improptu Tezpole event. Strano made a lovely thread about some of the creations:
[](https://twitter.com/5tr4n0/status/1733513604610003429?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/5tr4n0/status/1733513604610003429?ref=gorillasun.de)
[](https://twitter.com/VioletBondArt/status/1733285135318208920?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/VioletBondArt/status/1733285135318208920?ref=gorillasun.de)
You'd think that's the end of the meme. What else could there be? Why of course, Tezpole now also has it's own Tezos token:

It seems that this also had an effect on the value of Tezos overall, breaking the 1$ mark for the first time in a while:
[](https://twitter.com/jjjjjjjjjjohn/status/1733468936945930549?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/jjjjjjjjjjohn/status/1733468936945930549?ref=gorillasun.de)
What's the take-away from all of this? I have no clue. Curation is hard... maybe? I really loved one of Sutan's tweets, in situations like this it's important to not start pointing fingers and blame anyone in particular. Events like this are often entirely at the whims of organizational factors:
[](https://twitter.com/sutanz/status/1733526668440936582?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/sutanz/status/1733526668440936582?ref=gorillasun.de)
## All the Generative Things
There's been a couple more things happening in the generative art space that are worth pointing out.
### Genuary 2024 Website is Live
As we're getting closer to wrapping up this year, Genuary is already knocking on the doors for a month-long bonanza of generative shenanigans - Piter Pasma announced last week that the official website is already up:
[](https://twitter.com/piterpasma/status/1732786523794284547?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/piterpasma/status/1732786523794284547?ref=gorillasun.de) | [Link to Website](https://genuary.art/?ref=gorillasun.de)
If you took a straight B-line to the prompts of this year, you don't actually have to use ChatGPT to generate your prompts - Piter further elaborates in a reply to his Tweet that a proper announcement with the actual list of prompts will follow! While I'm super excited I'm also kind of nervous because I haven't done 'daily coding' in quite a while and likely very rusty.
### fxhash mainnet launch
Just a reminder that as this newsletter is coming out, the fxhash mainnet is also launching where artists can start minting their projects in prepartion for the launch:
[](https://twitter.com/fx%5Fhash%5F/status/1733935270687338697?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1733935270687338697?ref=gorillasun.de)
### Compressing Hex Colors
With fxhash 2.0 coming up, and with many artists opting to mint their projects onchain with fxhas's new On-Chain File System (ONCHFS), code compression is becoming a much more important topic where gas fees for onchain-ing a project essentially depend on the size of the code files.
Every little code-golfing tip and trick becomes valuable in this setting, for instance the compression of hex color codes that are often used for the purpose of coloring things drawn to the canvas - Luka Piskorec points out a resource from the prolific Matt Des Lauriers in which he tackles exactly this topic:

The proposed trick essentially converts arrays of hex colors into base64 encoded strings. This Github gist shows how it's done, with additional comments by others:
[palette compressionpalette compression. GitHub Gist: instantly share code, notes, and snippets.Gist262588213843476](https://gist.github.com/mattdesl/58b806478f4d33e8b91ed9c51c39014d?ref=gorillasun.de)
### Cytographia by Golan Levin
Golan Levin is gearing up for his debut on the Ethereum blockchain with an Art Blocks Curated release in 2024 - here's a teaser for what he's been working on:
0:00
/0:18
1×
[Link to Tweet](https://twitter.com/golan/status/1732228920659857814?ref=gorillasun.de)
Cytographia is a generative artwork that aims to mimic illustrations of imaginary organisms - the physics and animations of the generated artworks is reminiscent of SPACEFILLER's work, but contrasts it with a distinctly realistic aesthetic. I heavily recommend checking out Golan's Tweet that I linked here, as it's part of a longer, educative thread of WIPs, dating back several weeks and detailing many parts of the process.
## Weekly Web Finds
### An Open Source Game Engine by Isadora Sophia
Murder Engine is a pixel art ECS (short for Entity Component System) game engine created by Isadora Sophia - and it's entirely open source:
[](https://twitter.com/isainstars/status/1701669993367363874?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/isainstars/status/1701669993367363874?ref=gorillasun.de)
It's built on top of MonoGame, a framework for creating cross-platform games. If you're planning to build your next pixel art video game, you might want to check it out. Here's a link to the Github repo:
[GitHub - isadorasophia/murder: Murder is a pixel art ECS game engine.Murder is a pixel art ECS game engine. Contribute to isadorasophia/murder development by creating an account on GitHub.GitHubisadorasophia](https://github.com/isadorasophia/murder?ref=gorillasun.de)
### Saint11's Pixel Art Tutorials
Another person that's contributed to the Murder game engine's development is Saint11, who you might know from his pixel artwork on games like Celeste and Towerfall.
While I've seen some of his pixel art tutorials floating around on the internet in the past, I wasn't aware that he'd posted all of them on his personal website as well! If you've ever wanted to get into pixel art or get better at it, then Saint11's website is an absolute treasure trove for this purpose:
[Pixel Art Tutorials - Saint11This is my series of tutorials that I made with the help of my Patrons, they are all 512x512 pixels and were primarily focussed on twitter but eventually became it’s own thing. All these tutorials are free, but if you want to support me, you can do it on Patreon or you can buy them in a nice .zip file on Itch.io. Also, Subscribe to my newsletter! It’s free, and you’ll get direct updates in your inbox whenever there’s new content on my website.Saint11](http://saint11.org/blog/pixel-art-tutorials/?ref=gorillasun.de)
### Critique: Google's Internal Code Review Tool
If you're an avid reader of the blog then you'll probably know by now that I'm a big nerd about clean code - clean code as a meta discussion at least. Was excited to come across an article that takes a closer look at google's internal code review tool 'Critique':
[How Google takes the pain out of code reviews, with 97% dev satisfactionA study of Google’s code review tooling (Critique), AI-powered improvements, and recent statisticsEngineer’s CodexEngineer’s Codex](https://engineercodex.substack.com/p/how-google-takes-the-pain-out-of)
Apparently it's the case that most devs who end up using it completely fall in love with the tool, with a 97% satisfaction rate, likely due to it simplifying so many parts of the review process. The article also links to an interesting study that further elaborates:
[](https://storage.googleapis.com/pub-tools-public-publication-data/pdf/80735342aebcbfc8af4878373f842c25323cb985.pdf?ref=gorillasun.de)
[Link to Study](https://storage.googleapis.com/pub-tools-public-publication-data/pdf/80735342aebcbfc8af4878373f842c25323cb985.pdf?ref=gorillasun.de)
### Raphaël Améaume's Personal Website
I'm huge proponent of every creative having their own website on which they share and archive their work. Putting your thoughts into writing for others to learn from can be one of the best ways to give back to the community.
Raphaël Améaume recently put together his own page and it's a stellar example of this - combining creative interactivity with a sleek design inspired by his sketchbook notes:
[Index · Raphaël AméaumeI’m a freelance creative technologist with 8 years of experience crafting interactive projects on the web. I specialize in designing and implementing generative visual systems that leverage the latest web technologies.Raphaël AméaumeRaphaël Améaume](https://raphaelameaume.com/?ref=gorillasun.de)
[](https://twitter.com/raphaelameaume/status/1732723783847362598?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/raphaelameaume/status/1732723783847362598?ref=gorillasun.de)
### HTML: The Programming Language... ?
Yes you read that headline right. HTML-lang is a programming language entirely built on top of HTML markup language:
[](https://html-lang.org/?ref=gorillasun.de)
[Link to Page](https://html-lang.org/?ref=gorillasun.de)
Sharing this one for prosperity.
## AI Corner
### Google's Embellished Trailer for Gemini
It seems that we can't catch a break from drama in the AI space. A couple of days ago Google announced their newest AI model called *Gemini* with a trailer that just seemed a bit too good to be true - have a look for yourself:
Although the shown outputs are all verbatim outputs from the Gemini model without edits, it turns out that the showcased interactions between user and AI are heavily embellished. Certain intermediary steps have been omitted, for brevity, to obtain the actual outputs that we see in the video.
It's already been heavily covered by media in the past week - but I found that this article by TechCrunch does a good job at debunking the actual inputs that need to be fed to the model to obtain the outputs presented in the video:
[Google’s best Gemini demo was faked | TechCrunchGoogle’s new Gemini AI model is getting a mixed reception after its big debut yesterday, but users may have less confidence in the company’s tech orTechCrunchDevin Coldewey](https://techcrunch.com/2023/12/07/googles-best-gemini-demo-was-faked/?ref=gorillasun.de)
Calling it a 'fake' trailer might be a bit harsh, but the model definitely isn't as witty and quickfire as presented in the video. Oriol Vinyals, Google DeepMind’s VP of Research, responds to this on Twitter with the following statement:
[](https://twitter.com/OriolVinyalsML/status/1732885990291775553?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/OriolVinyalsML/status/1732885990291775553?ref=gorillasun.de)
### Where does AI End and We Begin?
You might already know Sougwen Choung from previous Newsletter issues as the artist that draws in collaboration with her robots - she was invited to write a personal reflection in form of a guest article for the New York Times:
[](https://www.nytimes.com/2023/12/07/special-series/artificial-intelligence-art.html?ref=gorillasun.de)
[Link to Article](https://www.nytimes.com/2023/12/07/special-series/artificial-intelligence-art.html?ref=gorillasun.de)
## Gorilla Updates
A couple of weeks ago I had the pleasure of talking to Nerios who's building his own marketplace for generative art prints - it's an ambitions project in these Web3 times, but he's definitely on the right track with his technical know-how:
[All Eyes on Bohét - Generative Fine Art Prints on DemandBohet is specialized marketplace for generative fine art prints. In this article we have a look at the platform, how it fits into the generative art space and have an in depth talk with its creator Nerios Lamaj.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/all-eyes-on-bohet-generative-prints-on-demand/)
Otherwise it's been another very busy week, mainly spent on admin things and writing. I've worked just a little on fleshing out my piece for the Kumaleon fxhash 2.0 Curation, but I've got to turn on the jets a bit now - mainly need to focus on colors now:

I'll have a juicy write-up for this project around launch-time as well! So keep your eyes peeled for that.
## Music for Coding
If you're a fan of Bonobo (I am), you need to check out Josh Furey. I think he's severely underrated - creating mellow and meditative soundscapes with similar tonal qualities to Bonobo's stuff, his music makes you feel like you're roaming some distant lands:
[Petals, by Josh Furey11 track albumJosh Fureytravisaturn](https://joshfurey.bandcamp.com/album/petals?ref=gorillasun.de)
**And that's it from me this week again, while I'm typing in these last words to some of these tunes, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 33This Week 📬 fxhash 2.0 Launch delayed - RCS and Le Random on fxhash - Generative Art as a Career - P5 1.9.0 - Infinite Canvas by Amelia Wattenberger - The beauty of Doom 3 Source Code +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-33/)
*An archive of all past issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
### All Eyes on Bohét - Generative Fine Art Prints on Demand
URL: https://www.gorillasun.de/blog/all-eyes-on-bohet-generative-prints-on-demand/
Last updated: 2023-12-06T10:47:32.000Z
**Bohét is a young and budding platform, and a first of its kind - it describes itself as a specialized marketplace for generative fine art prints. Created by Nerios Lamaj it aims to streamline the process of distributing generative artworks in the form of physical prints. In this post we have a first look at the platform, and have a chat with Nerios who gives us a peek behind the scenes, telling us about the platform's inner workings.**
[Bohét - Generative Fine Art PrintsA marketplace for Generative Fine Art PrintsGenerative Fine Art Prints](https://bohet.art/?ref=gorillasun.de)
*This article is kindly sponsored by Bohét.*
---
If there's one thing that I want to do on this blog, other than writing about creative coding and generative art, it's to feature cool people that build cool things. In our conversation, Nerios immediately struck me as a down-to-earth kind of guy who's currently in the process of finding a foothold in the generative art space, whilst trying to draw some more eyeballs towards the platform he's built.
I believe that the best way to get to know a platform is by talking to the creators behind it. I quickly asked Nerios for an hour of his time to chat about the platform that he's built, how the idea came to be, and to further explore some of the technical aspects behind the platform. I was also curious about his programming and generative art background. As always, I love learning about the stories of creative people and sharing them with you.
Although this article is sponsored, Nerios specifically asked for an honest and transparent review, and wanted me to write down my honest thoughts on the platform - as I usually would with my writing.
## Nerios' Background
**Gorilla Sun: For the readers, can you tell us a little bit about yourself; how did you get started with programming and later on generative art, and what do you do these days?**
Nerios: Originally I'm from Tirana in Albania, where I grew up. My background mainly lies in computer science and web technologies. Later on I moved to London for my Masters, where I mainly learned about modern technologies like the internet of things, cloud computing and big data. Then in 2020 I relocated to Berlin, where I currently work for various start-ups.
As far as Generative Art goes, that started in February of 2019, when I attended a workshop by Matt DesLauriers at the FITC conference in Amsterdam. That was my very first time learning about creative coding, and the first time that I rendered a canvas element to the browser. I found it incredibly exciting, and it was a pivotal moment for me personally. Ever since, I've tried to dedicate some amount of time to this newfound passion.
**GS: Matt DesLauriers makes some awesome stuff, I'm a big fan of him as well. That was right before the pandemic hit in 2020 - did that end up giving you more time to explore creative coding?**
NL: Actually, during the pandemic I was in the midst of relocating to Germany, and finding a place in Berlin was difficult \[laughs\] so that entire process took like a year. After I settled down I had a lot more time again.
**GS: And currently, how different is the programming that you do for your job than it is for generative art?**
Nerios: It's similar, but at the same time it's very different. At work you mainly learn about the boring things like deployment, maintenance, running AWS instances, etc... but it's all still very useful when you want to work on your own smaller projects and scale them. The knowledge I had from both of these backgrounds is what allowed me to build Bohét.
## About Bohét

**GS: Now that you bring up Bohét, can you tell us a little more about the platform? What is Bohét, what were your initial motivations for the platform, how does it work, and how is it different from the other platforms that are currently out there?**
NL: To put it briefly, Bohét is a specialized marketplace for generative fine art prints.
But to elaborate, the idea took shape shortly after I got started with generative art. At the time, I printed a couple of my own works to fill the empty walls in my place, and I noticed how much I enjoyed having something that I made myself hanging in my living room. I felt that there was something there and thought that I could maybe try selling some of these prints. After a couple of months of researching and developing this idea I put together a website for myself where people could purchase prints of my work. That was back in February of this year.
I've observed how generative art has become more and more popular in recent years, not only due to the NFT craze and advancements in the Web3 space, but also because more people are getting into programming. At the same time I noticed that there still seems to be a large disconnect between artists and collectors when it comes to the distribution of their work in physical form - artists usually have to set up their own pipeline to get their generative art into the hands of their collectors. It can be a challenging undertaking.
After I put together my website, I heard from other artists that they wanted something like that, where they could sell 'generative' prints. That's when the idea for Bohét started: what if I can build something that makes this easier for others? And that's how that initial platform then turned into more of a marketplace. So in a way, the distinct absence of such a platform was the initial motivation for Bohét.
**GS: Making prints is definitely challenging, it's something I've personally struggled with and haven't found an optimal solution to. I tried a few different websites like printful, printify, etc... but none of it really worked out. I think there's a space for this kind of platform.**
NL: Yeah, after hearing that from other artists, I contemplated how this idea could become a user-facing application, and how to make the entire process as simple and straightforward as possible from both the artists' and customers' points of view.
Initially it took a couple of months of experimenting to figure out how to best set up an interface like that, without exposing the algorithm of the generative artwork publicly - and I found that the best method to do this was with server-side generation of the outputs. Meaning that the artworks are generated on the server, and then sent to the user interface.
And this actually has several advantages, because the code is run on the server to generate the artwork, it also eliminates inconsistencies that often occur when the code is run on different browsers and devices. What's more, running code server-side allows artists to make generative art with any kind of programming language and/or software, you're not limited to only languages that can run in the browser.
## About the Algorithm
**GS: Can you tell us a bit more about the technical aspects of Bohét, how does the platform work behind the scenes? And how does it generate unique outputs for the collectors?**
NL: At the core of Bohét's infrastructure is a dynamic blend of different APIs and some custom-built modules. Currently, it uses Shopify as the marketplace backend, AWS for generating the art, and implements a custom client side SSR (Server-Side Rendering) storefront using React.
Shopify is a very good headless e-commerce platform, and ensures security of sensitive operations. While it serves as the foundation for transactions on the platform, the goal is to transition away from it at some point and have an in house solution to replace it. This is a long term plan however.
The art is generated in the back-end, hence instead of running the code when it is requested by the front-end, which might often take some time to run depending on the complexity of the artwork, a batch of outputs is pre-generated, securely stored in an S3 bucket, and then served to the user on the front-end.
And as mentioned earlier, this has a couple of advantages:
1. The source code of the generative artwork isn't exposed, and lives entirely on the server.
2. Artists aren't limited to only using Javascript and can leverage a number of different languages and software tools.
3. There is no time delay to run the code on the user's device, which might be slow depending on their specs.
4. It ensures consistent outputs no matter what browser or device is used.
This consistency also guarantees that the digital representations on the site align closely with the quality and visual aspects of the physical, printed artwork, which I think also helps making it a satisfying experience when the print is received.
**GS: So to put it in simple terms, you pre-generate a number of outputs from the generative artwork, store them, and later serve them through the interface when a user requests to see variations of a generator. And the generated outputs are also unique?**
NL: Exactly.
**GS: How large is that pre-generated batch?**
NL: As a rule of thumb it's 20 times the size of the collection. So if an artist sets the edition size to a 100, we'd then generate 2000 iterations ahead of time.
But in the future I'm hoping to automate this in the cloud. There's definitely challenges with this approach, especially with more traffic on the platform. For instance, currently there's a time delay between someone purchasing one edition and then cleaning it from the mapper, but with more traffic if you have two purchases that happen in quick succession this would be a problem. But right now it's also not a priority, as the platform grows these things will have to be addressed.
**GS: I think it's a good problem to have, if you have a lot of traffic that's a good thing. I'm really impressed that you've built the entire thing by yourself!**
NL: Yes it's a one man-show, although I have some help from my loved ones when I need it.
## About Web3
**GS: Right now I'm very deep into Web3 things, and I think a lot of the generative artists that read my blog are also in some way involved with Web3\. One of the cool aspects about Web3 is that when things are collected, it creates a unique proof of ownership on the blockchain. What are some of the considerations in that regard? Why not choose the Web3 route?**
NL: Web3 has definitely had a transformative impact on generative art, and I truly acknowledge that. But I view Bohét as another parallel in this regard.
With Bohét, I'm not directly trying to target an audience that is involved with Web3\. For instance, if you consider galleries, interior design studios, hotels, etc... I don't think that a lot of them really know about that space, and even if they did, it wouldn't fulfill their needs, for them it's simply about decorating spaces and hanging beautiful pieces on their walls. In the long-term those would be the audiences that I'd like to attract.
At this point in time, Web3 tech isn't a part of Bohét because I don't truly see the need for it right now — which doesn't mean that I won't consider it in the future.
**GS: But there definitely are some inspirations taken from the space, like the unique outputs from the generative algorithms.**
NL: I'm always open to new ideas and concepts, and I often look into developments in the Web3 space to keep an eye on how new technologies advance. It definitely brings some value to Bohét, and it would definitely be the right approach and the right time to move into that direction with some of those ideas.
## About the Physical Prints
0:00
/0:10
1×
**GS: What does the pipeline for the physical prints look like? When someone purchases a print on Bohét what actually happens in the background?**
NL: To backtrack a bit, back when I built the initial platform for myself, I first had to explore prints and how different printing technologies worked in general, as well as the different kinds of materials and papers that are commonly used for fine art prints.
Ultimately, after trying a lot of different suppliers, I settled on a print studio located in Latvia. They have a pretty good API which makes it very easy to delegate, meaning that anytime a print is ordered through Bohét it directly goes to them where the request gets reviewed. Then they check if the file has a proper resolution and dimension, and if everything is in order they also handle packaging and certification.
**GS: That makes me wonder, what if some artists want to sell prints but don't necessarily want to use your printing pipeline and already have their own solution, would it be possible for them to sell their prints through Bohét?**
NL: That's a very good point, and I've thought about it as well. I don't see any reason to not do this in the future.
**GS: Bohét would simply have to handle the payment logistics of it. I think that could be a really cool thing, considering that a lot of artists maybe want to have control over the creation process of the physical item with their own plotters and printers.**
NL: I think that can definitely be a feature when we launch the artist portal, where the artist can then indicate what type of physical is being sold.
It's still very early on to have received much feedback, but the feedback that I have received, and ideas like this are very valuable in growing Bohét in the future. I think what should be prioritized initially is the artist platform, to open up many opportunities for the artists. Secondly, it's about connecting with collectors that might not know that much about generative art, and I think physical prints are a good way to introduce people to it.
## Bohét Artists
**GS: You've already had two artists launch on Bohét** [**Andrew McWhae**](https://bohet.art/artists/andrew-mc-whae?ref=gorillasun.de) **and** [**EcirBaff**](https://bohet.art/artists/ecir-baff?ref=gorillasun.de)**, what was the process of onboarding them and what was it like working with them?**
NL: Both Andrew and Fabrice applied through the application on the platform, and I really liked their submissions. I followed up with them via email and they were happy to share a bit more about their algorithms. Andrew's was the first art piece that I onboarded, and I really like how it brought some more color to the platform in contrast to my own creations. I ordered one myself which is hanging in my living room now.

Perpendicular by Andrew McWhae on Bohét
Fabrice's was also interesting, he uses [MetaFun](https://wiki.contextgarden.net/MetaFun%5F-%5FMetaPost%5Fin%5FConTeXt?ref=gorillasun.de) to create his art, and again, the distribution of his art becomes possible with Bohét. He has some other works that he'd like to share on Bohét soon, and we might explore a different way of generating them because they're Vector based.


Bands of Connected Filaments by EcirBaff on Bohét
**GS: If someone wants to apply to the platform, how would that work?**
NL: Currently there's an [application page](https://bohet.art/account/login?ref=gorillasun.de) on the website where artists can send in their details by creating an account. After that I'll do a quick review and get in touch. Beginning of 2024 we'll launch a proper artist dashboard.
**GS: Did you already have some submissions that you had to reject?**
NL: There were a couple of submissions where the code wasn't very 'generative' and didn't produce a sufficient variety. I followed up whether it could be enhanced and provide a more varied output space, but it didn't work out. Right now this one-on-one way of on-boarding artists and artworks to the platform is working really well though.
## My Thoughts on Bohét
For the past 3 years now I've been very deep in the Web3 bubble, and in many ways generative art and blockchain tech have become two inseparable concepts at this point - to me it just makes sense.
The competition in this space has unarguably become fiercer, with more and more players entering the field. With the number of platforms that have emerged in recent years, it is not only become a competition for them to attract and retain an active body of collectors, it has also become a race to capture and convince artists to publish their works on one platform over the other.
In the case of Bohét, trying to compete with platforms that can provide a fully digital means for distributing ownership of generative art will be very challenging.
But at the same time, this brings up questions about art ownership - is digital proof of ownership sufficient to convey a 'feeling' of ownership? Or do I need to have the physical artwork hanging on my wall? I believe it to be a very individual and subjective notion, and I'd like to argue that the latter probably still rings true for many that are not familiar with Web3 tech, and even those that have extensive digital collections probably still cherish owning physical pieces.
What Nerios said towards the end of our conversation really resonated with me, printmaking is a century old tradition and there's still a massive market that revolves around it. I believe that there's a distinct need for a specialized platform that can bridge the gap between generative artists and fine art prints.
I believe that the best course of action for a platform like Bohét, that's just starting out, is to closely work one-on-one with artists to slowly accrue a varied selection of artworks, while at the same time putting effort into scaling its features, drawing attention to itself, and making the artist on-boarding process as seamless as possible while delivering a high quality product.
Fazit is, while generative art is moving in the direction of Web3, I believe that there is a space for a platform like Bohét that provides a streamlined method for generative prints, while clearly defining what it aims to be.
## Closing Thoughts
At this point, I'd like to give Nerios a big thank you, firstly for the kind endorsement - it helps greatly with keeping this blog going - and secondly, for the time that he took out of his day to talk to me.
It is always impressive to see people dedicate their precious time to projects that fall outside the scope of their day jobs. I for one am excited to see where Nerios can take Bohét, and how it will evolve in the near future.
[If you find this exciting, get in touch with Nerios or send in your application over on Bohét](https://bohet.art/account/login?ref=gorillasun.de).
[](https://bohet.art/account/login?ref=gorillasun.de)
[Link to Application](https://bohet.art/account/login?ref=gorillasun.de)
**Yet again, we find ourselves at the end of the article; here's the mandatory call to action - if you've reached and read this far, it most likely is an indicator that you've enjoyed this article - if you did, consider sharing it on your socials, with friends and followers, it helps tremendously and tells the algorithm that this is meaningful content.**
**Otherwise consider signing up to the newsletter to receive updates directly in your inbox whenever there's new content. That said, that's it from me - see you in the next one - cheers, and happy sketching - Gorilla Sun 🌸**
### Gorilla Newsletter 33
URL: https://www.gorillasun.de/blog/gorilla-newsletter-33/
Last updated: 2023-12-04T09:47:46.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## fxhash 2.0 Launch delayed until the 14th
Unfortunately, fxhash's 2.0 launch has been delayed until the 14th of December when it was initially set to kick off past Friday on the 1st of December. This is entirely with regard to the new Ethereum integration that will make it possible to create and collect generative projects on the ETH chain:

I believe it's the right call - all of the projects that were set to release can simply be rescheduled and the dev team can make sure that everything is in good shape then. It's a course of action that I wish many other companies would take when it comes to releasing their products these days.
While we eagerly await the new launch date, we needn't sit and doomscroll through TwitterX, we can actually dig into some of the stellar articles that have been released on the occasion of the 2.0 launch.
### Right Click Save on fxhash
In what reveals itself as a love letter to fxhash, Jason Bailey, aka Artnome, takes a step back and recounts the early days of fxhash, and how the platform leveled the playing field at a time when generative artists were still hesitant to embrace NFTs during the 2021 boom:
[The Art of Radical InclusivityThe launch of fx(hash) 2.0 makes generative art more open than ever, argues Jason BaileyAlex Estorick](https://www.rightclicksave.com/article/the-art-of-radical-inclusivity-artnome-fxhash?ref=gorillasun.de)
fxhash has brought forth an entirely new wave of generative artists and allowed them to find their own artistic voice. Radical inclusivity is the best way to describe this phenomenon. From my conversations with [Tezumie](https://www.gorillasun.de/blog/interview-tezumie/), [pxlshrd](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/), [Alessandro Fiore](https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/) and Daniel Aguilar (this interview is in the works), I've learned that all of them, as well as me and many others included, took generative art much more seriously because of fxhash - not only by providing an open infrastructure for distributing generative art, but also by building a community of collectors and enthusiasts, it became possible for code artists to find their voice and dedicate a considerable amount of time to the practice.
In another article from RCS, Alex Estorick invites Ciphrd and Zancan to a conversation, giving us their perspectives on the platform and how it's evolved so far:
[The fx(hash) Conversation | Ciphrd and ZancanThe founder of fx(hash) and the revered generative artist discuss the art of nature and the platform’s bright futureCiphrd and ZancanAlex Estorick](https://www.rightclicksave.com/article/the-fx-hash-conversation-ciphrd-and-zancan-interview-generative-art?ref=gorillasun.de)
Ciphrd talks about how the fxhash team has adjusted its mission over the past two years - new features are now built in response to the needs of the community. In that manner the platform isn't solely geared towards artists anymore, but also draws into consideration the needs of the collectors and curators that ultimately bring the minted generative artworks to life. In the article there's mention of a partner studio feature, and I wish there would have been some more details about it, but from the sound of it, it seems that 2024 will be an exciting time for artist and curator collaborations.
Some of the other topics addressed are fx(params), the impact it had on collectors as co-creators, as well as Zancan's Garden Monoliths and the immense pressure that ensued after its massive success. Zancan concludes the article with a beautiful statement about Ciphrd and fxhash:
> **Z:** Baptiste finds this creative power and beauty everywhere in things that are probably obscure to most of us. I enjoy the fact that he considers fx(hash) to be an organism that grows and interacts, conceptualizing it as an artwork.
Having heard the perspectives of the platform's creator, one of its most successful artists, and the OG generative art lover himself, it is now the artists' turn to speak. In a third complementary article, a diverse set of artists is invited to speak about creating long-form generative art on fxhash:
[The Emergent Artists of fx(hash)RCS hosts a special cast of generative artists who have enriched the ecosystemPrimavera De Filippi](https://www.rightclicksave.com/article/the-emergent-artists-of-fx-hash-interview-generative-art?ref=gorillasun.de)
The article addresses some of the important conversations around the practice today, and more generally asks the artists about generative art as a disruptive medium.
### Snowfro and Ciphrd on a Symbiotic Relationship
Besides the RCS coverage we also get a hefty article from Peter Bauman, in which he invites Ciphrd, Charlie, and Paul from the fxhash team and Snowfro, the creator of Artblocks, to reflect on the past years and what the future holds for the two generative art platforms:
[Snowfro and Ciphrd on a Symbiotic RelationshipIn conversation with the founder of Art Blocks, Erick Calderon (Snowfro), and founder of fx(hash), Baptiste Crespy (ciphrd), Peter Bauman (Monk Antony) reflects on the trenchant moment that is November 2023 for on-chain generative art.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/snowfro-and-ciphrd-on-a-symbiotic-relationship?ref=gorillasun.de)
One of the most exciting pieces of information to me personally is Ciphrd's mention of a white label solution to publishing generative art on your own platform:
> One of our key guidelines will be to start making the tool less and less present in, let's say, the presentations artists make of their work. We’re adding a white-labeled solution that allows you to release on your own website or on your own platform without us having too much of a presence.
I believe that a lot of artists would love to have a tool like that. I am a big proponent of building your own platform and customizing it to your own needs, as an artist - and more broadly as a content creator.
Monk also didn't shy away from the hard-hitting questions, which I believe many are very curious about; in a space that is becoming increasingly more competitive, with other NFT marketplaces on various chains integrating generative art capabilities into their eco-systems - Monk asks the two platforms about their views on each other.
They are in many ways complementary, catering to two different kinds of audiences. Whereas Art Blocks is more boutique with its curated release model, fxhash complements that setting with its openness that's allowing the space evolve organically. Code driven parameter project are the best example for this, which wouldn't have become a feature if it weren't for the pioneering projects that tried to bend the rules of fx(params). But overall, the principles of both fxhash and Art Blocks seem well-aligned, placing the needs of the artists and collectors above everything else.
I'm not going to spoil much more of the article, if you haven't done so yet go and read it now. And that's an order. 🔫
## Generative Art as a Career
There's been somewhat of a larger conversation going on over on TwitterX - and as always things on Twitter are quite fragmented, here's an attempt at reconstructing it and some of my thoughts on what's been said - I believe that it's an important discussion to bring up especially at this time when many artists will be focusing on blockchain based projects. This tweet by Zach Lieberman was essentially the catalyst:
[](https://twitter.com/zachlieberman/status/1729546307973287956?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/zachlieberman/status/1729546307973287956?ref=gorillasun.de)
Whether you're doing generative art full-time, part-time, or have been thinking to take the leap to doing it full-time: where do you see yourself in the next year or two? In the next 5 years? Do you think you can solely sustain yourself in the coming years from generative art "drops"?
Some projects have the virtue of being the first of their kind, such as some of the original Art Blocks projects like Tyler Hobb's Fidenza - which I think will be used as the poster child for long-form generative art for years to come - or the early grails on fxhash for instance, that are simply beloved by the community. Projects like that have the ability to carry their own momentum. If a project doesn't stand out in some way or another, what is going to start the conversation around it?
Everything that requires an artificial induction of hype to spark some form of conversation, generally doesn't have much substance to it. Things of value can grow, and stay relevant organically. And there is only so much attention that the space can dedicate to any single project, in a seemingly growing body of high quality works and in an increasingly competitive space. As a generative artist you'll also have to think about approaching the practice in a sustainable manner while standing out from the crowd.
The truth of it is that only a fraction of artists are currently playing in the big leagues. And deservedly so - it takes a certain level of expertise and know-how to consistently put out quality work while retaining the interest of your audience. A common trait that I've noticed, is that most of the big artists already have many years of art-making under their belt, with existing connections and friendships, and have a deeper understanding of the art business as a whole. Naturally there are a few exceptions to the rule.
The key-word here is that it's ultimately a business - passion alone will not pay the bills.
If you're an individual that's trying to break into the space, what are some of the other things that you can do around your art practice that provide value and can be sustainable? In what ways other than your artworks are you manifesting yourself in the space?
I wanted to write about this because Zach is addressing something that I've been thinking about more and more in the past months. And it always brings me back to thinking about the Japanese concept of Ikigai - at least in its modern/western adapted form, that adds a financial component to the picture:

Ikigai loosely translates to 'a reason for being', which is something that everyone needs to figure out at some point in their life. At the very least, you most likely want to do something that you enjoy, that you're good at and can get paid for. The holy grail of Ikigai is reached when this something also gives back to the world in some way.
Generative art is only one of my passions. I also love writing, and I love programming in general. It always feels like a breath of fresh air when I work on the blog, if it's some Javascript code that no one will ever notice, or even styling something with CSS. Looking back I'm really proud of what I've built so far, all of the words and lines of code I've written, and I feel that I'm getting better at what I'm doing - at least I don't feel as clueless as when I tried to deploy a Jekyll blog on Github pages for the very first time.
This is how I want to express myself: through my art, my writing, giving back to the community and other generative artists/programmers, being able to make connections along the way all while pushing this brainchild of mine forward and hopefully turning it into something that I can live off and dedicate the entirety of my time to.
What I'm trying to get at with all of this, is that even if making generative art is one of your greatest passions, being a full-time artist might not be your Ikigai. In an alternative life I would've liked to be a musician, you know, touring the world and all that stuff, but I simply don't think that I could've handled the stress of performing and traveling. Even though it would've been my dream job, I would have at the same time been very miserable. I'm incredibly happy with the things I'm doing these days.
Iskra Velitchkova and Frederik Vanhoutte, two artists that I hold a lot of respect for, touched upon this topic with their words:
[](https://twitter.com/pointline%5F/status/1730549001399705796?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/pointline%5F/status/1730549001399705796?ref=gorillasun.de)
[](https://twitter.com/wblut/status/1729795418458853617?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/wblut/status/1729795418458853617?ref=gorillasun.de)
There's many more avenues in creative coding and generative art that can be explored - try to find your own Ikigai, without shoehorning yourself into doing only one thing.
## All the Generative Things
If you've made it through all of my ramblings, here's your medal 🎖️ besides the postponement of the fxhash 2.0 launch there's been a few more noteworthy things in the creative coding scene that I want to cover.
### New Version of P5 is released
Firstly, the newest version of P5 is out now, with several new features by many contributors:
0:00
/0:18
1×
[Link to Tweet](https://twitter.com/davepvm/status/1729941961337938244?ref=gorillasun.de)
You can read about the release notes here:
[Release v1.9.0 · processing/p5.jsWhat’s Changed In this release, p5.js added draggable() to let you move around elements, added imageLight() to get 3D lighting from images, added computeNormals(SMOOTH) for custom smooth 3D geometr…GitHubprocessing](https://github.com/processing/p5.js/releases/tag/v1.9.0?ref=gorillasun.de)
The contributions mainly revolved around WebGL fixed and additions as well a revamp of many sections of the docs.
### Bro gets the Codes
If you've followed along with Bjorn Staal's viral Entangled project from the past newsletter issue, you'll know that he's been asked by many to share his code - and well, tongue in cheek he obliged, turning the code itself into a work of art:
[](https://twitter.com/%5Fnonfigurativ%5F/status/1729411738708107743?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1729411738708107743?ref=gorillasun.de)
## Weekly Web Finds
### Evolving the Infinite Canvas
Amelia Wattenberger is a web designer and tool maker. She generally explores innovative manners in which data can be represented and how we interact with it through creative interfaces. This time she's back with an insightful piece on infinite canvases and how to leverage them for creative visualizations:
[Evolving the infinite canvasAmelia Wattenberger’s personal websiteAmelia Wattenberger](https://wattenberger.com/thoughts/evolving-the-infinite-canvas?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Beyond using infinite canvases, I believe that the current state of the web has grown too comfortable with the user interfaces that we're used to, when there's so many interesting alternative ways to enhance user navigation. Even on something as simple as a blog, instead of a vertical list of posts, what if we use an infinite canvas to showcase the post cards? What if we show a graph to visualize the link structure of the website, visualizing how posts link to each other?
The caveat is that it requires a lot of work to create these kinds of interfaces, making them behave smoothly, comply with SEO standards, and be responsive on different devices. I would love to see more websites embrace creative interfaces however.
This isn't Amelia's first appearance on the newsletter, people that make cool things are usually repeat offenders on here. A couple of weeks ago I mentioned a writing app that she put together that allows the profiling of sentence lengths in a given text, in that manner visualizing the rhythm of the text. You can check out the [writing assistant tool here](https://sentence-length.netlify.app/?ref=gorillasun.de) as well as a write up about how it works here:
[Getting creative with embeddingsAmelia Wattenberger’s personal websiteAmelia Wattenberger](https://wattenberger.com/thoughts/yay-embeddings-math?ref=gorillasun.de)
I can't express how inspiring her stuff is - it makes me want to drop everything and just get started on building a web app of some sorts.
### Designing a SIMD Algorithm from Scratch
What are SIMDs? SIMD is an abbreviation that stands for Single Instruction Multiple Data, and essentially refers to a type of parallel computing architecture that performs multiple operations on multiple data elements simultaneously, by means of a single instruction.
One example of a SIMD machine that I think most people have heard of is the GPU - have you ever wondered how the GPU actually executes multiple instructions at the same time? Miguel Young de la Sota breaks down all of the technicalities behind SIMDs in this beefy article:
[Designing a SIMD Algorithm from Scratch · mcyoung](https://mcyoung.xyz/2023/11/27/simd-base64/?ref=gorillasun.de)
Besides the in-depth writing, while we're already talking about creative user interfaces, I really love the mini-map on the right-hand side of the page. It's a really nice way for user navigation. A mini-map like that can often be found as a UI component of modern code-editors providing a more complete overview of the code's structure and allows the user to quickly jump to particular parts of the code without having to scroll up and down to find a particular function or line of code. I think it also works really well in a blog scenario, especially when it's a long article like this.
When designing a blog, it's generally recommended to limit the length of lines somewhere in the range of 45 to 80 characters. This greatly improves readability of the content - when lines get exceedingly wide it becomes harder to track back to the beginning of the text and visually latch onto the next line. This has the consequence that you're left with a lot of horizontal space on the webpage, when viewed on desktop at least. The modern approach is to leverage this space for some form of navigation items that help the user find specific information on the same page. This makes me wonder if a mini-map is actually better than a Table of Contents - maybe there is a hybrid solution where the different sections are highlighted in the mini-map.
*BTW: The blog's redesign is still in the works, but it will have to wait till Q1 of 2024 - lots of other things have precedence until the end of the year.*
### The Designs of Kazumasa Nagai
Came across this one in the *inspirations* channel over on Raph's birbsnest discord, where there's always links to lots of interesting things on the web. This one is about the life and work of Kazumasa Nagai, a Japanese designer that I hadn't been familiar with before. As one of the most acclaimed Japanese designers, he's created the logos for Mitsubishi UFJ, Japan Railways and other major Japanese companies. Over the years he has worked on an impressive number of projects:
[Readymag Stories: Kazumasa NagaiReadymag puts on display the life story and creative legacy of japanese designer and printmaker Kazumasa Nagai.Readymag Stories: Kazumasa Nagai](https://readymag.com/designstories/kazumasa-nagai/?ref=gorillasun.de)
Kazumasa also gives some insights into the practice that I think is very valuable to designers of today:
> Design in the past was more unique because designers had their own styles. design today has leveled up in terms of sense but designers are likely to follow similar patterns. it mostly works on peripheral nerves but should be more appealing to our souls, I think.
The only interview with him that I could find was this one on [designculture](http://www.designculture.it/interview/kazumasa-nagai.html?ref=gorillasun.de).
### The beauty of Doom3 Source Code
A couple of weeks ago Youtube suggested a video by a creator that goes under the name of Primeagen. At first I thought that the guy was a bit over the top, but I soon found myself enjoying his humorous takes on various tech and programming topics, without taking things too seriously.
In the video that was recommended to me he reviews an article by Shawn McGrath, which delves into the source code of Doom 3 and explains via several examples why it is a standout example for *good* code:
If you want to read it, the article was published on Kotaku:
[The Exceptional Beauty of Doom 3’s Source CodeThis is a story about Doom 3’s source code and how beautiful it is. Yes, beautiful. Allow me to explain.KotakuShawn McGrath](https://kotaku.com/the-exceptional-beauty-of-doom-3s-source-code-5975610?ref=gorillasun.de)
One aspect of good code that the author touches upon, is that it's self-documenting: function and variable names should be revelatory of their intent, and comments should only come into play to point out special scenarios or clear up ambiguity.
We've talked about this in previous issues of the newsletter, and basically, as Martin Sosic mentions in his article "[On the Importance of Naming in Programming](https://wasp-lang.dev/blog/2023/10/12/on-importance-of-naming-in-programming?ref=gorillasun.de)": *90% of clean code is just naming things correctly*. Which is in direct correlation to comments. So next time you're about to write a comment to explain a function, ask yourself if you can rename the thing to make it self-explanatory, and if you can't you probably want to make some changes to the function such that it doesn't bite off more than it can chew.
## AI Corner
### The Busy Person's Intro to LLM's
At a first glance this might just look like another one of those Youtube videos that try to give an introduction to Large Language Models, but the difference here is that it's by Andrej Karpathy himself:
If you're not familiar, he's by now considered a titan of the industry, having worked at most of the successful AI companies over the years, and after taking the lead over at Tesla working on the AI for self-driving cars, he's now joined OpenAI again. One famous text that he's written and that I find myself coming back to every now and then is 'The Unreasonable Effectiveness of Recurrent Neural Networks' which is a bit technical, but I recommend checking it out for yourself:
[The Unreasonable Effectiveness of Recurrent Neural NetworksMusings of a Computer Scientist.](http://karpathy.github.io/2015/05/21/rnn-effectiveness/?ref=gorillasun.de)
### ChatGPT Data Leak
In a new study from DeepMind, a kind of silly method has been discovered for the purpose of extracting verbatim training data from ChatGPT:
[](https://chat.openai.com/share/456d092b-fb4e-4979-bea1-76d8d904031f?ref=gorillasun.de)
[A full transcript of this example prompt can be found here](https://chat.openai.com/share/456d092b-fb4e-4979-bea1-76d8d904031f?ref=gorillasun.de)
The model is simply prompted to repeat a certain word forever, but instead of doing so, after having repeated the word a certain number of times it will start generating other text that seems to be memorized training data - this can in some cases reveal sensitive information. This data extraction attack was disclosed to OpenAI 90 days prior to the release of the paper, so I had no luck of replicating the results. It is scary however to know that attacks like this are possible:
[Extracting Training Data from ChatGPTMilad Nasr\*1](https://not-just-memorization.github.io/extracting-training-data-from-chatgpt.html?ref=gorillasun.de)
I wonder what other types of prompts can be used to break the LLMs and circumvent their generative behaviour.
## Gorilla Updates
I'm still hard at work on my piece for the KUMALEON curation. The delayed launch date will give me a couple of much needed days to get the project over the finish line. Having built an interesting system, the most fun part of it is being able to explore the output space and playing with the code, which I now have time engross myself in.
[](https://twitter.com/gorillasu/status/1730603195024461982?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1730603195024461982?ref=gorillasun.de)
Right now I'm still trying to hone in on a final aesthetic, which is usually the thing that takes the most time:


## Music for Coding
This week I discovered Emancipator's music. Combining electronic elements with orchestral sounds, layered on top of hip-hop drum beats, Adam Douglass paints beautiful soundscapes that take you somewhere else - the music has similar ephemeral qualities to Tycho and Bonobo's work, but is in many ways more laid back:
After thinking to myself that I'm recognizing some elements of Nujabes in Emancipator's tracks, I discovered that they have actually collaborated on several occasions:
In an interview when asked about advice for aspiring artists, he states the following:
> **DA:** Never stop creating. That might seem obvious, but it’s easy to get complacent or fall into a rut where you feel like you’ve defined yourself as an artist and keeping going along those lines. I think it’s always important to never stop creating. Try to have fun- make music for yourself first and there will be other people who like it.
[INTERVIEW: Emancipator - Allston PuddingWe chat with Doug Appling ahead of Emancipator Ensemble’s show at Paradise.Allston PuddingGeorge Greenstreet](http://allstonpudding.com/interview-emancipator/?ref=gorillasun.de)
**And that's it from me this week again, while I'm typing in these last words to some of these tunes, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
*If you're still hungry for more Generative art things, you can check out the most recent issue of the Newsletter here:*
[Gorilla Newsletter 32📬 Bjorn Staal breaks the Internet - Kubikino: Generative Geometric Faces - Juhani Halkomäki Soft Body Physics 2.0 - Fxhash Discord Artist Studio - R1B2’s Circle of Life - Operator on Human Unreadable +++ lots moreGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/gorilla-newsletter-32/)
*An archive of all past issues can be found here:*
[Newsletter - Gorilla SunWeekly recap of Gorilla Articles, Art and other interesting things from the world of generative art and creative coding.Gorilla Sun](https://www.gorillasun.de/tag/newsletter/)
### Gorilla Newsletter 32
URL: https://www.gorillasun.de/blog/gorilla-newsletter-32/
Last updated: 2023-11-27T09:31:00.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## Bjorn Staal breaks the Internet
Last week, Bjorn Staal broke the internet with what might go down as the most viral creative coding tweet in history:
0:00
/0:35
1×
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1727322594570027343?ref=gorillasun.de)
Although this browser window trick is not an entirely new concept, I don't think that there has been an exploration that makes use of multiple windows at the same time. And Bjorn really knocked it out of the park with the execution, making the two windows interact seamlessly.
As far as I understand it, this magic is made possible by exploiting the browser's local storage, which allows one to share data between different window instances:
[](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage?retiredLocale=de&ref=gorillasun.de)
[Read more about local storage here](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage?retiredLocale=de&ref=gorillasun.de)
It can be used for all sorts of shenanigans when you require data to persist across sessions or different windows. One of which is these multi-window experiments. After Bjorn posted his tweet it seemingly opened the floodgates for an avalanche of experiments around this idea. My favorite ones that I came across were Wes Bos webcam experiment and Raven Kwok's Nyan Cat just to showcase a few:
0:00
/0:11
1×
[Link to Tweet](https://twitter.com/wesbos/status/1727722358465523721?ref=gorillasun.de)
0:00
/0:09
1×
[Link to Tweet](https://twitter.com/RavenKwok/status/1097875458882818048?ref=gorillasun.de)
In the aftermath however Bjorn addressed some of the downsides of his tweet going viral:
[](https://twitter.com/%5Fnonfigurativ%5F/status/1728402718606151867?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/%5Fnonfigurativ%5F/status/1728402718606151867?ref=gorillasun.de)
And I completely agree with all of Bjorn's thoughts throughout the thread - he has no obligation to share any part of his code. I think it's completely fine to ask about ideas, techniques, pointers for search queries to look up specific notions to be able to figure out things on your own, but I generally think it's a bit rude to ask for code directly - it's a bit like asking someone for their homework.
If you want to learn more, Ken was quick to grab a hold of Bjorn for an episode of the Arbitrarily Deterministic podcast. You can listen to the recording here:
[](https://podcasters.spotify.com/pod/show/kenconsumer/episodes/AD45---Bjrn-Staal-e2cbe18?ref=gorillasun.de)
[Link to AB Podcast](https://podcasters.spotify.com/pod/show/kenconsumer/episodes/AD45---Bjrn-Staal-e2cbe18?ref=gorillasun.de)
[](https://twitter.com/%5Fnonfigurativ%5F/status/1729058563140812836?ref=gorillasun.de)
[Link to Bro](https://twitter.com/%5Fnonfigurativ%5F/status/1729058563140812836?ref=gorillasun.de)
## All the Generative Things
Besides the multi-browser window shenanigan pandemonium that we witnessed last week, there's been quite a few notable things in the space last week as well. I genuinely don't know how anyone is supposed to keep up with everything that's going on these days - let's dig right into it.
### Kubikino by Carolina Melis and Enrico Penzo
With all of the things going on in the past couple of weeks, this project might not have gotten the attention it deserves - from concept, to execution, to the stellar promotional posts, everything about Kubikino is incredibly polished:
0:00
/1:18
1×
[Link to Tweet](https://twitter.com/artblocks%5Fio/status/1728141620611322283?ref=gorillasun.de)
Kubikino is a collaboration between artist Carolina Melis and creative coder Enrico Penzo. It is a generative system that creates abstract representations of faces out of individual geometric shapes, all while animating the generative process with an intricate choreography of geometric motions.
You can read more about the conceptual and implementation details on the accompanying website, that breaks up all of the individual steps involved in the creation of the Kubikino faces. It is always a treat when artists go out of their way to create resources like this that document their endeavors:
[Kubikino Generative Art NFTs Home Page - Kubikino.comWelcome to the Kubikino Generative Art NFTs Home Page. Learn about the project’s history, inspiration and compositional elements.kubikino0](https://www.kubikino.com/?ref=gorillasun.de)

One of the inspirations that lies at the root of the project is Bruno Munari's 1966 book 'Design as Art' in which there is a section titled 'Variations on the Theme of the Human Face' which is in essence an explorative exercise in design:


I haven't read the book but it seems to be an important read for everyone that wants to practice graphic design. Obviously Kubikino also draws inspiration from other artists of the past, becoming a modern homage to all of them.
### Juhani Halkomäki Soft Body Physics V2.0
Juhani's back at it again making cool physics simulations, returning with a much stabler blob simulation:
0:00
/0:33
1×
[Link to Tweet](https://twitter.com/JuhaniHalkomaki/status/1727751160897946020?ref=gorillasun.de)
Having tried my hand at simulating blobs I can say that this is really impressive, seeing how stable the collisions are and without having the blobs protrude into each other or glitching out at the boundaries. In the comments of the tweet he gives a hint at how it's done:

### Fxhash 2.0 and Discord Artist Studio
There's only a couple of days left until fxhash kicks off with 2.0, and it looks like the first week of December is going to be absolutely bonkers, especially with the number of projects that are set to release according to the launch calendar:

If you're curious about all of the new things that are planned and some of the new releases, you might want to give a listen to the most recent WTBS episode featuring Ciphrd and Adam Berninger from Tender::
[](https://twitter.com/WaitingToSign/status/1727702641969344894?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/WaitingToSign/status/1727702641969344894?ref=gorillasun.de)
One exciting change that I think is super cool, is the revamp of the fxhash discord, making it much much less cluttered than it was before. Additionally, there's a new forum channel called 'artist-studio' where artists are invited to create their own thread in which they can share WIPs and discuss everything related to their genart endeavours:

From the official announcement on the discord.
I have to yet make my own thread, but it's definitely on my list this week:

### Foundation x Highlight.xyz
Another big news in the generative art space, is the recent announcement for a partnership between the two NFT marketplaces Foundation and Highlight.xyz, with plans to bring generative art to Foundation's *Worlds*:

[Link to Tweet](https://twitter.com/foundation/status/1726716555931832384?ref=gorillasun.de)
But what actually is Foundation's *Worlds*? In essence, it's a curatorial blockchain tool that streamlines collaborations between curators and artists:
[The World is yours | FoundationWorlds is now its own smart contract, and in this new architecture, each world is represented as an NFT.Foundation](https://foundation.app/blog/the-world-is-yours?ref=gorillasun.de)
If you want a short version, Kaloh summed it up pretty well in one of his recent Tweets:
[](https://twitter.com/Kaloh%5Fnft/status/1728407781844087077?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Kaloh%5Fnft/status/1728407781844087077?ref=gorillasun.de)
What does this partnership entail and what does this mean for generative artists?

You can read all about the partnership in this article:
[Generative Art is Coming to Foundation WorldsWe’re excited to announce that Highlight is teaming up with Foundation to provide generative artists with more expansive tools.](https://highlight.mirror.xyz/Zf3tcBxwTWkHTEQs%5FInoqpz8yejsucDKTef68wvrByg?ref=gorillasun.de)
We'll know more about everything in December when things kick off. It's definitely an exciting time for being a generative artist, and equally as a digital art curator.
### R1B2's Circle of Life
I've been a big fan of R1B2's ever since I came across The City, a collaboration between him and Laxraven on fxhash. R1B2 returns with their most recent project titled Circle of Life, releasing it on Alba just a few days ago:

Originating from a single initial point, organic patterns start growing outwards colonizing the empty canvas until it is entirely covered. After a while older cells die and wither away, making room for a new cycle to repeat the process. This meditative and ephemeral characteristic of the little digital organisms is further amplified by the generative ambient drones that are also produced by the piece. I found it difficult to pull myself away from the screen once the artwork took its course.
Due to popular demand, R1B2 made a write-up detailing some of the code that went into the making of the piece:

[Making of “Circle Of Life” – R1B2R1B2](https://www.r1b2.com/2023/11/25/making-of-circle-of-life/?ref=gorillasun.de)
I'm humbled to have sparked the initial idea in R1B2, but he genuinely elevated the concept and took it in a different direction, especially in combination with the generative ambient music. I can only recommend taking a couple of minutes to watch the animation unfold.
### Operator on Human Unreadable by Le Random
When I talked to Monk and asked him about who he thinks are some of the artists in the generative art space that are making transformative and meaningful work, he was quick to mention Operator with their mixed media project Human Unreadable that blends between blockchain tech and performance.
The article is an absolute treat, Ania Catherine and Dejha Ti dive deep into the conceptual inspirations behind Human Unreadable:
[Operator on Human UnreadablePeter Bauman (Monk Antony) explores an emerging conceptual shift in on-chain generative art, signaled by the postmodern generative choreography of Operator’s Human Unreadable. Monk then speaks to the duo about the historical influences of the 2023 Lumen Prize-winning project.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/operator-human-unreadable?ref=gorillasun.de)
Here's also a link to the interview I did with Monk:
[In conversation with Peter Bauman - Demystifying Monk AntonyPeter Bauman is one of the most prolific writers working at the intersection of generative art and Web3\. He’s the brain behind Le Random’s editorial section, and is responsible for building out a comprehensive timeline on genart history.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-peter-bauman-demystifying-monk-antony/)
## Weekly Web Finds
### JavaScript Naming Conventions are Important
One thing that's always bothered me about Javascript is the language's use of camelCase as the de facto standard naming convention, when snake\_case is so much more readable in comparison (imo). [Yossi Kreinin makes a good argument against camelCase](https://yosefk.com/blog/ihatecamelcase.html?ref=gorillasun.de), not only reducing it to an issue of readability:
> The annoying part of this is the *slowdown*. "Um, how should I spell this name?.." There are actual *capitalization trade-offs* here. Programming is almost exclusively about making decisions and choosing trade-offs. It's quite tiring, really. Nobody wants to be making some more pointless decisions on the way just for the fun of it.
In a couple of my Javascript projects I've trying adopting snake case but I quickly reverted back to camelCase because it felt unnatural and out of place when interacting with other things in Javascript (like the DOM) that are natively camelCase. It also reminded me of my Python days, and how I spent many hours stuck in dependency hell wrestling with packages...
But to actual resource I wanted to share, an article by Vladyslav Zubko where he addresses naming conventions in Javascript, enumerating some of the considerations when it comes to naming certain types of objects and functions:
[JavaScript Naming Conventions are ImportantIt is no secret that developers have to ponder over numerous everyday tasks. Part of their thoughts…DEV CommunityVladyslav Zubko](https://dev.to/what1s1ove/javascript-naming-conventions-are-important-45n?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
A couple of the listed standards I knew, and a bunch of them were new. I'm generally a huge proponent of following your own naming convention when you're working on a personal projects; finding a system that makes sense to you can go such a long way in making the code more readable for your future self. I'm still in the process of figuring this one out.
### Ahmad Shadeed on CSS Nesting
Following a previous appearnace on the Newsletter, Ahmad Shadeed returns with another stellar article on CSS, this time walking us through everything we need to know about CSS Nesting on the occasion of the feature becoming supported on all major browsers this year:
[CSS NestingLearn about native CSS nesting with practical examples.Photo of Ahmad ShadeedAhmad Shadeed](https://ishadeed.com/article/css-nesting?ref=gorillasun.de)
CSS Nesting essentially refers to the act of placing (nesting) one CSS class within another, which has a couple of cool effects and can in many cases make the stylesheet less convoluted.
If you enjoyed this post, you should definitely also check out a previous post of his in which he documents the process of rebuilding the TechCrunch website's layout from scratch with modern CSS:
[Case Study: Rebuilding TechCrunch layout with modern CSSRebuilding TechCrunch with modern CSS.Photo of Ahmad ShadeedAhmad Shadeed](https://ishadeed.com/article/rebuilding-techcrunch-modern-css?ref=gorillasun.de)
### Understanding Git
If you've ever wondered how git actually works, here's an article that explains what goes on behind the scenes:
[Understanding Git: The history and internalsIf you’re a developer who has been putting off understanding how Git works under the hood, then this guide is for you. For those of us who get by with only knowing a few commands, Git can be a little mystifying:Kenneth DuMez](https://graphite.dev/blog/understanding-git?ref=gorillasun.de)
What's more interesting, is that Linus Torvalds actually built git in the short span of 5 days back in 2005 following a licensing dispute with bitkeeper, the software that was used for version control at the time. It has since been discontinued in 2016\. The article links to another resource that covers the happenings leading up to the conception of git:
[After controversy, Torvalds begins work on “git”Software project will help him manage Linux kernelInfoWorldRobert McMillan](https://www.infoworld.com/article/2669670/after-controversy--torvalds-begins-work-on--git-.html?ref=gorillasun.de#:~:text=week%20after%20a-,licensing%20dispute,-forced%20Torvalds%20to)
> Torvalds was unsure how much of a disruption the new source code management system will represent for kernel developers. Torvalds has already put his kernel development work on hold for a week to work on git, but he said the real cost would be measured by how much the new software would slow down the numerous maintainers that contribute to the kernel.
## AI Corner
### Sam Altman returns as the CEO of OpenAI
Following last weeks OpenAI drama in which the board of directors essentially fired Sam Altman, in what you could describe as a 'boardroom coup', things have come to somewhat of a conclusion with Sam Altman returning as OpenAIs CEO. This was due to Altman's good standing with the community and the other OpenAI employees, garnering a big backlash in response to the sudden change in management:
[Sam Altman to return as CEO of OpenAIWhat a wild five days.The VergeNilay Patel and Alex Heath/cdn.vox-cdn.com/uploads/chorus_asset/file/25096231/1778705449.jpg)](https://www.theverge.com/2023/11/22/23967223/sam-altman-returns-ceo-open-ai?ref=gorillasun.de)
The verge claims that the human struggle of this entire issue is still not completely resolved and that investigations are still taking place to figure out exactly what led to these events.
### Github Copilot in the CLI
Another exciting piece of new AI tech is Github's copilot for the terminal, where you can now simply type in the command that you need in natural language and let copilot make suggestions for shell and git commands:
[GitHub Next | Copilot for CLIGitHub Next Project: Ever having trouble remembering that shell command or this obscure flag? Don’t worry: we’re building GitHub Copilot assistance right into your terminalGitHub Next](https://githubnext.com/projects/copilot-cli?ref=gorillasun.de)
You can learn more about it in the docs here:
[About GitHub Copilot in the CLI - GitHub DocsGitHub Copilot in the CLI can help you by providing either command suggestions or explanations of given commands.GitHub Docs](https://docs.github.com/en/copilot/github-copilot-in-the-cli/about-github-copilot-in-the-cli?ref=gorillasun.de)
## Gorilla Updates
I've worked hard in the past week to make progress on my project for the fxhash launch, and I've had a couple of breakthrough with the hardest portions of the algorithm finally coming to a completion:

In its current state the algorithm is a bit of a spaghetti mess (basically an absolute spaghetti mess). An initial hexagonal lattice is first turned into a connected graph and then broken up into random portions, which can be done with Prim's algorithm. I explored this in depth a couple of weeks ago. We essentially drop in the Prim algo at different tiles and let it run for a couple of iterations, creating a skeleton of sorts, a spanning tree essentially.
The hardest part now is to find the contour of the group of hexagonal tiles that are covered by the skeleton, but there's a couple of neat properties in that regard that we can exploit to find the the vertices that lie at the boundary, then we can simply traverse these vertices to create the contour.
And that's where I'm currently at, I still have roughly 8 days to bring the project to completion until the 4th of December, but I'm hoping to have it ready very soon. Might need to do a couple of sprints to get it in shape till then.
Here's a couple more WIP posts that I quite enjoyed, one effect that I really like is applying a slight deformation to the hexagonal lattice giving it somewhat of a 3D look:



Some WIPs, will be sharing a lot more over on Twitter in the coming days.
**And that's it from me this week again, while I'm typing in these last words, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 31
URL: https://www.gorillasun.de/blog/gorilla-newsletter-31/
Last updated: 2023-11-20T10:38:35.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### p5.brush officially released
I might have jumped the gun last week, as Alejandro hadn't made a proper announcement for the library yet - but it's official now: p5.brush is out for everyone to use and experiment with:
[](https://twitter.com/acamposuribe/status/1724759035809853567?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/acamposuribe/status/1724759035809853567?ref=gorillasun.de) | Check out the thread, Alejandro provides explanations and usage examples of all the things you can do with the library
### Ten Moments in South American Generative Art History
Monk is back Bright Moments Buenos Aires with another stellar article for LeRandom. Presenting the poster he'd prepared for the IRL event in written form, the article recounts ten important moments in south American generative art history. From the creation of the Pintura Generativa group by pioneers in 1959, up until the inception of HEN in 2021, south American minds have had a profound impact on the evolution of generative art:
[Ten Moments in South American Generative Art HistoryAfter consulting with artists and contacts, Le Random’s Peter Bauman (Monk Antony) compiled a poster for Bright Moments Buenos Aires, designed by Qian of Bright Moments. The poster memorializes these ten moments in South American generative art history. The moments can also be found in a permanent s…Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/ten-moments-in-south-american-generative-art-history?ref=gorillasun.de)
Besides this, the Timeline has also been steadily growing with new moments frequently being added:
[](https://twitter.com/MonkAntony%5Ftez/status/1725216462753726744?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/MonkAntony%5Ftez/status/1725216462753726744?ref=gorillasun.de)
You should also check out Monk's TwitterX profile, it's been a treasure trove for generative art content (duh), and I always discover some new things when I check in - one of them is a digitized version of Cara McCarty's book *Information Art: Diagramming Microchips 1990 -* published by the Museum of Modern art, it'sa catalogue showcasing the diagrams for different kinds of microchips, highlighting the emerging artful patterns:
[Information art : diagramming microchips 1990 — Are.naInformation art : diagramming microchips (1990) Exhibition Catalog](https://www.are.na/block/16355083?ref=gorillasun.de)
### Herbert W. Franke's Digitized Archive
The Herbert W. Franke Foundation honors his life's work by releasing a complete archive of his non-fiction manuscripts in digitized format:
[Herbert W. Franke | ZKMThe »Herbert W. Franke Archive« at the ZKM | Karlsruhe collects documents and records from over 60 years of scientific and artistic activity.ZKM](https://zkm.de/en/herbert-w-franke?ref=gorillasun.de)
Note: the manuscripts are mainly in German.
[The entire archive can be found here.](https://portal.daten.zkm.de/archive/herbert%5Fw%5Ffranke/manuskripte?page=7&ref=gorillasun.de)
The breadth of topics that Herbert W. Franke wrote about is astounding, ranging from philosophical text about computation and speculative texts about the future of technology, to technical books about computer graphics, as well as other science topics like cave exploration. Truly a brilliant mind - RIP Herbert W. Franke.
Besides this, there was also an announcement that a generative art history conference is in the works for May 2024 - if you're in Berlin or nearby at the time you might want to keep this one in mind:
[](https://twitter.com/postanika/status/1726009843863986625?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/postanika/status/1726009843863986625?ref=gorillasun.de)
Whether you're familiar with Herbert W. Franke's work or not, you might also want to check out this long thread by SuzanneNFT in which she recounts some of the important events and moments of Herbert W. Franke's lifetime:

[Link to Thread](https://twitter.com/nf%5Fsuzanne/status/1725896331108270369?ref=gorillasun.de)
### Olga Fradina's Naïve on Art Blocks Curated
One notable project of the past week was [Olga](https://twitter.com/Olga%5Ff2727?ref=gorillasun.de)'s generative art debut *Naïve*, releasing straight out of the gate as an Art Blocks curated project.
Just as beautiful as the piece itself, I found Olga's story fascinating, from working on newspapers in the 90s, to starting a career in interior design, Olga's always had a deep love for technology and digital art. After discovering NFTs in 2021 she immediately fell in love with the concept, and felt that it could be a good way to realize herself as a digital artist. This was however also when Russia began their attacks on Ukraine - Olga pushed through this difficult time by dedicating herself to making art.
Generative art and NFTs having become two inseparable concepts in recent years, it wasn't long before Olga also explored that avenue further. After feeling initially intimidated, it wasn't long before she tried her hand at making her own generative art. This leads us to the present day with her releasing Naïve - in an interview with Art Blocks she recounts her entire story:
[Spectrum: In Conversation with Olga Fradina on Naïve | Art BlocksRead the latest Spectrum interview with generative artist Olga Fradina. In this conversation, we hear more about her project, Naïve, her artistic practice, and the discovery of the blockchain as an artistic medium.Art Blocks](https://www.artblocks.io/info/spectrum/in-conversation-with-olga-fradina-on-naive?ref=gorillasun.de)
One sentence in the interview resonated deeply with me:
> Now I’m in this great period of time where you can “play outside the rules,” act emotionally and intuitively, and sometimes make quite bold decisions.
It reminds me of those first days when I had just started exploring creative coding and generative art for myself - explorations were accompanied by a certain lightness, I was just playing for the sake of playing and having a blast while doing so. Many of the ideas that I had in those early days, still drive the art that I make today and are in a constant state of evolution.

If you want to learn a little more about Naïve, Olga also published a thread over on TwitterX, recounting the different phases her generative artwork went through:

[Link to Thread](https://twitter.com/Olga%5Ff2727/status/1725540138069975202?ref=gorillasun.de)
### RCS on +GRAPH
Naturally the weekly roundup of generative art news wouldn't be complete with RCS' journalistic endeavors, shedding light on the artists behind Feral File's +GRAPH plotterized group show and voicing their thoughts in this interview:
[The Power of the PlotterFeral File’s new exhibition, +GRAPH, celebrates the art of generative drawingJason Bailey](https://www.rightclicksave.com/article/the-power-of-the-plotter-generative-art-aleksandra-jovanic-julien-gachadoat-feral-file-graph-interview?ref=gorillasun.de)
One important notion that's tackled throughout is the relationship between artwork and complexity of the code - one of the most valuable lessons I learned early on in the game was that interesting code-art doesn't necessarily require highly complex code. Aleksandra Jovanic puts it succinctly:

Although my personal toolbox is ever expanding as time goes on, the core component of every new idea is usually only a few lines of code that try to do something differently while building on top of the previous code.
### DEVSPOETICS on Mark Webster's Cosmic Poems
Another project that I completely missed in the past weeks was Mark Webster's Cosmic Poems. It was brought to my attention through an awesome thread by [DEVSPOETICS](https://twitter.com/deuspoeticus?ref=gorillasun.de) who wrote beautifully about it placing it in juxtaposition with other pieces of concrete poetry:
[](https://twitter.com/deuspoeticus/status/1720873152874439016?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/deuspoeticus/status/1720873152874439016?ref=gorillasun.de)
## Weekly Web Finds
And here's your weekly mixed bag of interesting content I've found on the internet
### Art is a Two-Way Street
Lux, an accomplished pixel artist, writes about how art making has become less and less of an individual experience in the advent of modern social media, and explains the impact that it's had on the dynamic between the artist and their audience:
[Art is a Two-Way StreetArt can be a private experience, but, now more than ever, it rarely is. Art witnessed only by its creator effects no change except in how it makes the artist feel in creating or viewing it. Others cannot be inspired by it. No matter their preferences, the viewer cannot learnPixel ParmesanLux](https://pixelparmesan.com/art-is-a-two-way-street/?ref=gorillasun.de)
Sometimes it's difficult to grapple with the public's perception of your creations, especially when it doesn't align with your own thoughts - but as an artist you have to keep in mind that your art doesn't exist in isolation, it's an on-going discourse that you're having with your audience and other artists:
> Have consideration for those that engage with your work, or don't, but art is a two-way street; it's a dialogue between the creator, the consumers, and other artists alike. What you choose to release, and subsequently how you choose to maintain and engage with that work over time is as much a part of your offering as the work itself.
Here's another equally interesting article of theirs back from February of this year that I think is another important read for all the artists here:
[Cartridge Mindset: Just Do it Right the First TimeThe expectation that the content we consume is final and unchanging has been undermined for some time now—it’s not out of the ordinary to notice the album art for a song on Spotify has changed, or even that parts of the song itself have been modified. The succession ofPixel ParmesanLux](https://pixelparmesan.com/cartridge-mindset/?ref=gorillasun.de)
### A coder considers the waning days of the Craft
I thought I would be in for a juicy doomer essay on "The waning days of the craft" but I have to honestly say I was a bit disappointed. The article is unnecessarily long, and ultimately points out how AI is going to render programming as a craft obsolete, although it doesn't provide any concrete examples other than anecdotes of AI being use to solve some rather simple tasks:
[A Coder Considers the Waning Days of the CraftCoding has always felt to me like an endlessly deep and rich domain. Now I find myself wanting to write a eulogy for it.The New YorkerCondé Nast](https://www.newyorker.com/magazine/2023/11/20/a-coder-considers-the-waning-days-of-the-craft?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
I just don't see it. I don't really see how LLMs will replace professional devs and programmers anytime in the near future. Writing code, in any setting, is not just about writing code, there's so many human aspects to it that AI models are still terrible at. Even for the purpose of writing I feel that they're not really that great - in the time and effort it'd take me to craft a sharp prompt that will get me the result I want, I could have probably written the result myself.
Do I think they're amazing coding/writing assistants? Yes, definitely, and I've incorporated LLMs to some extent in my own practice, whenever I know that I'm looking up something that is general and objective enough that an LLM most likely has an internal representation of it, I will always consult the smart chatbots before falling back to traditional internet search.
The thing I will agree with in the article, is that also I believe that AI tools will have a profound impact on the next generation of programmers - acting both as a catalyst for those who in the process of learning, and as a coding assistant that will greatly boost programmer's productivity.
### 67 Weird Browser Debugging Tricks
Most of my programming these days is geared for the web, but I rarely use all of the tools that modern browsers provide to debug web projects - in part this is due to the frightening UI of the dev tools. Although I've slowly been getting more comfortable with the debugger, this article points out many things that I didn't know before:
[](https://alan.norbauer.com/articles/browser-debugging-tricks?ref=gorillasun.de)
[Link to Article](https://alan.norbauer.com/articles/browser-debugging-tricks?ref=gorillasun.de)
### URL Fundamentals Explained
Have you ever wondered what the difference between a URL, URI, URN, and URC is? Well, you can now put an end to the uncertainty with this article:
[URL explained - The FundamentalsIn this post, I’ll try to explain the syntax and use of an URL and the difference between URI, URL, URN, and URC. URL explained # This will be our example for this post: https://username:password@wwwITTavern.comwop](https://ittavern.com/url-explained-the-fundamentals?ref=gorillasun.de)
Besides explaining the differences it also explains the structure of a URL and the different parts it's made out of.
### HTML First
HTML first is a set of principles aimed at "substantially widening the pool of people who can work on web software codebases**"** \- written by Tony Ennis it sets in place a couple of guidelines for writing good HTML and leveraging some of it's capabilities tobuild web software:
[HTML FirstPrinciples to make building web software easier, faster and more inclusive.](https://html-first.com/?ref=gorillasun.de)
Tony Ennis has written a couple of other interesting posts as well:
[Comparing the learning curve of tag-based markup languages with javascript | Tonyennis.comTonyennis.com](https://tonyennis.com/blog/M3WoiPA5P-comparing-the-readability-and-learning-curve-of-html?ref=gorillasun.de)
## AI Corner
### Sam Altman fired from OpenAI
*If you haven't seen it yet, here's a recap of the entire OpenAI drama that happened over the past weekend.* In a seemingly surprising turn of events, the OpenAI's CEO Sam Altman has been let go this past Friday. OpenAI later published a statement on their official site, in which they try to explain the vague reasons for the decision:
> Mr. Altman’s departure follows a deliberative review process by the board, which concluded that he was not consistently candid in his communications with the board, hindering its ability to exercise its responsibilities. The board no longer has confidence in his ability to continue leading OpenAI.
You can read the statement here:
[OpenAI announces leadership transitionChief technology officer Mira Murati appointed interim CEO to lead OpenAI; Sam Altman departs the company. Search process underway to identify permanent successor.](https://openai.com/blog/openai-announces-leadership-transition?ref=gorillasun.de)
Sam Altman posted the following in response to him being let go on such a sudden notice:

[Link to Tweet](https://twitter.com/sama/status/1725631621511184771?ref=gorillasun.de)
Greg Brockman, now fromer President of OpenAI, was also taken aback by this sudden unceremonious decision from the board of directors, promptly and deliberately resigning from his position:

Greg Brockman later provided a precise recount of the events:
[](https://twitter.com/gdb/status/1725736242137182594?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gdb/status/1725736242137182594?ref=gorillasun.de)
This was far from the being the end of it however. After Brockman's subsequent resignation, with string of other resignations from other employees in the aftermath, and with talks about starting their own company, the board of directions began negotiations around bringing back Altman as the CEO.
[](https://www.theverge.com/2023/11/19/23968162/its-the-endgame-for-sam-altmans-potential-return-to-openai?ref=gorillasun.de)
[Link to Page](https://www.theverge.com/2023/11/19/23968162/its-the-endgame-for-sam-altmans-potential-return-to-openai?ref=gorillasun.de)
If you'd like to read more about this, the Verge covered the happenings of the situation in real time over the course of the weekend:
[Sam Altman fired as CEO of OpenAIMira Murati will be the interim CEO.The VergeJay Peters and Alex Heath/cdn.vox-cdn.com/uploads/chorus_asset/file/25065879/Sam_Altman_keynote_OpenAI_DevDay.jpg)](https://www.theverge.com/2023/11/17/23965982/openai-ceo-sam-altman-fired?ref=gorillasun.de)
[OpenAI board in discussions with Sam Altman to return as CEOAltman is “ambivalent” and wants governance changes.The VergeAlex Heath and Nilay Patel/cdn.vox-cdn.com/uploads/chorus_asset/file/25095378/1797579060.jpg)](https://www.theverge.com/2023/11/18/23967199/breaking-openai-board-in-discussions-with-sam-altman-to-return-as-ceo?ref=gorillasun.de)
### Lyria Releases
Despite the drama there has also been a new announcement that I think many a music maker will find super exciting - last Google's Deep Mind released their new Lyria model, what they describe as the world's 'most sophisticated' music generation system to date.

[Link to Tweet](https://twitter.com/demishassabis/status/1725058847943876900?ref=gorillasun.de)
I've explored a couple of music generation models a couple of weeks ago, but they still seemed quite lacking in comparison to the image generators - but Lyria seems like a massive step up in that regard from what is shown in the demo videos - you can read about all the new things in this official post:
[Transforming the future of music creationAnnouncing our most advanced music generation model and two new AI experiments, designed to open a new playground for creativityGoogle DeepMind](https://deepmind.google/discover/blog/transforming-the-future-of-music-creation/?ref=gorillasun.de)
Deep Mind is also partnering with Youtube, giving some Youtubers the chance to take Lyria for a test drive with the Dream Track tool that they bring up in the post. Dream Track can generate 30 second long clips of music from an input prompt, primarily for the purpose of accompanying Youtube Shorts. I'm excited to see how this will turn out.
###
## WIPs for the fx(hash) 2.0 Kumaleon Curation
I'm happy to announce that I'll be part of the Kumaleon x Okazz curation that partnering with fx(hash) for the 2.0 launch. After the awesome experience I had with lovely Proof of X folks over in Japan, and at the same time being a huge fan of Okazz's work, it simply was a no-brainer to quickly send in my application for their open call that popped up on my timeline a couple of weeks ago. I'm super stoked!
[](https://twitter.com/KUMALEON%5F/status/1726252494878331264?ref=gorillasun.de)
[Link to Announcement](https://twitter.com/KUMALEON%5F/status/1726252494878331264?ref=gorillasun.de)
The theme of the curation this time around is 'Colorful', although it was a bit of a short notice, I've already turned on the heat for the idea cooker:

[Link to Tweet](https://twitter.com/gorillasu/status/1725914055716536781?ref=gorillasun.de)
Although the idea's simply a hexagonal lattice, with some further subdivisions, the Twitter numbers indicate that folks were really into it! Hexagons are inherently really beautiful shapes that can quickly convey a shifting isometric perspective when divided into 3 equal rhombus shapes. And the last time that I released something that incorporated hexagonal shapes was my Crayon Codes project 'Behind the Canvas' back in February of 2022.
Plan's to keep it lighthearted and colorful, but I still have to think about ways to make the individual tiles geometrically more interesting. One idea was connecting two tiles that are some distance away from each other, which proved to be quite tricky - here's an early attempt:

A different playful palette.
The occasional boxes/lines that you can see in the WIP above were simply for debugging purposes, with the purpose of connecting two hexagons and creating larger, diamond shaped polygons - however, after implementing the code for that idea I'm not entirely certain if it is actually more interesting than the initial output:

Connecting hexagons to create diamond like shapes.
Conceptually I think it's cool, but at the same time it feels emptier than the previous one. The diamond shapes felt a bit repetitive after a while, making me wonder if I could fit other polygonal shapes on such a grid (throwback to my irregular grid idea), which led me down another deep rabbit hole:

Rather than using a hexagonal lattice, a grid of triangles makes much more sense and makes it possible to pack all sorts of isometric kinds of boxes. The code for this ended up being quite gnarly, and took a rough 6 hours of coding to figure out to put together (I'm a bit rusty okay?) but I think there's a lot of potential here. This one's probably going to be an exploration for a later date however. Happy to have a working prototype already though.
I'll be sharing a lot more in the coming days - keep an eye out on TwitterX!
## Music for Coding
If the word 'retro-futurism' had a physical manifestation it would be Neon Nox's music. Whether you're going for a late night cruise, doing a night-time coding session, or a vigilante on a mission to avenge your family - this is the perfect soundtrack to it:
Neon Nox is a Swedish synthwave producer who takes a lot his musical inspiration from ’80s films, TV shows and video games.
> Jon “Neon” Nox is a fictional character that is based on Gerry Conway’s comic character Punisher, I always liked the idea of a vigilante who has nothing to lose and is in a search for a killer who murdered his family. I really like idea of having an alter ego that can create stories connected to music.
You can learn more about the artist behind Neon Nox in this interview by Synthian:
[Synthian | Retro’s Not Dead: In conversation with synthwave master Neon NoxRetro’s Not Dead: In conversation with synthwave master Neon Noxadmin](https://synthian.net/2018/10/10/retros-not-dead-in-conversation-with-synthwave-master-neon-nox/?ref=gorillasun.de)
**And that's it from me this week again, while I'm typing in these last words to some of these tunes, I bid my farewells — hopefully this caught you up a little with the events in the world of generative art, tech and AI throughout the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously \- it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 30
URL: https://www.gorillasun.de/blog/gorilla-newsletter-30/
Last updated: 2023-11-13T11:17:06.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### Hachures by Matt DesLauriers
Matt DesLauriers masterfully combines pen plotters and erosion algorithms to create stunning and scribbly topographic maps in his most recent piece titled *Hachures*:
[](https://twitter.com/miminguyenmimi/status/1717847992059711596?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/miminguyenmimi/status/1717847992059711596?ref=gorillasun.de)
Hachures was one of the pieces presented at Paris Photo 2023, as a part of the "*In Conversation With"* curation by Mimi Nguyen - an overview of the other projects can be found here:
[In Conversation With | VerseShowcased within the digital sector of the Paris Photo 2023 art fair, NGUYEN WAHED presents In Conversation With, a group exhibition that traces the evolution oVerse](https://verse.works/exhibitions/in-conversation-with?ref=gorillasun.de)
I'm a huge fan of Matt DesLaurier's work and incredibly inspired by his approach to generative art in general, hence I was delighted to see a short 'Verse Meets' in which he explains how *Hachures* came to be, how working with plotters is at the same time limiting but also creatively liberating, and his fascination with generative topography:
Terrain generation is a fascinating branch of computer graphics, and ever since I did my deep dive into Nat Sarkissian's generative artwork 'Eucalyptus and Sagebrush' it's been something that I've wanted to revisit and explore for myself, but I never really got back around to it:
[Nat Sarkissian’s Eucalyptus and SagebrushIn this post we’ll have a closer look at Nat Sarkissian’s generative FxHash token: Eucalyptus and Sagebrush. The token seamlessly bridges between visually stunning graphics and an intricate terrain generation algorithm. Additionally there’s a lot to learn on simulating brush strokes algorithmicallyGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/eucalyptus-and-sagebrush/)
and the simulation of natural processes for the creation of topographically realistic landscapes is .
What's even more impressive is the algorithmic process behind this piece

### A library for generative brush strokes
You might know Alessandro as the creator of [Pensado a Mano](https://www.fxhash.xyz/generative/slug/pensado-a-mano-1?ref=gorillasun.de), one of the very first manually *code driven* fx(hash) projects. Over the last week he's posted regular updates on a library that he's been working on:
[](https://twitter.com/acamposuribe/status/1722606744881525090?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/acamposuribe/status/1722606744881525090?ref=gorillasun.de)
Simulating water colors was one of the first things that I experimented with when I got into generative art, which might be a good point to re-share the by now legendary Tyler Hobbs article on the topic:
[A Guide to Simulating Watercolor Paint with Generative Art — Tyler HobbsA simple, generative approach to designing an algorithm that captures the messiness and character of watercolor paints. This post utilizes Processing, but any basic graphics tools will suffice.Tyler HobbsA Guide to Simulating Watercolor Paint with Generative Art](https://tylerxhobbs.com/essays/2017/a-generative-approach-to-simulating-watercolor-paints?ref=gorillasun.de)
And it seems that the library is already in shape and ready to be used:
[](https://twitter.com/acamposuribe/status/1723747872879915362?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/acamposuribe/status/1723747872879915362?ref=gorillasun.de)
You'll probably want to check in with Alejandro later on details about the library, but the repo is already up here:
[GitHub - acamposuribe/p5.brush: p5 custom brushes libraryp5 custom brushes library. Contribute to acamposuribe/p5.brush development by creating an account on GitHub.GitHubacamposuribe](https://github.com/acamposuribe/p5.brush?ref=gorillasun.de)
With a companion website that details its usage here:
[\*p5.brush - Brush that canvas!CargoBrush that canvas!](https://p5-brush.cargo.site/?ref=gorillasun.de)
And while we're talking about vritual brush strokes - I also have to share Juhani's exploration in that regard:
[](https://twitter.com/JuhaniHalkomaki/status/1723815809854673195?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/JuhaniHalkomaki/status/1723815809854673195?ref=gorillasun.de)
It seems that Juhani is only capable of putting out one banger after another.
### Alba is Launching
The ETH based generative art platform is back, and after a long summer full of curated projects they are now ready a proper launch opening up the platform for all artists to mint their works:
[](https://twitter.com/AlbaDotArt/status/1722924999164518504?ref=gorillasun.de)
Check out their announcement post in which they detail some of the improvements that have been implemented since the beta group shows | [Link to Tweet](https://twitter.com/AlbaDotArt/status/1722924999164518504?ref=gorillasun.de)
> We’ve addressed numerous UX issues brought up in the beta, and we’ve added pre-built starter templates for working with the most popular libraries and languages. We’re just getting started here, so expect a lot more improvements soon.
Exciting times for generative artists! This said I'd like to shamelessly plug my own work on Alba 'The Great Traversal' - it's still got some remaining unsold editions:
[](https://www.alba.art/projects/the-great-traversal?ref=gorillasun.de)
[The Great Traversal on Alba](https://www.alba.art/projects/the-great-traversal?ref=gorillasun.de)
[Alba - The Great TraversalIs our path in life predetermined or are we the masters of our own fate? The great traversal combines point distributions and curved paths to bring to life interesting interwoven compositions. The traversers make their way through the canvas based on a simple principle - at every position the close…The Great Traversal](https://www.alba.art/projects/the-great-traversal?ref=gorillasun.de)
### Genuary 2024
And to wrap up, here's a quick intermission by Piter Pasma - Genuary 2024 is knocking on the doors:

I am in no way, shape, or form ready for it :)
## Pen and Plottery
At the intersection of generative art and physical media - I'm not entirely certain if this section will have a permanent spot on the newsletter in the future, but on some weeks I simply come across a lot of plotter based projects, as well as works that aim to do something generative that goes beyond the digital canvas.
I like to be creative with my titles, and here the title of this section "Pen and Plottery" is inspired the 2012 indie game title "Sword and Sworcery" - and for some reason I've been thinking about this game a lot:
[Five years of Sword & Sworcery: the history of a weird and beautiful gameFive years ago, Craig D. Adams was riding a Toronto streetcar home after a long day at work, when he looked up from his phone and was confused about where he was. That evening, Adams — an artist…The VergeAndrew Webster](https://www.theverge.com/2016/3/24/11297534/superbrothers-sword-and-sworcery-retrospective?ref=gorillasun.de)
I never finished the game actually, but it's deeply carved into my memory - it was the very first indie title that I played that didn't try to adhere to regular video game mechanics, but much rather aimed to be a piece of art. It won numerous awards when it came out:

Maybe one day when I'm not stretched as thin as these days I'll write some more about indie games, and maybe even have time to play some more.
But anyway, onto the actual things I wanted to showcase here!
### Fictional Lullaby - A dev story by Licia He
Licia He wrote a thread about her most recent generative project Fictional Lullaby that will release with +GRAPH, Feral File's throwback to their first GRAPH group show:
[](https://twitter.com/Licia%5FHe/status/1723690404409663594?ref=gorillasun.de)
Link to Thread
The thread is accompanied by a much more in depth write-up over on her website in which she captures the entire process and inspirations behind the piece - the article is profoundly insightful and a must read:
[](https://www.eyesofpanda.com/project/fictional%5Flullaby/?ref=gorillasun.de#intro)
Write-up for Fictional Lullaby
What's more is that many of the examples in the article are generative, meaning that you can refresh them by means of a button click and generate different variations for them. It was a lot of fun exploring the page with these interactive examples!
### Plotter Stop Motion
Jamese Merill, another artist participating featured in +GRAPH, and the creator of the stellar tokens ORI and Runaway has making some really cool stop motion plotter animations:
[](https://twitter.com/toThePixel/status/1721878920352432197?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/toThePixel/status/1721878920352432197?ref=gorillasun.de)
I only tried my hand at stop motion once, and I can tell you that it is a lot of work! James makes it look so easy:
0:00
/0:15
1×
### The Chromatic Typewriter by Tyree Callahan
The Chromatic Typewriter is as the name suggests an invention that turns a typewriter into water painting machine:
[The Chromatic Typewriter by Tyree Callahan - HomeliThe thought of fusing typewriters with paint first came to Tyree Callahan while he was putting the finishing touches on a watercolour painting. He decided to feed this watercolour through an old Olivetti typewriter in…HomeliHomeli](https://homeli.co.uk/the-chromatic-typewriter-by-tyree-callahan/?ref=gorillasun.de)
> The thought of fusing typewriters with paint first came to Tyree Callahan while he was putting the finishing touches on a watercolour painting. He decided to feed this watercolour through an old Olivetti typewriter in order to add text through the painting, and this action suddenly inspired him to transform a 1937 Underwood Standard typewriter into The Chromatic Typewriter.
Although maybe not the most practical device to create waterpaintings, it is still a very interesting concept, repurposing the typewriter for a different artistic goal.
### On/Off Screen by Vertical Crypto
Vertical Crypto presents their upcoming group show; running from the 17th to the 22nd of November in the heart of London they're featuring 6 stellar generative artists:

Presenting a mix of artworks displayed via digital and physical mediums, the aim is to highlight the interplay between the two and how they complement each other.
### Spacefiller Quilts
Just as I sent out the newsletter last week, I came across a tweet by Spacefiller, announcing that they were working on generative quilts for their shop:
[](https://twitter.com/spacefillerart/status/1721240451418931289?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/spacefillerart/status/1721240451418931289?ref=gorillasun.de)
Spacefiller is a duo from Seattle that've cemented themselves in the generative art scene with their distinct style, creating insane physics based plant growth simulations:
[](https://spacefiller.space/livingwall/?ref=gorillasun.de)
[Link to Page](https://spacefiller.space/livingwall/?ref=gorillasun.de)
You might want to check out their work for a whole lot of inspiration.
## Weekly Web Finds
### Shaders in CSS
Cheng Lou operates at "the intersection of art and bad performance" with this whacky github repo that he put out into the world:
[GitHub - chenglou/pure-css-shaders-art: At the intersection of art and bad performanceAt the intersection of art and bad performance. Contribute to chenglou/pure-css-shaders-art development by creating an account on GitHub.GitHubchenglou](https://github.com/chenglou/pure-css-shaders-art?ref=gorillasun.de)
Yes, you read that right - CSS Shaders. By nesting a grid of HTML
tags within an SVG disguised as an img, these CSS "shaders" then basically enable animated graphics within a github README:

A game-changer in the github README meta, you'll most likely want to give it a try.
### Tailswind CSS: It looks Awful, and it Works
Adam Watham, the creator of Tailwind CSS recently gave a humorous talk at Railsworld (the biggest Ruby on rails conference) about his brainchild:
After presenting a disgusting piece of HTML code littered with with representational tailwind classes, he makes the case that Tailwind is not as bad as it looks - he does so via an insightful live coding session.
### Why Cities: Skylines 2 performs poorly
A deep dive into why the city building sim game Cities: Skylines 2 performs poorly. And when I say deep, I mean deep. Paavo really doesn't cut the game any slack and dissects it thoroughly unveiling all the inefficiencies that cause the poor performance - for instance the teeth controversy:

Apparently the game renders fully modeled teeth of every character in the game (it's a city sim so there's thousands of them at any given time) at any given moment.
[](https://www.reddit.com/r/CitiesSkylines/comments/17gfq13/the%5Fgame%5Fdoes%5Frender%5Findividual%5Fteeth%5Fwith%5Fno%5Flod/?ref=gorillasun.de)
[Link to Thread](https://www.reddit.com/r/CitiesSkylines/comments/17gfq13/the%5Fgame%5Fdoes%5Frender%5Findividual%5Fteeth%5Fwith%5Fno%5Flod/?ref=gorillasun.de)
There's been numerous threads on reddit about it as well. It's an interesting read and an interesting deep dive, to me at least.
### Kurt Vonnegut's 8 Rules for Writing
I'm not a fiction writer, but I've done a decent amount of writing over the past 3 years and I'll take every piece of advice that I can get on the topic, even if it doesn't directly apply. I came across Kurt Vonnegut's 8 rules for writing which I found profoundly interesting, as they're not immediately obvious ones:
[Kurt Vonnegut’s 8 Rules for Writing – for the Playwright – London PlaywrightsLondon PlaywrightsKimberley Andrews](https://londonplaywrightsblog.com/kurt-vonneguts-8-rules-for-writing-for-the-playwright/?ref=gorillasun.de)
I think his rule 'Start as close to the end as possible' also translates very well to tutorials and newsletters - don't spend too much time setting up and tell the reader what they came looking for, whether it's a story or an educational piece of information.
## AI Corner
### Real-time Diffusion model Sparks Controversy
A new kind of model has been making the rounds - the Latent Consistency Model makes almost real time image to image translation possible:
[](https://twitter.com/radamar/status/1718783886413709542?ref=gorillasun.de)
[Link to Thread](https://twitter.com/radamar/status/1718783886413709542?ref=gorillasun.de)
[GitHub - radames/Real-Time-Latent-Consistency-Model: Demo showcasing \~real-time Latent Consistency Model pipeline with Diffusers and a MJPEG stream serverDemo showcasing \~real-time Latent Consistency Model pipeline with Diffusers and a MJPEG stream server - GitHub - radames/Real-Time-Latent-Consistency-Model: Demo showcasing \~real-time Latent Consis…GitHubradames](https://github.com/radames/Real-Time-Latent-Consistency-Model?ref=gorillasun.de)
Moreover it can be easily run by users on their own machines. I don't know the full backstory of the controversy but apparently a tweet that showcased the capabilities of LCMs in translating a rough digital sketch into a fully fleshed out artwork apparently sparked some outrage:
[](https://twitter.com/Rahll/status/1723100959436410961?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Rahll/status/1723100959436410961?ref=gorillasun.de)
I feel that this harsh response is unwarranted, the demo is interesting and simply showcases the possibilities of the real time application - the same was already possible before with any of the big image generating models, just not as fast. This is not to say that I dismiss the shady practices that go into training these models - I've stated this several times already.
Martin Nebelong goes the extra mile to outline how to set this up in this Tweet:
[](https://twitter.com/MartinNebelong/status/1723432424053317816?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/MartinNebelong/status/1723432424053317816?ref=gorillasun.de)
## Gorilla Updates
### Hot off the Press
A couple of days ago I had the pleasure of talking to Alessandro Fiore, a fellow generative artist who's created an impressive body of work in the short time span of two years:
[In Conversation with Alessandro FioreA conversation with Alessandro Fiore, an Italy based generative artist. He recounts his re-discovery of creative coding and gives insights into his approach to generative art today. We tackle several generative art related topics.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/)
Alessandro took his paternal leave during COVID as a chance to rediscover generative art for himself, seeing fx(hash) take off at the same time just made the stars align in a very special way. Contemporarily he takes inspiration from traditional Italian abstract and geometric painters, adapting their ideas and turning them into generative sketches. Check out our conversation and go give Alessandro a follow on Twitter!
### Fresh off the Easel
Continued working on this piece and people seemed to enjoy it quite a bit - I still haven't arrived at a final aesthetic yet but I think that I'm honing in to something:

I quite enjoyed this mixed, almost incomplete aesthetic - although I still want to fill the at least some of the empty rectangles in some manner, maybe with hachures or grid-like patterns. I also have another idea for the grid, but I'll need to check when I have time to do that.
The rest of this month leading up to December seems like it's going to be a bit crazy!
## Music for Coding
Another album from the Japanese treasure box - this time I'd like to feature Nomak, a sample based music maker that creates relaxing yet engaging mixes, blending sample with rap. I don't often listen to stuff with lyrics while working, but these mixes really didn't feel distracting at all.
If you enjoy artists like Nujabes you'll definitely also like this one:
**And that's it from me this week again, while I'm jamming out to some these tunes, I bid my farewells, and I hope this caught you up a little bit with some of the events in the world of generative art, tech and AI in the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
### In Conversation with Alessandro Fiore
URL: https://www.gorillasun.de/blog/in-conversation-with-alessandro-fiore/
Last updated: 2024-08-28T13:36:26.000Z
**I recently had the pleasure of speaking with Alessandro Fiore, a generative artist and creative coder based in Italy. When he's not busy being a dev team-lead or being a parent, Alessandro spends most of his free time creating awesome generative art.**
Over the past two years he's released over a dozen generative art projects on several platforms and quickly risen to become a prolific generative artist in the space. In our conversation we talk about his re-discovery of creative coding and generative art after a long break, the approach that he's adopted and allowed him to drastically evolve his style in such a short time period, as well as some of the traditional and abstract Italian painters that he draws inspiration from.
[](https://www.fxhash.xyz/u/whitekross?ref=gorillasun.de)
The numerous projects that Alessandro has created on fx(hash) | [Link to his Profile](https://www.fxhash.xyz/u/whitekross?ref=gorillasun.de)
## Background and getting into Generative Art
**Gorilla Sun: How did you get into generative art? And how did you start with programming initially?**
Alessandro Fiore: Yeah, I do programming professionally. Currently I'm team lead for one of the dev teams at Hootsuit; it's a company that does online social media services. A SaaS (software-as-a-service) basically. I've worked with them for about 5 years now, and that's essentially my day-job.
Then there's the other one, that's taking up as much of my time as the official one \[laughs\]
It's interesting, I actually started programming because of creative coding. I've always been interested in coding technologies, web design, and stuff like that, back when I was at university. I didn't study computer science however, I actually studied Sociology. But because of this passion I got into Flash and Action Script, which later on led me to Processing. There was a big overlap between the communities that were involved with those languages.
That was around 2007-2009\. That's also when I started programming professionally and didn't have much time for it anymore. So I forgot almost everything. I still followed the creative coding community from the sidelines, but I wasn't a part of it directly, up until a couple of years ago when I discovered NFTs and fx(hash).
That's when I picked up P5 for the first time, and it ended up being so much fun.
**GS: How do you find the time to do generative art while maintaining your job at the same time? And have you had thoughts about doing generative art full-time?**
AF: The night is full of resources \[laughs\]
But on a more serious note, I work from home, so I try to squeeze in some creative coding whenever I find the chance. At night, or during work breaks, I'll try to have a quick lunch and then work on some ideas.
Doing generative art full-time would be a game changer, but there's so many things to consider to take this big of a step. I don't really trust the current market, nor my art enough currently. There's undeniably an economic aspect to it, but having a family and duties towards them, right now it's not a priority and it doesn't feel like the right time for it.
Currently generative art is an outlet for me to express myself creatively, it's something I've missed a lot in the past years and that I really needed mentally. It allows me to express something that's inside of me, and is something that I can't really do in my job. But I don't know, the future is unpredictable. Maybe at some point.
**GS: How different is the programming you do for your job from programming your generative art?**
AF: It's completely different.
Of course I can be creative in my job; there's often situations where I can come up with creative solutions to certain programming problems, which is not so different in creative coding where it's also about problem solving.
But on the other hand creative coding is very liberating - I don't need to write tests, I don't need to write user-stories, and it's always so much fun when you run into a bug, that isn't really a bug, and could actually become a feature. To that extent it's completely different, it's a completely different way of iterating on your code.
**GS: Earlier you made a distinction between the terms Creative Coding and Generative Art? What is Creative coding to you? Is it a more general term? I'm interested in these semantics.**
AF: I think Creative Coding is a more general term. Creative coding doesn't necessarily need to be generative or involve randomness and noise. It's simply making something creative with code.
**GS: How did you discover fxhash and NFTs in general?**
AF: That was during the pandemic - I was still following many people in the creative coding scene during that time, like Marius Watz, and Leander Herzog. At some point I came across a tweet about fx(hash), and it struck me as something really new and interesting. I decided to give it a try.
At the time I was on parental leave because my first son was born - and the thing about becoming a father is that you don't get to sleep much \[laughs\], but you also end up having a lot of time on your hands. So the these three months gave me the chance to fully explore all of this stuff - then I started working again, but I continued with generative art in my own time.
## Stylistic Progression and Process
**GS: Looking at your fx(hash) pieces I've noticed that there's a clear progression from piece to piece - not just stylistically, but also conceptually. It's especially apparent in 'Anabasis' that seems like a departure from your initial explorations.**
AF: Anabasis was the first project where I tried to create something with the direct intention of it being an fx(hash) release. I thought that to progress I needed something different, which lead to this kind of textured work; whereas previously I had still been porting some of my older Processing ideas to P5\.
Anabasis is actually a greek word, but I pronounce in an Italian way - it means as much as 'uprising' or 'rebellion'.
[](https://www.fxhash.xyz/generative/slug/anabasis?ref=gorillasun.de)
[Anabasis on fx(hash)](https://www.fxhash.xyz/generative/slug/anabasis?ref=gorillasun.de)
I don't exactly remember the process, but it was very explorative - I kept experimenting until I reached this texture that I ended up liking a lot.
My process has changed quite a bit since then, now I'm a bit more self-conscious about my practice. In the beginning it was a bit more casual, where I would just explore different styles and ideas until I found something interesting to focus on. Now I try to pursue specific ideas, in contrast to before, where I would just randomly explore without a specific goal in mind. But of course the path to a finished piece is never straightforward, there's always bumps and forks in the road that lead you down different paths.
**GS: I get that, it's similar for me, it's more productive to do it in that way. In part I think it's also because there's more eyeballs on the art, so you can't just make whatever.**
AF: It's a more focused and less naive approach, channeling your efforts in a specific direction rather than exploring by trial and error. But at the same time maybe something gets lost in that approach. The 'naive' approach might be more natural and you might find more interesting things. But at this point I like to be more targeted with my art.
## Inspiration and Titles
AF: Right now I'm very passionate and inspired by Italian artists from the 60s - 70s, one of them is Lia Drei, her stuff is very geometric and not that difficult to replicate with code. My goal is not to copy of course, but simply to take inspiration.


Lia Drei's Bio | One of her Artworks titled 'Triangles on Yellow'
**GS: I found it a difficult exercise to capture the essence of different art styles with code. I tried my hand at Suprematism, and although it's very simple geometric shapes, there's something very human about the positioning on the canvas that can't be easily captured.**
AF: That's what I find really interesting about professional painters - they have a generative mind. The paintings are not generative and you know that, but their concepts are generative and can serve as inspiration. The hard part is to capture that essence.
In particular the optical art that I'm trying to replicate right now, you can see some examples on my Twitter. It's very simple but also very effective. I find triangles in general incredible, they're simple shapes but very flexible - you can make a lot out of them simply by changing a couple of parameters. Currently that's something I want to explore.
[](https://twitter.com/whitekross/status/1717805771248026012?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/whitekross/status/1717805771248026012?ref=gorillasun.de)
**GS: There's something inherently beautiful about the simple geometric shapes: lines, circles, and triangles, they're all fascinating in their own way.**
**Besides that, how do you find inspiration? I was looking at your piece 'Damn everything but the circus' and the title was really intriguing and fits the art very well. What's the story there?**
AF: That one actually borrows a lot of code from Anabasis. I wanted to make something that felt vintage, reminiscent of the 20s and 30s with a sense of nostalgia - when those shapes appeared on the canvas they reminded me of circuses and clowns.
**On a completely unrelated note I was reading an article about the writer E.E. Cummings and the quote just fit the piece perfectly.**
“Damn everything but the circus! ...damn everything that is grim, dull, motionless, unrisking, inward turning, damn everything that won't get into the circle, that won't enjoy. That won't throw it's heart into the tension, surprise, fear and delight of the circus, the round world, the full existence...”
E. E. Cummings
[](https://www.fxhash.xyz/generative/11730?ref=gorillasun.de)
Damn Everything but the Circus! | [Link to Project](https://www.fxhash.xyz/generative/11730?ref=gorillasun.de)
I like to play with titles - sometimes there's a relationship to the piece, sometimes there isn't. The original code-name for the project was 'The Clown', but I thought the quote was a better match and was more fun. As a side note here, the title had an exclamation point at the end, so for a while the URL for the piece was broken before fx(hash) implemented URL slugs.
**GS: I often end up with multiple different names for each project, and it becomes difficult to settle on one ultimately.**
**You have this cool trilogy of pieces titled *Saturday Nights alright for Fighting*, *Annihilate this Week*, and *One of these Days*, can you tell us a bit more about them?**
AF: They're all based off of song titles! *Saturday Night's alright for Fighting* is a song by Elton John - I don't actually know if I can use it as a title for my piece because of copyright but it's there now \[laughs\]
> Short intermission here - I looked into the copyright regarding the usage of song titles and I think it's okay to use it as a title, considering that it's for a different kind of artwork. It only becomes a problem if it creates confusion around the original piece of art - and I genuinely don't think Elton John cares.
Elton John's explosive Saturday Night's alright for fighting
At the time I was seeing a lot of these weekly 'posting events', like Fidenza Fridays, or Meridian Thursdays, and Anti-cyclone Saturdays. This trend gave me the idea for a piece that changes based on the day of the week that it's viewed in.
Technically the piece isn't very complicated, it's a simple flow field, but I wanted to make something that felt explosive and conveys a feeling of 'fighting'. During weekdays the piece has a relatively strict layout, but then changes every weekday, gradually becoming more explosive, until it reaches its peak on Saturdays.



Thursday, Friday and Saturday outputs for 'Saturday's alright for Fighting'
The project was more successful than I had anticipated. With the second project I wanted to take this concept further, asking myself 'what if I try to compress all of the layouts into a single output?' - which is essentially the idea behind 'Annihilate this Week'.
[](https://www.fxhash.xyz/generative/14670?ref=gorillasun.de)
[Annihilate this Week](https://www.fxhash.xyz/generative/14670?ref=gorillasun.de)
As for the third one, I wasn't entirely certain if I should have released it, because it was maybe too similar in style to the previous two, but I really wanted to wrap up the trilogy.
In 'One of these days' the token picks a certain day to change it's aesthetic, where it becomes bolder, more chaotic, and more colorful.


'One of these days' is definitely my favorite one in the trilogy! | [Link to Project](https://www.fxhash.xyz/generative/16408?ref=gorillasun.de)
I never really talked about these things in detail, I don't really like writing about my pieces because I don't think I'm a good writer. But sometimes it's necessary, because pieces like that need a better explanation. You are an excellent writer and I love when you explain your pieces, I'm not able to do that kind of deep dive with text into my art.
**GS: thank you Alessandro! The thing is, when I write about my art I often start understanding more - I often have to explain things that I thought trivial at first.**
**I think it's a really good exercise, even if you don't end up publishing your writing, it still gives you new insights into your own process.**
AF: I love when artists write about what they do, not just in generative art but also in the traditional arts. I try to read a lot of books written directly by the artists themselves, where they talk about their process.
Something I read recently is by an abstract Italian painter that's been mostly active in the 80s, 90s - Georgio Griffa. I like his way of using colors and his compositions that are minimal and playful. He mostly writes in a more philosophical manner about his art.
[Eleven cycles of painting. Undici cicli di pittura - Giorgio GriffaCycles of painting reflections of an artist “It seems that among the historic avant-garde movements, and even before them, the various cycles of a work were often developments on each other. A sort of progression exemplified perfectly by Mondrian’s tree. In my case, there is nothing…Allemandi Editore](https://en.allemandi.com/libro/9788842225393?ref=gorillasun.de)
[Art review: the abstract painter Giorgio GriffaThe infinite fascinates this abstract artist, says Jonathan EvensTuesday 07 November 202329 March 2018](https://www.churchtimes.co.uk/articles/2018/29-march/books-arts/visual-arts/art-review-the-abstract-painter-giorgio-griffa?ref=gorillasun.de)
## On long-form generative art
**GS: About long-form projects, what's usually the hardest part of making a long-form generative artwork?**
AF: That's easy to answer, it's making every output of the generative artwork interesting. It's okay if some outputs are better than others, and of course there's also personal preference involved, but balancing the parameters such that all outputs are somewhat on the same level is definitely the hardest part.
I think fx(params) helps with that, but at the same time - it might be an unpopular opinion - I'm personally not a big fan of it. For me it's about having an artistic fingerprint, the risk I see with using params is that a certain kind of output might be more interesting to collectors and end up dominating the final collection.
With non params pieces rare outputs are so much more special, with params you're not giving generative artworks the chance to unfold in that way.
I really like the concept of giving more power to the collectors and allowing them to contribute to the output, but it's not really what I want to explore right now. I like verse's approach though, where the collectors can save their favorite iterations and then mint one of those.
Maybe in the future I will explore params more.
**GS: Making a params piece is a different kind of challenge to traditional long-form projects I think - you have to be careful with which parameters you end up exposing to the collectors.**
## The Community
**GS: Who are some of the artists in the genart space that inspire you and that you'd like to give a shoutout to?**
AF: It's still the same people from when I got into Processing, like Marius Watz, Robert Hodgin, [Erik Natzke](https://www.eriknatzke.com/art?ref=gorillasun.de) among many others.
The use of colors by Marius Watz was something I've always been impressed by. And then recently of course I've become a big fan of Tyler Hobbs, not only because of Fidenza, but also because of his way of thinking about art that inspires me. And also Matt DesLauriers.
Some others are [rudxane](https://twitter.com/rudxane1?ref=gorillasun.de), and [Volatile Moods](https://twitter.com/VolatileMoods?ref=gorillasun.de), I really like the stuff he's been doing recently, I think it's really great.
The most interesting part about the community to me is this dynamic of people inspiring each other. Of course some people are more in the spotlight than others, but I really like that everyone is learning from each other, and there's this spirit of collaboration.
It's a really vibrant space to explore.
**GS: The creative coding community is one of the friendliest communities I've been part of in my time on the internet.**
AF: Yeah it's incredible, I was completely hooked after the first Genuary, everyday there was something completely new and cool, and I was just baffled with how people made something everyday for which I would probably need weeks \[laughs\]
The feeling of being part of something like that is very nice.
## Concluding Thoughts
To wrap things up, I'd like to give a big thanks to Alessandro, not just for taking the time to talk to me, but also for sharing his story, his ideas, and his thoughts on some of these topics. I found all of it very fascinating, and it is always very insightful to get a peek into the brain of other generative artists.
**And yet again, we find ourselves at the end of the article; here's the mandatory call to action - if you've reached and read this far, it most likely is an indicator that you've enjoyed this article - if you did, consider sharing it on your socials, with friends and followers, it helps tremendously and tells the algorithm that this is meaningful content.**
**Otherwise consider signing up to the newsletter to receive updates directly in your inbox whenever there's new content. That said, that's it from me - see you in the next one - cheers - and happy sketching - Gorilla Sun 🌸**
### Gorilla Newsletter 29
URL: https://www.gorillasun.de/blog/gorilla-newsletter-29/
Last updated: 2023-11-06T08:21:42.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### Cloudscapes with Volumetric Raymarching
Let's kick things off with something that I've been eagerly awaiting - Maxime Heckel returns with another stellar article, a deep dive into Volumetric Raymarching and how it can be used for creating beautiful shader cloudscapes in real-time:
[](https://twitter.com/MaximeHeckel/status/1719372655923486966?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/MaximeHeckel/status/1719372655923486966?ref=gorillasun.de)
> One fascinating aspect of Raymarching I quickly encountered in my study was its capacity to be tweaked to render **volumes**. Instead of stopping the raymarched loop once the ray hits a surface, we *push through* and continue the process to sample the *inside* of an object
And just like before the article is a true treasure trove of information and resources:
[Real-time dreamy Cloudscapes with Volumetric Raymarching - Maxime Heckel’s BlogThis article is a deep dive into my experimentations with Volumetric rendering and how to leverage it to render beautiful raymarched cloudscapes in React Three Fiber and WebGL. In it, I walk you through everything from the basics of Volumetric Raymarching to the techniques used in video games to ren…Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/real-time-cloudscapes-with-volumetric-raymarching/?ref=gorillasun.de)
Also make sure to check out Maxime's earlier articles - resources like this one a far and few between and deserve every possible spotlight.
### Ana María Caballero's Paperwork
During a creative tour de force across different venues around the world, Ana María Caballero invited her audience members to leave her a single word in written form on a slip of paper after each performance. Having gathered these 'distilled, private moments of human connection' as her in her Bright Moments bio captures so beautifully, they serve as the foundation for her most recent piece titled 'Paperwork', released in collaboration with BM, and brought to life with the Emprops platform:

For those who're not familiar with Emprops yet, it's a relatively new platform that's been making ripples over on Twitter in recent weeks - the platform is a first of its kind really: blending between prompt based generative AI and a long-form approach, it makes collectible long-form AI art possible. Here the term Emprops is an abbreviation for 'Emergent Properties'.
The only resource that I could find which provides insight into how the platform works is by Claus Wilke, published as an fx(text):
[fxhash - Is it AI art if a human designed it?I made an end-run around an AI generative art platform to release art that doesn’t actually use AI for its image generation. However, because I couldn’t entirely turn off the AI, it leaves a trace in visible image artifacts. Is the result AI art? Is it not? Should you collect it if you collect AI ar…fx logo](https://www.fxhash.xyz/article/is-it-ai-art-if-a-human-designed-it?ref=gorillasun.de)
And as far as I understand it, the platform allows the artist to create an AI generated collection based off of a prompt. Generative image models usually incorporate some form of noisy input which leads them to be able to generate various different outputs that still 'align' with the same original input prompt. Here's an example:
[](https://emprops.ai/projects/found-images-i?page=1&size=20&ref=gorillasun.de)
A project on Emprops titled Found Images I
Moreover, it's also possible to feed images into Stablediffusion (the model that Emprops makes use of), making it possible for generative artists to place a *traditional* code based generative artwork at the helm of this pipeline and feed these outputs into stablediffusion, in addition to some prompt that further modulates the resulting images in some way, Claus Wilke present a good visualization of this in his article:

Returning from our excursion into the Emprops platform - this is how Ana María's Paperwork comes to life.
LeRandom, having also taken part in Bright Moments Buenos Aires and exhibited their extensive collection of generative art; they gave Ana María the opportunity to use an entire page on the site as a blank canvas to do with as she wishes - she decided to showcase the 100 one-word notes that her audience wrote down after her performances, subsequently serving as inputs for the 100 Emprops outputs of paperwork:
[Ana María Caballero’s PaperworkGiven the open-ended prompt to manipulate a Le Random editorial page as a blank canvas, Ana María Caballero shares the intimate infrastructure of her project, Paperwork.Le RandomAna María CaballeroAna María Caballero is a first-generation Colombian-American poet and artist.](https://www.lerandom.art/editorial/ana-maria-caballeros-paperwork?ref=gorillasun.de)
The aesthetic inspiration for Paperwork stems from an Origami bird that one of the audience member left her:
[](https://twitter.com/CaballeroAnaMa/status/1720790738571493826?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/CaballeroAnaMa/status/1720790738571493826?ref=gorillasun.de)
### fx(hash) gearing up for 2.0
Last week fx(hash) dropped a big update thread detailing everything that's coming for their 2.0 release in December:
[](https://twitter.com/fx%5Fhash%5F/status/1720508869942899181?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1720508869942899181?ref=gorillasun.de)
It's impressive that almost all features we know and love on TEZ are also coming to ETH.
If you're an artist you probably also want to get a head start and get in on that launch calendar (coming out the same day that this newsletter finds its way into your inbox):

It looks like it's definitely going to be a crazy first December week!
### ComplexCity by John F. Simon
John F. Simon's ComplexCity is a generative artwork that finds it's beginnings 20 years ago, originally created as an autobiographical ode to life in New York city. Today it releases as a generative on-chain project on Artwrld via the ArtBlocks engine. Nato Thompson from RCS does the heavy lifting for us in this interview:
[The Interview | John F. Simon Jr.The creator of ComplexCity is bringing software art to the blockchain with ArtwrldJohn F. Simon Jr.Emily Edelman](https://www.rightclicksave.com/article/the-interview-john-f-simon-jr-artwrld?ref=gorillasun.de)
Simons touches on several important topics, how the internet has made it easier than ever to make meaningful connections without needing to be in specific physical location to do so, how blockchain tech has revolutionized the distribution of digital artworks, and how coding is a form creative writing:
> The instructions in a program say what they do, but in their binary form, running on a computer, they do what they say. Coding is creative writing because the writing creates.
### Studio Yorktown's Journal
As a big fan of Bruce's generative art and approach in general, I was excited to see him publish a 'Journal' section over on his site:
[](https://twitter.com/StudioYorktown/status/1720465871133393050?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/StudioYorktown/status/1720465871133393050?ref=gorillasun.de)
The writing is as thoughtful as you'd expect from Bruce - philosophically inspired, and without being specifically aimed at generative artists, there's many insights that'll make you rethink your creative process. You can give them a read here:
[](https://www.studioyorktown.com/journal?ref=gorillasun.de)
[Link to Journal](https://www.studioyorktown.com/journal?ref=gorillasun.de)
### Generative Embroidery
Something I've been seeing a lot more of recently are generative embroideries, mixing a generative approach with a physical medium. Anna Wolf has recently started sharing her lovely creations, and has already shared quite a few interesting stitch compositions:
[](https://twitter.com/NftEconomist/status/1712557335275872521?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/NftEconomist/status/1712557335275872521?ref=gorillasun.de)


Link to Tweet [#1](https://twitter.com/NftEconomist/status/1718261865417957471?ref=gorillasun.de) | [#2](https://twitter.com/NftEconomist/status/1718993999501910217?ref=gorillasun.de)
Coincidentally I also came across a creation by Luis Fraguada, something made back in 2006:
[](https://twitter.com/luisfraguada/status/1719731434359767464?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/luisfraguada/status/1719731434359767464?ref=gorillasun.de)
I'm wondering if this could become a new mainstream physical avenue for generative art - who's building the newest plotterized sewing machine to automate the process?
### How graphic designers are creating their own AI tools
Stan Cross from WePresent wrote about 6 generative artists that share the common denominator of having built their own digital design tools:
[WePresent | How graphic designers are creating their own AI tools.Where some artists fear AI, other graphic designers are making their own AI tools. Here, six designers share their fascinating tools. Explore now.How graphic designers are creating their own AI tools.](https://wepresent.wetransfer.com/stories/diy-design-tools-for-graphic-designers?ref=gorillasun.de)
Although I love the article and the insights that it provides into the artists' processes, I feel that there's a little bit of a disconnect between the title and the rest of the text - some of the presented artists don't actually use AI within their approach to making generative art. It's a bit like saying all generative art is AI art, which isn't the case. It's a lovely read nonetheless.
## Weekly Web Finds
### The hardest problems at the Intersection of Tech and Society
Mario Klingemann shared a tweet in which he draws attention to a recent piece by the MIT Technology Review:

Having been asked what he thinks is the 'hardest unsolved problems that lies at the intersection of technology and society' he gave the following answer:
> I believe that one of the hardest problems in artificial intelligence, which still has not been solved satisfactorily, is humor. Once machines actually grok how humor works and are not just involuntarily funny sometimes like they are now, they will have achieved true intelligence.

And it makes sense, humor is a profound social phenomenon that requires a deep understanding of cultural, social, and individual factors - context us something that is hard to achieve with AI. Moreover it is also highly subjective, and an avenue in which AI is still performs very poorly. Trying get to the crux of it might bring us closer to 'true' artificial intelligence.

ChatGPT's answer to 'What is Humor?'
Here's a link to the piece, there's other interesting answers by other leading characters. I also really like the creative interface:
[What are the hardest problems in tech we should be more focused on as a society?We asked prominent people in their field to weigh in on the underserved issues at the intersection of technology and society. Here’s what they said.MIT Technology ReviewThe Editors](https://www.technologyreview.com/2023/11/01/1081939/big-questions-problem-solving-bill-gates-jennifer-doudna-lina-khan/?ref=gorillasun.de)
### How Video-games render Fur
I recently came across Acerola's channel and he's quickly become one of my favorite Youtubers. Not only are the videos very entertaining but they also teach you a lot about the tech behind video games - and I believe that lot of it carries over into generative art:
In this particular video Acerola takes a deep dive into the computational difficulties of rendering hair and fur in video games, and presents some of the strategies that have been conceived for it.
### CSS is Fun again
CSS is undergoing a quiet renaissance, with new features being added regularly nowadays one might even dare say that CSS has become fun again - with many previously tedious tasks becoming easier than ever. Jeff Sandberg tackles this in his essay:
[CSS is fun againCSS has been undergoing a quiet renaissance lately. Lots of big features which previously required an external tool to use, are now native parts of the language, and its growing more and more all the time. If you haven’t used CSS in a long time, for whatever reason, now is the time to take a look ag…Jeff Sandberg](https://pdx.su/blog/2023-10-25-css-is-fun-again?ref=gorillasun.de)
### A Visual Guide to CSS Selectors
In a related note, here's a comprehensive visual guide to CSS selectors by Sébastien Noël on fffuel:
[CSS Selectors: A Visual Guide & ReferenceVisual guide to CSS selectors, including pseudo-classes (:nth-child, :hover,...), functional pseudo-classes (:not, :is,...) and pseudo-elements.fffuel](https://fffuel.co/css-selectors/?ref=gorillasun.de)
If you've felt overwhelmed by the number of CSS selectors out there, and need a quick lookup for it, this is your solution. Furthermore, fffuel also boasts a massive list of different CSS tools that are worth checking out.
### Why you should never nest you Code
We resume our excursion into writing clean code, this time addressing the topic of nesting that often sits at the root of convoluted pieces of code. Reading nested structures can often quickly become a nightmare, the deeper you get the more memory you have to allocate in your brain to keep track of what the code is trying to do:
CodeAethetic's video tackles some solutions to this end, such as extraction, where inner parts of nested blocks are isolated within their own functions, and inversion, where return blocks are checked for first instead of appending them as else clauses towards the end of a daisy-chain of if statements.
This makes me curious, what are some of your favorite tricks to writing clean code? I never really thought about trying to optimize how I write code, but I'm realizing that having some standardized personal approach could go a long way, especially when I want to find my way back into older projects.
## AI Corner
### xAI releases Grok
Elon Musk is up to no good again, recently announcing the release of X's very own Large Language Model:
> *Grok \[...\] is modeled on "The Hitchhiker's Guide to the Galaxy." It is supposed to have "a bit of wit," "a rebellious streak" and it should answer the "spicy questions" that other AI might dodge*
[Elon Musk Debuts ‘Grok’ AI Bot to Challenge ChatGPT - Slashdot“xAI, Elon Musk’s new AI venture, launched its first AI chatbot technology named Grok,” reports CNBC. Two months into its “early beta” training phase, it’s “only available to a select group of users before a wider release” — though users can sign up for a waitlist. Elon Musk posted that the…Slashdot](https://slashdot.org/story/23/11/05/2111254/elon-musk-debuts-grok-ai-bot-to-challenge-chatgpt?ref=gorillasun.de)
What's interesting is that the model has access to Twitter data, which might lead to it behaving differently in comparison to the other big LLMs. But at the same time, it will also be locked behind the X Premium pay-wall.
### Understanding LLMs from 0 to 1
Ever wanted to really understand how LLMs work? A good starting point is AlphaSignal's ongoing series on the topic:
[](https://alphasignalai.beehiiv.com/p/understanding-llms-0-1?ref=gorillasun.de)
[Link to Article](https://alphasignalai.beehiiv.com/p/understanding-llms-0-1?ref=gorillasun.de)
There's only two parts to it so far, but it's very approachable - the first part of the series focuses on tokenization and embeddings, which are some of the essential methods required to feed text into machine learning models.
## Music for Coding
[Lamp (ランプ, *Ranpu*)](https://en.wikipedia.org/wiki/Lamp%5F%28band%29?ref=gorillasun.de) is a japanese indie band that was formed in the 2000s. In 2004 they released their second album titled *For Lovers* (恋人へ), and although it sold less copies than their first release it became a fan favorite over the years.
It's pretty difficult to categorize their style of music, since it's a mix of many different elements borrowed from jazz, pop, and also has some heavy bossa-nova undertones.
They're still active up until the present day, having released their ninth album just last month on the 10th of October 2023, titled *Dusk to Dawn* (一夜のペーソス).
**And that's it from me this week again, while I'm jamming out to some these tunes, I bid my farewells, and I hope this caught you up a little bit with some of the events in the world of generative art, tech and AI in the past week.**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Cheers, happy sketching, and hope you have a great start into the new week! See you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 28
URL: https://www.gorillasun.de/blog/gorilla-newsletter-28/
Last updated: 2023-10-30T10:14:51.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
Lots of stuff this week - let's get started!
### Concrete to Generative
Let's kick things off with another stellar piece of content by Le Random - this time authored by [Virginia Valenzuela](https://twitter.com/vinnythesnail?ref=gorillasun.de). She recounts the story of south America's 1940s Art Concret movement, and how it sits at the root of early generative art in the late 1950s with pioneering artists like [Eduardo Mac Entyre](https://en.wikipedia.org/wiki/Eduardo%5FMac%5FEntyre?ref=gorillasun.de) and [Miguel Ángel Vidal](http://www.artnet.de/k%c3%bcnstler/miguel-angel-vidal/?ref=gorillasun.de):
[Concrete to Generative: “Real Space” Explorations in South AmericaVirginia Valenzuela explores generative art’s roots in South American concrete art.Le Random](https://www.lerandom.art/editorial/concrete-to-generative-real-space-explorations-in-south-america?ref=gorillasun.de)
I've always found it fascinating how art movements of the past found their beginnings:
> Beginning in 1930s Argentina and Uruguay, artists were engrossed with the pursuit of a universal concept of beauty, one that rejected romance and metaphor. Instead, it relied on mathematical and scientific truths.
I believe that there's many lessons to be learned from the ideologies and guiding principles of past art movements, they're not completed chapters in history, but rather tangible approaches to making art from which we can still draw a cornucopia of ideas today. It also gives me confidence in my own art practice that is rarely emotionally inspired - *exploring ideas* lies at the foundation for me.
The Art Concret movement aims to *reject romance and metaphor*, Suprematism aims to *reduce art to its fundamental elements*, Cubism aims to *deconstruct and reassemble into abstract geometric forms*. All of these ideas are still viable today, and maybe more appreciated than they have ever been before.
If we've learned anything, art exists for itself, and it is perfectly fine to make art for the sake of art.
In other related news, they also shone spotlight Jared Tarbell this week in a nice thread, an important figure when it comes to generative art:
[](https://twitter.com/lerandomart/status/1717488220349366711?ref=gorillasun.de)
[Link to Thread](https://twitter.com/lerandomart/status/1717488220349366711?ref=gorillasun.de)
Support Le random and their mission.
### Bright Moments Buenos Aires
And while we're already talking about the art scene in South America, a notable event that is currently taking place in that part of the world is Bright Moments Buenos Aires:

[Link to event Calendar](https://www.brightmoments.io/buenosaires?ref=gorillasun.de)
They've got an impressive lineup of people for the workshops and talks, if you're currently over there you might want to check it out (not sure about the details for participating) - we'll certainly be seeing more of it on Twitter in the coming days!
What's also exciting is the fx(hash) powered live-minting event - one stand out piece that I've come across a couple of times on social media already is Kali's COSMIK:

Live-minting basically means that you can mint a generative fx(hash) token right on the spot at the venue, which became much more exciting with fx(params) that allows collectors to configure their own individual outputs. Kali's piece takes this further by being a hands-on interactive piece where the collector can draw sprawling neon shapes directly onto a gigantic canvas - here's a demo posted by Kali himself:
0:00
/0:26
1×
[Link to Tweet](https://twitter.com/kali%5Fshade/status/1712638049216024984?ref=gorillasun.de)
Also check out Julian Puppo's piece that takes a similar approach to parametrized live-minting:
[](https://twitter.com/julian%5Fpuppo/status/1717205955513893345?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/julian%5Fpuppo/status/1717205955513893345?ref=gorillasun.de)
### fxhackathon winners announcement
Aand while we're talking about fx(hash) - they recently announced the winners of the fx(hackathon) that ran for quite a while and brought force quite a few super innovative pieces of generative art:
[](https://twitter.com/fx%5Fhash%5F/status/1717268265188380729?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1717268265188380729?ref=gorillasun.de)
What's more is that we'll also get a closer look at each one of the projects in the coming weeks with some commentary by the judges - really excited for that:

I have yet to experiment with code-driven parameters, but some ideas are already cooking.
### Processing Community Day Belgrade
In a different part of the world - the creative coding Avengers assembled for the Processing Community day in Belgrade. You're probably already familiar with them as they've had multiple cameos throughout the past newsletter issues and other articles on the blog:
[](https://twitter.com/alexis%5Fo%5FO/status/1717645900539957340?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/alexis%5Fo%5FO/status/1717645900539957340?ref=gorillasun.de)
### Graph 2.0 by Feral File
And if Aleksandra hasn't been up to enough shenanigans yet - she's also taking part in Feral File's +GRAPH a sequel to 2022's -GRAPH, a group show that primarily revolves around plotter based pieces:
[](https://twitter.com/pointline%5F/status/1716834778253873388?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/pointline%5F/status/1716834778253873388?ref=gorillasun.de)
The lineup is definitely something to look forward to. Some of the artists have already made some teasers for the pieces that will be part of the final curation:
[](https://twitter.com/v3ga/status/1717229278855860637?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/v3ga/status/1717229278855860637?ref=gorillasun.de)
[](https://twitter.com/Licia%5FHe/status/1717988241738019098?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Licia%5FHe/status/1717988241738019098?ref=gorillasun.de)
While looking into it I also came across this tweet by Licia He in which she points towards some resources for learning how to use plotters - especially for the purpose of water color drawings, one being an interview with her from 2020:
[How to Watercolor Paint with a Robotic Drawing Machine: An Interview with Licia HeWhen I first started plotting my generative designs, I initially turned to Instagram to find other plotter artists. One of the first people I ended up following was Licia He who has tuned her Axidraw into creating stunning generative watercolor paintings. In this interview, Licia gives a breakdown o…Dirt Alley DesignMichelle Chandra](https://www.dirtalleydesign.com/blogs/news/how-to-watercolor-painting-with-a-robotic-drawing-machine-an-interview-with-licia-he?ref=gorillasun.de)
And another by Lars Wander on watercolor pen plots:
[Watercolor (Pen) Plots](https://larswander.com/writing/watercolor-plots/?ref=gorillasun.de)
Lars Wander on making watercolor pen plots.
### Anna Carreras on Spanish mainstream TV
Anna Carreras shared a clip ffrom Spanish mainstream TV in which she tlaks about generative art, and it's a really lovely watch - she added English subtitles to follow along:
[](https://twitter.com/carreras%5Fanna/status/1717848168333983868?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/carreras%5Fanna/status/1717848168333983868?ref=gorillasun.de)
0:00
/2:06
1×
We need more video content like this about generative art, the scene still largely exists in a Twitter bubble, with other small communities dispersed across the internet. I think that would be one of the strongest ways to reach a wider audience.
### Face-tracking Shenanigans
After sharing Steve's Makerspace posenet physics shenaningans - I coincidentally came across a couple of works that make use of face tracking for creative applications - one by the OG Golan Levin:


[Link to Tweet](https://twitter.com/golan/status/1716304117054812531?ref=gorillasun.de) | Daniel Schiffman links to another template in the replies of the tweet that uses ml5 for this purpose. If you want to experiment, that's your starting point.
At the same time Yiwen Lin has also been experimenting with face tracking:
[](https://twitter.com/yiwen%5Flin/status/1716849332903702532?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/yiwen%5Flin/status/1716849332903702532?ref=gorillasun.de)
He was inspired by Rare Volumes interactive portrait installations:
[SK-II Future X Smart Stores - Rare VolumeA collection of interactive video walls that generate realtime responses to visitors’ emotions.Rare Volume](https://rarevolume.com/work/sk-ii/?ref=gorillasun.de)
### P5JS New Version Release
And to close off this week's generative art news we also get a new version of P5 with quite a few new features:

[Link to Tweet](https://twitter.com/4444ian/status/1717600756025762013?ref=gorillasun.de)
## Shoutout from Anna
A couple of weeks ago I did an interview with Anna - the prolific NFT collector that's made it her mission to support as many artists as possible in the Tezos NFT and generative art space - if you haven't read that post yet, here's a link:
[A conversation with Anna the NFT collectorAnna began collecting NFTs on the Tezos blockchain in May 2021 at the peak of the HEN boom. She has since grown an impressive following and become one of the biggest forces of positive change in the space. This is her story.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-conversation-with-anna-the-nft-collector/)
Last week she honored me with a post in her biography series where she regularly gives shoutouts to content creators in the space - and I was honestly flattered by the response to the post and the kind words that people left in the replies:

Thank you Anna for the contributions you do to the space!
## Weekly Web Finds
### The Internet Archive by Neal Agarwal
After breaking the internet with his (impossible) password game, Neal Agarwal is back with another super cool webpage - this time he presents notable moments of internet history by presenting certain artifacts that have remained over the years:

The first emoji set in 1997
[Internet ArtifactsBrowse through the old internet](https://neal.fun/internet-artifacts/?ref=gorillasun.de)
Starting from the first spam email, to early web photos and gnarly webcams, up until the Impossible Quiz in 2007 - it's a whirlwind tour of nostalgia. I definitely had a bunch of fun going through the entries and learning something new along the way as well. If you have a couple of minutes check it out.
Neal Agarwal's projects make the internet a better place.
### The 5 Levels of Readable Code
After sharing an article titled [On the importance of Naming in Programming](https://wasp-lang.dev/blog/2023/10/12/on-importance-of-naming-in-programming?ref=gorillasun.de) last week - in which Martin Sosic argues that readable code boils down to choosing meaningful variable and function names - I went down a little bit of a rabbit hole on code readability when I came across another article that presents a different approach to evaluating code readability:
[The 5 Levels of Readable CodePhoto by Greyson Joralemon on UnsplashRecently I’ve been thinking a lot about code readability. What does it mean for a piece of code to be readable? Is it p…Carlos Schults / BlogCarlos Schults](https://carlosschults.net/en/fivel-levels-readable-code/?ref=gorillasun.de)
Carlos Schultz proposes an objective model that divides code readability into 5 tiers of complexity - starting from the basics, like using meaningful names for your variables and functions, to more abstract concepts,
I can't necessarily say that it's a good or bad framework - Schultz points out towards the end that the article is meant as a conversation starter in any case. *I knew that code readability was a big topic* \- what I wasn't aware of were the vastly different opinions on the subject matter and that there's so many different approaches to framing the problem - for instance, I also found an interesting article by Typical Programmer back from 2018 titled 'What does code readability mean' that tries to get to the root of the problem:
[](What does code readability mean?)
What does code readability mean? | [Article by Typical Programmer](What does code readability mean?)
I'm not currently involved in any larger code projects - except my own endeavors, which can hardly be called large code projects - but I do run into the issue of unreadable code, especially when I'm trying to read a piece of code that I've written some time ago. Usually the more time goes by the more unreadable it becomes 😅
One thing that I found enlightening from Schultz's article is the notion of 'magic numbers' that I often succumb. Magic numbers are basically hard coded numeric values in the code that aren't descriptive in any manner:
[What are magic numbers and why do some consider them bad?What is a magic number? Why do many programmers advise that they be avoided?Stack OverflowAdam Davis](https://stackoverflow.com/questions/47882/what-are-magic-numbers-and-why-do-some-consider-them-bad?ref=gorillasun.de)
Carlos Schultz has written a number of other posts on the topic that I also found interesting if you want to check them out for yourself:
[How To Reduce Cyclomatic Complexity: A Complete GuideEditorial note: I originally wrote this post for the LinearB blog. You can check out the original here, at their site. While you’re there, take a look at th…Carlos Schults / BlogCarlos Schults](https://carlosschults.net/en/reduce-cyclomatic-complexity/?ref=gorillasun.de)
So it seems that code readability is a bit of meta science that definitely tickles my nerd fancy - but then again I don't know if readability really matters that much when it comes to creative coding and generative art, if you're not collaborating with someone else.
### The Economics of Porgramming Languages
How do programming languages come to be? Who are the people that create programming languages? Why do they make programming languages? And most importantly - how do they fund their endeavors?
All of this is addressed in another stellar talk from Strange Loop 2023 is by Evan Czaplicki, creator of the Elm programming language, in which he talks about the Economics of creating a programming language and the hardships of it:
## AI Corner
### Data Poisoning generative Image Models
Nighshade has made the headline of quite a few major news sites in the past week - it's a new tool that allows artists to add invisible changes to the pixels of their artworks which could potentially be detrimental to generative image models if they're fed in as training data:
[This new data poisoning tool lets artists fight back against generative AIThe tool, called Nightshade, messes up training data in ways that could cause serious damage to image-generating AI models.MIT Technology ReviewMelissa Heikkilä](https://www.technologyreview.com/2023/10/23/1082189/data-poisoning-artists-fight-generative-ai/?ref=gorillasun.de)
This is mainly aimed at generative text to image models - the technique that makes this *poisoning* attack possible is apparently called an adversarial perturbation - and as far as I understand aims at confusing the generative model in such a manner that it can't differentiate between different things with clear certainty anymore:

Essentially asking for an image of a dragon would then simply lead to colorful pixel mess. The authors state:
> We show that a moderate number of Nightshade attacks can destabilize general features in a text-to-image generative model, effectively disabling its ability to generate meaningful images.
I'm not entirely certain if this is related to the one pixel attack that I shared in a previous issue of the newsletter. Although it's a cool idea, I'm not entirely convinced of the efficacy of this - my hunch is that researchers at the companies behind the generative image models probably have means to detect this kind of tampering.
### Managing AI Risks by Geoffrey Hinton
Geoffrey Hinton has been a strong proponent of AI regulations in recent years with the big strides that have been made in the field. On Twitter he announces a new paper, titled [Managing AI Risks in an Era of Rapid Progress](https://managing-ai-risks.com/?ref=gorillasun.de):
[](https://twitter.com/geoffreyhinton/status/1717967329202491707?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/geoffreyhinton/status/1717967329202491707?ref=gorillasun.de)
> In this short consensus paper, we outline risks from upcoming, advanced AI systems. We examine large-scale social harms and malicious uses, as well as an irreversible loss of human control over autonomous AI systems. In light of rapid and continuing AI progress, we propose urgent priorities for AI R&D and governance.
### Andreessen's Techno Optimist Manifesto
The Andressen saga resumes - he is back with another piece of writing titled Techno Optimist Manifesto:
[The Techno-Optimist Manifesto | Andreessen HorowitzWe are told that technology is on the brink of ruining everything. But we are being lied to, and the truth is so much better. Marc Andreessen presents his techno-optimist vision for the future.Andreessen HorowitzMarc Andreessen](https://a16z.com/the-techno-optimist-manifesto/?ref=gorillasun.de)
If you've followed the newsletter for a while you probably know my thoughts on this.

## Gorilla Updates
You've already seen the sketch in the header - a continued endeavor from last week, in which I combine domain warping with grid like structures:

I took this a bit further by making the individual rectangles more interesting, breaking them up into smaller parts and interpolating between colors:


Left without grain, right with grain.
And I'm really happy with how it turned out - it feels very *retro* in some way and at the same time also feels very Gorilla Sun. And although I feel very confident about the compositions and aesthetic, I'm again at a point where I'm not entirely certain if I should go with the grainy route or not. Thoughts? And that's about as much sketching I could get in this week.
## Music for Coding
Seth Haley makes music under the alias of 'Com Truise' - a spoonerism of the of the name of American actor Tom Cruise. Com Truise makes his debut in 2010 with his release title Cyanide Sisters; previously having made music under other pseudonyms, it was the Com Truise project that started to generate buzz - later signing with the famous electronic label Ghostly International.
Another artist that has a completely unique sound - Com Truise makes heavy use of retro-futuristic, synth driven, elements to create lush sonic tapestries with a nostalgic charm, that never fail to transport me into a different era:
> *“I think the main thing that separates me from some of my peers is that I didn’t necessarily want to sound like I was writing ’80s music. I wanted to take the technology used in that decade and try to make something new with it.”* — Com Truise
**And that's it from me this week again, while I'm jamming out to some Com Truise I bid my farewells.**
**Hope this caught you up a little bit with the events in the world of generative art, tech and AI of the past week! And I hope you have a lovely rest of the day and a great start into the week - I definitely am!**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Otherwise - Cheers, happy sketching, and see you in the next one - Gorilla Sun 🌸**
### Gorilla Newsletter 27
URL: https://www.gorillasun.de/blog/gorilla-newsletter-27/
Last updated: 2023-10-23T11:32:41.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
We've quite a few interesting developments again over the course of the past week - let's dive in 👇
### ONCHFS by Fxhash
Fxhash drops the mic yet again, and surprises us with a big new feature: ONCHFS. What disguises itself as a bit of a tongue twister is actually an impressive piece of web3 technology - as an alternative to IPFS, minting projects on fxhash can now be done fully on-chain:
[](https://twitter.com/fx%5Fhash%5F/status/1714360008182546931?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1714360008182546931?ref=gorillasun.de)
What's so cool about an on-chain file system? It opens up so many new possibilities and creative ways to make generative tokens on fxhash. Although both are decentralized methods of storing files, the immediate first improvement over IPFS is that you no longer have to worry about pinning your files to ensure that they're available in the future - by virtue of being written to the blockchain they're essentially always pinned.
What's more, as a consequence of ONCHFS being designed in such a manner that it can easily be served via the HTTP protocol, files can reference other files stored with ONCHFS. That also means files on one blockchain can reference assets stored on **other blockchains.**
[](https://twitter.com/VES3L/status/1714526798971650320?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/VES3L/status/1714526798971650320?ref=gorillasun.de)
Just 24 hours later many cool projects had already been minted, fxhash also published a thread talking about that:
[](https://twitter.com/fx%5Fhash%5F/status/1714779937020993729?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1714779937020993729?ref=gorillasun.de)
What's also worth mentioning here is landlinesart1 project titled [Blockchain Automaton](https://www.fxhash.xyz/generative/slug/blockchain-automaton?ref=gorillasun.de) that was a very early attempt at on-chain generative art for fxhash:
[](https://www.fxhash.xyz/generative/slug/blockchain-automaton?ref=gorillasun.de)
Link to Blockchain Automaton
### reGEN by Artblocks
Another valuable use-case of blockchain technology that's noticeably become more prominent in recent years is the ease of revenue splitting with smart-contracts.
Not only for collaborations between artists, and/or the creation of web3 [breadfonds](https://www.gorillasun.de/blog/how-to-set-up-a-breadfond/), but especially when it comes to charitable causes - the donation process is greatly simplified: artists now only have to indicate that a percentage of earnings needs to be sent towards the charity's wallet address. This way the money doesn't have to go through a middle-man anymore, it goes directly and securely to the charitable organization.
Looking beyond the problem that in some parts of the world it might still be quite difficult to cash out cryptocurrencies - I think that it's one of the use-cases that speaks favorably about blockchain tech amidst much of the bad rep it gets in other regards. Now even if artists don't have a large profile, they can contribute to a good cause and use their art as a force of positive change. And we've seen this on several accounts already.
This past week we observe Art Blocks use generative art as an instrument to raise funds against Alzheimer, with a lineup of 5 pieces from 5 stellar artists:
[](https://twitter.com/artblocks%5Fio/status/1713933457309528185?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/artblocks%5Fio/status/1713933457309528185?ref=gorillasun.de)
You can read more about the initiative in this article by RCS covering the important facts:
[reGEN | Generative Artists Fighting Degenerative DiseasesArt Blocks unites creators and collectors in the fight against Alzheimer’s diseaseGenerative Artists Fighting Degenerative DiseasesAlex Estorick and Ana María Caballero](https://www.rightclicksave.com/article/regen-generative-artists-fighting-degenerative-diseases-artist-interview-alzheimers?ref=gorillasun.de)
### Sketchbook A by William Mapan
If I missed any other important news this week - blame's on [William Mapan](https://twitter.com/williamapan?ref=gorillasun.de). In the past days, every second tweet in my timeline had something to do with Mapan's newest release on Verse - Sketchbook A:



[Some outputs from the Sketchbook A generator. There's other colors, but I really enjoyed these pink ones. You can try out the generator for yourself here (you need a verse account however)](https://verse.works/collections/sketchbook-a-by-william-mapan?outputHash=58a14360e484340e206269d1dd244ac085eb6e6382d47a33a1d6195325a871e1&ref=gorillasun.de)
If you haven't caught wind of it yet - how?
Besides Sotheby's auction of the Goose earlier this year, this is arguably one of the wilder #genart events that we'll experience - with auctions for the mint passes reaching astronomic price tags during the bidding wars on verse, as well as record breaking numbers of iterations generated by users on their interface:
[](https://twitter.com/chilltulpa/status/1715064925138116945?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/chilltulpa/status/1715064925138116945?ref=gorillasun.de)
The way minting an iteration from Sketchbook A works is by means of a mint pass: being a holder makes you eligible for minting an iteration from the generator (that is if you can get your hands on one these mint passes). On verse you can then play around with the generator and produce as many outputs as you like, save the ones you particularly enjoy and then ultimately decide on the output that you'd like to eternalize as your token.
In this manner an interesting collector curated collection emerges in a way that we haven't really seen before:
[](https://verse.works/collections/sketchbook-a-by-william-mapan?outputHash=11b0aa05f701124ddd1adcfb18207ee2f2805f6cae5d290371b378cf7b7f312c&ref=gorillasun.de)
Not all passes have been minted at the time of writing this | [Link to Collection](https://verse.works/collections/sketchbook-a-by-william-mapan?outputHash=11b0aa05f701124ddd1adcfb18207ee2f2805f6cae5d290371b378cf7b7f312c&ref=gorillasun.de)
What's more is that Sketchbook A is the first piece in William Mapan's two part series titled Intimacy. Le Random, always on top of these things, already squeezed in an interview with Mapan, asking questions about the motivation and meaning behind this series:
[William Mapan on Breaking the MediumWilliam Mapan converses with Peter Bauman (Monk Antony) about the deep connections he maintains with his algorithms.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/william-mapan-on-breaking-the-medium?ref=gorillasun.de)
Sketchbook A reflects Mapan's intimate relation with his art, his audience, and draws them in even closer by giving them full control over the final collection.
In fact, it's actually not the first time that Peter and William Mapan talk to each other, here's a RCS piece that dates back to the early days of fxhash, focusing in part on Mapan's stellar piece Dragons:
[Generative Art and the Decentralization of CreativityPeter Bauman detects an emerging paradigm of communal art practiceFoteini Valeonti and Alex Estorick](https://www.rightclicksave.com/article/generative-art-and-the-decentralization-of-creativity?ref=gorillasun.de)
It's interesting to see how Mapan's ideas have evolved over the past two years. Other details can also be gathered from this [Twitter space](https://twitter.com/verse%5Fworks/status/1715418948416545174?ref=gorillasun.de).
### Loackme on Dithering
Loackme's back at it again, doing what he does best - dithering stuff!
He recently released a stunning piece on Foundation titled 'that cycle, it's endless'. At first glance it might just seem like a couple of spheres rotating around a central point, but a closer look will reveal that the shadowy spheres are subject to a different kinds of dithering. Loackme talks about how it's achieved in this thread of his:
[](https://twitter.com/loackme%5F/status/1715017117760692496?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/loackme%5F/status/1715017117760692496?ref=gorillasun.de)
I think it's a really creative way of using the effect. Usually dithering is applied in a global manner to the entirety of the pixel array that makes up an image or a frame - doing it on a per object basis is really cool.
He also mentions that the idea was inspired by a game titled [Return of the Obra Dinn](https://en.wikipedia.org/wiki/Return%5Fof%5Fthe%5FObra%5FDinn?ref=gorillasun.de) (it's been on my to-play list for way too long now) - it's from the same creator of the stellar indie game [Paper Please](https://en.wikipedia.org/wiki/Papers,%5FPlease?ref=gorillasun.de), Lucas Pope. Digging a bit further into the topic, I found this thread from 2017 in which Lukas documented his approach to dithering during the development of the game:
[](https://forums.tigsource.com/index.php?topic=40832.msg1363742&ref=gorillasun.de#msg1363742)
[Link to Thread](https://forums.tigsource.com/index.php?topic=40832.msg1363742&ref=gorillasun.de#msg1363742)
Here's also another tutorial that takes inspiration from the game, and also tackles dithering with shaders:
[Ultra Effects | Part 9 - Obra DitheringSea shaders on the seashoreDaniel Ilett: Games | Shaders | TutorialsDaniel Ilett](https://danielilett.com/2020-02-26-tut3-9-obra-dithering/?ref=gorillasun.de)
### Quentin Hocde on Codrops
Quentin is not only a very talented generative artist, but he's also got a track record for making really cool websites. It's notoriously difficult to make things look good when you're attempting anything more involved than a standard website - Quentin has really mastered his craft in that regard, recently being featured on the Codrops roundup for cool websites:
[Inspirational Websites Roundup #51 | CodropsA fresh collection of carefully chosen websites that stand out for their exceptional design.CodropsManoela Ilic](https://tympanus.net/codrops/2023/10/20/inspirational-websites-roundup-51/?ref=gorillasun.de)
They cover some really cool websites in their roundups - if you're looking for inspiration that's the resource you'll probably want to consult.
[](https://quentinhocde.com/?ref=gorillasun.de)
[Check out Quentin's site here.](https://quentinhocde.com/?ref=gorillasun.de)
The presentation of the projects he's worked on is also very stylish - here's his collaboration with Joanie LeMercier where they joined forces to create a cloud machine with plottable outputs as the first fxhash redeemable:

[Link to project page.](https://quentinhocde.com/project/nuages-possibles/?ref=gorillasun.de)
Aaaand luckily I still caught this before sending out the newsletter - go show Quentin some love by voting for his website for awwwards (I talked about Awwwards in last week's newsletter):
[](https://twitter.com/QuentinHocde/status/1716415064037535837?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/QuentinHocde/status/1716415064037535837?ref=gorillasun.de)
### Steve's Makerspace motion controlled physics game
When I still was a young lad, my mom would often take us on Friday afternoons to the store for some grocery shopping. While she was doing that, we would usually hang out in the kids section and check out the toys that they had there. We're talking 2004-2005 here.
One of those days, lo and behold, they had set up a large TV screen plugged into a PS2 alongside the newly released eyetoy. And you could try it out for free. I can remember that day very vividly because the concept completely blew my mind at the time - they had a bunch of different games, in one of which you had to wave around your hands frantically to fend off little ninjas that were trying to attack your virtual self on the screen.
This past week I saw a tweet by Steve, aka Steve's Makerspace, that brought back a lot of nostalgia:
[](https://twitter.com/SteveMakerspace/status/1713552374596239585?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/SteveMakerspace/status/1713552374596239585?ref=gorillasun.de)
Combining PoseNet with P5Play he creates a little interactive physics game in which he can use the outline of his body to interact with the circles on the screen. PoseNet is a neural network that does Pose estimation, basically creating a skeletal outline for the body of subjects present in the input video feed.
If you want to learn how to recreate this - Steve also makes video tutorials on most of his creations:
Go give him a follow on Youtube!
## Weekly Web Finds
### On the Importance of Naming in Programming
Naming variables and functions is something that every dev struggles with at some point in their career. Martin Sosic argues that 90% of writing clean code boils down to naming things correctly, and goes on a deep dive into what that actually means. It turns out that the two are actually reciprocal - one cannot exist without the other:
> The thing is, **you can't give a good name if you don't have clean code behind it**. So a bad name is not just a naming mishap, but often also an indicator of problematic code behind it, a failure in design. Code so problematic, that you don’t even know what to name it → there is no straightforward name to give to it, because it is not a straightforward code!
[On the Importance of Naming in Programming | WaspIn stories, you will often find the motif of a powerful demon that can be controlled only by knowing its true name. Once the hero finds out that name, through cunning dialogue or by investigating ancient tomes, they can turn things around and banish the demon!.wasp (beta)Martin Sosic](https://wasp-lang.dev/blog/2023/10/12/on-importance-of-naming-in-programming?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Martin provides several examples of badly named things and walks us through his process of fixing them.
I love this article - incredibly insightful. Now go an give your variables some good ass names.
### Return to Office is Bullshit
Last week I came across this article that talks about how RTO - short for Return to Office - is a whole lotta BS:
[Return to Office Is Bullshit And Everyone Knows It - Dhole MomentsI quit my job towards the end of last month. When I started this blog, I told myself, “Don’t talk about work.” Since my employment is in the rear view mirror, I’m going to b…Dhole MomentsView Archive →](https://soatok.blog/2023/10/02/return-to-office-is-bullshit-and-everyone-knows-it/?ref=gorillasun.de)
Before we talk about the article, can we take a moment and appreciate what a spicy mix of content this blog is? Software, Security, Cryptography, and Furries. You read that right. Furries.
Digging around a bit more in Dhole Moment's about section, the author Soatok took some time to explain how this constellation of different topics emerged:
> First, it’s my blog, I do what I want with it. 😛
Jokes aside - I can really appreciate people with a good amount of backbone:
> Second, **representation matters**. People who feel nervous being open and authentic about *who they are* (especially junior developers) will feel even more pressure to remain hidden (to their own detriment) if no one is relatable to them.
> So, I promise, I’m not being loud about my identity or interests to spite you. I’m doing it to comfort people like me. And that distinction matters.
Behind every blog there's an identity, and the internet would be a very boring place if everything was clinically corporate. I've often thought about writing about some of the other things that I like. Besides coding and generative art, I enjoy a lot of other things in life: music, chess, fitness, and sometimes I'm also a little bit of an otaku. How do you reconcile all of these things under one Umbrella?
What would people think if I simply started posting about my favorite chess openings starting tomorrow? Or if I started writing about training methods to increase your max deadlift?
That's why I totally get Dhole Moments, and I love it. Alright, that said, this marks the end of this brief intermission - what I actually wanted to talk about is the article about RTO.
Having worked fully remote since 2014, Soatok did not have to get used to working from home when COVID-19 forced everyone to adopt this new lifestyle. Things changed however when his company tried to enforce an RTO policy, even for employees that worked remotely prior to the pandemic. This didn't leave Soatok much choice - he explains why these draconian measures are going to fail in the longterm.
I thoroughly enjoyed the article, and there's a lot more articles worth going through - even if you don't know anything about cryptography, or furries, it's all written in a very approachable manner:
[Programmers Don’t Understand Hash Functions - Dhole MomentsProgrammers don’t understand hash functions, and I can demonstrate this to most of the people that will read this with a single observation: When you saw the words “hash function”…Dhole MomentsView Archive →](https://soatok.blog/2021/08/24/programmers-dont-understand-hash-functions/?ref=gorillasun.de)
[Going Bark: A Furry’s Guide to End-to-End Encryption - Dhole MomentsGovernments are back on their anti-encryption bullshit again. Between the U.S. Senate’s “EARN IT” Act, the E.U.’s slew of anti-encryption proposals, and Australia’s ne…Dhole MomentsView Archive →](https://soatok.blog/2020/11/14/going-bark-a-furrys-guide-to-end-to-end-encryption/?ref=gorillasun.de)
### Oort a Programming Game
Last week I discovered the "programming game" called Oort. You basically play the game by writing Rust code.
And it seems that it's not for the faint of heart, not just because you need to know Rust to play but also because the required knowledge to play the game can get quite technical. Before investigating the game a bit further I had a look at some reddit comments about it:
> I got up to the third equation of kinematics and I think I'm too dumb for this.
[](https://oort.rs/?ref=gorillasun.de)
[Link to Oort](https://oort.rs/?ref=gorillasun.de)
So, what's this all about? In Oort you essentially control a fleet of spaceships (with code) where the objective is to shoot asteroids that approaching your ship, or a planet that you're defending. Again, you have to program all of this, how your ships move, how they detect approaching Asteroids, and how missiles track down and blow up the approaching asteroids. You basically have to code the AI that controls your fleet.
Oort makes you make the game.
To take things even further, there's PVP! In this setting players' fleets will be pitted against each other in a planetary defense scenario and ranked on a leader-board depending on how well they perform. What I really enjoyed here are the write-ups that some of the contestants made explaining their strategies and approaches:
[](https://github.com/rlane/oort3/wiki/Tournament-Writeup-2023%E2%80%9009%E2%80%9011?ref=gorillasun.de)
Flow field cameo | [link to writeups](https://github.com/rlane/oort3/wiki/Tournament-Writeup-2023%E2%80%9009%E2%80%9011?ref=gorillasun.de)
I don't know how many of you actually know how to code in Rust, but if you do, you might want to give Oort a shot. I might actually give it a shot, could be a good reason to pick up Rust.
### CSS Relative Color Syntax
The CSS relative color syntax is a powerful new way for manipulating colors, shifting their hue, changing their saturation, etc.
[CSS relative color syntax - Chrome for DevelopersCreate new colors based on another color’s channels and values.Chrome for DevelopersAdam Argyle](https://developer.chrome.com/blog/css-relative-color-syntax/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Unfortunately it's only available on Chrome 119 and on Safari 16.4 and up at this point. But you still might want to check it out in before it gets more support.
## AI Corner
### Let's not Celebrate Being Wrong
Although generative models have been met with resistance in the creative fields, due to some of the dubious practices of som of the large companies that make these models possible, they have also been celebrated to some extent for opening many venues and creative applications that weren't possible before.
When we talk about the output of generative AI, we often use the term describe them as hallucinations. This label might work when the goal is to generate a bunch of funny images, but the word 'lie' might be more appropriate when it comes to spreading misinformation. Sam Altman, CEO of OpenAI, recently stated that these hallucinations are *more feature than bug*:
[OpenAI’s Sam Altman tells Salesforce’s Marc Benioff that AI ‘hallucinations’ are more feature than bugThe public face of generative AI told the head of Salesforce Inc. on Tuesday said AI hallucinations are more a feature of the technology than a bug.MarketWatchWallace Witkowski](https://www.marketwatch.com/story/openais-sam-altman-tells-salesforces-marc-benioff-that-ai-hallucinations-are-more-feature-than-bug-1c035c52?ref=gorillasun.de)
If we want to build reliable AI models we'll have to come up with solutions that address this problem. We've already seen many problems of making these powerful tools accessible to the public (check out past Newsletter issues).
And there's still a lot of misunderstanding of how these models actually work. If you ask ChatGPT to tell me about it some fictitious paper there's a good chance that it will just make things up and provide an answer, even if that paper doesn't exist. ChatGPT is really good at producing answers that *look correct*. It does not however understand what it is actually telling us, even though it might seem like it. At best it's just a gigantic and impressive statistical model.
Oliver Bown from The MIT Press speaks up on this topic with a fascinating article tackling what makes human creativity so special and how we are still far from reaching that with generative AI models:
[“Hallucinating” AIs Sound Creative, but Let’s Not Celebrate Being WrongThe term “hallucination,” which has been widely adopted to describe large language models (LLMs) outputting false information, is misleading. Its application to creativity risks compounding that.The MIT Press ReaderThe MIT Press Reader](https://thereader.mitpress.mit.edu/hallucinating-ais-sound-creative-but-lets-not-celebrate-being-wrong/?ref=gorillasun.de)
> That’s because LLMs are not models of brains, but of *language itself*, its patterns, structures, and probabilities. At heart their job description is incredibly simple: Given some text, they tell us what text comes next.
### New Words by Ryan Murdock
I was recently checking what [Ryan Murdock](https://twitter.com/advadnoun?ref=gorillasun.de) has been up to, probably better known as Adverb on Twitter and as the creator of the original text-to-image "Big Sleep" notebook. I found that he's been back at it, joining forces with Joel Simons, and using AI for creative purposes - this time using LLMs to create new words that express things for which we currently don't really have simple, one word descriptors.
Here's an example from their project page:

I have definitely felt bambooged a couple of times in my life. Also, screw that red underline my editor is putting underneath bambooged.
You can check the project page out here if you want to learn more:
[New WordsNew Words. An art/research work by Joel Simon & Ryan Murdock.](https://joelsimon.net/new-words.html?ref=gorillasun.de)
## Gorilla Updates
### Hot off the Press
This time around I interviewed pxlshrd - and we have a lovely conversation in which we connected on so many shared interests. We ended up talking a lot of music, especially about about how it inspires his process for making generative art:
[In conversation with pxlshrd - Between Music and GenartPxlshrd is a generative artist that draws inspiration from music. Having created an impressive number of generative pieces on fx(hash), he has a lot of insights to share on the process. This is the story of pxlshrd.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/)
We talked about many other topics, such as the story behind his Tender piece "Rückkopplung", and how he the piece magically came together in a couple of moments after being stuck for a long time. Check it out, and check out pxlshrd's stuff, it's all really awesome!

Why aren't you subscribed yet 🔫 do it | thanks for the shoutout CCDDBB!
### Fresh off the easel
My best ideas always come in a very short period of time. This one was such a sketch:


Deformed and way grid patterns.
I often think about grid patterns, and ways to reinvent them in novel manners. This time I wanted to deform the grid in an organic manner, something I've never done before - how do you do this without a shader?
The way I did it was by splitting the rectangles into individual vertices at their corners, we don't modulate the position of these vertices per se, but rather we'll first split up the rectangle edges/borders into segments made out of several points - then we modulate their position. With a sine way you then get a nice wavy pattern, almost like a flying carpet.

I shared a few of them over on Twitter if you want to check it out.
## Music for Coding
I freaking love this band - I love their sound, I love their bandname, and I love how creative their music videos are. Although I can't understand the Norwegian lyrics, the music still speaks to me. I first discovered them back in 2016, at a time where I was struggling with a statistics course in uni and at the same time was dealing with a lot of teenage aggressions.
I really enjoyed their most recent music video - although it induced some claustrophobia, it's a banger:
**And that's it from me this week again, while I'm jamming out to some Kvelertak I bid my farewells.**
**Hope this caught you up a little bit with the events in the world of generative art, tech and AI of the past week! And I hope you have a lovely rest of the day and a great start into the week - I definitely am!**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Otherwise - Cheers, happy sketching, and see you in the next one - Gorilla Sun 🌸**
### In conversation with pxlshrd - Between Music and Genart
URL: https://www.gorillasun.de/blog/in-conversation-with-pxlshrd/
Last updated: 2024-08-28T13:36:44.000Z
**Pxlshrd is a sound engineer and musician turned generative artist. With a deep love for music and sound, pxlshrd draws most of his inspiration from an audible realm, subsequently translating his ideas onto the digital canvas by means of code. Having created an impressive number of generative pieces on fx(hash) - he's become a prolific artist in the space.**
You might better know pxlshrd as the creator of "Breeding Grounds" and the more recent "Rückkopplung" that was released in conjunction with Tender. After seeing the stunning outputs of Rückkopplung I reached out to pxlshrd asking if he'd be up to have a chat with me - and reading these words, you can probably tell what his answer was.
We instantly connected over a shared interest and love for music, having started out with generative art in a similar manner - a means to create visualizations for our musical endeavors. We spent a large portion of our conversation talking about the importance of music to him, and how it's become an integral part of his process. Furthermore we talk about the stellar Rückkopplung, the story of it's inception and the message that it tries to convey. Lastly we also touch upon the difficult topic of valuing art and what effects it has on the artistic process.
That said, thank you pxlshrd for the time and conversation - here goes the conversation.

Breeding Grounds | [Link to Token](https://www.fxhash.xyz/generative/11073?ref=gorillasun.de)
## Background
**Gorilla Sun: A short while after you had released your generative token collaboration with Mikkel Hartmann "Pause", you were invited to be on the Arbitrarily Deterministic podcast. In the episode you mention that prior to getting into generative art and the NFT space you had a long career as a sound engineer. How did you make the transition to generative art?**
pxlshrd: By profession, I'm a sound engineer, and I've been making music since I was 12 - besides that I've also done photography and graphic design in parallel.
When the pandemic started, it was a turning point in my life. I told myself that I'd use this break to get rid of all the things that I didn't want to do anymore - sometimes when you're doing live sound for a show you end up with 16-hour days, and that was just a bit too much for me.
Just like you I started creating sketches as a means to visualize my music. I have hundreds of musical sketches on tape lying around, and I just wanted to get them out there somehow - fx(hash) seemed like the perfect place for that.

pxlshrd's earlier pieces on FxHash feature hauntingly beautiful tracks | Greetings From Habitable Zones
In my first projects I’ve used Hydra Synth for the animations and after a while I started making static pieces with p5js. Creating static pieces requires a clear and confident vision on how to best capture their essence - much like saying "here's the output, and that's what this piece is about", I find it beautiful to work in such a manner. It's just a completely different way of thinking about the meaning of a generative system.
**GS: How did you discover** fx(hash)**? through Twitter?**
It was a tweet or comment by ciphrd, a few days after fx(hash) had launched.
**GS: At that point had you done any Tezos NFTs prior to that?**
Yeah, I actually had a couple of different aliases back then for different things, one of them was [headphaser](https://teia.art/headphaser?ref=gorillasun.de) where I did 3D stuff with Blender. There was absolutely no interest for it, although I was quite fond of them.

Now I don't do anything under that alias anymore. At that point, pxlshrd was just a side project for weird animated gifs.
**GS: How did pxlshrd start? Did you learn coding just for fx(hash)?**
PS: I knew about generative art, but I started coding with the launch of fx(hash).
**GS: You've done an impressive number of projects in the short period of two years!**
## On Generative Music
**GS: working as a sound engineer, you probably needed to know your way around computers. Have you ever attempted making generative music?**
PS: I did dabble a little bit in generative music, experimenting with [vcvrack](https://vcvrack.com/?ref=gorillasun.de) \- never with real euroracks - it was a fun experiment in [Klangkunst](https://en.wikipedia.org/wiki/Sound%5Fart?ref=gorillasun.de) (Sound Art), but it was hard for me to see it as real music. Though, I’ve used algorithmic composition in [Indistinct Places](https://www.fxhash.xyz/generative/20578?ref=gorillasun.de). Initially intended as “loading screen music”, it became an essential part of the piece later in the process.
**GS: Because it's not as structured as handcrafted compositions?**
PS: That too - but mainly because I couldn't really express myself with scripted music, I need to have a guitar or keyboard in my hands, something that lets me directly interact with it and allows me to rely on my intuition.
**GS: I understand what you mean - making music is a very emotionally engaged activity, with generative music you can't rely on intuition as much.**
PS: Yeah exactly, it's very interesting but I don't see it as music - it feels more like visual scripting... but with sound.
**GS: What do you think about Brian Eno's Music for Airports?**
PS: I mean it's a classic, I never listened to it deeply - although I'm a big fan of ambient music. Most of the time I listen to tape ambient stuff, where you make use of tape loops, multiple tape machines and send recordings back and forth between them. There’s a tiny label called [“Seil Records”](https://seil-records.com/?ref=gorillasun.de). I really vibe with almost all of their releases.
**GS: What do you think about AI-generated music? I've been noticing more and more AI-generated playlists popping up on YouTube.**
PS: I actually experimented a bit with one of those AI music platforms a few weeks ago - typing in something like "Boards of Canada wobbly tape soundscapes" and I thought that the generated results were quite decent.
Although I haven't come across those playlists, I guess it's kinda cool - if you have a specific type of music in mind, just like [Boards of Canada](https://en.wikipedia.org/wiki/Boards%5Fof%5FCanada?ref=gorillasun.de), and you want to hear more like it when there aren't really any other similar artists or tracks with the same vibe, you could just let AI generate it for you. But it's going to raise the same ethical questions just like AI-generated images did.
**GS: One of my favorite artists is** [**Tycho**](https://de.wikipedia.org/wiki/Tycho%5F%28Musiker%29?ref=gorillasun.de) **\- there really isn't anything that comes close to his music.**
PS: Yeah, i really like it too! Tycho's early stuff is very inspired by Boards of Canada, but it really is its own thing. I discovered Tycho’s first album like 20 years ago on MySpace \[laughs\]
**GS: Another thing I'm curious about - I believe that there's a big overlap between coders and musicians. Many coders that I meet and talk to are also coincidentally musicians. Maybe it's a sort of confirmation bias, but I find that there's a lot of parallels between the two practices.**
**When you play an instrument, like the guitar or the keyboard, it's a very geometrical way of operating, that requires you to think about scales and patterns, which is not so different from generative art.**
PS: There's a track by Boards of Canada titled "Music is math" - and music really is math, when you break it down.
Making music boils down to combining different sounds, selecting specific note sequences, and you end up making something bigger out of those components. It's similar in generative art, where you combine a variety of methods and different algorithms, and end up with something that is more than the sum of its parts.
But I don't think there is much difference in other creative practices, it's all based on the same foundation - on your experiences, what comes from the outside, and what it does with your mind and body - it all boils down to translating those ideas and feelings “onto paper” in a different way - so they're all just tools to express yourself.
**GS: That's interesting, I haven't thought about drawing parallels to other creative practices.**
## Audible Mood Boards
**GS: Let's backtrack a bit - when you minted your earliest works on fx(hash) why did you decide to do so alongside a musical track? Does the music add to the experience?**
PS: When you put together music and visuals, it often opens up another dimension, giving rise to something that is more than the sum of the parts - and at the same time conjures a very specific feeling and/or mood.
I use this as a sort of vibe check to push my projects forward. Starting with an initial idea, which can be a feeling, a concept, something abstract like human behavior or even black holes in space - I then ask myself *what would that sound like?* while searching for music that aligns with this initial idea.
If it ends up reinforcing the feeling that I'm trying to convey, it usually is an indicator that I'm on the right track. It tends to be this back and forth between the visuals and the music, which drives the idea forward.
**GS: On your** [**portfolio**](https://www.pxlshrd.xyz/?ref=gorillasun.de)**, you have a bunch of spotify playlists, are those the tracks that you listen to while making your art?**
PS: Exactly - I really enjoy putting together these playlists. They're quite varied, there's all kinds of genres on there. I also try to arrange them in a logical manner, such that the transitions from one track to the other somehow make sense.
[](https://open.spotify.com/playlist/52y7LSknW9h6o5ZZgPt2Kw?ref=gorillasun.de)
[Link to Playlist](https://open.spotify.com/playlist/52y7LSknW9h6o5ZZgPt2Kw?ref=gorillasun.de)
**GS: so overall your process tends to be more on the explorative side of things?**
PS: I never have overarching concepts when I start out, because I find that to be too constraining. But you do need an initial idea, like a specific technique that you'd like to explore for instance. In the initial phase, it's really important that you're open to receiving any and every idea that might strike, without constraining yourself with some pre-conceived notions.
**GS: In an article by Tyler Hobbs he states that one of the best things you can do, is to sit down and create new work, sometimes it's also okay if turns out to be garbage, after a few attempts you'll eventually find something interesting. So you try to explore and not force yourself too much.**
PS: Exactly! Trying to be as intuitive as possible is really the best way to make something bigger. That reminds me of jam sessions with bandmates and friends, where we improvise on ideas and things just come out of intuition. Naturally, we would also record it so that we can listen back to it afterwards and use some fragments from those jams as foundations for writing new songs.
[Reflections on Five Years of Making Art Through Programming — Tyler HobbsI recently passed the five year anniversary of when I started making generative art. This was also approximately when I decided to get “serious” about making art. It’s hard to take an exact count, but I think I’ve made 600+ generative works at this point. I think I’ve done okay for myself.Tyler HobbsReflections on Five Years of Making Art Through Programming](https://tylerxhobbs.com/essays/2019/reflections-on-five-years-of-making-art-through-programming?ref=gorillasun.de)
**GS: Since you're bringing up the notion of improvisation - in Jazz for example, although you have a lot of freedom, at the same time it's still very structured, working inside of a structured framework that guides you. What are some of the things that help you stay on track with your projects?**
PS: I have my toolbox of algorithms and techniques, like specific line drawing methods, that I've iterated on and that keep evolving with time. In a way that would be similar to the repertoire of a Jazz musician.
Backtracking a bit, the reason why I didn't start earlier with generative art was my assumption that code doesn't allow for an improvisational approach - intuition is really important to me - but after a while, I noticed that having a toolbox lends itself for that purpose.
**GS: Do you think you'll make animated pieces with music again at some point in the future?**
PS: I think about it all the time, but coding animations is just something so different. Every time I start on something, I lose interest really quickly. But I really love animated pieces - I'm a big fan of [Kim Asendorf](https://www.fxhash.xyz/u/Kim%20Asendorf?ref=gorillasun.de). I think his ability to grasp the "Zeitgeist" is unmatched.
[](https://www.fxhash.xyz/u/Kim%20Asendorf?ref=gorillasun.de)
[Kim Asendorf on fx(hash)](https://www.fxhash.xyz/u/Kim%20Asendorf?ref=gorillasun.de)
**GS: Will you attempt something in that style at some point?**
PS: Probably not, I'm more into organic-looking textures for my own animations.
## The story behind Rückkopplung
[](https://www.fxhash.xyz/generative/slug/ruckkopplung?ref=gorillasun.de)
[Rückkopplung | Link to Token](https://www.fxhash.xyz/generative/slug/ruckkopplung?ref=gorillasun.de)
**GS: You mentioned over on Twitter that you learned shaders for the purpose of Rückkopplung, how did that happen? Did you experiment with shaders prior to that?**
PS: With Rückkopplung, I wanted to try my hand at abstract expressionism. The initial idea started with the canvas API, and the final project still heavily relies on it. But it bored me at some point because all outputs looked the same, so it didn't really make sense to me as a long-form piece - I put it aside and worked on other sketches that were more promising at the time.
It must've been my 50th or 60th attempt at using shaders, after having tried countless times before to no avail. I finally had a breakthrough and it clicked for me.
I was implementing something like a liquefy effect on another project and thought that it could work well with the Rückkopplung idea - to maybe give it a more painterly texture. So I did that, and the texture turned out really nice, but the initial problem remained where all of the outputs still looked the same. That really bothered me and in a fit of anger I started typing all sorts of things into the coordinates of the texture; adding in sines and tangent functions, and changing a bunch of variables.
Then I refreshed... and there was Rückkopplung!
I thought to myself "Wow, that's it!" - and the project had gone from a boring idea to 95% finished in just a few moments. The following months I simply worked on the micro-details and palettes.

An early output from Rückkopplung
**GS: At what point did the feedback effect come into play?**
PS: That's actually the technique that I discovered during those couple of minutes!
**GS: That's fascinating! I also really loved the description of the project, did the story evolve alongside the project?**
PS: When the echoing patterns emerged after that magical moment, I didn't know what the piece was trying to tell me. It took a few weeks for me to fully grasp what it was reflecting. That’s the beauty of creating without boundaries - stuff just happens and only later do you unravel the workings of your subconscious.
Sometimes life feels like one big feedback loop. Your reactions to certain situations often follow a specific pattern, and you only become aware of this pattern once it repeats itself enough. You realize that it's something you've been doing your entire life, throughout similar kinds of situations.
You always tell yourself that the *next time* you'll react differently, but you never do, as if you're stuck inside of a feedback loop.
> "Rückkopplung" translates from German as "feedback," and refers to the process wherein a system's output affects its input – creating a loop of influence that guides self-regulation and adaptation. When applied to the realm of human behavior, this feedback mechanism both reinforces the occurrence of patterns, and empowers us to evolve what is returned from the past - **excerpt from Rückkopplung's description.**
**GS: That's beautiful; and I can relate - I've found myself in many peculiar situations, thinking to myself that I could have reacted differently, but then it happens again and I only realize when it's too late. It's frustrating, but such is human nature.**
[](https://en.wikipedia.org/wiki/I%5FAm%5Fa%5FStrange%5FLoop?ref=gorillasun.de)
[Feedback is also an interesting concept in psychology and philosophy | I am a Strange Loop](https://en.wikipedia.org/wiki/I%5FAm%5Fa%5FStrange%5FLoop?ref=gorillasun.de)
**So in a way, making Rückkopplung was a little like therapy?**
PS: All of my projects are - it's a bit egoistic, but each project is a way of processing something, or to find new meaning in things. I rarely talk about this in the descriptions or on Twitter (X), because most processes are just too personal. I try to let “the Art speak” and my audience decide what they see and feel. But this was my interpretation of the echoing patterns in Rückkopplung.
[](https://twitter.com/pxlshrd/status/1694413238128038360?ref=gorillasun.de)
[A thread that highlights a few moments that happen throughout the output space of Rückkopplung](https://twitter.com/pxlshrd/status/1694413238128038360?ref=gorillasun.de)
**GS: The NFT space doesn't lend itself well to speaking out about personal problems that you might have in life. It generally tends to be toxicly positive.**
**What's more, is that you quickly get forgotten when you take a short mental health break from social media.**
PS: It only takes a couple of days for people and the algorithm to forget about you.

There's been some discussions about this over on Twitter, here Frederik Vanhoutte's humorous take on it | [Link to Tweet](https://twitter.com/wblut/status/1712816477252817009?ref=gorillasun.de)
**GS: You need to constantly feed the machine.**
PS: In generative art we are at an advantage though, we always have some outputs to share.
## Market Dynamics and the Value of Art
**GS: Do you ever get influenced by market dynamics? If a token of yours sells out immediately, or if it doesn't sell out, does that influence how you view your art?**
PS: For me these are two different worlds and I try to make a clear cut between them. The only thing I consider when I work on a long-form generative system is the edition size - I think about everything else once the creative work is finished.
Ultimately I'm still influenced in some way, anyway. But I generally don't make artistic decisions based on the market. I don't want to look back in the long-term and realize that I made decisions because of these external influences. It doesn't feel right to me.
**GS: I can relate to that when it comes to edition sizes and burning unsold editions. I did burn editions of some of my earlier projects, but then I stopped because I don't see the point of artificially limiting the edition sizes.**
**Ok, you have to consider the secondary market - if there's un-minted editions it's automatically less valuable, and I understand that perspective, but to me it doesn't make my art less valuable. But maybe that's a dumb way of going about it if you want to be financially successful in the space.**
PS: It's totally dumb \[we both laugh\] but ultimately you want to make art.
**GS: The money is nice, but it's always primarily been about making art. It's a difficult topic.**
PS: It is, it's not that I don't care. I want my collectors to also have some financial value with time, and I do my best to be a good artist - but ultimately it's not in my hand to decide what the market thinks about my art.
**GS: I always believed in providing value through the writing that I do over on the blog, and the NFTs as a means to support that. My art only has the value that is contextually attributed to it, which can fluctuate a lot.**
**That's why I've always tried to provide value and give back in other ways, by means of informative and educative content.**
PS: Yeah, i think that’s a great way of “giving value” to your works! Art is a very individual thing, the biggest value of Art to me is what it teaches me about myself and what I can convey through it to my audience. If my work manages to resonate with even one person or alter their way of thinking, then I’m truly the happiest person on Earth! To me that goes above and beyond its financial value.
## Origin of pxlshrd and Shoutouts
**GS: On the AB episode you had a lot of fun beating around the pronounciation of your artist name pxlshrd? Is it "pixel-shard" or "pixel-shred"?**
PS: It actually was meant to be "pixel-shred", Ken from AB and Will from WTBS started pronouncing it as "pixel-shard", I really liked it, so I just went with that. But it doesn't matter to me \[laughs\]
**GS: Finally, is there someone that you'd like to shoutout?**
PS: Maybe a bit unusual but it would have to be Louis from the fx(hash) dev team. They’re always helpful, kind and find quick fixes for all kinds of bugs related to my fx(hash) projects. Just a gem of a human!
## Closing Statement
Closing words from pxlshrd: Thanks a lot for having me and keep up the great work. I admire what you’re doing and it’s important that we have people like you in our little space!”
It was a pleasure talking to pxlshrd, and I'm grateful for the time he took out of his day to have this chat with me. Our conversation has definitely made me think about my approach to making generative art, even though I take a similar explorative approach to it, I seldomly take the time to look back and reflect on my creations. I think I should do that more often.
I also really feel like listening to some Tycho and Boards of Canada now.
**And yet again, we find ourselves at the end of the article; here's the mandatory call to action - if you've reached and read this far, it most likely is an indicator that you've enjoyed this article - if you did, consider sharing it on your socials, with friends and followers, it helps tremendously and tells the algorithm that this is meaningful content.**
**Otherwise consider signing up to the newsletter to receive updates directly in your inbox whenever there's new content. That said, that's it from me - see you in the next one - cheers, and happy sketching - Gorilla Sun 🌸**
### Gorilla Newsletter 26
URL: https://www.gorillasun.de/blog/gorilla-newsletter-26/
Last updated: 2023-10-16T08:30:41.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the generative things
### The Nature of Code - Neuroevolution
If you haven't caught wind of it yet - Daniel Schiffman has been working hard on a new version of his highly acclaimed book "The Nature of Code" - what's more is that we get a completely new chapter on top of a revised version! This last chapter is all about Neuroevolution:

[Link to Tweet](https://twitter.com/shiffman/status/1711092570711810518?ref=gorillasun.de)
Now you might ask, what's Neuroevolution? Essentially, it's a method that allows a neural network to train itself by interacting with a given environment - not through traditional reinforcement learning methods, but rather by borrowing concepts from the realm of genetic algorithms. By unleashing multiple neural networks on our task, we select the best-performing ones and use them as a template for the next generation of neural networks.
[What's more is that you can actually already read the chapter!](https://nature-of-code-2nd-edition.netlify.app/neuroevolution/?ref=gorillasun.de) *If you enjoy the book, you should also consider supporting it by getting a copy! There aren't many resources like it for creative coding. Not sponsored - just a great piece of writing.*
This also reminds me of this video by Code Bullet where an evolutionary algorithm is used to teach an agent to play the infuriating platformer Jump King:
### A Missive from Qubibi
*I never seem to find things in a timely manner - but regardless, I thoroughly enjoy reading artist statements and interviews even after a while. There's always something to be learned from them.*
With Feral File's SOURCE exhibition having come to a conclusion I came across a piece of writing by Qubibi that I thought was really worth sharing.
Not having been able to participate in their talk series, Qubibi asked if he could write something instead, and Feral File prompted him on the importance of duration in his work, more specifically in his highly acclaimed Mimizu series - a piece that has been continuously exhibited at different venues in recent years, after he shot to fame with his first solo exhibition at the MuDA - the museum of digital art in Zürich. His response:
[A Missive from the Artist Qubibi Around the Exhibition SOURCE - Feral File - Close-UpsQubibi, also known as Kazumasa Teshigawara, is one of the artists featured in the exhibition SOURCE, now on view on Feral File. Since qubibi was unable to participate in the talk series around this exhibitions, he asked if he could write something instead. Feral File sent him the below prompt, and q…Feral File](https://feralfile.com/journal/close-up/a-missive-from-the-artist-qubibi-around-the-exhibition-source?ref=gorillasun.de)
After reflecting on his artistic journey and the influences that steered the evolution of the Mimizu series he provides some new insights that are complementary to the bits of information that can be found in some of the other interviews he's done. He states that he often needs to look back, after the work is already done, to understand how a piece came to be. I believe that it is something many an artists can relate to:
> *I often have reasons but not ideals, and when it comes to motivations (and whether they even exist), the only way for me to figure them out is to walk backwards from the outcomes. Do you see now why the question gave me such pause? ;)*
There's something about Qubibi's writing that's just very authentic and grounded - it might be because his writing is in part translated from Japanese, but that just adds to its charm. I actually took a brief dip into Qubibi's artistic genius with my article "Style, Voice and Identity in Generative Art" in which I talk a little bit about the Mimizu series and how it came to be:
[Style, Voice and Identity in Generative ArtWhat is style? As an artist, what makes you, you? Moreover, how do artists find their own stylistic voice? Especially when it comes to generative art? In this article we have a look at the art of Shvembldr, Qubibi, and Aleksandra JovanićGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/style-in-generative-art/)
In a nutshell, Mimizu makes use of Turing patterns to create stunning compositions with earthy textures. Initially conceived as an animated screensaver-esque program, it soon evolved into a generator for still frames that capture moments of a larger organic whole.
*And while we're talking about Feral File, you should also check out their current exhibition ["Truth"](https://feralfile.com/exhibitions/truth-gkx?ref=gorillasun.de) \- an interesting thread on all of the featured artworks:*
[](https://twitter.com/FeralFile/status/1713616082227908799?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/FeralFile/status/1713616082227908799?ref=gorillasun.de) | [Link to Exhibition page](https://feralfile.com/exhibitions/truth-gkx?ref=gorillasun.de)
### Node to Node by Kate Vass Galleries
The FOMO is kicking in real bad this time around seeing all of the stunning generative art that is being exhibited at the Node to Node venue in Paris:
[](https://twitter.com/Julien%5FEspagnon/status/1712879438260486381?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Julien%5FEspagnon/status/1712879438260486381?ref=gorillasun.de)
I mentioned it a couple of Newsletters ago, but this past week they kicked off the Node to Node exhibition, featuring some of the most prolific generative artists currently leading the space:
[](https://twitter.com/KateVassGalerie/status/1712740354372288647?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/KateVassGalerie/status/1712740354372288647?ref=gorillasun.de)
The prolific collector that goes under the alias of lemonde2d on Twitter, played a crucial role in making the exhibition happen - providing physical pieces directly out of his own collection to be exhibited at the venue. If you want to take part at least in some form, you can do so through the [number of Twitter spaces](https://twitter.com/i/spaces/1lDxLPdPwMbxm?ref=gorillasun.de) that have been already been and will still be held in the coming days with the participating artists.
You should also check out Iskra Velitchkova's thread on her piece at the exhibition "The Fallopian Visitor" at the exhibition which I found profoundly interesting:
[](https://twitter.com/pointline%5F/status/1712414001697853889?ref=gorillasun.de)
[Link to Thread](https://twitter.com/pointline%5F/status/1712414001697853889?ref=gorillasun.de)
### Le Random - Il(lumina)ting Marfa
Two weeks ago I shared [abnormality](https://twitter.com/joshripple?ref=gorillasun.de)'s awesome recap of the Marfa weekend - if you didn't check it out yet, you should:
[Art Blocks Marfa 2023A fun & crazy generative art event.The Culture Projectabnormality](https://thecultureproject.substack.com/p/art-blocks-marfa-2023)
This week Le Random brings in [Nathaniel Stern](https://twitter.com/nathanielstern?ref=gorillasun.de) to shine light on one particularly captivating installation that was on display at the event - [Jason Ting](https://twitter.com/%5Fjzlabs?ref=gorillasun.de)'s Lumina:
[](https://twitter.com/lerandomart/status/1712418537917059544?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/lerandomart/status/1712418537917059544?ref=gorillasun.de)
First covering the Lumina installation, Nathaniel also provides a comprehensive picture of Marfa's rich cultural history, prior to becoming the home of the yearly ArtBlocks gathering - placing Ting's lights in juxtaposition with other physical works, like James Turell's Skyspaces, and [Donald Judd's ](https://chinati.org/collection/donald-judd/?ref=gorillasun.de)[100 aluminum blocks](https://chinati.org/collection/donald-judd/?ref=gorillasun.de) that ask equally profound questions:
> *Lumina* succeeds in folding us in, rolling us out and having us look, listen, feel, touch and sense our very togetherness. It is a meditation on, and reflection of, the smaller and more care-full moments in IRL-digital life.
[Il(Lumina)ting MarfaArtist and writer Nathaniel Stern meditates on Jason Ting’s Lumina against the backdrop of Marfa’s art-rich history and natural wonders.Le Random](https://www.lerandom.art/editorial/illuminating-marfa?ref=gorillasun.de)
**One can only strive to be as good a writer as Nathaniel is.*
In other news from Le Random, it's also worth checking out their TwitterX profile from time to time as they share interesting threads - this time around putting Lauren Lee McCarthy in the limelight:
[](https://twitter.com/lerandomart/status/1712759923312836657?ref=gorillasun.de)
[Spotlight thread on Lauren Le McCarthy, creator of p5js](https://twitter.com/lerandomart/status/1712759923312836657?ref=gorillasun.de)
### Re—tain - Private alpha kicks off
Re—tain has been quietly in the works over the course of the past weeks, and kicked off alpha testing this past Friday - if you haven't signed up for early access, you might want to do so now - simply shoot them a message over on TwitterX:
[](https://twitter.com/re%5Ftain%5Fxyz/status/1711833724579459274?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/re%5Ftain%5Fxyz/status/1711833724579459274?ref=gorillasun.de)
I have yet to get my project in shape, but having had a first look at their interface it seems very promising.
### Volumetric Raymarching by Maxime
Maxime's back working on a follow up article to his previous masterpiece titled "[Painting with Math: A Gentle Study of Raymarching](https://blog.maximeheckel.com/posts/painting-with-math-a-gentle-study-of-raymarching/?ref=gorillasun.de)", this time his endeavors revolve around volumetric raymarching - and it looks like it's going to be another big one:


I can't wait to dig into it once it comes out! If you're still looking for more content you might also enjoy this video that I discovered through another retweet by Maxime, where Visionary 3D takes it upon themself to build a ray-tracing engine in the short span of 7 days:
I think at some point I'll also need to do a proper post on the difference between raymarching, raycasting and raytracing.
## Awwwards 2023
Another one of those things that I discover a week too late - if you were similarly unfamiliar, Awwwards is a yearly conference that revolves around everything related to webdesign.
[](https://conference.awwwards.com/high-res/?ref=gorillasun.de)
[Link to conference page](https://conference.awwwards.com/high-res/?ref=gorillasun.de) where you can find a run-down of the invited speakers.
Held in a different city every year, things went down in Amsterdam this past week - and I only discovered it through Richard Ekwonye who was invited to give a talk about his work. And deservedly so - remember his stellar article on Bézier curves?
[Bézier Curves - and the logic behind them | Richard EkwonyeThe logic behind Bézier Curves used in CSS animations and visual elements.Richard EkwonyeRichard Ekwonye](https://blog.richardekwonye.com/bezier-curves?ref=gorillasun.de)
If you're a nerd for design things you should definitely check out the Awwwards Youtube channel, where they share talks from past years - it's simply a treasure-box for inspiration:
## Geometry to Algebra and Back again
[Jack Rusher](https://twitter.com/jackrusher?ref=gorillasun.de) is back with another stellar talk at the [Papers we Love conference](https://pwlconf.org/?ref=gorillasun.de). Last year he kicked his talk off with the tame statement that "Everyone is programming wrong" - this year he tells us that we can't math: "Everyone is doing mathematics wrong":
In *Geometry to Algebra and Back Again* he provides us with a whirlwind tour of the past 4000 years of mathematics - describing how we, in part discovered, but also created mathematics out of necessity, inventing notation system to be able to put these abstract notions into writing and ultimately shaping the intricate and vast field that exists today - all through the lens of a number of papers. Jack also put together a little website for the talk where you can find a complete transcript:
[Geometry to Algebra and Back Again4000 Years of PapersJack Rusher](https://jackrusher.com/pwl-2023/?ref=gorillasun.de)
Arguably it's one of the most interesting and at the same most enjoyable talks I've listened to in the past couple of years. Once you've watched the talk - go and catch up with the one from last year *Stop Writing Dead Programs*:
## Pen and Plottery
*From now on, if I find enough material, I might also include a little section on Plotter related things. There's a couple of people that are doing some really interesting things these days, but I don't want to be annoying and tag them week in/week out.*
### Apophenies by Cory Haber
Resuming from last newsletter's shoutout, Cory Haber's Apophenies launched this past week - but the work is yet to be done! Over the course of the next year Cory will work on creating the 100 plotter paintings with a second show concluding this literal long-form endeavor:
[](https://twitter.com/brtmoments/status/1713248188860133503?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/brtmoments/status/1713248188860133503?ref=gorillasun.de)
Check out Cory's profile to see some more pics from the launch party as well as some videos of the gigantic plotter in action.
### Greweb's Plotteries
Greweb's profile consist of a mixture of plotter and gardening content, more heavily leaning towards the former. I don't know how he does it, but he churns out so many plots in such a consistentl manner, all while the actual sketches are impressive in their own right.
His latest endeavour has been a plotterized approach to inktober, creating a little sketch for each of the prompts that have elapsed so far and subsequently bringing them into the physical realm by running them through his plotter:


Day 10 & 14 | Fortune and Castle | [Link to Greweb's Profile](https://twitter.com/greweb?ref=gorillasun.de)
## Weekly Web Finds
*And there is no shortage of other interesting things in the world of tech either this week - yet again I've found a couple of interesting tutorials and articles!*
### An Interactive Intro to CRDT's
Have you ever wondered how collaborative online applications like google docs, notion or figma work? CRDTs make this technology possible - short for Conflict-free Replicated Data Type - this wonderful interactive article by Jake Lazaroff eases you into them and goes pretty deep into the details:
[An Interactive Intro to CRDTs | jakelazaroff.comCRDTs don’t have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.Jake Lazaroff](https://jakelazaroff.com/words/an-interactive-intro-to-crdts/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
In a nutshell:
> It’s a kind of data structure that can be stored on different computers (peers). Each peer can update its own state instantly, without a network request to check with other peers. Peers may have different states at different points in time, but are guaranteed to eventually converge on a single agreed-upon state.
CRDTs are especially interesting because I can think of a plethora of creative use-cases.
### Strong static typing, a hill I'm willing to die on...
In light of some of the controversy surrounding Typescript in the past weeks, the discussion around strongly typed languages vs. dynamically typed ones has become more and more pronounced - in this article Tom Hacohen takes the strong stance in favor of strongly typed languages and why they overall lead to better softwared and better developer experience:
[Strong static typing, a hill I’m willing to die on...This is a post about strong static typing, why I feel strongly about the topic, and some of the ways we utilize the Rust type system at Svix.Svix](https://www.svix.com/blog/strong-typing-hill-to-die-on?ref=gorillasun.de)

I think I should do a deep dive into Typescript at some point, maybe an idea for a new blog post?
### Easy Light-Dark Mode Color Switching
Implementing a theme toggle on your website is relatively straightforward, although it takes some manual digging through your CSS code and adding in a toggleable variable for the colors of your elements. A good starting point for that is Ryan Feigenbaum's excellent and comprehensive article:
[The Complete Guide to the Dark Mode ToggleThis complete guide to the dark mode toggle includes best practices for implementing a color mode switcher on your website using custom variables, prefers-color-scheme, and more, all with a very pretty demo!Ryan FeigenbaumRyan Feigenbaum](https://ryanfeigenbaum.com/dark-mode/?ref=gorillasun.de)
This might get a whole lot easier in the future with a dedicated CSS function devised solely for that purpose:
[The Future of CSS: Easy Light-Dark Mode Color Switching with light-dark()A function that computes to the first color if the used color scheme is light or unknown, or to the second color if the used color scheme is dark.Bram.usView more posts](https://www.bram.us/2023/10/09/the-future-of-css-easy-light-dark-mode-color-switching-with-light-dark/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Essentially, the *light-dark(, )* function accepts as input two colors and automatically sets the corresponding one depending on the theme that is set. Now you might say that the function is quite limited, as it only allows for two color schemes, and the above article also addresses this:

Overall I think it's really cool though - might be time to pimp your portfolio/blog with such a toggle!
### QX82 Retro Javascript Engine
Bruno Oliveira put together a javascript library for the purpose of emulating the feel of retro game engines and allows you to create games and experiences in that style:

[There's a couple of examples and demos over on the website](https://btco.github.io/qx82/?ref=gorillasun.de), if that's something that interests you. What's more, is that it is open source, so if you want to modify it for your own purposes you can do so as well!
### The Soviet-Era, Z80-based Galaksija Dared to Be Different
I also found this IEEE article very charming, blending retrocomputing nerdery with a bit of history - felt like a time-capsule into a different era of computing.
It recounts the story of the Galaksija micro-computer, a tiny DIY computer, made exactly from the parts that Yugoslavia could import from Western Europe. With this tiny wondrous machine being reissued, the author Stephen Cass wasted no time in putting in his order - with an indefinite delay on shipping he then takes matters into his own hands:
[](https://spectrum.ieee.org/yugoslavia-diy-microcomputer?ref=gorillasun.de)
[Link to Article](https://spectrum.ieee.org/yugoslavia-diy-microcomputer?ref=gorillasun.de)
### FTX: The fraud was in the Code
I wasn't aware that the FTX trials were in full swing - but it seems that the fraud was evident from the code. Molly White recounts the happenings of the trial and how code is being presented at court as a piece of evidence:
[The FTX trial, day four: The fraud was in the codeThe jury got a taste of code review as they examined a falsified “insurance fund” and the infamous FTX → Alameda Research “backdoor”.Molly WhiteMolly White](https://newsletter.mollywhite.net/p/the-fraud-was-in-the-code?ref=gorillasun.de)
## AI Corner
### Neural Algorithmic Reasoning
And another article from the Gradient that I just had to share - NAR is a new field of machine learning that seeks to combine the power of neural networks with the algorithmic precision of classical algorithms.
One of the key challenges in NAR is that neural networks are typically trained to perform specific tasks, while algorithms are more general and can be applied to a variety of problems. NAR wants to borrow ideas from the world of traditional computing with the aim of making neural networks more generalizable.
[Neural algorithmic reasoningIn this article, we will talk about classical computation: the kind of computation typically found in an undergraduate Computer Science course on Algorithms and Data Structures \[1\]. Think shortest path-finding, sorting, clever ways to break problems down into simpler problems, incredible ways to org…The GradientPetar Veličković](https://thegradient.pub/neural-algorithmic-reasoning/?ref=gorillasun.de)
It seems that a promising approach is to train neural networks on datasets of algorithm traces. An algorithm trace is a sequence of steps that an algorithm takes to solve a problem. By training on algorithm traces, neural networks can learn to perform the steps of an algorithm without having to be explicitly programmed.
### Self-Assembling Artificial Neural Networks
Although a full-fledged research paper, it reads quite easily and kind of fits the topic of Neuroevolution that I shared earlier with Daniel Schiffman's new chapter. Self-assembling artifial neural networks are essentially NNs that can wire and configure themselves internally, adapting to new tasks or situations that they may face:
[Towards Self-Assembling Artificial Neural Networks through Neural Developmental ProgramsBiological nervous systems are created in a fundamentally different way than current artificial neural networks. Despite its impressive results in a variety of different domains, deep learning often requires considerable engineering effort to design high-performing neural architectures. By contrast,…arXiv.orgElias Najarro](https://arxiv.org/abs/2307.08197?ref=gorillasun.de)
## Gorilla Updates
### Hot off the Press - Demystifying Monk Antony
A couple of days ago I had the chance to speak with Peter Bauman, aka Monk Antony on Twitter - the person behind Le Random's editorial section. He's been putting some of the best pieces of writing in the genart/Web3 space and I just had to reach out to him and ask if he'd be up for a chat.
We ended up talking for over an hour - about the early days of FxHash, how the initial group behind Tender met through the FxHash discord, and how that led to him becaming the writer for Le Random in the following months.
[In conversation with Peter Bauman - Demystifying Monk AntonyPeter Bauman is one of the most prolific writers working at the intersection of generative art and Web3\. He’s the brain behind Le Random’s editorial section, and is responsible for building out a comprehensive timeline on genart history.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/in-conversation-with-peter-bauman-demystifying-monk-antony/)
If you didn't know, Le Random is currently in the process of building out the most comprehensive timeline on generative art history that you can find on the web. This timeline is complimented by an impressive editorial section with excellent writings by Peter, as well as other commissioned pieces.
If you're in any way remotely interested in generative art, or the artistic side of Web3, you should definitely follow Le Random's endeavors, all past and future content that they're in the process of putting out - and most of all, check out Peter's writing on their website.
### Fresh off the easel
Lots of sketching this week - even managed to explore two different ideas, albeit being super short on time with work and family. This section ended up being much longer than usual. In part I spent much more time on sketching, trying to get some material into publishable shape regarding that FxHash is gearing up to it's 2.0 release and Re--tain just started alpha testing their platform.
One of my ideas involved circle packings, Delaunay triangulations and graph algorithms. Initially I wanted to explore the concept of maximal circle packings, basically turning a graph into a circle packing diagram where you place a circle on each vertex of the graph such that circles placed on vertices that share an edge are tangent to each other. But that turned out to be quite a complicated problem and the research paper on the topic are way above my head. I'm still actively thinking about it but it's gonna have to wait for now, and I'll write about it eventually.
Instead I ended up with these interesting patterns:


Delaunay triangulations with a slightly scribbly aesthetic. I enjoyed these sparse outputs
Basically a circle packing turned into a Delaunay triangulation. And there are a couple of cool things that can be done with this as the foundation - basically any type of graph algorithm can now be used to traverse this triangulation, if you treat it as a graph that is.
A couple of stylistic variations that I thought ended up looking really interesting is this synthwave-esque one:


These triangulations are simply drawn twice to the canvas, the second time offset by a small amount yielding this optical effect, as if they were vibrating in some manner.
In this idea I also explored MSTs - short for Minimum Spanning Trees - for the first time, I did previously implement Prim's algorithm for maze generation, but back then it was a little simpler as the graph was confined to an underlying rectangular grid. Here it's a bit trickier to turn the triangulation into a graph. The code is a mess, but it works.
None other than Kjetil Golid himself chimed in over on Twitter in response when to one of the initial outputs that I shared, asking whether I was really using MSTs or not, and it turns out that I was doing something wrong in the code:



So that was definitely the highlight of my week - thanks [Kjetil](https://twitter.com/kGolid?ref=gorillasun.de)! | [Link to Tweet](https://twitter.com/gorillasu/status/1712026303300264252?ref=gorillasun.de)
The give-away for Kjetil were the crossing edges - the branches of a minimum spanning tree actually never cross! And if you think about how an MST is constructed that absolutely makes sense.
I do feel a bit overwhelmed with all of the directions that I could take this sketch in though - maybe I will actually end up making a couple of variations.
The other idea that I pursued was much simpler, exploring layering and colorations - but folks seemed to really love them - or the TwitterX algorithm decided to give me a subtle boost because I've been a bit more consistent with my posting again - who knows:

I really enjoy the interplay between the blurry and colorful background shapes with the more solid black mazelike strokes in the froeground. I don't know where this is going yet, but I really enjoy it.


Portrait aspect ratio also works really well.
I have some other ideas where to take this, but I'm not entirely certain if it's gonna looks nice or not. We'll see in the coming week.
## Music for Coding
What a criminally underrated hidden gem! Fittingly titled *Into the Dream*, it's the perfect soundtrack for a dreamy Sunday afternoon. Created by Hugo Harrison, a UK based musician and producer who makes music under the alias of Vanilla.
Blending hip-hop beats with sampled elements of soul, jazz, and funk - his tracks are the audible equivalent of gorgeous landscape paintings, relaxing and immersive at the same time:
I also found the album artwork particularly beautiful - in the video the colors of the radial slices transition through different shades. I couldn't however find out who created it.

It is indeed - I love that this final section of the newsletter is giving me an excuse to discover new music every week!
**And that's it from me this week again, while I'm jamming out to some jazzy Vanilla tracks I bid my farewells.**
**Hope this caught you up a little bit with the events in the world of generative art, tech and AI of the past week! And I hope you have a lovely rest of the day and a great start into the week - I definitely am!**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Otherwise - Cheers, happy sketching, and see you in the next one - Gorilla Sun 🌸**
### In conversation with Peter Bauman - Demystifying Monk Antony
URL: https://www.gorillasun.de/blog/in-conversation-with-peter-bauman-demystifying-monk-antony/
Last updated: 2024-08-28T13:36:55.000Z
**Peter Bauman, aka Monk Antony over on Twitter, is the brain behind Le Random's editorial content section. Driven by a deep love for the arts and history, Peter is churning out an impressive number of excellent editorial pieces every week - interviewing leading artists in the space on a regular basis. Currently he is also responsible for building out the most comprehensive timeline on generative art history to date.**
Peter Bauman has spent most of his adult life in Asia - living for 12 years in Hong Kong where he's worked in teaching and in finance, and having acquired two masters degrees in international relations he is no stranger to research and writing. After finding his way into Web3 through the FxHash discord and becoming one of the founding members of Tender, he became more and more involved with the community. He made his Web3 writing debut with a Tender editorial piece on [Erik Swahn's Farbteiler](https://www.fxhash.xyz/generative/slug/farbteiler?ref=gorillasun.de), one of the earliest projects on FxHash.
In our conversation we talk about the early days of Tender, how it crystallized from a group of like-minded people on the FxHash discord that all shared an interest in generative art. We also talk about what writing in the Web3 space is like, and have a closer look at the process behind putting together the massive timeline that is being put together by LeRandom. Additionally, we discuss the generative art framework that Peter put in place for the analysis of generative art - how it has been received by people, some of their input on it, and how it might evolve in the future.
### Tender and the early FxHash Days
**Gorilla Sun: Initially, I was going to ask you about yourself and your background - but then I discovered that you'd done an episode with WTBS in which you already do so. I thought that it would be more interesting to try and find some new insights, stories and anecdotes that might be interesting to the readers.**
**\[**[**WTBS episode with MonkAntony**](https://podcasters.spotify.com/pod/show/waitingtobesigned/episodes/Telling-the-Story-of-Generative-Art-Interview-with-MonkAntony-e254gc0?ref=gorillasun.de)**\]**

Peter Bauman in conversation with WTBS, pre Le Random's Launch
**In the interview you mention that things really took off after you wrote the Tender editorial on Farbteiler. Maybe you could tell us a little about the incidents that led from writing that piece to becoming a founding member of Tender - and at the same time talk a little about how the initial group of people behind Tender came together?**
MonkAntony: That's probably something that a lot of people are curious about. It started with [Adam Berninger](https://twitter.com/ajberni?ref=gorillasun.de), who is the main founder of Tender. Some of the other people that were involved at the very beginning were [Trinity](https://twitter.com/Trinity%5Fxyzz?ref=gorillasun.de) from WTBS, and [cosimo](https://twitter.com/cosipiovasc0?ref=gorillasun.de) who's now part of the FxHash team, essentially through the FxHash discord.
As far as I remember, I think cosi and Trinity reached out to me via DM asking if I wanted to pick a project and write about it, and writing a piece was pretty much how you joined Tender back then. After Adam had curated those first 30-40 projects, that's where the others came in by writing editorials about some of them.
[Farbteiler - TENDEREach Farbteiler is a rectilinear, mostly self-avoiding walk, dividing the space of the canvas with dotted grids using colors from Johannes Itten’s Farbkreis. Everything is inside and everything is outside.TENDER](https://tender.art/project/farbteiler?ref=gorillasun.de)
That was in December of 2021, a month or two after FxHash had launched. The first project that came to my mind was Farbteiler because it was one of my favorite early projects. It was a fairly easy choice to join, and I think I was pretty lucky that they'd asked me. Within a month I'd written the piece, and then things continued with the Tender discord.

Erik Swahn's Farbteiler on FxHash
**GS: thanks for elaborating, I've been curious about that for a while now. You also mention in the interview that when you first discovered the NFT scene you felt that there were some aspects that were a bit unauthentic.**
**And I think I know what you mean with that; when I first discovered the NFT scene for myself, it was a bit difficult to fully commit to things because I really couldn't tell what people's motivations and intentions were, alongside NFTs getting a bad rep, I just tried to be cautious. What was this experience like for you?**
MA: When I first came into NFTs, maybe like a lot of people, it wasn't through the lens of generative art. You look at the entire landscape by joining all of these different chat groups, discords and communities, maybe you even participate, or you simply watch silently from the sidelines.
A lot of the times with these different kind of communities, once you actually looked beyond the surface, it felt pretty superficial - there wasn't really much to dig into or talk about... with a PFP project, what do you actually talk about after 3 months? 6 months? 2 years? What do you talk about day in day out?
Whereas, with FxHash there's new releases everyday, there's always new artists to discover, there's so much to learn about the movement in general. There was more than enough to talk about right-away.
And it felt authentic. When I joined the FxHash discord, I felt a genuine sense of community, from a group of people that were interested in learning about something new, learning about generative art - especially from people that knew more, the early leaders in the space. That was the first time in Web3 where I felt a community aspect that actually worked and felt real - even more so when I joined the early Tender discord, a bit similar to the (famous) FxHash price-discussion channel, without any of the price discussions - it was only about artists and art.
Being part of those two communities were learning experiences, that it was in fact possible to build genuine communities in the space, which is a difficult and rare to be honest.
**GS: FxHash provides something of substance to it's audience, it's not just about NFTs, but also about programming, building things on the blockchain and pushing blockchain use-cases forward. For instance, people are creating some really innovative things with the new code driven params that you don't really see anywhere else.**
## Enter Le Random
**GS: skipping forward a bit - how did the idea for Le Random start?**
MA: The idea for Le Random finds its beginnings with [thefunnyguys](https://twitter.com/thefunnyguysNFT?ref=gorillasun.de); soon after the editorial piece for Farbteiler was published in February of 2022, he got in touch with me and said that he had a project in mind that we could maybe work on together. Then over the course of the following months we started a long-term chat about art - and back then in February I don't even think that "Le Random" had a name yet. Then thefunnyguys and co-founder Zack worked to raise funds and I joined in November.
[Le Random: An Origin StoryOn March 8, we publicly announced the launch of Le Random, a digital generative art institution that aims to collect, contextualize, and elevate on-chain generative art.Le Randomthefunnyguysthefunnyguys is in charge of the overall direction of Le Random and spearheads its acquisitions.](https://www.lerandom.art/editorial/le-random-an-origin-story?ref=gorillasun.de)
Article by thefunnyguys on the original motivations behind Le Random.
**Gorilla: besides that who're the other folks behind Le Random?**
MA: In total there's 4 people that are core team members at Le Random. We have our co-founder Zack, who’s responsible for operations, and takes care of keeping the lights on behind the scenes. Besides that there's thefunnyguys and [Conrad (nemocake/@DISPUTED on Twitter)](https://twitter.com/DlSPUTED?ref=gorillasun.de) who're responsible for the collection, and adding new pieces on a regular basis. I take care of the editorial side of things, the content, the timeline, and Twitter stuff.
[](https://twitter.com/lerandomart/status/1709534874917359639?ref=gorillasun.de)
A few days after I talked to Peter, Le Random announced one of their largest aquisitions to date! [Check out the thread here.](https://twitter.com/lerandomart/status/1709534874917359639?ref=gorillasun.de)
But there's also an overlap; things are definitely not siloed. Conrad helps out with some of the things we tweet out, and I try to help with the collecting as well. But generally that's what we focus on.
**GS: that's interesting, I didn't know that Conrad was involved, although I do see him pop up quite frequently on my Twitter timeline. All of this makes me feel like I need to get more on discord.**
MA: these days I don't know how people do discord anymore, I'm not on discord anymore really. In 2021-22 I was fortunate to have some time to be a bit more involved, but now I wouldn't know how.
## The Timeline and Writing in Web3
[](https://timeline.lerandom.art/?ref=gorillasun.de)
[You can explore the entire timeline over on Le Random's website.](https://timeline.lerandom.art/?ref=gorillasun.de)
**GS: Earlier this year I wrote a little piece about** [**Vera Molnar's early life**](https://www.gorillasun.de/blog/the-art-of-vera-molnar/)**, and that was quite a difficult article to write because information on the internet is quite dispersed when it comes to events from a pre-internet era.**
**What's your process for building out the timeline, finding and putting together information in a meaningful manner? And what does that look like behind the scenes?**
MA: I actually started working on the timeline a year ago, even before I had joined Le Random - sort of in an ad-hoc manner. Reading books about generative art, I started noting down the events that I would come across by their corresponding year. Being something that I had already worked on for a bit, with Le Random we talked about really wanting to delve into the history of generative art and decided to turn it into a bigger project.
The foundation for the timeline was laid by those first couple of books that I read.
1. *When the Machine Made Art by Grant Taylor*
2. *Computer Graphics–Computer Art by Herbert W. Franke*
3. *Art of the Electronic Age by Frank Popper*
4. *Digital Currents by Margot Lovejoy*
All of this began November of last year (2022) - the website wasn't live until June however, so I had quite a few months to start working on it and do research; it was the main thing that I was doing while we were still building out the website.
The process has been pretty monumental. There's been quite a few exhibitions back then, most of which aren't documented in any way, which makes it difficult to go into the details - sometimes you come across some obscure corner of the internet, where you find an exhibition catalogue, which then turns out to be a gold-mine of information. So as you said, the difficulty does not only lie in finding the information but also being detailed about it.
What's more is that each period of time presents it's own challenges. That's why I've been doing it decade by decade for the most part, right now wrapping up the 80s.
When all of it's done, there's probably going to be several hundreds of these moments, each one of them is like writing a mini research paper, which takes time in it's own rights. For the most part I try to use primary sources, but if there's respected secondary sources I'm also happy to draw from them directly, like [Herbert Franke's book Computer Graphics - Computer Art](https://www.amazon.de/Computer-Graphics-Herbert-Werner-Franke/dp/0714815039?ref=gorillasun.de) for instance, or [When the Machine made Art](https://www.amazon.de/-/en/Grant-D-Taylor/dp/1623567955?ref=gorillasun.de) is also a good one.
At this point the timeline is roughly 70% finished. Whenever I'm not busy working on some other content for Le Random I try to do a few moments of the timeline each day. That's mainly how I've been doing it these days. It's a big task, and to even finish something that takes this much time you really have to love it and intrinsically be interested in it, otherwise there's no way you can finish. Luckily I'm obsessed with it, and it energizes me to just work on it - that's how I've been able to keep the momentum for so long. So I know that I'll be able to finish it in these coming months.
And I really do appreciate you and some of the other people in the community that have recognized the amount of work that has gone into it. That also definitely also helps maintain the motivation.
**GS: I really appreciate the work that you do, and it shows that a lot of time and passion goes into the content. I know from personal experience how much time it takes to research and write out these things.**
MA: Same to you, the newsletter that you put out, I know, again, from personal experience, that that must take time.
**GS: the newsletter is still quite young, but it feels like it's worth the time, based off of the responses I've gotten so far, it seems that people are really into it.**
**On the flip-side, it's also sometimes a bit difficult when you put out something that you've worked on a lot, and it doesn't end up garnering much interest. How do you personally deal with that?**
MA: Oh, I have plenty of experience with that. Maybe one fortunate aspect of this job is that I don't have much time to dwell on things. If I do release something and it doesn't get the response I was hoping for I'll maybe think for a few minutes about why it didn't, maybe the piece was too long, or maybe even the tweet about it was too long, or too short... or maybe it was tweeted out at a bad time, and people were busy with other things.
It's often hard to say, and you try to make your best guess, but what's important is to just stick with it, learn what you can from these experiences and then to continue. Luckily I'm in a position to do that and not even have the opportunity to dwell too much. \[laughs\]
**GS: that's a really good way to go about it. Now that you mention it, I've also noticed that whenever a piece gets too long, it often performs worse than if it were shorter.**
MA: Yeah that's true, people can get a bit overwhelmed with longer pieces. I doubt that every single word gets read by every single reader, but I do know some people that enjoy it all. So it' s a tough balance - there maybe is a hard limit.
**GS: if it's a topic that has a lot of meat to it, sometimes things need to be lengthier if you want to do it justice.**
## Demystifying Generative Art
**GS: You've written this wonderful article titled Demystifying Generative Art, it's quickly become one of my favorite pieces of writing on generative art.**
[Demystifying Generative ArtPeter Bauman (Monk Antony) develops a framework for appreciating and analyzing generative art through an investigation of the movement’s locus of artistic intent.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de)
**I like thinking about generative art, on a conceptual level, how to asses and analyze different works, I believe that it helps us better understand what we're actually doing and why we deem certain works more interesting or valuable than others.**
**I've thought a lot about which category I personally would fall into, in your proposed framework - and I'd have to say that I tend towards the resultist end of the spectrum. Ultimately, the output is the tangible thing that people will interact with - it's the only connection that they can have with the concept and even the process. If the piece doesn't exist then they also can't experience any of the other aspects of it.**
**To go further on this, I might even say that the concept doesn't matter that much; it is often the case that generative artists have an exploratory approach where they arrive at the artwork by seeking and finding. A different perspective here would be that the concept and the process are contained within the result, essentially making the result a proof of concept and a proof of process. There isn't really a question here - but maybe you could tell us a bit more about the framework and your thoughts on this.**
MA: I find it fascinating how people have been responding to the article. My original motivation for writing it was seeing a lot of discussions about appreciating generative art, but there weren't that many pieces that addressed the topic. There are a few academic papers on it, but they usually tend to be more focused on the process. There are obvious exceptions like Zach Lieberman and Tyler Hobbs for instance. Tyler Hobbs has also written about it, out of annoyance at people focusing too much on the process.
[Intellectualism Has Hampered Generative Art — Tyler Hobbs“We can hardly imagine giving up the intellect. To be an intelligent person has been the thing from the beginning. But the intellectual way and the inspired way are two different ways. If you are an artist the intellectual way has to be given up. If someone says this work is brilliantly conceivedTyler HobbsIntellectualism Has Hampered Generative Art](https://tylerxhobbs.com/essays/2018/intellectualism-hurts-generative-art?ref=gorillasun.de)
Seeing that iconic figures like Zach Lieberman, Tyler Hobbs and Casey Reas seemingly disagreed when asked the same question and felt so vastly different about the practice - further motivated me to explore the topic. I wanted to find a way to use parts of what they were saying in a more complete manner, and find a framework for thinking about generative art and appreciating it.
Concept and context I believe are obvious add-ons to process and result - as for autonomy, that element was actually one of the first things that I started thinking and writing about. After writing about Farbteiler, I did some more theoretical writing for RCS:
[Generative Art and the Decentralization of CreativityPeter Bauman detects an emerging paradigm of communal art practiceAlex Estorick](https://www.rightclicksave.com/article/generative-art-and-the-decentralization-of-creativity?ref=gorillasun.de)
> At the other end, generative art is inherently free of artist control. The generative artist cedes control to an autonomous system. The question of how much control they cede depends on whether they are a short-form or long-form generative artist.
What's unique to generative art in Web3 is the decentralization of creativity, and I wanted that aspect to be included in the framework. To some artists this is very central to their work, like [Qubibi](https://twitter.com/qubibien?ref=gorillasun.de) or [Harvey Rayner](https://twitter.com/harvey%5Frayner?ref=gorillasun.de).
\[chuckles\] There's other artists that I've interviewed, that I would definitely call autonomous, but they even replied saying that "I am not". So I understand that the framework isn't perfect, there's plenty of people who told me that they haven't found where they belong on the framework, clearly into none of those five elements at least. And I understand that, the framework was never meant to be like these are the 5 elements and there's nothing else.
It's understandable to feel uncomfortable being categorized and grouped into a specific camp so I understand wanting to resist the framework, as well as thoughts about expanding it. At the same time, all of these different and varied approaches are what make this multi-disciplinary practice so interesting, allowing for so many ways to think about it at the conceptual level.
**GS: I think it's the case that a lot of artists aren't entirely certain about what they want to be or what they are actually doing, it's more of a search. It definitely is the case for me.**
MA: I think that is very common. DEAFBEEF talked about this as well; a cornerstrone of his practice is experimentation and iteration, and I think that's really common. Coding just lends itself to this iterative approach.
[DEAFBEEF on (Im)permanenceDEAFBEEF reflects on themes such as the tension between permanence and impermanence in his work HASHMARKS, released through Bright Moments. He also ruminates with Peter Bauman (Monk Antony) on celebrating the singularity of the present plus finding agency in life and art.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/deafbeef-on-impermanence?ref=gorillasun.de)
If there were to be more parts added to the framework, it would make sense to include an element that captures the iterative and experimental nature of programming. I made a stab at this in the DEAFBEEF interview, maybe an *experimentalist* category would make sense but it's maybe not the most descriptive term. Do you think that might better capture your approach? But you already said you tend towards Resultism.
I think it's healthy that people are thinking about these things and trying to make the framework better, that I in no way consider complete. Even when I first started I did get a lot of feedback on it already, from people that I respect so much in the space, like Golan Levin, Zach Lieberman, etc. Now whenever I interview someone I try to squeeze in the question about it and see where they lie on the framework.
What's more, is that it also helps explain to people outside of the space why certain works are important; for instance you can't only look at the aesthetics of the 60s plotter works, from Vera Molnar for example, and judge it based on that - you also have to consider the context, and how difficult every single thing they were doing at the time was.
It's a work in progress, in the long term my aim is to write detailed deep dives about each one of the elements in the framework. But that's gonna take some time \[laughs\]
**GS: completely agree and super excited for when these will come out. I think there maybe also needs to be a distinction between which side on the mirror you're on, if you're someone that creates art vs someone that collects/appreciates/looks at the art from the outside.**
MA: That's definitely something I've thought about as well, and I probably have to clean that aspect up and somehow clarify it in the framework.
## On AI Art
**GS: this makes me wonder, what do you think about AI art? do you consider it generative art?**
MA: I definitely think that AI art is generative, but at the same time it's a very broad topic. In a way it's that classic Philip Galanter "artist ceding control to an autonomous system", and I certainly think of AI as autonomous systems, with different degrees of autonomy. But I would certainly consider it generative.
[Decoupling Generative Art with Philip GalanterPeter Bauman (Monk Antony) reflects on Philip Galanter’s classic 2003 definition of generative art before briefly speaking with the artist, Texas A&M professor and theorist about the definition twenty years later.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/decoupling-generative-art-with-philip-galanter?ref=gorillasun.de)
I'm also aware that people have different views on the amount of time that goes into the creation of AI artworks, and I know that some artists look down on AI art, at least on prompt based work. There maybe is a conception that it's easy to do, and that maybe there's not much 'craft' involved in the creation of AI artworks. As someone who's worked a little bit with tools like midjourney I certainly think that you need a certain talent.
Overall I feel positively about AI art because it's giving more people the opportunity to make art. Again, some people think that that's a negative but I believe that it's a positive.
**GS: Things have certainly become a lot more accessible in comparison to just a couple of years ago, but I still think there's a distinction to be made between artists that create and train their own models as compared of the prompting practice.**
**In generative art you usually build the system and then you harness it. When it comes to prompting you often work with models that can't be modified anymore, so it's a different kind of generative art.**
I agree that there are levels of sophistication, artists like [Ivona Tau](https://twitter.com/ivonatau?ref=gorillasun.de), or [Sofia Crespo, ](https://sofiacrespo.com/?ref=gorillasun.de)that use datasets and train their own models. You hope that the collectors recognize the extra effort that these artists put in, and I think they deserve all of the more recognition.
## Origin of Monk Antony
**Gorilla: where does your Twitter handle Monk Antony come from?**
I really love history, history in all forms. At night I listen to history podcasts that help me go to sleep, and I'm always watching history documentaries - "Monk Antony" is a bit of a play on the name Mark Antony (Marcus Antonius), a political leader in the first century roman empire.
Basically, it's a nod to my love of history, and obviously there's some relation there to art history and the work I do at Le Random. It's not like it's a 20 year old nickname from when I was a kid, but it is the only handle/username since I've been in the space.
**Gorilla: what about your profile picture on Twitter?**
That's a one of one by Karan ([Karan4d](https://objkt.com/profile/karan4d/created?ref=gorillasun.de)).
He just sent it to me, maybe 18 months ago now, airdropping one of ones to some of his collectors, and that just happened to be the piece he sent to me. I really love the colors in it, I'm a sucker for that sunset color palette with pinks and blues. And the person in the image kind of looked like a monk as well, so I decided to just go with that.
I didn't want to have a traditional pfp or whatever, this one was a little special, an artwork sent directly to me by the artist.

[Link to Token](https://objkt.com/asset/KT1ByUbaevRLBXKRrVPc1VFesQmjcwPJGgC3/6?ref=gorillasun.de)
## Artists to keep an eye on
**Gorilla: Who are some of the artists in the space that you think are doing transformative work?**
I like artists who are already thinking about doing things beyond the blockchain, beyond a hundred or a thousand outputs - artists like operator are really interesting, there's a lot of conceptual levels to their work, like they did with human unreadable, which isn't just an ArtBlocks curated project but has a choreographed score and a performance attached to it. That kind of work is really interesting.


[Human Unreadable by Operator](https://www.artblocks.io/collections/curated/projects/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/455?ref=gorillasun.de)
Another one is [0xhaiku](https://twitter.com/0xhaiku?ref=gorillasun.de), a Japense artist, and I love what he does, adding an interesting physical element he was going around Tokyo with a sort of receipt printer, where you could mint an NFT from him and he'd hand the receipt afterwards.
These conceptual pieces that are thinking about what we can do in the space in a more interesting way and go beyond the blockchain, I find those to be some of the most interesting works.
Besides that there's also artists like Rhea Myers and Maya Man, who's work aims at using the medium to criticize the medium itself. I think works like that will be lasting, when we look back there's kind of a lot of noise right now, but I think some of those artists will be what we remember. At least I will.
[Rhea Myers on Code as Cultural MaterialArtist, hacker and writer, Rhea Myers, discusses her thoughtful contributions to the group exhibition GEN/GEN: Generative Generations and more with Peter Bauman (Monk Antony). Myers unravels her artistic practice, touching upon code-as-narrative, “Blockchain Aesthetics” and the dialogue between her…Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/rhea-myers-on-code-as-cultural-material?ref=gorillasun.de)
[Maya Man on Generative MeaningMaya Man, an artist focused on contemporary identity culture on the Internet, sat down with Peter Bauman (Monk Antony). Using Man’s exhibition and project I’m Feeling Lucky on Verse as a jumping off point, they discuss horoscope culture as a belief system, finding meaning in randomness, the role of…Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/maya-man-on-generative-meaning?ref=gorillasun.de)
###
## Concluding Thoughts
It was an absolute pleasure to talk to Peter, and I am very grateful that he took the time out of his busy day to talk to me. He's one of the truly knowledgeable people in the space, thinking about generative art, in it's current state and where it's heading in the future, at a conceptual level like few others do. I really recommend following his endeavors over at LeRandom and exploring the timeline for yourself.
**Yet again, we find ourselves at the end of the article; here's the mandatory call to action - if you've reached and read this far, it most likely is an indicator that you've enjoyed this article - if you did, consider sharing it on your socials, with friends and followers, it helps tremendously and tells the algorithm that this is meaningful content.**
**Otherwise consider signing up to the newsletter to receive updates directly in your inbox whenever there's new content. That said, that's it from me - see you in the next one - cheers, and happy sketching - Gorilla Sun 🌸**
### Gorilla Newsletter 25
URL: https://www.gorillasun.de/blog/gorilla-newsletter-25/
Last updated: 2024-08-15T08:04:31.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## Ben Fry resigns from the Processing Foundation
We start off with some hard-hitting news. This past week, Ben Fry, one of the creators of Processing, announced his resignation from the Processing foundation:
[](https://twitter.com/ben%5Ffry/status/1709400641456501020?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/ben%5Ffry/status/1709400641456501020?ref=gorillasun.de)
Unarguably a shocking announcement to many, this decision came seemingly out of nowhere. In the unfolding Twitter thread, Ben Fry elaborates on why he came to this decision:
> Last fall, with urging from Casey, who was planning to leave, I tried to return to an active role with the Board. It was a strange experience; I was soon shocked to learn that the Foundation spent nearly $800,000 last year. $0 of that went to Processing 4\. This year, the proposed Foundation budget is around $1.2 million. But for Processing, there is budget for just two people: one developer, one community lead.
The announcement sparked quite some controversy and discussions in the community - being that many donors have contributed significant sums towards the foundation over the years. It definitely raises questions about how that money is being spent. Is processing, and by extension P5, largely maintained and developed by open source hobbyists, when there's enough money to have a dedicated development team at the foundation?
Ben Fry's tweet doesn't however provide enough context or information to make a complete picture of the circumstances. This prompted responses from the other board members Casey Reas, LaurenLee McCarthy, and Daniel Schiffman:



[Link to Casey Reas' Tweet | ](https://twitter.com/REAS/status/1710381588658454749?ref=gorillasun.de)[Link to Lauren Lee McCathy's Tweet](https://twitter.com/laurenleemack/status/1709951991311737100?ref=gorillasun.de) | [Link to Daniel Schiffman's Tweet](https://twitter.com/shiffman/status/1710411876029349985?ref=gorillasun.de)
Golan Levin also spoke out about it:

[Link to Golan Levin's Tweet](https://twitter.com/golan/status/1710518477792952583?ref=gorillasun.de)
It is sad to see Ben Fry leave under these circumstances, he's undoubtedly made massive contributions to the worlds of computational design, creative coding and generative art as a whole.

[The threads on the hackernews posting of Ben Fry's Twee](https://news.ycombinator.com/item?id=37760363&ref=gorillasun.de)[t](https://news.ycombinator.com/item?id=37760363&ref=gorillasun.de) also shine an interesting perspective on things from people that might not be as closely involved with porcessing, p5 and creative coding in general.
I have no particular stance on this - I am grateful for everything the Processing Foundation does, the lovely and welcoming community it's built and continuously
## All the Generative Things
Besides that, it's actually been quite an eventful week, full of new articles and interesting projects to check out! To be frank, last week has been absolutely bonkers!
I always tell myself to not overdo it with the Newsletter, but I just end up finding so many things that I think need to be included... while I'm at the same time probably missing a lot of things as well.
### MIT Media Lab Lunch Lectures
A bit late to the party since - I only discovered a couple of days ago that, throughout this past month of September leading into the first two October weeks, the Future Sketches Group from the MIT Media Lab is holding a lunch lecture series for everyone to join in on and learn from:
[Lunch Lectures: Computational Typography – MIT Media LabJoin the Future Sketches group on Fridays from 12 – 1pm ET for the Lunch Lectures Fall 2023 edition about Computational TypographyMIT Media LabVera van de Seyp.png.1400x1400.png)](https://www.media.mit.edu/posts/lunch-lectures-computational-typography/?ref=gorillasun.de)
Before you succumb to FOMO like I did when I saw that I'd missed these lectures - rest assured, the sessions have been recorded and will be linked to on their page once they've been edited! This lunch lecture series was already done once this past February, with a different overarching theme Generative AI and artistic practice - you can find the recordings here:
[Lunch Lectures: Generative AI and Artistic Practice – MIT Media LabJoin the Future Sketches group on Fridays from 12 – 1pm ET for the Lunch Lectures Spring 2023 edition about Generative AI and artistic practice.The Future…MIT Media Lab](https://www.media.mit.edu/events/future-sketches-lunch-lectures/?ref=gorillasun.de)
### Arbitrarily Deteministic x Lisa Orth
Ken has been on a roll this past few weeks - this time he's back at it, joined by the prolific Lisa Orth - check out the episode here:

[Link to Episode](https://podcasters.spotify.com/pod/show/kenconsumer/episodes/AD041---Lisa-Orth-e2a7ti8?ref=gorillasun.de)
They talk about a variety of code related topics, about Lisa Orth's upcoming release with Feral File (more on that in the next section) - and it's overall just a really fun conversation to listen to. Had a blast listening to it while working on this newsletter!
### Feral File - TRUTH
Shining some light on Lisa Orth is also the perfect opportunity to share the upcoming Feral File exhibition that she's taking part in, alongside an impressive roster of other artists:

[Link to Feral File](https://feralfile.com/exhibitions/upcoming?ref=gorillasun.de)
Truth is the newest upcoming Feral File exhibition, a group show of 8 stellar generative artists all of which created work around, curated by none other than [Adam Berninger](https://twitter.com/ajberni?ref=gorillasun.de) who's doing incredibly work in this regard, giving artists the chance to present their works in a meaningful manner:

[Link to Tweet](https://twitter.com/FeralFile/status/1708903463235490004?ref=gorillasun.de)
### Vitreous by Charlotte Dann
Charlotte Dann is one of the other artists taking part in this upcoming Feral File exhibition with her project titled Vitreous. I've come across quite a few outputs of the project while scrolling down on my timeline, and it's aesthetics always made me stop and take a moment to have a closer look.
Blurry and muted gradients tracing the circumference of the voronoi-esque background blobs in the background, standing in contrast to the more geometric and accentuated inorganic lines in the foreground makes for captivating compositions - link to a thread about Vitreous as well as an interview about the process that lead to the creation of the compositions:


[Link to Thread](https://twitter.com/FeralFile/status/1709651490275500229?ref=gorillasun.de)
### TinyCode
> Brevity is the Soul of Wit - Shakespear
You might remember Frank Force from the newsletter of two weeks ago, where I featured his generative Pottery FxParams project - he recently gave a talk about Tiny Code for Js GameDev summit - you can find the entire talk here:
Frank points out an amazing paltform for the purpose of tiny coding with Javascript: Dwitter! If you're familiar with tsubuyaki processing over on Twitter, Dwitter is essentially a dedicated platform for this purpose - where you can share these tweet sized codes and the browser will automatically run and visualize them once posted:

[Dwitter.net](https://www.dwitter.net/?ref=gorillasun.de)
Frank talks in detail about how the platform works and also breaks down some dweets to give some examples. I think that this is also a good chance to pitch an article that I've written last year about Tsubuyaki Porcessing and some of the tricks that people use to make tiny tweet sized P5 programs:
[9 Tips for Tsubuyaki ProcessingTsubuyaki processing has become a popular and fun little challenge on Twitter. In this post I’ll be going over some character saving tricks that can come in clutch when you’re out of ideas for reducing the size of your code!Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/9-tips-for-tsubuyaki-processing/)
### Eko33 on early computer art
I found this thread by Eko33 interesting because he points towards characters that you wouldn't directly associate with having contributed to the generative art movement, but have actually made important contributions that pushed the field forward:
[](https://twitter.com/Eko3316/status/1709842189939818894?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/Eko3316/status/1709842189939818894?ref=gorillasun.de)
Important thing to note here - click on the ALT text icon in the lower left corner of the images to reveal the name of the people depicted in the attached images!
Aaaand while I have your attention - how about signing up to the newsletter? If you're viewing this in the browser and aren't subscribed to the newsletter yet - consider doing so! It's free!You'll receive this entire publication directly in your inbox every Monday, as well as other articles, essays, tutorials and interviews occasionally throughout the week!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
## Pen & Plottery
Coincidentially, there's been a number of things revolving around works made with plotters this past week - hence it makes sense to bundle them in their own individual section.
### Le Random interview with Sougwen Chung
I mentioned Sougwen Chung in last week's newsletter, showcasing her amazing innovative plotter work, that was featured as a part of the GEN/GEN: Generative Generations exhibition at the Gazelli Art house. Peter Bauman wasted no time to getting a hold of Sougwen and talking to her about her practice and how she collaborates with the machine to create art:
[Sougwen Chung on “Us in Another Form”Multidisciplinary artist Sougwen Chung delves into her unique contributions to the exhibition GEN/GEN: Generative Generations, the evolving discourse on human-machine interconnections and more with Peter Bauman (Monk Antony).Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/sougwen-chung-on-us-in-another-form?ref=gorillasun.de)
Throughout their conversation Sougwen elaborates how her work is influenced by the ideas of the Japanese avant-garde Gutai group that was formed in 1954, that took a radical approach towards art making. As always, an incredibly insightful interview.
What's more, is that Le Random recently made their largest acquisition to date, adding 11 iconic pieces to their ever growing collection - the list goes here:

[Link to Thread](https://twitter.com/lerandomart/status/1709534874917359639https://twitter.com/lerandomart/status/1709534874917359639?ref=gorillasun.de)
### Cory Haber - Apophenies
Sougwen Chung is not the only artist that makes stellar work with plotters - Cory Haber knocks it out the park with Apophenies that is launching in a few days with Bright Moments.
Cory Haber spent the better part of the past 5 years in the attempt to create oil paintings with plotters - the digital works released with Bright Moments will be accompanied by physical instantiations of the artworks:


[Link to Cory Haver's tweet](https://twitter.com/Cory%5FHaber/status/1708807613146607619?ref=gorillasun.de) | [Link to Bright Moments' tweet](https://twitter.com/brtmoments/status/1704961128051380716?ref=gorillasun.de)
### Gestures of the Generative Painter
I also came across a tweet by Licia He pointing out a beautiful article that discusses painterly textures in generative art, and why so much effort has been spent on the recreation and simulation thereof.
[Gestures of the Generative Painter - OutlandGenerative art’s expressivity is less about imitating painterly gestures than devising a system to produce them.OutlandBrian Droitcour](https://outland.art/generative-painting/?ref=gorillasun.de)
The article by Brian Droitcour, Editor-in-chief of Outland, delves into the history of digital brush strokes and tries to analyse where our obsession with skeuomorphic looking pen/brush strokes stems from:
> For centuries, art critics have attributed to visible brushwork a vitalist force. The trace of the artist’s hand is an imprint of the artist’s soul, identifying the work of art an expressive act.
Licia He's perspective on this is also interesting - she attempts to invent new digital art supplies rather than recreate existing ones:

[Link to Tweet](https://twitter.com/Licia%5FHe/status/1710346412683047379?ref=gorillasun.de)
## MOMA Postcards
You've probably seen this, because it's been all over the news - but MOMA launched their tezos powered digital Postcards:
[HELLO WORLD | The MoMA PostcardA new project from The Museum of Modern Art celebrates co-creation on the blockchainThe MoMA PostcardMadeleine Pierpont](https://www.rightclicksave.com/article/hello-world-the-moma-postcard-digital-artists-interview?ref=gorillasun.de)
It's essentially an experiment in decentralized art making powered by the Tezos blockchain, and arguably one of the coolest projects this year.
It took me a bit to understand how it works, after looking into it I found this thread by Autonomy that clarifies the procedure of participating and creating your own postcard:
[](https://twitter.com/AutonomyWallet/status/1710298241701384465?ref=gorillasun.de)
Link to Thread
Basically, to sum up the steps for creating a postcard:
1. [Sign up to the waitlist on the MOMA website here](https://www.moma.org/calendar/exhibitions/5618?ref=gorillasun.de), you'll get invited once it's your turn, postcards are being distributed in limited quantities for now.
2. You start by minting a blank postcard - I have no information on what the interface looks like or where you can find it.
3. Activate the postcard via the Autonomy app. If you don't have it, you need to download it. Again no info what that looks like.
4. Now you can design a stamp by filling out a 10x10 pixel grid with a color palette provided by MOMA - similar to 8bidou I guess.
5. After you've done so you need to sign the stamp, basically layering your stamp with a digital signature.
6. You insert your stamp on the postcard, pinning the artwork on IPFS, interacting with the blockchain and eternalizing the stamp onto the postcard.
7. Postcards are essentially fractional tokens, owned by several people at a time. Once you finish your stamp and add it to the postcard, you send the postcard to another person (can be done via regular messaging apps) who then repeat these steps and keep forwarding it until the entire card is filled out.
I hope that this clears it up a little. Let me know if you have more info on this! I also really enjoyed this tweet by Cabline:

[Link to Tweet](https://twitter.com/cabline1/status/1709560477972340741?ref=gorillasun.de)
## Versum is shutting Down
Another sad news that I want to relay this week is Versum's announcement that they're shutting down, gradually over the coming weeks. We're informed about this by their official statement:

[Link to Thread](https://twitter.com/cabline1/status/1709560477972340741?ref=gorillasun.de)
The Versum team further states their gratitude towards the community:
> This wasn't an easy choice, but it's a necessary step for various reasons, which we won't delve into here. We want to take a moment to express our heartfelt gratitude for your unwavering support, participation, and enthusiasm.
> You've made Versum a vibrant space for artists, collectors, and Tezos NFT enthusiasts alike. Your creativity and engagement have been the lifeblood of this marketplace, and for that, we are eternally grateful.
The current climate is harsh, amidst this bear-market Tezos isn't doing that great. Over on the discord there were some further clarifications about the financial issues revolving around this decision:

Versum was a platform focused primarily on Art, I can still remember Andre's excitement when he got on sableraph's twitch stream talking about the platform:

It is unlikely that someone with massive financial means is reading this newsletter, but if you do know someone that would be interested in investing in a talented team of developers with a passion for art - consider getting in touch with them.
## Weekly Web Finds
Besides this mixed bag of Generative Art and Web3 things there's also a few other cool things I came across on the internet this week.
### Learning to Program - The HARD Way
I quite enjoyed this video by Theodore Bendixson giving arguments why sometimes it's necessary and beneficial to do things the hard way, especially when it comes to programming - certain knowledge and expertise can only be acquired in that manner:
The original motivation behind Theodore's video is a comment that he received on one of his updates regarding the video game that he was developing, pointing out that it was taking him a long time to code up his game-engine when he could have simply used a commercial one.
I can relate on many points, it is an incredibly experience to figure out things by yourself. Maybe a slightly hard-headed way to look at things, but having that *eureka* moment when you finally figure out a problem that you've been stuck on for a while is simply invaluable. Instead it can often be the case that you rob yourself by simply using a tool that is already available.
I'm curious, what are some of your programming experiences where you finally figured it out after repeatedly running into a brick wall?
### Next.js vs Remix: An In-depth case study
I only know very little about Next.js and have actually never heard of remix, but both of them are react frameworks that provide the building blocks to create fast web-applications. In this post by Prateek Surana he compares the two by creating a Twitter clone and comparing the two on several criteria, like performance and the experience he had building an app with them:
[Next.js 13 vs Remix: An In-depth case studyA detailed comparison of the features Next.js 13 and Remix Run by building a Twitter Clone app in both frameworks.](https://prateeksurana.me/blog/nextjs-13-vs-remix-an-in-depth-case-study/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
## AI Corner
### A brief note on predatory monetization schemes using open source AI models
This week, the Newsletter's banner image is AI generated, made with Dall-E 3, OpenAI's powerful generative image model that is made readily available with the bing browser. The only reason for my experimentations being that it is free to use.
I generally think that you should not pay for websites that offer AI services - at this point at least - in many cases they are built on models that have been open sourced, and often don't add much to the table other than providing a nice interface.
If you spend a little bit of time you can usually find public google colab notebooks that can help you solve whatever task you were looking for, whether it be automatic audio transcription from a sound file, neural network powered translation of some text, or the synthesis of pretty images. You can in most cases find open source models that allow you to do that FOR FREE.
I feel that this needs to be said, because the number of predatory monetization schemes in this regard have recently emerged. If you find a service that you genuinely think is worth the money I absolutely have nothing against that, I just urge everyone to do their due diligence before reaching for their credit card information.
### Current State of the Art AI Image Generators
Pivoting off of the previous point - each time I check back in to see how far the current state-of-the-art image generators have come, I'm left utterly speechless. Now more than ever.
Looking past all of the problems that come in tandem with these image generators - it is still incredibly impressive technology. Show this to AI researchers from 50 years ago, they wouldn't be able to comprehend what they're looking at. Back in the 80s we were predicting silly things like flying cars and hoverboards - I'd argue that what we've reached is multitudes more impressive than that.
Is it art? Is it generative art? That's a topic that needs a lengthy discussion to be addressed and can't be simply answered with a yes or no.
I posted some images that I generated with Dall-E 3 over on Twitter and Instagram picturing gorillas sitting in meadows, with the sun rising behind them, simply as an ode to my internet handle:



I've always loved a painterly style, especially oil on canvas in an impressionist style, with thick brush strokes and bright, saturated colors.
I've been thinking about the ethical problems of AI art quite a bit in the past weeks, and over on Instagram I got this comment from David Matthew which I wanted to share here as well as I believe it brings an important perspective, and I think my reply shows my position on the matter:

The problem with AI generated works are the companies that make it so readily available as a monetized service, having trained their models on datasets that have been acquired by dubious means, without any respect to the artists that have dedicated their lives to the craft. Maybe I will write about this in more detail in a future post.
### Chatbot Hallucinations are poisoning Web Search
An interesting adverse effect of AI powered chatbots is that these conversational threads that users are having with LLMs are being indexed by search engines, to the great detriment of the rest of the search results:
> The age of [generative AI](https://www.wired.com/tag/artificial-intelligence/?ref=gorillasun.de) threatens to sprinkle epistemological sand into the gears of web search by fooling algorithms designed for a time when the web was mostly written by humans.
[Chatbot Hallucinations Are Poisoning Web SearchUntruths spouted by chatbots ended up on the web—and Microsoft’s Bing search engine served them up as facts. Generative AI could make search harder to trust.WIREDCondé Nast](https://www.wired.com/story/fast-forward-chatbot-hallucinations-are-poisoning-web-search/?ref=gorillasun.de)
I don't know if there's a solution for this other than simply cutting these results from search for now (or forever) but it also forebodes a grim future where a lot of resource will be replaced by LLMs. In some ways I am a little concerned for my writing and the work that goes into the blog. Only time will tell though.
## Gorilla Updates
Not much to report from my end this week, been mainly writing, and only got the change to do a little bit of sketching at the beginning of the week. When this newsletter goes out and you're reading this I'll probably already be working on some new stuff - it's about time I put out some new things (I know I keep saying that but this time I'm actually tracking down some banger ideas for reals (fosho bro, fosho)).
One thing I worked on was refactoring my hachure code and rethinking how I structure sketches with polygon intersections, decoupling the different parts of the code that take care of creating the polygons, drawing them to the canvas, checking for instersections and subsequently filling out these regions with hachures. It was fun task to think about, but I'm gonna need quite a few hours to actually implement it:


Hachure code reimagined.
Instead of relying on the rendering context's clip function I now compute individual intersection between the hachure lines and the boundary of the shape, allowing me to add some add some fuzz to the hachure lines - lending for a more organic look.
I also found that it produces this cool optical illusion where things look as if they're in a way out of focus when chaotic hachures are juxtaposed with clean and parallel hachure lines:


Out of focus?
## Uma's crocheted Tinies
And here's a very special announcement - something that I'm personally stoked about - Uma launches her tiny Etsy store!
[TiniesByUma - EtsyShop Tiny yarn creations to brighten your day! by TiniesByUma located in Heidelberg, Germany.Etsy](https://www.etsy.com/shop/tiniesbyuma?ref=gorillasun.de)
A few months ago my partner picked up a new hobby - crocheting with yarn. It quickly turned into a passion and an obsession, finding herself creating a variety of different cute little crocheted creatures and characters:


[TiniesByUma - Tiny yarn creations to brighten your day!](https://www.etsy.com/shop/tiniesbyuma?ref=gorillasun.de)
I have no idea how she does it, I only know that it's quite difficult to make shapely spherical things with yarn.
If you think they're cute, and if you'd like to own some for yourself - check out the Etsy store where you can get one or two. Looking at them sitting on the desk always cheers me up - feels like I have tiny little helpers to get me through all of the tasks that lie in front of me throughout the day:

٩(⊙‿⊙)۶
Crocheting is in a way generative art, right?
Once again, I ask for your support - if you've read this far, consider signing up to receive the newsletter directly in your inbox every Monday! It's Free!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
## Music for Coding
Bon Iver is one of those bands that I've heard a lot about and come across on multiple occasions, but never really actively listened to. I changed that this past week, and I'm extremely happy with that decision. Bon Iver is one of those musical phenomenons that has a completely unique feel to it, you can't really compare it to anything else out there, and it transports you to completely different places.
Although here I'm only linking to [Bon Iver's eponymous 2011 album](https://en.wikipedia.org/wiki/Bon%5FIver%5F%28album%29?ref=gorillasun.de), you should definitely also check out the other ones, because they're all stellar. Bon Iver won the Grammy Award for Best Alternative Music Album in 2012, and again, it's one of those albums that you should have listened to at least once in your life - on day I compile a list of all of these albums - Justin Vernon's enthralling voice in harmony with the folk-y instrumentation is just something else:
If you only have time for one track, then listen to Holocene. You've probably heard it on the radio before though.
**And that's it from me this week again, while I'm jamming out to some Bon Iver I bid my farewells, hope this caught you up a little bit with the events in the world of generative art, tech and AI in the past week! And I hope you have a lovely rest of the day and a great start into the week - I definitely am!**
**If you enjoyed it, consider sharing it with your friends, followers and family - more eyeballs/interactions/engagement helps tremendously - it lets the algorithm know that this is good content. If you've read this far, thanks a million!**
**Otherwise - Cheers, happy sketching, and see you in the next one! - Gorilla Sun 🌸**
### Gorilla Newsletter 24
URL: https://www.gorillasun.de/blog/gorilla-newsletter-24/
Last updated: 2023-10-02T11:45:31.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### Agglo by Leander Herzog on Verse
A recent project that I found sincerely captivating was Leander Herzog's **Agglo**.
Combining a minimal, yet colorful aesthetic, with intricately repeating patterns, captivating visuals emerge:
0:00
/0:35
1×
[Screen capture from the project's Verse page](https://verse.works/collections/agglo-by-leander-herzog?ref=gorillasun.de) |
It feels as if I'm watching a machine that's become sentient - there is something strangely organic about the shifting motions in Agglo.
Mimi Nguyen from Verse wrote a beautiful piece on the project, showcasing some of Leander's intentions behind the project:
> It embodies a calculated, technical approach aimed at the creation of compositions within a straightforward system grounded in elementary code, yielding intricate results. Its genesis does not stem from real-world inspirations or specific imagery but represents a technical pursuit.
[Dissecting Complexity: In conversation with Leander Herzog | VerseIn the heart of Manchester, the School of Digital Arts (SODA) played host to an intriguing display that garnered attention from both art department students, faVerse](https://verse.works/journal/dissecting-complexity-in-conversation-with-leander-herzog?ref=gorillasun.de)
Agglo is impressive on multiple levels, especially the fact that iterations collected by the same wallet will end up syncing with each other, such that they run synchronously (synced shifting motions) when displayed side by side - playing into a broader theme of connectedness.

I recommend checking out Leander's Twitter where he shares some tidbits / behind the scenes of this projects.
Imo, it's simply a really great piece of generative art - it looks beautiful, the underlying system is intricate and interesting, and it extends beyond itself to do more than just being a pretty piece of generative art. All of that, while still being simple and comprehensible to both artists and audience.
The token goes live on the same day this newsletter lands in your inbox, if you'd like to pick up an edition, as part of Verse's exhibition - **Hyperconnections**. I recommend checking out the other pieces, as well as the other interviews that Verse has done with the participating artists.
[Hyperconnection | VerseVerse is pleased to present Hyperconnection, an exhibition that delves into a multifaceted exploration of digitality, deeply rooted within the contemporary techVerse](https://verse.works/exhibitions/hyperconnection?ref=gorillasun.de)
### GEN/GEN Generative Generations | Gazelli Arthouse
Generative Generations is Gazello Arthouses latest exhibition running from the 7th of September to the 8th of October at their Mayfair location in the heart of London. The exhibition features work from 6 generations of generative artists, and features and impressive roster:
[](https://gazelliarthouse.com/exhibitions/174-gen-gen-generative-generations/?ref=gorillasun.de)
[Link to exhibition page](https://gazelliarthouse.com/exhibitions/174-gen-gen-generative-generations/?ref=gorillasun.de)
What's more is that a number of interviews with the participating artists were published: RCS talked to Darien Brito, Sougwen Chung, Ernest Edmonds and Licia He. LeRandom got hold of Rhea Myers for an in depth talk with her.
RCS kicks of their article by asking the artists about their pieces in the exhibition:
[The Generations of Generative ArtA groundbreaking exhibition uncovers new histories of human-machine interactionJason Bailey](https://www.rightclicksave.com/article/the-generations-of-generative-art-interview-gazelli-art-house?ref=gorillasun.de)
I was particularly impressed by Sougwen Chung's work after having a closer look on her website - her work involves programming a robot to mimic her drawing motions and recreating by means of a plotter:

[From Sougwen Chung's Homepage](https://sougwen.com/project/drawing-operations?ref=gorillasun.de) | From concept to execution - stellar!
Another question that was posed revolved around the definition of generative art. Although nuanced answers were given, they all agreed on one point: being a generative artist involves creating, designing and fine-tuning a system.
Ernest Edmonds points to a paper that I hadn't previously seen, co-written by him alongside Margaret E. Boden titled ['What is Generative Art?'](https://creativecoding.soe.ucsc.edu/courses/cmpm202%5Fw20/texts/Boden%5FEdmonds%5FWhatIsGenerativeArt.pdf?ref=gorillasun.de):

Rhea Myers' work lies at the intersection of culture and technology. She has found an interest in the blockchain as a cultural medium very early on:
[Rhea Myers on Code as Cultural MaterialArtist, hacker and writer, Rhea Myers, discusses her thoughtful contributions to the group exhibition GEN/GEN: Generative Generations and more with Peter Bauman (Monk Antony). Myers unravels her artistic practice, touching upon code-as-narrative, “Blockchain Aesthetics” and the dialogue between her…Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/rhea-myers-on-as-cultural-material?ref=gorillasun.de)
As always Peter Bauman steers the interview in a meaningful direction and asks interesting questions:

Whether you're physically in London or not, I highly recommend checking out GEN/GEN and all of the featured artists.
### On Craft, Art & Programming
We also get another treat from LeRandom. This time Mark Webster aka motiondesign01 picks up the pen for us.
With a varied body of work ranging from organic neural drawings to more blocky, ascii aethetics - Mark Webster is a powerhouse of generative art:


[Mark Webster on Twitter](https://twitter.com/motiondesign%5F01?ref=gorillasun.de)
In the essay, Mark addresses several points that revolve around programming, how it is related to crafts and art and how generative art is a modern embodiment of these practices.
He argues that contemporarily the notion of craftsmanship is often hastily overlooked when assessing and attributing value to pieces of art - something that has become increasingly important with modern art-forms. In generative art for instance, the artist-programmer occupies a special place somewhere in between the two realms of art and crafts:
[On Craft, Art & ProgrammingArtist Mark Webster suggests that in order to better understand art’s value, we must be willing to consider the function of craft, including elements of skill less visible or immediate.Le Random](https://www.lerandom.art/editorial/on-craft-art-programming?ref=gorillasun.de)
In many ways the modern programmer is a craftsman - after all, learning how to write meaningful code, is an endeavor that requires a considerable effort and dedication to be acquired. At least in my own experience, I've always felt more like a builder and a maker of things, rather than solely being an artist.
A wonderful piece of writing that is informative, yet also leaves you with something to ponder on. Looking forward to more essays in the same style!
And if you're a fan of LeRandom - I've got a surprise for you later this week! 👀
### Arbitrarily Deterministic New Episode
Arbitrarily Deterministic is back with another episode! And Ken pulled a real sneaky one on us this week... not gonna spoil it here - just go give it a listen and you'll know what I mean:
In this episode we also get a peek into Ken's interesting plotting practice - something that I think many weren't aware of - and Ken actually makes some absolute bangers! Here's one of the stunning pieces:

[Improper Pandemic Era Facewear](https://foundation.app/@kenconsumer/fynmn/1?ref=gorillasun.de) from the [When Each Body Pulls On Each](https://foundation.app/collection/fynmn?ref=gorillasun.de) collection
Highly entertaining episode - check it out!
### ArtBlocks Marfa 2023 Recap by The Culture Project
One newsletter that I love seeing in my inbox [The Culture Project](https://substack.com/@thecultureproject?ref=gorillasun.de) by [Josh Ripple aka Abnormality on Twitter](https://twitter.com/joshripple?ref=gorillasun.de). This week they shared a big recap of the Artblocks Marfa weekend - a great way to get a feel for what the event was like:
[Art Blocks Marfa 2023A fun & crazy generative art event.The Culture Projectabnormality](https://thecultureproject.substack.com/p/art-blocks-marfa-2023)
Really lovely post, thanks so much for making the write-up!
### Kate Vass on Generative Photography
Although it didn't get many likes, I found this thread on generative photography highly interesting!
> Inspired by Max Bense's 'Aesthetica' Jäger defined the term generative photography. It refers to a methodical creation of aesthetic states through predefined programs, employing photo-chemical, photo-optical or photo-technical operations & merging natural mediums with math tools

[Link to Thread](https://twitter.com/KateVassGalerie/status/1707802874351149404?ref=gorillasun.de)
Would love to see a more in depth post on this - maybe that could be an endeavor for the blog?
## Mathober & Divtober 2023
Hacktober kicked off last week - this week we have some other takes on the trend that was started by the infamous inktober - the Maths world, and the CSS crowd join in on the fun with Mathober an Divtober.
The Mathober prompts are selected by Sophia Wood aka Fractal Kitty, and can be found on her webpage:
[Mathober 2022 – Prompts!Mathober 2022 promptsFractal Kittyfractalkitty](https://fractalkitty.com/2022/09/17/mathober-2022-prompts/?ref=gorillasun.de)

Essentially, you can interpret the prompts as loosely as you want and in any medium of your choosing. Fractal Kitty does so on form of doodles, but you alternatively also do them with code and the like. I'd also recommend checking out some of the lovely creations over on her website.
Divtober actually seems a little more daunting than Mathober, because the prompts are intended to be interpreted in form of a single CSS div - I have no idea how - but I think a lot of it has to do with the *::before* and *::after* pseudo elements:
[#divtober 2023One single div illustration for each day in October.](https://a.singlediv.com/divtober2023/?ref=gorillasun.de)

Here's some 2022 creations from Lynn Fisher (the organizer behind divtober) from 2022:


How do you do this with CSS???
## Reaction Diffusion and other Primers
Every now and then, this Japanese Twitter account pops up in my timeline - each time sharing tutorials on various algorithms that are generally geared towards the purpose of generative art.
I'm don't think the most recent post is new, but still worth sharing. This time it revolves around the Reaction-diffusion algorithm, a method for the creation of interesting organic patterns - also often referred to as Turing patterns:

The article isn't super in depth but it enumerates some of the methods with which reaction-diffusion can be achieved. What I want to point out is that they have quite a few posts that are superb as primers for many generative art techniques - [they can be found on their notion index page here](https://kyndinfo.notion.site/Sketching-with-Math-and-Quasi-Physics-837e231967134bb5a8307bb9f41c8ea1?ref=gorillasun.de).

[On Turing patterns from Wikipedia](https://en.wikipedia.org/wiki/Turing%5Fpattern?ref=gorillasun.de)
## Weekly Web Finds
As always, there's also been a lot of interesting thing in the world of tech - some of which I included here👇
### Bun Hype, better than Yarn?
Bun is a new JavaScript runtime and package manager that has been gaining a lot of hype lately. It is claimed to be faster than Node.js and to have a number of other advantages, such as built-in support for TypeScript and JSX:
[Bun hype. How we learned nothing from YarnHere we go again, making the same mistake. I’m constantly reminded that every 5 years the amount of…DEV CommunityThe Jared Wilcurt](https://dev.to/thejaredwilcurt/bun-hype-how-we-learned-nothing-from-yarn-2n3j?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
In the article Jared Wilcurt argues that Bun is not actually much better than Yarn, another JavaScript package manager that was hyped up a few years ago. Although Yarn had a couple of new features that didn't exist in npm when it was first released, it was quickly overtaken again by npm again in all of those regards. Wilcurt predicts that Bun will ultimately meet a similar fate to Yarn.
### A (more) modern CSS reset
4 years after having written his post titled [A Modern CSS Reset](https://andy-bell.co.uk/a-modern-css-reset/?ref=gorillasun.de) \- Andy Bell is back with an updated version:
[A (more) Modern CSS Reset - Andy BellI wrote A Modern CSS Reset almost 4 years ago and, yeh, it’s not aged overly well. I spotted it being linked up again a few days ago and thought it’s probably a good idea to publish an updated version. I know I also have a terrible record with open source maintenance, so I thought \[&hell…Andy Bell](https://andy-bell.co.uk/a-more-modern-css-reset?ref=gorillasun.de)
If you're not familiar with CSS resets - it's basically the shortest possible CSS code to reset all styling - this is useful when you want to get rid of the styles that browsers apply by de
### State of HTML 2023
The state of HTML is essentially a survey that everyone can participate in - the result of which ultimately inform browsers and standards groups on what features to prioritize and build into their roadmap:
[State of HTML 2023Take the State of HTML survey](https://survey.devographics.com/en-US/survey/state-of-html/2023?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Might be worth the time to participate.
### 10 Github repositories to achieve Javascript mastery
I've been spending a lot of time on DEV since there's quite a few interesting reads over there every week - this past week I really enjoyed this list of useful repositories to learn Javascript things:
[🚀 10 Github repositories to achieve Javascript mastery 🧙♂️🪄✨TL;DR This article contains a list of 10 Github repositories that are going to be useful…DEV CommunitySumit Saurabh](https://dev.to/novu/10-github-repositories-to-achieve-javascript-mastery-50hk?ref=gorillasun.de)
Ranging from concepts to practical tips, there's a little bit of everything in there.
##
## AI Corner
### ChatGPT can now see, hear, and speak!
If you're a ChatGPT Plus user, your model just got a whole lot more powerful you can now interact with it via audio and images:
[ChatGPT can now see, hear, and speakWe are beginning to roll out new voice and image capabilities in ChatGPT. They offer a new, more intuitive type of interface by allowing you to have a voice conversation or show ChatGPT what you’re talking about.](https://openai.com/blog/chatgpt-can-now-see-hear-and-speak?ref=gorillasun.de)
These new voice and image capabilities are powered by two new models: a speech model that allows ChatGPT to generate and understand human speech, and a vision model that allows it to recognize and process images.
From a point of view of accessibility these additions seem really useful. When it comes to images however I'm not sure if it can be very useful when asked to reason about the real world - as they showcase in their post, where they post a picture of some type of defect component and ask about it - but apparently some people have seen some success already in that regard, [taking in screenshots from figma and transforming that into functioning code for instance](https://twitter.com/mckaywrigley/status/1707796170905661761?ref=gorillasun.de).
[Incredible Ways to Use ChatGPT VisionThese new image capabilities unlock a whole new world of ways to use ChatGPT.WGMI MediaDils](https://wgmimedia.com/ways-to-use-chatgpt-vision/?ref=gorillasun.de)
### An introduction to the problems of AI consciousness
A splendid article from Nick Alonso on the problematics that arise around the discussion of AI consciousness.
The first issue at hand is putting a definition on consciousness, what is it actually? Is it some emergent property of the chemicals in our brain? If we can't tell what it is, and don't have a clear definition of it how can we determine if an artificial agent has attained consciousness?
What are the necessary and sufficient conditions for consciousness?
[An Introduction to the Problems of AI ConsciousnessOnce considered a forbidden topic in the AI community, discussions around the concept of AI consciousness are now taking center stage, marking a significant shift since the current AI resurgence began over a decade ago.The GradientNick Alonso](https://thegradient.pub/an-introduction-to-the-problems-of-ai-consciousness/?ref=gorillasun.de)
Moreover, even if we could create a conscious AI, there are a number of ethical and social problems that would need to be addressed. For example, what rights should conscious AI have? How should we ensure that conscious AI systems are aligned with human values? How should we prevent conscious AI systems from becoming too powerful?
### Getting Emotional with LLMs increases performance
A recent paper titled [Large Language Models Understand and Can Be Enhanced by Emotional StimuliEnhanced by Emotional Stimuli'](https://arxiv.org/abs/2307.11760?ref=gorillasun.de) explores the effect of emotional input prompts on the quality of LLM's responses - and apparently getting emotional with your words can improve their performance:

The tested on a variety of tasks ranging from text summarization to question answering.
I've noticed this as well, giving positive and negative feedback after responses from ChatGPT like *'Ok good job!'* or *'This is actually trash'* usually yields a better result on the LLM's second attempt - somehow as if it it's becoming more focused on the task at hand after the feedback it gets.
A more digestible write-up for this can be found here:
[Getting Emotional With Large Language Models (LLMs) Can Increase Performance by 115% (Case Study)Deep dive into why Emotional Intelligence is important for increasing Large Language Models’ (LLMs) performance.Cool God wearing sunglasses, God of Prompt logo](https://www.godofprompt.ai/blog/getting-emotional-with-large-language-models-llms-can-increase-performance-by-115-case-study?ref=gorillasun.de)
## Gorilla Updates
### Hot off the Press - In Conversation with Tezumie
This past week I put on my interview hat again and reached out to Tezumie asking if he'd be up for a chat. At this point in time, Tezumie has published over a dozen generative projects across platforms like FxHash, 256ART and the renown ArtBlocks. What's more, is that stylistically his piece have slowly evolved from a more abstract style towards the pursuit of representing natural scenes - I wanted to know more about that and how he does it.
We ended up talking for more than an hour, connecting on several points about generative art, programming long-form pieces for the blockchain, as well as the intricacies of it.
[In Conversation with TezumieTezumie is a prolific generative artist that has built an impressive and varied body of work in the short span of 2 years. Besides this he is deep in the throes of developing his own browser based - AI enhanced - code editor. This is a conversation with Tezumie.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/interview-tezumie/)
Additionally, what really caught my attention and made me want to reach out to Tezumie, was his newest endeavor that he'd been sharing about on Twitter: the development of aijs.
Aijs is essentially an AI enhanced browser based code editor that integrates a ChatGPT panel into it's interface. I found it super intriguing and wanted to know more about the development of such a tool. I like people that branch out and do different things - coding a tool like a code editor is vastly a different kind of project compared to programming a generative sketch.
### Fresh off the easel
This week I made a piece for Objkt.com's open call for

[Link to Tweet](https://twitter.com/objktcom/status/1707013675909836900?ref=gorillasun.de)
The latter part of the tweet (which is cropped here) states that they're looking for a fun and colorful piece... and if you're asking for colorful, then you'll get colorful! I ended with something that I'm really proud of - I decided on the title 'Outwards':
0:00
/0:12
1×
It's essentially many SDFs playing into each other to create this dueling, outward traveling spirals. Oh did I mention that it's a perfect loop?
If you want to help me out maybe hop over to Twitter and give it a like - I don't actually know if that will influence Objkt.com's final decision (it might, who knows?) - [here's a link to my post!](https://twitter.com/gorillasu/status/1707478127079731241?ref=gorillasun.de)
### Gorilla makeover
And I've spent quite a few hours diving into CSS hell - in an attempt to clean up the big messy CSS sheet that I've created over the course of the past weeks. It's actually quite a tricky thing, especially coming up with meaningful names for the different classes.
A new addition to the design is this little TLDR card that Ill include at the beginning of each section - I know that my writing is quite wordy - so to make things a little easier, I thought it'd be beneficial to have a quick summary for those who don't have the time to read all of my ramblings.

New TLDR card - still needs some work.
## Music for Coding
Poolside's mixtapes absolutely SLAP! The grooves on this just hit differently - and just like the cover art, the tropical beats instantly put you into a good mood. Really worked well for this past week as it seems that the summer temperatures are slowly coming to an end:
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of generative art, tech and AI in the past week!**
**If you enjoyed it, consider sharing it with your followers, friends and family on your socials! It helps A LOT! Otherwise, Cheers and happy sketching \~ Gorilla Sun 🌸**
### In Conversation with Tezumie
URL: https://www.gorillasun.de/blog/interview-tezumie/
Last updated: 2024-08-28T13:37:07.000Z
**Over the span of the past two years, Tezumie has quickly risen to be a prolific generative artist. With artworks published on FxHash, 256Art, and ArtBlocks he's built an impressive body work. Tezumie's portfolio spans a wide variety of artistic styles - ranging from abstract geometric compositions, to Skeuomorphism and Neo-precisionism.**
In our conversation I ask him about his background, how he found his way into generative art, his process and approach to making generative art, as well as how his style developed since his debut.
Tezumie's current endeavor is the development of AIJS, a browser based, AI enhanced p5js-esque code editor, that seamlessly integrates ChatGPT into its UI. In the latter part of the article we talk about the development of the editor, some of it's features and some of the challenges of building such a tool.
Talking to Tezumie was a real joy - we talked for around an hour, and that hour just flew by so quickly - we connected and related on so many points, it was delightful. That said - let's get into it 👇


[Entangled #0](https://256art.com/project/entangled?ref=gorillasun.de) & [Frontier #0](https://256art.com/project/frontier-2?ref=gorillasun.de)
> I've always loved making art, it's been my hobby my whole life, mostly the creation aspect of it. I never really thought of myself as an artist, but I just liked the process of making something - you start with absolutely nothing and you end up with something that tells a story - [Interview with 256Art](https://256art.com/artist/tezumie?ref=gorillasun.de)

[Tezumie's bio from 256Art](https://256art.com/artist/tezumie?ref=gorillasun.de)
## Getting into Generative Art
**Gorilla: In an interview with 256Art, you mention that you started out with visual scripting in Unreal Engine and Blender at a young age - later you went to college for a little while - before and after you'd completed your military service - I wanted to ask you about your college experience; is that how you ended up getting into programming, and later on into generative art?**
When I went to college, I never actually got to do any programming. I did my generals, as well as some other required courses... but I never actually got to coding. And it was driving me crazy. After a year I realized that this wasn't for me - I couldn't learn that way. I found that it was much easier to learn on my own.
**Gorilla: In college I initially had a really hard time. I didn't like programming at all - later on I fell in love with it through creative coding and generative art.**
Yeah, that's exactly how it was for me with visual scripting. When you just look at lines of code and try to make sense of them, it can be really intimidating when you're just starting out. Especially when you don't know what you're looking for. Later on I discovered Daniel Schiffman's tutorials - and wow, this guy can teach \[laughs\]
If it wasn't for his videos I probably would have never gotten into it. Looking from the outside in, coding is just really intimidating. With generative art you can see what you're doing, and I think that having some form of visual feedback makes things a lot more approachable.
**Gorilla: I think that Daniel's videos were a gateway for a lot of people into generative art. In the interview you also recount that a while after you'd left the military a friend contacted you to design the patch for your former unit, you mention that doing so played a role in reigniting your passion for art making - how did that event lead you to getting into generative art?**
When you're growing up, you don't think about art as a job, you think of it like going to the lake - it's just something fun to do.
When they reached out to me and asked me to design their unit patch I had a lot of fun doing it. I started using the Krita app, and that was in a way really liberating; there's no hassle with buying supplies and all of the tools are available to you right from the get-go. That somehow opened it all back up to me.
The same person that had asked me to do the unit patch, then also talked to me about wanting to get into NFTs, knowing that I was into "tech and computer stuff". That's when I started looking into them as well. One thing lead to another, discovering fxhash and Tezos NFTs via Twitter, I somehow ended up in the fxhash discord - at a time where I didn't really know what generative art was \[laughs\]
Then I found the pure-spider template with which I did a number of little drawings just for the fun of it. And that's how Tezumies came to be. I wasn't planning on making any money with it at the time, just thinking that it would be a fun little experiment. After I released that project, I still didn't really know what generative art was, nor did I know what anyone else was doing on the platform.
[GitHub - PureSpider/fxhash-pfp: A template to develop generative layered images on fxhashA template to develop generative layered images on fxhash - GitHub - PureSpider/fxhash-pfp: A template to develop generative layered images on fxhashGitHubPureSpider](https://github.com/PureSpider/fxhash-pfp?ref=gorillasun.de)
**Gorilla: is that how the name Tezumie came to be?**
Initially it was only meant for my first release. It's a play on words, combining the blockchain with the pfp characters. I really liked the name, and it felt fun to tie my first creation with my name - hence I made my account name Tezumie as well!
It's also the result of me wanting to stay anonymous, both for privacy and a bit of insecurity about sharing my art publicly.
**Gorilla: A lot of things changed for you after discovering fxhash**
Yeah, that's pretty much what I do full-time now - coding and making art. It's like a dream. I don't make a lot of money, but I love doing it!
## On Long-Form Generative Art
**Gorilla: you've made quite a few long-form generative pieces up until this point, can you tell us a bit more about that?**
I did 8 releases on FxHash (excluding the pfp projects), then I came in contact with 256Art where I was lucky to be voted in as an artist - back then artists had to be voted in by the community - which lead up to the release of Entangled.

[Tezumie on FxHash](https://www.fxhash.xyz/u/Tezumie?ref=gorillasun.de)
After that I didn't have a release for about 8 months.
**Gorilla: why is that?**
I don't really know - for a while I was just learning and exploring new things. During that time I was actually waiting for Assembly to go through the Artblocks approval pipeline.
I also didn't really want to release anything, because at that point I had learned so many new things from my previous projects - coming back to some of my code I felt that I could redo it in a much better manner, with all of the things that I'd learned, that is. I ended up having 4 projects ready, that I released shortly after Assembly came out.
**Gorilla: I can relate, sometimes you get paralyzed with multiple ideas that all could be projects in their own right. You end up not getting anything done. That's maybe why it starts taking longer and longer to complete projects the further you are down the line.**
That's exactly how it is for me. Sometimes you'll learn a small thing while trying to solve something for another project, and then that sparks something which makes you want to iterate on. Chasing those threads, you often forget about what you've actually been working on. Coming back to them is always difficult.
**Gorilla: What's usually the hardest part of making a long-form generative Artwork for you?**
That's a tough question. It would probably be figuring out a "good" way to do things. Usually there's a hundred different ways to accomplish the same task, of which some might be better than others.
Often, the second problem, after you've got things to work, is that the code ends up being a terrible spaghetti mess. So it's both of those things in combination that's difficult to accomplish - problem solving while keeping your code organized.
**Gorilla: and what about randomness, how do you go about controlling it and ensuring that there's enough variety in you projects?**
That's another tough one. I try a different approach in every single project. The feedback I got in my Artblocks release was really helpful in that regard where I was advised to let up on the parameters of my project a little.
[Assembly by Tezumie | Art BlocksAssembly by Tezumie. A generative art project of 300 different outputs. Released Jul 26, 2023, 5:00 PM UTCArt BlocksTezumie](https://www.artblocks.io/collections/presents/projects/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/445?ref=gorillasun.de)
Originally, Assembly was a lot more strict in it's output space, in which most outputs had a pale shade for a background; giving the code more freedom in that regard allowed for a larger variety of outputs.


Assembly #14 & #18
But that was also a bit difficult for me, making these adjustments sometimes takes away from your vision. With that feedback in particular, I really did have to make that adjustment - otherwise the collection would have ended up very homogeneous.
**Gorilla: I've had similar experiences. Sometimes I post WIPs that I'm not really super into, but those are often the ones that perform the best.**
I get that as well. Oftentimes, the outputs that I'm the most proud of are not the ones that garner interest from the collectors. Other times, people really like outputs that I was actually planning on cutting from the project. But ultimately it's necessary and helps tailor the output space of the project.
**Gorilla: personally I have a preference for geometric patterns that are neatly aligned, visually I simply like them. In the genart space I feel that people are more into chaotic compositions that feature overlapping shapes and the like. Making things like that is difficult for me, because it always feels like I have to overcome something inside of me to do so.**
Yeah, you kind of have to find a balance - where you make something that both you and your audience enjoy. While making something you probably only think about what you personally enjoy. Feedback like that is really important.
**Gorilla: Circling back to your artblocks release, what was the submission process like?**
When I joined, I believe that they were doing a lot of internal changes, which might have contributed to things being a bit slow. Overall it was pretty simple though, you can't really mess it up. They have extensive documentation for each of the steps that you have to go through.
After submitting your project you'll be in contact with a couple of people that will give you feedback and help get the project ready. It took like one or two weeks for each one of the different steps - the hard part was not changing things in the project while waiting \[laughs\]
## Abstractionism vs. Skeuomorphism
**Gorilla: stylistically your more recent projects have gone into a more skeuomorphic direction, what lead you to explore that? Is it inspired by the trend in the generative scene where more artists are exploring this direction?**
Generative art usually tends to be more abstract; when I first started out I didn't really get it. Stuff from Pollock for example - it kinda just looks like paint splatters and swirls \[laughs\] - but after a while you start appreciating his art. After a while you can differentiate between his different pieces, and they don't just look the same.

Programming natural scenes is a different kind of challenge - the code for these projects is often more structured compared to abstract compositions. The abstract stuff tends to be more exploratory, but with nature it becomes a strange challenge to make something that is instantly recognizable.
The first generative artwork that I saw, that attempted a natural scene was by [Tenebris](https://twitter.com/TenebrisVia?ref=gorillasun.de). I later discovered Zancan through them.

The Woodcarver's apprentice by Tenebris
Talking to Tenebris about Zancan's work made me want to try doing more nature. And now it's become my favorite thing to code - also from the perspective of the audience I think it's easier to understand in comparison to abstract art. It's easier to connect with something familiar, and nature is inherently and recognizably beautiful. It's fun to try to mimic things.
On Frontier it was really fun to see how much I had learned, in comparison to my first one. I think it's the one that I'm the most proud of. One thing that didn't make it into the final project, was mouse interaction that allowed you to move things around. What's cool is the wind parameter that affects the placement of the items.


[Outputs from Frontier](https://256art.com/project/frontier-2?ref=gorillasun.de)
**Gorilla: Frontier has a different style than your previous skeuomorphic projects - it's a bit reminiscent of low-poly aesthetics.**
Aesthetically, the previous projects weren't really innovative just making use of the basic P5 style - shapes simply consist of outlines and fills. When I had the system in place, I was asking myself how I could make it visually more interesting, and somehow expand on the looks a little bit. Styling things is really hard.
The inspiration for it was [Grant Riven Yun](https://twitter.com/GrantYun2?ref=gorillasun.de), who started this movement of Neo-precisionism. [Precisionism](https://en.wikipedia.org/wiki/Precisionism?ref=gorillasun.de) has been around for a while - but in a nutshell, it's simply flat colors, no outlines, and you try to reduce elements to basic shapes.

Yun put a more *digital* spin on it:

[It seems that Grant Riven Yun has also taken his art to the blockchain](https://hypebeast.com/2022/7/grant-yun-interview-nft-neo-precisionism?ref=gorillasun.de)
That's what made me ditch the outlines and simply make use of flat shading with high contrast colors. I found the juxtaposition of this highly geometric style within the context a natural scenes really interesting.
**Gorilla: from a technical point of view, how do you go about creating these scenes? How do you create multiples of items in the scene? Is it an object-oriented approach?**
I've tried different approaches, before Frontier I simple drew elements in the scene with parametrised functions; in Frontier I started using classes to represent the different elements, each of which contains it's own member variables.
**Gorilla: And how do you go about the positioning of elements? Is it some form of noise?**
Actually yeah - it's basically a noise line that's repeated from top to bottom while changing some parameters. Back then I made a cool little tool to visualize this:

A private sneak-peek into the system behind Frontier.
## Concept vs. Result
[Demystifying Generative ArtPeter Bauman (Monk Antony) develops a framework for appreciating and analyzing generative art through an investigation of the movement’s locus of artistic intent.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de)
Most likely, every generative artist that I meet from now will be subject to this interrogation.
**Gorilla: when appreciating/creating generative art, what's more important to you: output, process or concept?**
I'd mark them from first to last. Output, process, concept. To me the concept always evolves along with the piece - when I have to reflect and ask myself why I did something, I often kind of have to come up with the concept after the fact. Even though I might have had the concept in my head - I never really thought about it. It just kind of comes automatically.
**Gorilla: I feel the same way. Whenever I finish a project and I get to the point of minting it on the blockchain, I end up finding myself in front of that description box - asking me to say something about my piece. It always feels like "Okay, now I have to make up something about how I got inspired and stuff". Sometimes it feels a little bit like I'm lying.**

It do be like that sometimes | [link to Tweet](https://twitter.com/Yazid/status/1707926634031165585?ref=gorillasun.de)
\[laughs\] Exactly! It's weird, the art comes together naturally, and when you try to put it into words it feels a bit forced. It can feel disingenuous, but when you think about it, it's really not, there's always a reason for why you did or didn't do something. It boils down to interviewing yourself and searching for those reasons.
When I finish a project I often have to ask myself "why did I do this? what does this mean to me?" You know, descriptions are important to people, providing them with a reference point to connect with your art.
Especially with art blocks, I was very nervous - Assembly was just an exploration that happened, and that's what I initially put in the bare description. The artblocks people wanted more details however.
The concept in context of generative art is a bit like poetry to me, and I'm not a poet.
**Gorilla: that's a beautiful way to put it. I definitely feel more like I'm a builder - I make things. So there isn't really a concept. Maybe in a way building a concept becomes poetry.**
There's probably a lot more than those three categories though. Moreover, the idea of generative art is probably vastly different from person to person. The same goes for collecting, like I said earlier, in the beginning I didn't really get abstract art, but now some of my favorite pieces fall into that category.
Fragments of a Wave by Ryan Bell for example. It's amazing how he did it, but the outputs are stunning too, both of these things play into it - and with that piece I don't even know what the concept is \[laughs\] thinking of it, I can't even remember the description. I just really loved how it looked.

[Fragments of a Wave by Ryan Bell on FxHash](https://www.fxhash.xyz/generative/slug/fragments-of-a-wave?ref=gorillasun.de)
**Gorilla: Do you generally care about the intricacies of the code behind a piece?**
From an artistic point of view, no. But I'm definitely always impressed when I can't wrap my head around how something was done.
## AIJS - AI powered Code Editor
[*You can check out the editor for yourself here.*](https://aijs.io/?ref=gorillasun.de)

AIJS in action!
**Gorilla: What was the original inspiration for AIJS?**
I wanted to figure out how I could add AI to an editor - chatGPT just makes a lot of things easier and if you're not using it you're going to be left in the dust nowadays.
The first thing I did was simply adding in the chat interface, and that was really easy. Then I wanted to take it a step further, asking myself "what if it can correct your code?" I made so that you can highlight a piece of code and it will fix it for you.
Going off of that, I also wanted it to be able to teach you. In the editor you can now create your own courses, all while storing the context of the course in the chat history such that it can answer questions about each of the lessons and it will have reference to the material.
It's actually not as complex as it sounds - it doesn't need to make an API request until you ask the question, when you do it has reference to the 10 previous chat references.
An unintended and unexpected outcome of this was that you can actually make it continue the course after it's done - you can ask it for another lesson and it will just want to make one based on the previous material.
**Gorilla: how does this work, do the API calls have a cost attached to them?**
They do, but at this point it's basically pennies - like 20 cents a month. It's a bit weird how they calculate the cost, because it depends on the token length of the API call, so what I just described with the chat history would be more pricey because each call would have to reference all of that memory.
Right now I'm simply using my own API key, when there's more users I'll probably have to build in a way for people to use their own API keys. I'm trying to think of a way to keep it free to use and that seems like one way without having to show ads.
**Gorilla: How are you hosting the editor?**
It's hosted on Firebase. I've never done anything with a server and a backend, so this is how I'm learning, and firebase is really simple. It's got everything all in one place - the domain, the storage, the server, it's all there.
**Gorilla: for a first time doing this it's really impressive.**
I actually haven't done HTML before this \[laughs\]
**Gorilla: what were some of of the challenges of making the editor?**
The biggest challenge for this, something that you don't really think of when you start out, is that there isn't really a file system in the browser that works for this type of thing. There's a few simple ones but they don't really do everything that you need for a code editor.
So I had to make my won file system which kind of turned into its own library now. But making it was definitely hard, there's a lot of things that you need to account for.
Another thing I'm still running into issues with is bundling. Basically combining all of the code into something that can run in the browser, there's tons of bundlers that do that for you, but doing it directly in the browser there doesn't seem to be any. Or at least I couldn't find any.
Overall most of the challenges came from it being something that runs in the browser, but at the same time it was a really fun challenge. And the issues I'm running into I've noticed are also something other online code editors struggle with.
**Gorilla: on another note, do you make use of ChatGPT for coding/debugging?**
Oh yeah, I use it all the time. It makes life so much easier, because you just write a simple script of and then you can simply query it for particular functions. You still have to know how to code, but it's just too powerful not to use. I'm sure there's purists that will disagree with me.
## Shoutouts
**Gorilla: Lastly, is there anyone you'd like to shoutout? Someone that inspires you?**
Honestly, out of all the people I've met and worked with, I'd have to say [Tib](https://twitter.com/ShaikTibout?ref=gorillasun.de). He's the creator of 256Art and he's an amazing guy, does everything from front-end to back-end, and he's built such a wonderful community. And even though it's a bear market and things are kinda slow, if you get in the discord now, you'll find that it's such a friendly place to be in.
He also has his own Artblocks and FxHash series. So I definitely have to give him a shoutout, he's a great mentor.
## Concluding Thoughts
Thanks so much Tezumie for taking the time to talk to me, it was a wonderful chat, incredibly insightful and inspiring. I had a lot of fun connecting on so many points, and just talk freely about generative art for an hour.
[Support Tezumie](https://twitter.com/Tezumies?ref=gorillasun.de) by checking out his tokens, maybe collect one or two if you can - also check out AIJS and drop Tezumie some feedback in his discord if you do!
**Otherwise, that's a wrap! If you enjoyed this post, consider signing up to the newsletter to receive updates whenever I publish new content - otherwise, consider sharing the post with your friends and followers that share an interest in generative art and creative coding.**
**More eyeballs on the blog helps out tremendously! Thanks for reading, and happy coding - cheers, until next time! Gorilla Sun 🌸**
### Gorilla Newsletter 23
URL: https://www.gorillasun.de/blog/gorilla-newsletter-23/
Last updated: 2023-12-19T23:10:29.000Z
**Welcome back everyone** 👋 and big thanks to all new subscribers - thanks for joining along for the ride!
> **This is the weekly Gorilla Newsletter** \- we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors.
Enjoy - Gorilla Sun 🌸
## All the Generative Things
### KilledByAPixel's Generative Pottery
Pottery meets generative art in [Frank Force](https://twitter.com/KilledByAPixel?ref=gorillasun.de)'s latest FxHash token titled fxPottery, and I'd argue that it's one of the most creative use cases for FxParams that I've seen to date:

[Link to Generator](https://www.fxhash.xyz/generative/28924?ref=gorillasun.de) | Generative Art meets Pottery
The FxParams editor allows you to mold a spinning piece of wet clay, just like you would in real life, simply by means of mouse interaction. The colors and texture of the final virtual ceramics can then be set via additional toggles.
Collectors have already been quite creative with their mints:



FxParams allows for a completely different
The project was minted as part of the FxHackathon, which comes to a close just one day after this newsletter comes out:
### Landlinesart Anfractuous
Another FxHackathon piece that's been making ripples over on TwitterX is [Landlinesart](https://twitter.com/landlinesart1?ref=gorillasun.de) Anfractuous:
> The title is quite literally a visual description of the work, as anfractuous means: characterized by windings and turnings; sinuous; circuitous. Balancing smooth and easily recognizable large forms with small fragmented details.


[Link to Generator](https://www.fxhash.xyz/generative/slug/anfractuous?ref=gorillasun.de) | Still have to mint my own ticket!
The interplay of large scale structure with more granular subdivisions allows for varied and interesting compositions - couple with the creativity of the minters an incredibly varied collection comes to life.
FxParams has indubitably brought forth a new form of generative art - the collector is now no longer just someone that clicks the mint button, but has to actively involve themself in the creation process of their token. Moreover, the new code driven parameters have greatly improved the user friendliness of the entire minting process - a million toggles can be a bit overwhelming; with a more exploratory approach it becomes much more approachable.
FxHackathon comes to a close just a day after this newsletter comes out on the 26th of September:
[fxhash — fxhackathon 2023: co-creation interfaces onboardingBuilding custom minting interfaces with fx(params)fx logo](https://www.fxhash.xyz/events/fxhackathon-2023:-co-creation-interfaces/onboarding?ref=gorillasun.de)
What was you favorite project? Working on something yourself?
### Artblocks' Marfa Weekend
Another important generative art event this past week has been Artblock's Marfa Weekend - and from the pictures it seems that it's been the biggest gathering to date, with many a generative artist pilgrimaging to Marfa:
[](https://twitter.com/artblocks%5Fio/status/1706120474831229291?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/artblocks%5Fio/status/1706120474831229291?ref=gorillasun.de)
Many more pics were shared over on TwitterX.
### LeRandom feat. Michael Spalter
LeRandom is a treasure trove of generative art history, showing up week after week and building up an impressive body of work. This week they're joined by Michael Spalter to go over the latest additions to their generative Art Timeline that covers the latter part of the 1960s in generative art.
Together with his spouse Anne, Michael Spalter is currently in possession of the *world’s largest private collections of early computer art, comprising over 1000 works from the second half of the twentieth century*. The collection can be viewed in digital form over at their website:
[](https://spalterdigital.com/artworks/?ref=gorillasun.de)
[Link to Website](https://spalterdigital.com/artworks/?ref=gorillasun.de)
Throughout the Twitter space, Michael Spalter provides invaluable insights into some of the timeline's moments, recounting anecdotes that you probably can't find anywhere in written form on the internet:
[](https://x.com/lerandomart/status/1705153520058487264?s=20&ref=gorillasun.de)
[Link to Tweet](https://x.com/lerandomart/status/1705153520058487264?s=20&ref=gorillasun.de) | Conversation starts at 8 minutes in.
LeRandom also interviewed DEAFBEEF about his newest Bright Moments piece HASHMARKS:
[DEAFBEEF on (Im)permanenceDEAFBEEF reflects on themes such as the tension between permanence and impermanence in his work HASHMARKS, released through Bright Moments. He also ruminates with Peter Bauman (Monk Antony) on celebrating the singularity of the present plus finding agency in life and art.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/deafbeef-on-impermanence?ref=gorillasun.de)
In other news, LeRandom also asked an interesting question:
[](https://twitter.com/lerandomart/status/1705280736318697761?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/lerandomart/status/1705280736318697761?ref=gorillasun.de)
At least in my reality, P5 takes the top spot. P5 isn't just a library, but it's also grown into community that strives to make creative coding more accessible, inclusive and democratizing code literacy for the arts. At the same time it made the sharing of sketches much easier in contrast to before - now you could directly code your ideas in the browser and share them with people around the world, in contrast to what was possible previously with Processing.
### Node to Node by Kate Vass Galerie
If you're in Paris between the 13th and 22nd of October, you might want to stop by Kate Vass' newest exhibition titled Node to Node:

[](https://twitter.com/KateVassGalerie/status/1703849207214305685?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/KateVassGalerie/status/1703849207214305685?ref=gorillasun.de)
With a focus on generative art in a physical medium, it will showcase artworks from a variety of artists in different branches of generative art:
[](https://twitter.com/KateVassGalerie/status/1703849207214305685?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/KateVassGalerie/status/1703849207214305685?ref=gorillasun.de)
### The Omega Code by Joshua Davis
Recently I've been hearing a lot about No Man's Sky again - especially after Starfield's lackluster release. What does this have to do with generative art? Well, the OG Joshua Davis aka praystation posted this tweet a couple of days ago:

Fueled by nostalgia praystation follows up with another tweet stating that he'll be documenting the entire process of recoding the artwork over on his discord channel:
[](https://x.com/JoshuaDavis/status/1705330254502371712?s=20&ref=gorillasun.de)
[Link to Tweet](https://x.com/JoshuaDavis/status/1705330254502371712?s=20&ref=gorillasun.de)
And if you want to have a peek into the mind of Joshua Davis and how he approaches such a recode you should definitely check it out:


[Link to discord](https://discord.com/invite/praystation?ref=gorillasun.de)
### New Beginner Processing Course
Daniel Shiffman released a new beginner processing course over on WatchNebula - it is a paid course \- but if I know one thing, it's that Daniel's material is definitely worth the couple of bucks:
[](https://twitter.com/shiffman/status/1704192188119142666?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/shiffman/status/1704192188119142666?ref=gorillasun.de)
Generative artist and creative coder [Melissa Rodriguez](https://twitter.com/hellomelissarod?ref=gorillasun.de) also participated in making the course.
## Painting with Maths: A Gentle Study of Raymarching
The highlight of the week for me is this deep-dive into Raymarching by Maxim Heckel. Inspired by none other than Inigo Quilez - a repeat offender on this newsletter - Maxim set out to learn the technique behind Inigo Quilez 3D shaders: Raymarching!
> I was very intrigued by the perfect blend of creativity, code, and math involved in this rendering technique that allows anyone to sculpt and paint entire worlds in just a few lines of code
[Painting with Math: A Gentle Study of Raymarching - Maxime Heckel’s BlogA compilation of my Raymarching and Signed Distance Field learnings and work. In it, I teach you how to leverage those techniques along with lighting models, smoothmin, soft shadows, and some math to create beautiful 3D raymarched scenes ranging from abstract shapes to infinite realistic-looking lan…Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/painting-with-math-a-gentle-study-of-raymarching/?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Beautifully written and comprehensive form start to finish. If you only have time to read on article this week, this should be it!
I'd also like to point out that the blog's design is superb! And a lot of thought has been put into it - I especially liked the search box that even has an experimental AI chat bot that can answer questions about the site itself:


The cherry on top is that Maxim even wrote about implementing this chat bot in detail:
[Building a magical AI-powered semantic search from scratch - Maxime Heckel’s BlogAn end-to-end walkthrough on how to build a semantic search from your own MDX or Markdown based content using Postgres vector similarity search and OpenAI’s text embeddings and chat completion APIs.Maxime HeckelMaxime Heckel](https://blog.maximeheckel.com/posts/building-magical-ai-powered-semantic-search/?ref=gorillasun.de)
Chatbot on the Gorilla Sun blog? 🤔
## Hacktoberfest 2023
It's that time of the year again - it's Hacktoberfest! Starting on the 26th of September (just a day after this newsletter comes out):
> Hacktoberfest is a month-long celebration of open-source projects, their maintainers, and the entire community of contributors. Each October, open-source maintainers give new contributors extra attention as they guide developers through their first pull requests on GitHub
Having grown from 676 participants in 2014 to 147,000 participants all around the world last year, Hacktoberfest has without a doubt become the largest global celebrations of open source software.
All details for participating can be found over on the official website:
[Hacktoberfest 2023Hacktoberfest: a month-long celebration of open-source projects, their maintainers, and the entire community of contributors.Hacktoberfest 10](https://hacktoberfest.com/?ref=gorillasun.de)
There's also a page that details how to host an event - in case you have a repository that you need some help with, this is probably the perfect time.
If it's your first time participating and still have no clue where to start after reading the official docs, check out this guide that provides some useful tips:
[Hacktoberfest 2023: The Complete GuideHacktoberfest is a great way to start with open-source development. But it can be daunting if you are…DEV CommunitySaurabh Rai](https://dev.to/srbhr/hacktoberfest-2023-the-complete-guide-1lkj?ref=gorillasun.de)
And to pitch a repo that you can contribute to check out the P5.
## Weekly Web Finds
This week we have a quite juicy selection of articles mainly revolving around JS things - all about functions, executions contexts and hoisting, as well as polyfills.
### The Complete Guide to Javascript Functions
Javascript functions come in many different flavors, and in many cases they're not just reusable blocks of code - when you're just starting out it might be a bit overwhelming to get a grip on *when* to use *what* kind of function.
In this chunky guide, Ekaterina Mitagvaria covers concepts ranging from a beginner level to a more advanced:
[The Complete Guide To JavaScript FunctionsOne of the most important features of JavaScript is functions and today I will cover the vital topics…DEV CommunityEkaterine Mitagvaria](https://dev.to/catherineisonline/the-complete-guide-to-javascript-functions-304g?ref=gorillasun.de)
It's not "A" complete guide, but "The" complete guide! Jokes aside, even if you've been using Javascript for a long time, there's always merit to checking out how other people think about a certain topics - there's always something new to be learned. Towards the end of the guide Ekaterina brings up function currying, something that I didn't know about before.
### Ultimate Guide to Hoisting, Scopes and Closures
If you're still hungry for more, here's a guide to hoisting, scopes and closures in JS - if you're a JS dev, these concepts have probably caused you many a gripe throughout your career. Tyler McGinnis explains that the key to mastering all of these concepts, is understanding JS execution contexts and how they function:
[](https://ui.dev/ultimate-guide-to-execution-contexts-hoisting-scopes-and-closures-in-javascript?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
[Link to article](https://ui.dev/ultimate-guide-to-execution-contexts-hoisting-scopes-and-closures-in-javascript?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
Tyler also built a little [tool that allows the visualization of execution contexts](https://ui.dev/javascript-visualizer?ref=gorillasun.de).
### Polyfills gone Rogue
The 6th installment in Marvin Hagemeist's "Speeding up the Javascript Exo-system" series, in which he investigates why many npm packages depend on 6-8x more packages than they need to.
He finds that most of these are unnecessary polyfills, which are libraries that provide support for older browsers and versions of JavaScript. Polyfills can be useful, but they can also slow down your application and make your node\_modules folder bloated:
[Speeding up the JavaScript ecosystem - Polyfills gone rogueMany popular npm packages depend on 6-8x more packages than they need to. Most of these are unnecessary polyfills and it’s one of the key reasons node\_modules folders are so large. The eslint ecosystem seems to be most affected by this.Polyfills gone roguemarvinhagemeist](https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-6/?ref=gorillasun.de)
After making suggestions on fixing this issue, mainly be being more mindful about what polyfills you add to your project, he concludes with this quote from the creator of the Erlang programming language:
> You wanted a banana but what you got was a gorilla holding the banana and the entire jungle - Joe Armstrong
### Minh Le on artificially reducing the ping
A short and funny clip from 2015, in which one of the co-creators of counter strike reveals a hilarious story from the development of the game:
0:00
/0:56
1×
## AI Corner
### Why AI will save the World
Couple of days ago I came across this Tweet by Jamie Joyce:
[](https://twitter.com/JustJamieJoyce/status/1689508672131698688?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/JustJamieJoyce/status/1689508672131698688?ref=gorillasun.de)
Doing such a large scale debate in a spreadsheet is a bit of an oddity - there might be better apps for this. Besides this it made me aware of the article Why AI will save the World written by Marc Andreessen, published on the Andreessen Horrowitz venture capital firm website:
[Why AI Will Save the World | Andreessen HorowitzThere’s a full-blown moral panic about AI right now. But the real risk is losing the race to global AI technological superiority.Andreessen HorowitzMarc Andreessen](https://a16z.com/ai-will-save-the-world/?ref=gorillasun.de)
After I first read the article, I felt just a tad bit confused. The writing is a bit lackluster - Andreessen says a lot without saying anything... simply romanticizing the idea of AI from every possible point of view, without addressing the negatives, of which there's plenty:
[Why AI may not save the World — LessWrongMarc Andreessen, founder of legendary VC firm a16z, recently wrote an article titled ‘Why AI Will Save the World’. This post is my reply to him and w…Alberto Zannoni](https://www.lesswrong.com/posts/iZRmTenmdA9nNYjux/why-ai-may-not-save-the-world?ref=gorillasun.de)
I just feel really annoyed by the article - not just by the condescending tone that the text exudes - but also because it's written from a completely one sided, subjective point of view, not providing any supporting arguments to any of the claims that are being made. Sam Harris interviewed Andreessen on the "Making Sense" podcast, and it just made clearer that his understanding of AI is limited:
Another example is Andreessen on Web3:
In that manner, he's a bit of a polarizing personality:
Ultimately, it strikes me as a bit strange that a large scale debate is being done around the article, when it's not really a great piece of writing about the future of AI. But what do I know, I'm not a billionaire.
### AI generated Optical Illusions
First off, credit where it's due - the TwitterX user that started all of this is [MrUgleh](https://twitter.com/MrUgleh?ref=gorillasun.de):
[](https://twitter.com/MrUgleh/status/1702508790837330388?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/dreamingtulpa/status/1705220398239920302?ref=gorillasun.de)
In the past couple of days these AI generated optical illusions have gone incredibly viral, going as far as escaping the Twitter bubble and making headlines over on Wired:

[What an AI-Generated Medieval Village Means for the Future of ArtSpiral Town, which has jumped from Reddit to X to everywhere, is helping to usher in a hopeful but increasingly dangerous era of artificiality.WIREDCondé Nast](https://www.wired.com/story/artificial-intelligence-medieval-village/?ref=gorillasun.de)
If you're interested in making similar optical illusions, it's done with controlNet and Dreaming Tulpa has compiled a Twitter thread with detailed instructions on how to go about creating these optical illusions:

[Link to Tweet](https://twitter.com/dreamingtulpa/status/1705220398239920302?ref=gorillasun.de) | A guide to creating AI generated optical illusions by TwitterX user Dreaming Tulpa
If you have a good enough GPU your starting point is this github repo that provides the stable-diffusion model in addition to a webui for prompting purposes:
[GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UIStable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.GitHubAUTOMATIC1111](https://github.com/AUTOMATIC1111/stable-diffusion-webui?ref=gorillasun.de)
Stable Diffusion Webui
### MetaAI's AudioCraft
Something I'm personally super excited about is MetaAI open sourcing their model for generating sounds: AudioCraft! Labeled as a one-stop shop for multiple generative audio tasks it comprises 3 models: MusicGen, AudioGen and EnCodec.
MusicGen and AudioGen are models that generate sound based off of an input text prompt, where MusicGen is specifically aimed at generating music, in contrast to AudioGen that is mainly aimed at generating general purpose sounds like cars honking, animal sounds, etc. EnCodec, on the other hand, is a model that improves the quality of these generated sounds. In combination, these three models work in tandem to generate high-quality audio.
[AudioCraft: A simple one-stop shop for audio modelingAudioCraft is a simple framework that generates high-quality, realistic audio and music from text-based user inputs after training on raw audio signals as opposed to MIDI or piano rolls.](https://ai.meta.com/blog/audiocraft-musicgen-audiogen-encodec-generative-ai-audio/?ref=gorillasun.de)
This was actually one of my research topics when I was a graduate student, it's exciting to see that so much progress has been made in that regard. I'd love to write more about this topic, and generative AI in general - maybe in that way I'd have an excuse to get into that space again.
## Gorilla Updates
### A Conversation with Anna
A couple of weeks ago I had the chance to have a chat with Anna and ask her a couple of question about NFTs, how the Tezos NFT space has evolved with time, and what it's like to be an avid collector:
[A conversation with Anna the NFT collectorAnna began collecting NFTs on the Tezos blockchain in May 2021 at the peak of the HEN boom. She has since grown an impressive following and become one of the biggest forces of positive change in the space. This is her story.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-conversation-with-anna-the-nft-collector/)
Having collected hundreds of NFTs at this point, Anna's primary joy comes from supporting artists in their endeavors. She also enjoys discovering new artists and showcasing their works: "Art is meant to be seen" she says.
### Redesigning the Blog
I've also continued working on the redesign of the blog - what started as an afternoon project quickly turned into something that took several weeks:

There's now an option to toggle Dark Mode!
Designing web pages is hard - not just because CSS is a doozy - but also because it's really hard to make things look good, coherent, and at the same time follow good web practices. You don't want to know how much time I spent picking fonts and adjusting font sizes.
Here's a hot take 18px is way too small of a font-size. Make 20px the new standard and put opticians out of business.
### Sketches
I've been playing around a little more with maze generation algorithms and found that they're an equally effective method for space filling and creating distinct regions, when the individual mazes compete for the same underlying grid. Here's a video to demonstrate this:
0:00
/0:28
1×
The next Idea that I had was finding the contours of these regions and turning them into individual polygonal regions:
0:00
/0:22
1×
This allowed me to create this cool patterns, where the polygonal regions are shrunk a little to create a margin between them. Sometimes at the corners this shrinking procedure has the effect that it creates small loops which I thought looked nice:


Still needs more work, but I think it'll be my next token on FxHash.
## Music for Coding
I often listen to big playlists over on Youtube, if I hear something that really stands out I'll usually look up the artist behind the track and listen to some more of their stuff.
One track that I enjoyed in particular this week was Void by oDDling - :
oDDling has many more fantastic tracks that can be listened to in this compilation:
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of generative art, tech and AI in the past week!**
**If you enjoyed it, consider sharing it with your followers, friends and family on your socials! It helps A LOT! Otherwise, Cheers and happy sketching \~ Gorilla Sun 🌸**
### A conversation with Anna the NFT collector
URL: https://www.gorillasun.de/blog/a-conversation-with-anna-the-nft-collector/
Last updated: 2023-09-21T12:30:03.000Z
## Introduction
A couple of days ago I had the chance to talk to [Anna](https://twitter.com/ArtMonochrome1?ref=gorillasun.de), an avid Tezos NFT collector that's been part of the space right from the start. Over the course of two years Anna has accrued an impressive following of almost nine thousand followers on TwitterX, and has collected hundreds of NFTs at this point - mainly in support of smaller artists that are trying to make it in the NFT space.
Mid-august I reached out to Anna over Twitter DMs, asking if she'd be willing to do an interview for the blog. She happily agreed, but informed me that it would have to be in French - in English she could only do it in writing. I told her that it's not a problem, since I do speak a little french and that I'd have my partner, who is more fluent than me, at the ready to help whenever I'd struggle to find the right words.
Going into the call I had little idea what to expect, but I was met with a very cheerful voice - after making my excuses about my broken french she told me not to worry about it, and we didn't waste much time to get into the questions that I had prepared.
## Background and getting into NFTs
**Gorilla: To many people in the Tezos NFT scene your name is most likely already a familiar one, but for the readers, could you tell us a little bit about yourself and how you got into collecting NFT art?**
Anna: Before May 2021 I had absolutely no connection to the Artworld - that is when I discovered NFTs through the medias.
For several years, I worked in part as a fitness coach, and on the weekends I had jobs at nightclubs. Prior to that I had absolutely no connection to art, nor did I know much about art - save for the big names like Picasso, Monnet, etc. But I think everyone knows those. To be frank, I also didn't really have an interest in art \[laughs\]
Discovering NFTs, I found it an opportunity to break into this world - and try to understand art a little more.
Seeing NFTs all over the news on TV and in magazines, I told myself that there's a couple of things that I needed to do. Especially since they could be purchased and collected, and that, for a relatively affordable price. On Tezos that is - I've never collected on other chains. Passing by galleries in real-life I'd know that those works weren't something I could afford. But now I could actually own pieces for myself, and have my own collection.
**Gorilla: This started with hicetnunc in 2021? Prior to that you hadn't been active on social networks?**
Anna: Yes, back then, when I joined the space, that was the only platform that existed on Tezos - typing the term "NFT" into Twitter that's what popped up. It was a really beautiful platform.
[Hic Et Nunc Brings True Spirit Of Web Art To The Here And Now — ArtnomeI am pretty busy these days as an unofficial spokesperson during NFT mania’s rise, so I don’t get to write as often as I’d like to. I see my role as pointing people to cool new developments at the intersection of art and tech and making sure we celebrate those people too often overlooked in the deArtnomeJason Bailey](https://www.artnome.com/news/2021/3/21/hic-et-nunc-revives-the-true-spirit-of-web-art-through-nfts?ref=gorillasun.de)
An Artnome article discussing hicetnunc when it first became popular.
And no, not at all. I didn't really like social networks, to me there tends to be too much aggressivity and narcissism on them. Nonetheless, that's how it started for me and how I got to know so many beautiful people in the space.
**Gorilla: hence it was the accessibility of Tezos NFTs that enticed you?**
Anna: Yes, in a way - at the same time, NFTs were a means for me to help others. By being a collector I could now financially support many small artists that were trying to make it. Coming from a working-class family, I know what it's like to not have money.
I've always loved helping people, and now I'm lucky to be able to do that in that space by being a collector.
**Gorilla: For me things also started with hicetnunc. Discovering it very early on, I decided to give it a shot and mint some pieces on the platform. It changed a lot of things for me. It also felt a little bit like I was part of a revolution - things have changed a lot since then.**
Anna: I miss hicetnunc a lot - it's a completely different epoch now.
One of the first names that I saw praising and promoting hicetnunc was [Joanie LeMercier](https://twitter.com/JoanieLemercier?ref=gorillasun.de), onboarding more people to the platform and to Tezos. I think we have to give him credit for that, from my perspective at least.
[](https://twitter.com/JoanieLemercier/status/1393207208507285506https://twitter.com/JoanieLemercier/status/1393207208507285506?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/JoanieLemercier/status/1393207208507285506?ref=gorillasun.de)
## First NFT and Monochrome Art
**Gorilla: What was the first NFT that you have collected?**
Anna: When you sent me the questions ahead of time I tried finding the first one - but you know, I'm not the queen of technology \[chuckles\] - I went back to the very first page of my Objkt profile but I'm not certain which one it is, because things are not in order anymore.
On my linktree I have three links: ArtMonochrome1, ArtMonochrome2 and ArtMonochrome Colors. At one point I asked my friend NFTBiker to help me transfer all of the NFTs from ArtMonochrome1 (where I had my first NFT) to ArtMonochrome2 - and now I'm not entirely certain about the order anymore. So I couldn't find it, but it was around mid-may 2021, probably the 15th I think.
> *Here I put on my blockchain detective hat and checked Anna's transaction history - the very first NFT she collected was a piece titled [Outcast](https://objkt.com/asset/hicetnunc/129263?ref=gorillasun.de) by GAN artist [Nico Black](https://twitter.com/%5Fnicoblk?ref=gorillasun.de) \- minted on the 13th of June 2021 and collected by Anna on the 15th of June 2021*

**Gorilla: You mainly collect monochrome pieces, what significance does monochrome art have for you?**
Anna: When I started my collection I wanted to set myself apart in some manner - that doesn't mean that I have a special attraction towards monochrome pieces when compared to colorful pieces - I just wanted to differentiate myself and find my place in the space. I found that not many people were doing exclusively monochrome collections.
I also do have a small colorful collection as well.

Anna's color collection
## Evolution of the NFT Space
**Gorilla: As a collector, how has the NFT space evolved since you joined?**
Anna: *\[mulls it over for a second\]* I find that a lot of artists haven't been supported, many smaller artists in particular. After the big boom in 2021, many people joined the space and I believe that it's become more difficult to find a foothold the bigger the space grew.
**Gorilla: Today I have the impression that marketplaces have become more exclusive and boutique in comparison to before.**
Anna: Initially the space was convivial and friendly, now it often feels like I find myself inside a supermarket. Things feel a bit more artificial and manufactured, where many people care more about selling than making beautiful art. Things have shifted more towards revolving around the financial aspect of things rather being about the art.
## Interest in Generative Art
**Gorilla: You also have a big interest in generative art, collecting it and promoting many generative artists on Twitter. What is generative art to you?**
Anna: What intrigues about generative art, as someone who doesn't know the first thing about how it works, is the mix between algorithms, technology and art - and I find it beautiful that this combination exists.
I find it amazing how coders can make art with code. I watched some videos about coding on Youtube but it's incredibly complex, I don't understand it. For instance, I find Vera Molnar's work fascinating, what she did during her epoch was incredibly impressive.
**Gorilla: Vera Molnar started the generative art revolution.**
Anna: She began with dice? *Anna asks out of curiosity*.
**Gorilla: As far as I understand, she began executing her algorithmic ideas without computers - letting the throw of the dice decide particular placements of lines and points in her early compositions.**
Anna: That's impressive.
**Gorilla: At the same time there were a lot of people that frowned on what she was doing.**
[The Art of Vera Molnar 1947-1974Vera Molnar is one of the pioneers of what we know today as Generative Art. She was one of the firsts to dare and use computers for the purpose of making art. In this article we have a look at her rich artistic career and how she paved the way for the computer artists of today.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-art-of-vera-molnar/)
## Important NFT moments
**Gorilla: What were some of the important moments of the NFT space for you?**
Anna: Not a moment per se, but what I love about the space, is the mutual support that artists show each other. For instance, even if they can't support each other financially by collecting - they can still do so with small gestures, like re-tweeting each others' posts. It might seem like a silly little thing, but a re-tweet actually goes such a long way - it shows interest - ultimately, art is meant to be seen.
I know that ultimately the goal is to sell, but not everyone can always buy.
This show of solidarity is one of the most important aspects of the space. In a way, in my experience, it feels like a big family where you never feel alone. I'm also grateful for all the friends and connections I've been able to make in the space, especially through events like Art Basel and NFT Paris.
One other thing that I also love, is to discover new artists and their works. Do you know [ganarchitecture](https://twitter.com/ganchitecture?ref=gorillasun.de)? I discovered them when they had just started out on Twitter and I was their first follower. Of course they got as far as they did because of their work, not through me, but it's a wonderful feeling to have been there right from the start and to see how far they've come.

[Byblös - The Citadel](https://objkt.com/asset/KT1AmcbtSACeteJHjEhim9FFK5CW8ajrNTio/14?ref=gorillasun.de) | Artwork by [Ganchitecture](https://objkt.com/profile/ganchitecture/?ref=gorillasun.de)
Throughout my life I've had the support of a lot of people to get to where I am today, and this is my way of giving back, continuously trying to showcase smaller artists that are trying to make it.
Even if I'd lose all of my NFTs I wouldn't feel bad, because I'd know that I helped a lot of artists and made them happy.
## Advice for budding collectors
**Gorilla: What advice would you give to those interested in becoming collectors?**
Anna: I believe that everyone can become a collector, even on a small budget - on Tezos you can find so many beautiful pieces for a relatively low price. Especially during some of the events that are conjured up by the community sometimes, you can get some stunning artworks for less than a dollar.
What's important is to be honest in the things that you do and support each other. Even though the space has expanded, it's still a microcosm all things considered.
> If you want to get started collecting art on Tezos yourself - I've written this introductory guide on the topic, covering concepts from how blockchains work up to installing a Tezos wallet and collecting your first piece:
[](https://www.fxhash.xyz/article/a-beginner's-guide-to-collecting-art-on-tezos?ref=gorillasun.de)
[I've written about how to get started on Tezos in this fxtext](https://www.fxhash.xyz/article/a-beginner's-guide-to-collecting-art-on-tezos?ref=gorillasun.de)
## Favorite Artists
**Gorilla: Who are currently some of your favorite artists? Would you like to shoutout some of them?**
Anna: That's difficult to answer because there's too many, but to name a few: [@annaxmalina](https://twitter.com/annaxmalina?ref=gorillasun.de) [@i\_dianov](https://twitter.com/i%5Fdianov?ref=gorillasun.de) [@wblut](https://twitter.com/wblut?ref=gorillasun.de) [@Eko3316](https://twitter.com/Eko3316?ref=gorillasun.de) [@Kopfgestaltung](https://twitter.com/Kopfgestaltung?ref=gorillasun.de) [@kerimsafa](https://twitter.com/kerimsafa?ref=gorillasun.de) [@HOXID\_](https://twitter.com/HOXID%5F?ref=gorillasun.de) [@gorillasu](https://twitter.com/gorillasu?ref=gorillasun.de) [@ganbrood](https://twitter.com/ganbrood?ref=gorillasun.de) [@\_\_Sean\_Luke\_\_](https://twitter.com/%5F%5FSean%5FLuke%5F%5F?ref=gorillasun.de) [@s0mfay](https://twitter.com/s0mfay?ref=gorillasun.de)[@\_0\_0\_0\_9\_](https://twitter.com/%5F0%5F0%5F0%5F9%5F?ref=gorillasun.de) [@Poppel20](https://twitter.com/Poppel20?ref=gorillasun.de) [@williamapan](https://twitter.com/williamapan?ref=gorillasun.de) [@chepertom](https://twitter.com/chepertom?ref=gorillasun.de)
There's many more! Someone that I'd like to shoutout in particular, is [@BaltazarGarden](https://twitter.com/BaltazarGarden?ref=gorillasun.de) which I find is often underappreciated - he makes generative art with dice!

Check out [https://www.baltazargarden.art/](https://www.baltazargarden.art/?ref=gorillasun.de)
An artist and collector that I like a lot is [@NFTBiker](https://twitter.com/NFTBiker?ref=gorillasun.de)!

If you don't know NFTBiker - he's one of the most prolific toolmakers in the Tezos NFT space!
## Closing Thoughts
Anna is a beautiful and honest soul in the NFT space, and the space is better for having her in it. Promoting small and large artists alike, helping them get discovered, and collecting as much as she can. Thank you, Anna, for taking the time to talk to me and let me put together this interview - it was a pleasure.
**And that's a wrap, hope you enjoyed it!**
**If you did, consider sharing it with your followers, friends and family on your socials. Otherwise, consider signing up to the newsletter to get notified whenever there's new content on the blog. Cheers and happy collecting \~ Gorilla Sun 🌸**
### Gorilla Newsletter 22
URL: https://www.gorillasun.de/blog/gorilla-newsletter-22/
Last updated: 2023-12-19T23:10:46.000Z
**Welcome back everyone 👋 And welcome to all new subscribers that signed up - thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Newsletter - we have a look at everything noteworthy from the past week in generative art, creative coding, tech and AI. As well as a sprinkle of my own endeavors. Enjoy!**
## Genart Updates
### Kaloh's Podcast feat. Artnome
I'm a massive fan of Artnome and all of the things that he does in the space. I was super excited when I saw that Kaloh did a podcast episode with him. Jason Bailey has done some of the most wonderful interviews with important figures in the generative art space, like [Jared Tarbell](https://www.artnome.com/news/2020/8/24/interview-with-generative-artist-jared-tarbell?ref=gorillasun.de) and the elusive [Manolo Gamboa Naon](https://www.artnome.com/news/2018/8/8/generative-art-finds-its-prodigy?ref=gorillasun.de) to name a few.
In the podcast Jason Bailey tells us about his beginnings, how he got into Art from a young age, then working in tech for a while, until he later made his return with the Artnome blog and being one of the early advocates of digitally collectible art in the web3 age:
[Protect your NFTs! ft ArtnomeListen now (51 mins) | Artnome is a thought leader in the NFT art space, promoting technology, artists, and blockchain art since 2017\. He founded artnome.com, Right Click Save and Club NFTKaloh’s NewsletterKaloh](https://www.kaloh.xyz/p/protect-your-nfts-ft-artnome?utm%5Fcampaign=post&utm%5Fmedium=web&ref=gorillasun.de)
As always, fantastic work from Kaloh - looking forward to more podcast episodes.
### Maya Man - I'm Feeling Lucky
Maya Man creates work that tackles the topic of identity culture on the internet - essentially how we interact with content on the internet, it's consumption or creation, and how it affects our identity on the internet.
In her latest exhibition on Verse she tackles the topic of Astrology, specifically horoscopes and how they constitute a modern belief system in the age of the internet:

"I’m Feeling Lucky **focuses on the contemporary culture of astrology and how it asks us to make sense of ourselves through its structures.*"
Deriving meaning from horoscopes in many ways parallels the meaning that we attribute to randomly generated outputs from generative systems. The Verse write-up is beautifully done, and gives further insight into the exhibition:
[I’m Feeling Lucky | VerseVerse is delighted to present I’m Feeling Lucky, an exhibition and installation of Maya Man’s most recent generative work. Continuing her explorations of feminiVerse](https://verse.works/exhibitions/I-am-feeling-lucky?ref=gorillasun.de)
Another separate interview with Maya Man can be found here:
[In Conversation with Maya Man: I’m Feeling Lucky | VerseMaya Man discusses her upcoming show, ‘I’m Feeling Lucky’ with Leyla Fakhr. The title of the exhibition directly references the ‘I’m Feeling Lucky’ button thatVerse](https://verse.works/journal/in-conversation-with-maya-man-im-feeling-lucky-2?ref=gorillasun.de)
As the title suggests, Maya Man's work was inspired by Google's "I'm feeling lucky" button. This button would directly take you to the first search result corresponding to the search query you'd entered in the text box - this element of chance, in the search engine that arguably changed how the entirety of humanity functions in this day and age, sparked the idea for Maya Man's exhibition.
### Maya Man on Generative Meaning by LeRandom
I actually became aware of the exhibition via Peter Bauman's interview over on LeRandom:
[Maya Man on Generative MeaningMaya Man, an artist focused on contemporary identity culture on the Internet, sat down with Peter Bauman (Monk Antony). Using Man’s exhibition and project I’m Feeling Lucky on Verse as a jumping off point, they discuss horoscope culture as a belief system, finding meaning in randomness, the role of…Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/maya-man-on-generative-meaning?ref=gorillasun.de)
He goes into more detail with Maya Man, asking her about finding meaning in randomness, the religious undertones that her works have, and how she approaches her process of creating new works. Every week LeRandom blesses my timeline from anew with a stellar piece on generative art.
And if that wasn't enough the timeline also got another update, resuming where the previous portion left off in the mid 60s, now covering the latter half of that era:
[](https://timeline.lerandom.art/?ref=gorillasun.de#/chapter-4)
[Link to Timeline](https://timeline.lerandom.art/?ref=gorillasun.de#/chapter-4)
### The Aesthetics of Experimental Chance in Artistic Practice
Another article that I found super interesting this week was by Paula Brailovsky, over on [The Island](https://www.theisland.io/?ref=gorillasun.de). It's a stellar read, delving into randomness as an important component in art-making, not just in generative art but over the years in general.
> Then there is the subject of this essay: experimental chance. This type of chance is not gestural, expressionist or accidental, but is rather rooted in experimentation and observation. It involves setting down a particular set of instructions and parameters and observing the results.
[Between Randomness and Control: The Aesthetics of Experimental Chance in Artistic PracticeAn essay by Paula Brailovsky commissioned by The Island](https://www.theisland.io/articles/between-randomness-and-control-the-aesthetics-of-experimental-chance-in-artistic-practice?ref=gorillasun.de)
I never thought about it this way; that there's different kinds of randomness. Not from a technical point of view, where we'd frame randomness as different kinds of probability distributions, but with regard to their intent and in the manner that they're applied. This is maybe something that I need to be more intentional about in future works.
### Eko33's Terra Incognita
Following his release "Neural Sediments" on ArtBlocks, Eko33 returns with a new collection on SuperRare titled "Terra Incognita". In the interview with Paloma Rodriguez he dives into his background, the inspiration that he draws from mid-century design, and his art practice is an attempt at bridging the gap between disparate things, be it between the modern and the old, or between art and technology:
[Curated Conversations: Eko33SuperRare Labs Curator Paloma Rodriguez discusses Eko33’s ArtBlocks “Neural Sediments” drop, inspiration from Alberto Burri and František Kupka, and the creative process behind “Terra Incognita 00.”Superrare Labs IncPaloma.png#keepProtocol)](https://insights.superrare.com/discovery/curated-conversations-eko33?ref=gorillasun.de)
The interview is super insightful, providing a deeper look into the mind of Eko33 and how ideas rooted in cognitive science, sociology, and ethnography drive the development of his generative pieces. I find it fascinating how his works further these conversations with a modern medium.
Eko33 also made a thread in which he details the ingredients that generate the imagery seen in Terra Incognita:

[Link to Tweet](https://twitter.com/Eko3316/status/1702291844728594607?ref=gorillasun.de)
### William Mapan's Process
Following last week's spotlight where we had a look at William Mapan's process, in an interview with Cactoid Labs for the new work that he's creating for LACMA - this week Mapan gives us a little behind the scenes showing us how the different layers in his artwork build up to the final output:
[](https://twitter.com/williamapan/status/1701982094509920721?ref=gorillasun.de)
[Check out the Tweet for a video showcasing the different layers](https://twitter.com/williamapan/status/1701982094509920721?ref=gorillasun.de)
## Unity Controversy
I think this issue deserves a section of it's own. Earlier this year we've seen platforms like Twitter and Reddit make drastic changes to their business/pricing models - leading to some severe responses from their user-bases. Last week, Unity followed suit and updated their pricing model as well, ensuing a massive backlash from the entire gaming industry.
Starting from the top, the problem begins with this announcement from Unity:
[](https://twitter.com/unity/status/1701650081403842851?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/unity/status/1701650081403842851?ref=gorillasun.de)
[The post in which they detail all of their changes](https://blog.unity.com/news/plan-pricing-and-packaging-updates?ref=gorillasun.de).
Essentially, Unity is introducing a run-time fee based on each individual install of games that make use of the unity run-time. The unity run-time being the software that gets packaged alongside games built with unity and lets them run on the user's device. This fee is only applied to games that exceed a specific threshold number of installs and revenue generated:

Depending on the Unity plan that you're subscribed to a different run-time fee will be applied:

Now that already brings up an interesting set of problems. For instance, malicious actors could simply keep reinstalling a game multiple times over and in that manner accrue charges for the developers. Unity argues that they already have a fraud-detection system in place to counteract this. They also state that they have means to detected pirated copies of games using the unity run-time.
Chaos ensues. At first glance this might not seem like such a bad thing, what's 20 cents after all? But in reality it's actually a significant chunk of money once a a studio hits $200,000 - which is roughly the wage of 2-3 devs not considering other costs. Besides this, it's also a betrayal of trust: Unity shows that they can simply change their contract and enforce devs to pay for the games that they've built with their engine. Just like building a castle on sand, a lot of trust for Unity has been lost over the past couple of days.
But this is only the tip of the ice-berg, there's been a lot of things happenings behind the scenes that have come to light that added fuel to the fire. Such as controversy around some members of Unity's board of directors selling large shares of their Unity stock just days prior to this announcement.
Frey Holmier which you might be familiar with, being an employee at Unity has been very outspoken about the changes and succinctly summarizes the issues at hand:

The latest update on this issue was Unity issuing an apology just a couple of hours ago:

It's a rare occurrence to see large companies seemingly implode over the short course of a couple of days due to questionable business decisions, simply because of corporate greed, but this one takes the cake. It's uncertain if Unity can recover it's reputation after this.
## Interesting Reads
### Typescript Drama
Besides the Unity problem, there's also been to a lesser extent some controversy around Typerscript. Last week, Turbo 8 announced that they would be dropping Typescript in favor of Javascript:
[Turbo 8 is dropping TypeScriptBy all accounts, TypeScript has been a big success for Microsoft. I’ve seen loads of people sparkle with joy from dousing JavaScript with explicit types that can be checked by a compiler. But I’ve never been a fan. Not after giving it five minutes, not after giving it five years. So it’s with great…](https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01?ref=gorillasun.de)
What is Turbo? Why are they dropping Typescript? And why did this upset the community. [Turbo](https://turbo.hotwired.dev/?ref=gorillasun.de) is a popular framework that reduces the amount of custom JS that needs to be written for webpages of all kind:

It's creator stated that Typescript will be remove because it:
> pollutes the code with type gymnastics that add ever so little joy to my development experience, and quite frequently considerable grief. Things that should be easy become hard.
This lead to some backlash from the community, where many feared that this sudden change would break a lot of the packages that rely on Turbo:
[Ruby on Rails creator removes TypeScript from Turbo framework, upsets community • DEVCLASSRuby on Rails creator David Heinemeier Hansson has removed TypeScript from the forthcoming version 8 of the Turbo \[…\]DEVCLASSTim Anderson](https://devclass.com/2023/09/07/ruby-on-rails-creator-removes-typescript-from-turbo-framework-upsets-community/?ref=gorillasun.de)
Some articles were written in defense of typescript, astating it's importance and what it's benefits are:
[Refusing TypeScript is a signal that you don’t care about code qualityA few days ago, David Heinemeier Hansson announced that Turbo 8 is dropping TypeScript . I’m okay with that because I don’t even know what Turbo 8 is. However, over the past few years, some frontend programmers have tried to sell me the idea that “TypeScript is useless, just use tests”. I thi…Robert Vitonsky](https://vitonsky.net/blog/2023/09/08/typescript-and-code-quality/?ref=gorillasun.de)
I'm far removed from the world of Typescript - but I found this interesting nonetheless.
### lodash Issue Bankcruptcy
What happens when your opensource github repo has way too many open issues? You declare bankcruptcy:

And that's excatly what the popular lodash utility library did this past week - closing several hundreds of open issues. And that's maybe not so bad after all and makes room for future improvements that matter rather than chasing loose ends that hinder meaningful progress:

### Kyle McDonald's Amends project
It's already been one year since the Ethereum merge, however the impact that the blockchain has had on the environment still remains to be addressed. A year ago, media artist Kyle McDonald create his project amends.eco in an attempt to alleviate this issue - however a year later it still remains to be sold:

### The bug that caused the UK air traffic meltdown
Here's something completely different, but nonetheless super interesting. James Hayden does a deep dive into the bug that cause one of the largest air traffic outage in over a decade - leading to the cancellation of over a 2000 flights.
It's a very technical read, but very enjoyable at the same time:
[](https://jameshaydon.github.io/nats-fail/?ref=gorillasun.de)
[Minimal and stylish design.](https://jameshaydon.github.io/nats-fail/?ref=gorillasun.de)
## AI Corner
### Optical Illusions
A couple of days ago my timeline was full of these cool AI generated optical illusions:


My initial guess was that it's some sort of spiral/checkerboard pattern being fed into a generative image model, and it seems that that is in fact so:

I might experiment with it this week - visually, it's one the coolest thing I've seen in a while in the AI art space!
## Gorilla Updates
I actually managed to make quite a bit of art this week and also work some more on the new design of the blog - but it turns out that it's taking more time than anticipated.
Saturday morning I returned to my irregular grids just to get the creative juices flowing. Layering two instances, I somehow ended up with this composition that I think turned out really nice - there's something very childish and playful about it, like it's made of lego blocks:

I have some ideas for taking this further, with some animated elements but that's entirely dependent on how much time I can invest this week in sketching.
Earlier this week I spent some time exploring maze generation algorithms, such Prim's algorithm and Recursive backtracking that generate completely different patterns. I also learned about the River Factor, and how it determines the overall shape of a maze. A low river factor indicates many short dead ends, giving the maze a rather spikey appearance, whereas a high river factor leads to mazes that have long corridors and few short dead ends - example:


Spikey Maze generated with Prim's algorithm vs. longer and winding corridors with recursive backtracking
I also did some circular sketchbook-looking sketches with arcs that I thought were interesting - they remind me of Aleksandra Jovanic's work in a way:



Jumbled Arcs
And I worked a tiny bit on my other project that's been on hiatus for a while now:
0:00
/0:23
1×
A glimpse into the core
## Music for Coding
> Laura Lee and Mark Speer were planning to fly to Latin America, but when the right visa didn’t come through, and the airline gave them 24 hours to rebook their trip, they hastily switched to Thailand. On their trip through Bangkok, Cha-am, and Chiang Mai, the future bassist and guitarist for Khruangbin became enamored with what they called “noodle house music”
Khruagbin mixes retro soul sounds, with flavors of surf, and psychedelic elements - all that with with some traditional Thai undertones, it's good vibes through and through:
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art of the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Newsletter 21
URL: https://www.gorillasun.de/blog/gorilla-newsletter-21/
Last updated: 2023-12-19T23:10:53.000Z
**Hey everyone 👋 and welcome to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Recap - a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI.**
**Hope you have a good stay!**
---
## Genart Updates
Another week has passed, and yet again there's many interesting things happening in the genart space! Here's everything that I found worth sharing with you!
### Interview with Dr A Michael Noll
At the top of the list, we have yet again Le Random with another piece of stellar genart content, this time interviewing none other that generative art pioneer Dr A Michael Noll:
[](https://twitter.com/lerandomart/status/1699756211350978970?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/lerandomart/status/1699756211350978970?ref=gorillasun.de)
You can listen to the interview in it's entirety here:
[Timeline Ch 4 (1960s): Dr A Michael Noll - Le Random AudioWe are beyond thrilled to speak with who we consider to be a critical founder of computer art and perhaps the first person to create digital graphic art.Peter Bauman (Monk Antony) spoke with Dr. Noll about:-The inspiration to make art with compute…Buzzsprout](https://www.buzzsprout.com/2243493/13547211?ref=gorillasun.de)
Dr. Noll recounts his early days at Bell labs, where he was exposed to probably one of the first instances of computer art - seemingly by chance: while a colleague was testing their program, the machine produced an output with a bunch of "jumbled lines". The colleague cheekily called it "computer art" in reference to the abstract art that was at the time becoming more popular. Noll, inspired by this incident, decided to deliberately create such machine generated compositions and continued down that line by making plotter drawings. Simply because it was a fun thing to do as he states.
Later on, this led to other ideas, such as the famous Mondrian experiment, in which Noll recreated the famous "composition with lines" - the majority of people that were asked which was which, were not able to tell the difference. Later, it even became [a published paper](http://thekidsroad.com/assets/images/blog/blog-content/mushup-remix/Noll%5FMondrian.pdf?ref=gorillasun.de):

Throughout the interview Dr. Noll informs us of his story in a very eloquent manner - it's a must-listen! One thing that Dr. Noll said which I found very beautiful was the following sentence:
> When you don't write it up, and tell other people, it is lost. \[...\] Publish. Tell the world, don't just sit there doing it. Write, publish, write.
Noll stresses how important it is to record things and put them in writing, it's the one thing we can do to combat the passing of time.
Besides this, I also recommend checking out the other article that [Peter Bauman](https://twitter.com/MonkAntony%5Ftez?ref=gorillasun.de) published this week:
[Timeline Chapter 1: Ten Top MomentsChapter 1 of our story is the longest in breadth, covering the period before 1850, which we call the “Pre-Modern Era.” Spanning tens of thousands of years, Chapter 1 surveys the advancements in art, mathematics, science and computing history that led to the modern era of generative art.Le RandomPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/timeline-chapter-1-ten-top-moments?ref=gorillasun.de)
### A conversation with William Mapan
Another fantastic interview this week is by Cactoid Labs, a conversation with [William Mapan](https://twitter.com/williamapan?ref=gorillasun.de) who is currently creating work for the LACMA (Los Angeles County Museum of Art) collection.
In the interview Mapan tells us about his diverse background, and how his different interests later on converged into the generative art that he makes today:
[Remembrance of Things Future: A Conversation with William Mapan, Artist Experimenting on the BlockchainCactoid Labs curator and co-founder Lady Cactoid recently sat down with artist William Mapan to explore his process, the stories behind the art he currently has on view at the museum’s Stark Bar screens, and the work he is creating in dialogue with LACMA’s permanent collection for the project Rememb…UnframedLady Cactoid](https://unframed.lacma.org/2023/09/06/remembrance-things-future-conversation-william-mapan-artist-experimenting-blockchain?ref=gorillasun.de)
He is also asked about the masterful use of color in his artworks. He states that one important part of his process, is the translation of the coded artwork onto paper, while at the same time trying to achieve the different gouache pigments by means of mixing primary colors:
> Things come too easily. If I am at the art store, I could simply say, oh, I like this color, I am going to buy it. But if I do that, I don’t build a relationship with the color. I like to go deeper, to understand my colors.
Color has been a weak point in my own art, that's my own sentiment at least. I often find myself falling back onto familiar and pre-defined palettes as a sort of safety cushion. Creating intriguing color systems has been on my to-do list for a long time now.
### ARTxcode New Artists
ARTxCode is a creative studio and generative art agency that aims to represent and nurture a variety of different artists. They already boast an impressive roster of generative artists, such as [Martin Grasser](https://twitter.com/martingrasser?ref=gorillasun.de), and [Lars Wander ](https://twitter.com/larswander?ref=gorillasun.de)among others.
This past week they announced that they'd be joined by two new faces, namely [Sasha Styles](https://twitter.com/sashastiles?ref=gorillasun.de) and [Linda Dounia](https://twitter.com/LindaDouniaR?ref=gorillasun.de).
[](https://twitter.com/artxcode%5Fio/status/1699516715783102903?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/artxcode%5Fio/status/1699516715783102903?ref=gorillasun.de) | [Link to Twitter Spaces](https://twitter.com/i/spaces/1eaKbrjwrQaKX?ref=gorillasun.de)
Besides the Twitter space ArtxCode also published two individual interviews with the artists over on their website. They provide an in depth look into their practice
Sasha stiles has been making ripples with her innovative trans-disciplinary work on poetry and AI. Her interest in working with AI models started long before the current LLM craze took off, at a time when no one was really experimenting with language models for the purpose of creative writing. In the interview she recounts how she first discovered this new world, the tools that she initially used and how they evolved as well as how she approached this new creative practice:
[Sasha Stiles on Philosophy, Technelegy, and the Future of Literature — ARTXCODESasha Stiles, a Harvard and Oxford graduate, resides near New York City. She is a first-generation Kalmyk-American poet, language artist, and AI researcher exploring the intersection of text and technology. Stiles has made a name for herself through her pioneering experiments with generative literatARTXCODEarltcollector](https://www.artxcode.io/journal/sasha-stiles-interview?ref=gorillasun.de)
Besides diving into the world of creative coding with tools like p5js and processing, Linda Dounia also discovered the creative possibilities of AI models. Coming from a background in design, GANs were a completely new approach to creating interesting and surprising work. In the interview she addresses a whole slew of important points, such as creative burnout, how to come out of it as well as avoiding being pigeonholed into a certain art direction:
[The Ever-expanding World of Linda Dounia — ARTXCODELinda Dounia is an artist, designer, and curator examining the intricate interplay between tangible and intangible structures through her expansive creative practice that celebrates the art of craft-making in dialogue with technology with acrylic, ink, pastels, vector, video, GANs, and more recentlyARTXCODEarltcollector](https://www.artxcode.io/journal/linda-dounia-interview?ref=gorillasun.de)
Kudos to ArtxCode for the lovely interviews! I recommend checking out their journal, the interviews with previous artists on their roster are also quite interesting.
### Piero's 16 SQRS
[Piero, aka pifragile](https://twitter.com/pifragile?ref=gorillasun.de), returns with another bear market project - another minimal and experimental Tezos NFT platform. As it's name suggests [16 sqrs](https://16squares.xyz/?ref=gorillasun.de) revolves around the idea of making art simply by making use of 16 squares and placing them in various manners around the canvas. What's cool is that it's fully on-chain!
As of now, the small marketplace has seen roughly 100 mints:
[](https://16squares.xyz/?ref=gorillasun.de)
[Link to Platform](https://16squares.xyz/?ref=gorillasun.de)
### Landlinesart WIP - Draw your own curves
Another generative project that caught my eye this week was [landlinesart](https://twitter.com/landlinesart1?ref=gorillasun.de) sneak WIP post for a new FxpParams project. It's essentially a curve editor where the user can create their curvy compositions:
> yes, you can draw your own curves. [#fxhash](https://twitter.com/hashtag/fxhash?src=hash&ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) [pic.twitter.com/A2OQjwzGa1](https://t.co/A2OQjwzGa1?ref=gorillasun.de)
>
> — landlinesart (@landlinesart1) [September 6, 2023](https://twitter.com/landlinesart1/status/1699463535867433099?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
FxParams is getting out of hand!
### Tezumie's aijs Code Editor
Besides making some stellar generative art, [Tezumie](https://twitter.com/Tezumies?ref=gorillasun.de) has now taken it upon themselves to build a code editor that's geared towards that purpose. This is especially exciting to me personally, because I've been looking to switch from Atom to something new for a while now, maybe this could be it:

[You can check out the editor here](https://twitter.com/aijs%5Feditor?ref=gorillasun.de)
### Chris McCully on LUTs
LUTs, short for *Lookup Tables*, are essentially structures that take a number input and spit out another number in response. Chris McCully wrote an FxText about them, demonstrating some creative applications that they can be used for especially with regard to color blending:
[fxhash - LUTs in Gen ArtA quick tutorial using 1D LUTs with p5.js and a fragment shaderfx logo](https://www.fxhash.xyz/article/luts-in-gen-art?ref=gorillasun.de)
### MAKIO135 returns to Twitter
One other thing I wanted to share, is that Lionel Radisson aka Makio135 is back on Twitter after what seems to have been a little hiatus. The SVG wizard is back at it again making some stunning generative art:
> I'm back 👋 [pic.twitter.com/62uscyueeP](https://t.co/62uscyueeP?ref=gorillasun.de)
>
> — Lionel Radisson (@MAKIO135) [September 3, 2023](https://twitter.com/MAKIO135/status/1698415812262899920?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
## Interesting Reads
### Rebuilding the TechCrunch layout with modern CSS
A super interesting deep dive into how Ahmad Shadeed redesigned the tech crunch layout, walking us through his thought process by first analyzing the previous TechCrunch layout and then moving on to trying out different CSS approaches to solve some of it's problems:
[Case Study: Rebuilding TechCrunch layout with modern CSSRebuilding TechCrunch with modern CSS.Photo of Ahmad ShadeedAhmad Shadeed](https://ishadeed.com/article/rebuilding-techcrunch-modern-css?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
The more I'm learning about CSS, and after having put together a couple of my own layouts, the more I'm realizing that there isn't really a standard approach to implement things. Especially when it comes to non-standard layouts, a lot of *hacks* will be involved - but then again, can we really call them hacks if there is no standard approach?
When coding with other proper programming languages, you can usually feel that you're doing things wrong. Either because the code is becoming bloated, or things have to passed around in a backhanded manner, and there's something off about the flow of the program. In CSS that hasn't been the case - because properties interact with each other, the flow of execution is a bit masked. For me at least, it always feels a little bit like an unorganized mess... but at the same time, it also always feels really good when my layout finally snaps into place.
Brandon Smith wrote a really interesting piece in 2017, arguing against the rest of the world that CSS is awesome - and it's a really interesting perspective that also reveals some important notions on how one should reason while writing CSS:
[CSS is Awesome | CSS-TricksI bought this mug recently for use at work. Being a professional web developer, I decided it would establish me as the office’s king of irony. The joke on itCSS-TricksBrandon Smith](https://css-tricks.com/css-is-awesome/?ref=gorillasun.de)
> **\[...\] never be more explicit than you need to be**. Web pages are responsive by default. Writing good CSS means leveraging that fact instead of overriding it
### Measuring Software Developer Productivity
Being productive has been a big topic in my personal life recently, and for the most part I simply try to *go with the flow* \- that doesn't mean that I don't make to-do lists and soft deadlines by which I want to have completed certain projects/tasks. I've thought about ways to measure my productivity, and at an individual level this has boiled down to tracking how many words I write every day, usually aiming for a specific number (1000-2000).
Other things are not as easy to track, usually things that lie of the design side of things. Things are done when they are done.
I came across this article from McKinsey & Company that proposes and explains a nuanced evaluation model for companies to measure software developer productivity, at an individual level and across the teams that they might be part of:
[Yes, you can measure software developer productivityMeasuring, tracking, and benchmarking developer productivity has long been considered a black box. It doesn’t have to be that way.McKinsey & CompanyChandra Gnanasambandam](https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
### The worst Porgrammer I know
And while we're on that topic - sometimes productivity metrics are not indicative of the an employees worth. [Daniel North](https://twitter.com/tastapod?ref=gorillasun.de) writes about how the *Worst Programmer* that he knows, was actually one that improved the entire team as a whole:
[The Worst Programmer I KnowThe great thing about measuring developer productivity is that you can quickly identify the bad programmers. I want to tell you about the worst programmer I know, and why I fought to keep him in the team.Dan North & Associates Ltd](https://dannorth.net/2023/09/02/the-worst-programmer/?ref=gorillasun.de)
### Two years for developing an MMO
After becoming frustrated with the repetitive tedium that most AAA MMORPGs have become, Lukas Meisegeier set out to create his own. He recounts 2 years of developing his own game and addresses some of the challenges that he encountered - in particular, making the game look good and marketing it to a broader audience:
[Two years for developing an MMOThe story of developing Raiding.ZoneRaiding.Zone](https://raiding.zone/docs/posts/retrospective/?ref=gorillasun.de)
One thing on my bucket list is making my own game at some point in the future. But that's gonna have to wait for now.
### Modernization conflicts intent
I have a love-hate relationship with Stackoverflow. The platform has helped me overcome numerous roadblocks as a programmer, however, when first joining the platform as an inexperienced student, I found that the overzealous nature of the platform can sometimes lead to bad experiences.
Although I can't blame the users - having tried to actively answer questions for a while, I've also experienced the huge influx of low quality questions and
Jan shultke brings up a important issue, regarding the case when answers become outdated due to syntactical discrepancies, I found this very interesting. Programming languages change with time, sometimes new features are added to a language, and syntactical practices then become obsolete with time. This has the effect that the modern version of a programming language provides a different way for writing specific pieces of code.
In those scenarios is it acceptable to edit a Stackoverflow answer that is written with old syntax?
[When do modernization edits conflict with the author’s intent?I regularly find myself "modernizing" C++ questions and answers by adding notes or changes based on more recent versions. For example, an edit might add lines 02 and 03: /\* 01 \*/ std::find(Meta Stack OverflowJan Schultke](https://meta.stackoverflow.com/questions/426288/when-do-modernization-edits-conflict-with-the-authors-intent?ref=gorillasun.de)
## AI Corner
### Times' 100 Most influential People in AI 2023
Time magazine compiled a list of the 100 most influential people in AI today. This doesn't only include the CEOs that sit at the helm of DeepMind and OpenAI, but also individuals that grapple with some of the ethical and moral implications of advancements in AI. For this purpose the list is split into 4 categories: Leaders, Innovators, Shapers, Thinkers.
The list allows you to click on the different profiles leading to a short bio describing their involvement:
[The 100 Most Influential People in AI 2023Here’s who made the 2023 TIME100 AI list of the most influential people in artificial intelligence.Time](https://time.com/collection/time100-ai/?utm%5Fsource=twitter&utm%5Fmedium=social&utm%5Fcampaign=editorial&utm%5Fterm=tech%5Fartificial-intelligence&linkId=233683503)
AI is unarguably becoming more mainstream. Thinking back on learning about ML and AI in 2019, things have changed a lot in such a short time-span. At the time I was also getting into making art with GANs and even trained a couple of my own models, but when I discovered creative coding and generative art, that just resonated more with me. I just find the 'traditional' - for a lack of a better word - of making art with computers much more exciting. Maybe at some point in the future I'll return to making AI art.
### Text-to-CAD
The gradient is back with a new article, tackling a new avenue in which prompt based models could, at the same time, lead to meaningful advancements but also cause some serious problems.
CAD models, short for Computer Aided Design, refer to 3D blueprints, like figurines for instance, that can be passed to 3D printers. These models are usually created by means of 3D modeling softwares, such as Blender and Maya. As you can imagine, this is not an easy task, it's essentially a modern form of sculpting items. Recently there's been efforts to adapt models for the purpose of generating these CAD models based off of an input prompt:
[Text-to-CAD: Risks and OpportunitiesIn the realm of AI-powered text-to-CAD, there’s promise, but also a surge in subpar designs. Can we steer this technology towards better outcomes?The GradientReggie Raye](https://thegradient.pub/text-to-cad/?ref=gorillasun.de)
## Gorilla Updates
This week I have been deep in the throes of redesigning the blog:

I've discovered that I do enjoy web design, now that I have a better grasp of CSS concepts, while at the same time I've become more comfortable working with the Ghost CMS. However, as I explained earlier, CSS can be frustrating sometimes if the goal is a layout that is customisable.
Why the redesign? Mainly because I haven't been entirely happy with the current layout of the post/article template - I feel like the table of contents on the right side is taking up too much space and distracting from the main text on the page. The emphasis should be on the text. That's why this table of contents will soon be packaged inside of an expandable side-bar, alongside some navigation options.

I also spent some time sketching and had some fun working on some SDF things again, the post I made about it on Twitter also really took off - becoming one of my most successful tweets in a while.

[Check out the animated version on Twitter](https://twitter.com/gorillasu/status/1700227245455872445?ref=gorillasun.de)
## Tip of the Week
I guess today's Newsletter is a special CSS issue, because our Tip of the week is this cool tool that lets you create smooth CSS box shadows - by layering several of them:

## Music for Coding
I first heard about this band through one of my lab mates in uni. Fast forward a couple years and I'd completely forgotten about the band until their album popped up again in my recommendations.
Beautiful progressive rhythmic shuffles in combination with minimal clean electric guitar work produces some really nice soundscapes, that were perfect for figuring out some new algorithmic ideas this week:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Newsletter 20
URL: https://www.gorillasun.de/blog/gorilla-newsletter-20/
Last updated: 2023-12-19T23:10:59.000Z
**Hey everyone 👋 and welcome to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Recap - a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI.**
**Hope you have a good stay!**
---
## Genart Updates
It's been another fantastic week for creative coding and generative art! There haven't been this many relevant updates in a single week since the beginning of the newsletter!
### LeRandom - Generative Art Timeline Ch. 4
LeRandom's generative art timeline is starting to take shape! We're entering the 1960s - arguably one of the most important eras that shaped the field of generative art in the way that we know it today:
[Le Random - Generative Art TimelineExplore the 70,000-year history of generative art through hundreds of milestones and ten chapters.Le Random](https://timeline.lerandom.art/?ref=gorillasun.de#/chapter-4)

My knowledge of the early days of generative art is at best hazy, and I really don't know much about what happened in the 80s and 90s. Seeing the important events and characters of that era listed out in a chronological manner really helps fill out these empty patches. When I wrote about [Vera Molnar's early life](https://www.gorillasun.de/blog/the-art-of-vera-molnar/), it was quite a challenging task to find and collect information from different sources dispersed across the internet. Sifting through dozens of interviews, it seemed like I was piecing together a puzzle.
LeRandom's efforts to this end are invaluable. I'm looking forward to the following chapters and to more articles that tackle the historical and philosophical aspects of generative art, as an artform.
### Melissa Wiederrecht's 'Is it Art?'
Something that completely flew under my radar where two posts from Right Click Save, one written by herself and another an interview with her.
Formulating every sentence as a question, Melissa put together a beautiful piece of writing. She rattles at the very foundation of what we consider digital art in this day and age, and the chain of questions slowly reveals itself as an introspective into some of the experiences she's made navigating the digital and genart space over the course of her career. She raises questions about the medium, about the process, about social media, and so many more things that I believe many a digital artist has grappled with at some point:
[Is It Art?Melissa Wiederrecht goes in search of the meaning of generative artLuke Hespanhol](https://www.rightclicksave.com/article/is-it-art-melissa-wiederrecht-generative-art?ref=gorillasun.de)
Complementary to this, RCS published an interview with Melissa diving into her artistic background: from early beginnings, where she began to invent her own drawing systems at a young age, up until the present day where she has developed her own unique generative identity:
[The Interview | Melissa WiederrechtThe artist explores the space between generative art and identity with Whitney HartMelissa WiederrechtLuke Hespanhol](https://www.rightclicksave.com/article/the-interview-melissa-wiederrecht-generative-art?ref=gorillasun.de)
Melissa Wiederrecht is currently one of the most prolific generative artists in the space, churning out one stunning artwort after another. Many lessons can be learned from these two posts, I highly recommend having a look at both of them.
### Tracing the Line - Vetro Editions
Following their stellar handheld Augmented Reality Experience - A.R.E - this November Vetro Editions returns with another collaboration with Generative Hut. This time round, their new book revolves entirely around the pen-plotter, it's historical and contemporary use in generative art, all while featuring some of the artists that have made heavy use of the wonderful machine:

[Link to Tweet](https://twitter.com/VetroEditions/status/1697165912070136306?ref=gorillasun.de) | [Link to Book](https://vetroeditions.com/products/tracing-the-line?ref=gorillasun.de)
Who doesn't love watching plotters work their magic?
This isn't a sponsored segment - I just think that Vetro Editions has made some fantastic generative art books. Hence the shoutout. In my meagre genart book collection I already have two of theirs: their previous A.R.E book, as well as Matt DesLauriers' Meridian Artbook for which they acted as a publisher.
### P5Js gets some Updates
This week there's also two new things worth mentioning regarding the lovely P5 library.
Firstly, a P5 text library built by Arthur Cloche that brings a whole slew of new text manipulation functions to the table. If you've ever worked with text in P5, you'll know that the methods that come out of the box are a bit clunky. Stretching and curving text are two new things that can be done with Cloche's library which p5 doesn't natively support, and are not very straightforward to achieve if you set out to code them from scratch:
[](https://twitter.com/ArthurCloche/status/1696072577372881236?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/ArthurCloche/status/1696072577372881236?ref=gorillasun.de) | [Link to Repository](https://github.com/amehowc/p5.variableFont?ref=gorillasun.de)
Another update is Justin Wong's GSOC (Google's Summer of Code) contribution, that adds hardware acceleration to P5's filter function. The filter() function is notoriously slow due to the per pixel operations that it has to compute, but this is no longer so - by making use of the GPU it's now blistering fast!
[](https://twitter.com/davepvm/status/1697584024594612693?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/davepvm/status/1697584024594612693?ref=gorillasun.de) | [Link to Repository](https://github.com/processing/p5.js/pull/6324?ref=gorillasun.de)
### Alba Concludes it's beta phase
Alba concludes it's beta phase, with 27 beautiful pieces minted on the Ethereum blockchain, and takes a little break before opening up for everyone to mint their projects on the platform:

[Link to Tweet](https://twitter.com/davepvm/status/1697584024594612693?ref=gorillasun.de)
### Now There's None of You Left by Xalted
One stunning piece of generative art from the past week is Xalted's newest project titled *Now There's None of You Left* over on fxhash:

[Link to Project](https://www.fxhash.xyz/generative/slug/now-there's-none-of-you-left?ref=gorillasun.de)
Asking about the process over on Twitter, Xalted pointed me to a writeup for his previous project. The work is done Cables.gl, which is a node based webgl environment. It seems that it is a quite effective tool for the purpose of generative art:
[fxhash - The Making of “In a Moment, a Thousand Years”A brief overview of the process behind the making of ‘In a Moment, a Thousand Years’.fx logo](https://www.fxhash.xyz/article/the-making-of-%22in-a-moment-a-thousand-years%22?ref=gorillasun.de)
Xalted explains how the varied compositions emerge from the layering of intersecting shapes and then feeding color into them.
## Interesting Reads
We also have quite a chunky list of interesting reads and things to watch this week!
### Snake Game inside of a QR Code
You've probably heard about code golfing, but have you ever heard of a game in a QR code? Inspired by MattKC's video [Can you fit a whole game into a QR code?](https://www.youtube.com/watch?v=ExwqNreocpg&ref=gorillasun.de), Elisha Hollander set out on a mission to actually make it a reality. Recently they finally managed to bring down the size of their snake recreation, coded in x86 assembly, down to 75 bytes.
After making ripples on the r/programming subreddit, this also prompted a feature over on the Hackaday page:
[It’s Snake, In A QR Code, But SmallerWe’re not sure that many of you have recognised the need in your life for an x86 machine code program encoded into a QR code, but following on from someone else work \[donno2048\] has created a…HackadayJenny List](https://hackaday.com/2023/08/03/its-snake-in-a-qr-code-but-smaller/?ref=gorillasun.de)
The original video:
### Factorio, Mutation, & Lossiness
While we're on the topic of video games, here's an article by Ryan Fleury on Factorio. I never played Factorio myself, but I've watched quite a few letsplays, and it looks like a really intricate, fun and engaging experience.
Factorio is essentially a strategy game in which you build different kind of factories to process materials, transform them, then deliver them to other factories to produce other kinds of resources and so on. Ultimately feeding these resources into the construction of units to fend against the creatures of the foreign planet that you find yourself on.
And apparently Factorio has a lot of parallels to programming. In a way playing the game feels like programming. Ryan Fleury elaborates that Factorio has a lot to do with the concept of "data tranforms". One way of thinking about programming, is that it can be seen as an act of transforming one kind of data into a different kind of data. Several problems can emerge when handling data, such as lossiness and throughout issues. Building your factories and conveyors in Factorio have similar emergent properties:s
[Factorio, Mutation, & LossinessOn Factorio, the high-level term “data transforms”, how data transforms are practically implemented, and tradeoffs to consider in various implementation styles.Hidden GroveRyan Fleury](https://www.rfleury.com/p/factorio-mutation-and-lossiness?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
### Shining a Light on the Digital Dark Age
Every few weeks or so I take some time to clean up the folders that I have sitting on my desktop, and it always takes me more time than expected. It's just always the case that I've accrued way more files than I initially thought, and often there simply isn't a good way to organize them.
Data preservation is also a real problem at a much larger scale. While humanity churns out *content* at an exponentially increasing rate,what efforts are directed towards the preservation and longevity of this data? It's already difficult to find things from just a few years back - in another decade or two we might see more and more parts of the early internet vanish forever.
For instance, in 2019 MySpace succumbed to irreversible data loss during a server migration, losing millions of songs and images that once lived on the platform. Adrienne Bernhard shines light on this growing problem, and discusses some of the efforts that are currently being done to counteract it:
[Shining a Light on the Digital Dark AgeWithout maintenance, most digital information will be lost in just a few decades. How might we secure our data so that it survives for generations?Long NowAdrienne Bernhard](https://longnow.org/ideas/shining-a-light-on-the-digital-dark-age/?ref=gorillasun.de)
### Paypall Password Pandemonium
Max Levchin, co-founder of Paypall, recounts arriving in America for the first time, after having fallen in love with cryptography. Seemingly by chance he comes across Shamir's secret sharing method, later on implementing it as a mechanism for unlocking the Paypall servers.
Shamir's secret sharing is essentially a method for transmitting information between a group of friendly actors, such that the secret can only be decoded when N people of that group put their keys together. Levchin tells the story of what could have potentially been a *company ending* incident:
[Shamir Secret SharingIt’s 3am. Paul, the head of PayPal database administration carefully enters his elaborate passphrase at a keyboard in a darkened cubicle of 1840 Embarcadero Road in East Palo Alto, for the fifth time.…Tumblr](https://max.levch.in/post/724289457144070144/shamir-secret-sharing-its-3am-paul-the-head-of?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
### Words of Advice from Bjarne Stroustrup
I also wanted to share these insightful words from Bjarne Stroustrup, whom you might know better as the creator of C++. His advice to younger programmers is *to not overspecialize and diversify your skillset*:
## AI Corner
### R.I.P. Doug Lenat
Doug Lenat was a titan in the field of AI. Over the past 40 years Lenat founded and directed of the [Cyc](https://en.wikipedia.org/wiki/Cyc?ref=gorillasun.de) project, an ontology that aims to capture all of the rules that describe how the world works in an attempt to *codify common sense reasoning* for the purposes of AI models. Although never becoming a huge commercial success, but an increasingly important effort now that we are etching our way towards general artificial intelligence.
Gary Marcus, a collaborator and friend of Lenat talks about the efforts that have gone into Cyc and Lenat's vision for Cyc:
[Doug Lenat, 1950-2023AI has lost a giantMarcus on AIGary Marcus](https://garymarcus.substack.com/p/doug-lenat-1950-2023)
Together they wrote a final paper titled [Getting from Generative AI to Trustworthy AI: What LLMs might learn from Cyc](https://arxiv.org/ftp/arxiv/papers/2308/2308.04445.pdf?ref=gorillasun.de).
### ChatGPT and Emotional Outsourcing
Kelly Weirich tackles the topic of emotional writing using LLM's like chatGPT and the generally negative sentiment towards it. When writing something like a congratulatory message, a message of condolences or even a love letter, it is often difficult to find the right words to express these sentiments in written form.
With a tool like ChatGPT however this is not an issue anymore, as long as there is not indication that you used such a model. Is it morally wrong to use LLM's for this purpose? Does the intent change because the emotional challenge was outsourced to the machine? Or is it just lazy to do so? Weirich addresses all of these points in what I find to be an important discussion:
[ChatGPT and Emotional Outsourcing - Prindle InstituteWhat’s the harm?Prindle InstituteKelly Weirich](https://www.prindleinstitute.org/2023/03/chatgpt-and-emotional-outsourcing/?ref=gorillasun.de)
## Gorilla Articles
**Just a short announcement for this section:** *I'm going to be reducing the frequency of weekly posts in the coming months, from 2 posts a week to a single one. This in part due to some other projects that I need to work on, and partly because I want to work on improving the blog as a whole, and there simply isn't enough time to work on both writing new articles and developing the blog. I hope that this will help with being more consistent about my posting schedule from now on.*
## Gorilla Sketches
I did a lot of sketching this week, some of my sketches I already shared over on Twitter, as well as some other things that I can't show just yet. One of the things I did was this recreation of an older idea, with a new twist. Instead of letting random grid walkers expand limitless (as long as there is space), instead their overall length is capped, making it very reminiscent of the original snake game:
0:00
/0:06
1×
A tricky part was figuring out how to make snakes on this grid unstuck when they get their head has nowhere to go. I still need to think about that a little.
## Music for Coding
The Youtube recommendation algorithm did it's thing again and recommended this gem! Altin Gün is a Türkish psychedelic-folk-rock band from Amsterdam. Drawing inspiration from the [Anatolian rock](https://en.wikipedia.org/wiki/Anatolian%5Frock?ref=gorillasun.de) scene of the 60s and 70s, the band blends between oriental Türkish sounds and 70s rock. I thoroughly enjoyed their album Gece from start to finish:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Newsletter 19
URL: https://www.gorillasun.de/blog/gorilla-newsletter-19/
Last updated: 2023-12-19T23:11:04.000Z
**Hey everyone 👋 and welcome to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Recap - a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI.**
**Hope you have a good stay!**
---
## Genart Updates
### Decoupling Generative Art
Peter Bauman strikes again with another article for LeRandom, this time joined by Philip Galanter.
Philip Galanter, associate professor at Texas A&M University teaching generative art, physical computing and complexity theory, among others, developed an interest in generative systems from a young age, and has subsequently dedicated a large part of his career to generative art and the study thereof.
In 2003 he published a paper titled [*What is Generative Art? Complexity Theory as a Context for Art Theory*](https://www.philipgalanter.com/downloads/ga2003%5Fpaper.pdf?ref=gorillasun.de)in which he constructs a framework for understanding what generative art means and all of the practices that it encompasses. Although generative art has changed quite a bit in the past two decades, the paper still provides a comprehensive picture of the modern Artform. The interview covers some of his theories:
[Decoupling Generative Art with Philip GalanterPeter Bauman (Monk Antony) reflects on Philip Galanter’s classic 2003 definition of generative art before briefly speaking with the artist, Texas A&M professor and theorist about the definition twenty years later.Le Random — A Digital Generative Art InstitutionPeter BaumanPeter, an arts writer, is responsible for Le Random’s editorial branch.](https://www.lerandom.art/editorial/decoupling-generative-art-with-philip-galanter?ref=gorillasun.de)
Before questioning Galanter on his career and his generative art theories, Bauman also starts us off with a short but interesting analysis of the term generative art and how generative systems are contemporarily perceived.
### Julian Hespenheide's FSM
[Julian Hespenheide](https://www.julian-h.de/?ref=gorillasun.de) is currently one of the artists that stands at the forefront of generative art. I discovered Julian's work the first time over on Instagram, and I was instantly mesmerized by the morphing ASCII animations.
With the release of his second project for [Bright Moments](https://twitter.com/brtmoments?ref=gorillasun.de) this past July - he recently published a complementary article that details the inner workings of the piece, and recounts some of the inspirations and techniques that culminated in the final work. You can find the article for FSM - short for Finite-state machine - over on fxtext:
[fxhash - FSM. Notes on the work or: An attempt to explain everything and nothingAn attempt at unwrapping the layers: Today I’d like to invite you on a lengthy but hopefully interesting explanation of where my newest algorithmic piece FSM comes from and what some of its details are. If you are curious enough and would like to dive deep, I think now is a good time to grab your fa…fx logo](https://www.fxhash.xyz/article/fsm.-notes-on-the-work-or%3A-an-attempt-to-explain-everything-and-nothing?ref=gorillasun.de)
It's a long read, but it's very enjoyable and insightful from start to finish. And I'm all about that.
Returning to Javascript to code up a preliminary version of FSM, at the time titled STATEMACHINES, Julian quickly approached the limits of what can be done with a CPU when things are animated. As always, shaders were the answer. After some initial struggles things finally clicked and a shader version of FSM started to take shape. I'll leave the rest to Julian's article, that details how the nifty emergent system works behind the scenes.
### Rückkoplung
Another project that completely flew under my radar is pxlshrd's new generative piece titled "Rückkoplung" - the German term for feedback. And the way that it blends colors in such an organic manner; it's one of the best pieces that I've seen lately.
Pxlshrd composed a little poetic thread that gives a glimpse into how the compositions in Rückkoplung are created:
[](https://twitter.com/pxlshrd/status/1694413238128038360?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/pxlshrd/status/1694413238128038360?ref=gorillasun.de)
In a similar manner to Julian Hespenheide, pxlshrd also got his hands dirty and learned shader coding for this project, and I'd love to see a *making of* type of post for the project in the near future.
As always, this reminds me that I should really get back on learning shader coding.
---
## Interesting Reads
### On Domain Repetition
While we're on the topic of shader coding - Inigo Quilez is back with a new article about Domain Repetition, a shader technique that makes it possible to repeat shapes and tile them infinitely with fairly little code. The tutorial goes pretty deep and also addresses some of the problems that arise:
[Inigo QuilezArticles on computer graphics, math and artInigo Quilez](https://iquilezles.org/articles/sdfrepetition/?ref=gorillasun.de)
If you want to get into shader coding Inigo Quilez has some of the best resources in that regard.
### Bezier Curves and the logic behind them
First off, [Richard Ekwonyé](https://www.richardekwonye.com/?ref=gorillasun.de) has one of the best looking sites that I've seen all year. Secondly, he's recently written a wonderful piece on Bézier Curves, explaining the logic that makes them possible and how they're a scaffold for what many a designer/programmer probably knows as an easing function.
Yes, easing functions are nothing more than specific configurations of Bézier curves - I never thought about it that way before, but it makes sense. The article also provides many interactive examples that you can play with:
[Bézier Curves - and the logic behind them | Richard EkwonyeThe logic behind Bézier Curves used in CSS animations and visual elements.Richard EkwonyeRichard Ekwonye](https://blog.richardekwonye.com/bezier-curves?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
If you want to learn more about Bézier curves I also recommend [Freya Holmier](https://twitter.com/FreyaHolmer?ref=gorillasun.de)'s stellar video on the topic from last year:
It's one of my favorite videos of all time; while breaking down the logic behind Bézier curves into small and digestible bits, you're spoon-fed all of the relevant pieces of information via gorgeous visualizations, making it incredibly easy to understand the underlying mathematical concepts of Bézier curves.
### Interactive Code Snippets on any webpage
Not an interesting read per se, but this an incredibly relevant github repo for every blog/website that revolves around programming in one form or another. Similarly to the embeddable javascript widget that I built a while back, this widget lets you include executable code snippets in your posts with ease:
[GitHub - rameshvarun/blog-cells: Add interactive code snippets to any blog or webpage.Add interactive code snippets to any blog or webpage. - GitHub - rameshvarun/blog-cells: Add interactive code snippets to any blog or webpage.GitHubrameshvarun](https://github.com/rameshvarun/blog-cells?ck%5Fsubscriber%5Fid=2268013406&ref=gorillasun.de)
I also like the slick design of the codebox, I still have to check if it's more lightweight than the widget that I've concocted myself however. If you want to build something like this yourself, my writeup can be found here:
[Building an Embeddable Javascript WidgetIn this tutorial we’ll cover how to create a vanilla javascript widget that can be embedded on websites, and is capable of executing javascript safely in an iframe.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/building-an-embeddable-javascript-widget/)
###
### The Case for Software Criticism
Although software is an integral part of our existence in the 21st century, we haven't really adopted a culture of software criticism in the same way that we contemporarily do it for other kinds of technology.
For instance, we have car connoisseurs, and a car is arguably a comparably complex piece of engineering. Sheon Han from WIRED makes the case for software criticism, why it's important and goes into some of the reasons as to why we haven't developed such a culture yet:
[The Case for Software CriticismSoftware may be the defining cultural artifact of our time. So why isn’t there a culture of critical analysis around it?WIREDCondé Nast](https://www.wired.com/story/software-criticism/?ref=gorillasun.de)
Sheon Han points out that software criticism is still relatively young when compared to other fields that have had a much longer timespan to ripen. I do think however that we're at an inflection point, especially with the younger generations being much more tech-literate. For example; I do notice a lot of criticism in the video-game space, where developers are held to an increasingly higher standard with every passing year.
### A Complete Guide To Building a Hand-Wired Keyboard
An to wrap up the Interesting Reads section I wanted to share this - if you've ever wanted to build your own keyboard from scratch, here's the instruction manual:
[A Complete Guide To Building a Hand-Wired KeyboardA complete and easy to follow guide detailing how to select components, design, customize and build a mechanical keyboard.Cracked the Code — Adventures in electronics, tinkering and retro computing.— Written by Ben Chapman](https://www.crackedthecode.co/a-complete-guide-to-building-a-hand-wired-keyboard/?ref=gorillasun.de)
## AI Corner
### One Pixel Attack
Image classification models mainly rely on examining the pixel structure of images to determine what the content of the given image is. While training models on large datasets of images, they will pick up on cues that help them make their decisions and internalize these cues as abstractions in their internal state. For instance specific textures can be indicative of certain entities, like the black and white stripes of a Zebra.
But how robust do these models end up being? Do they actually learn to recognize these patterns in a smart way? What happens if we change the color of a singular pixel in the image? Will the model still be able to correctly classify the image? There's this famous trick called the *one pixel attack*, where we change the color of a single pixel in the image and can this way deceive the classification model. Devansh goes into how this works and how it actually succeeds at deceiving the model:
[Why does changing a pixel break Deep Learning Image Classifiers \[Breakdowns\]Understanding the phenomenon behind adversarial perturbation and why it impacts Machine LearningArtificial Intelligence Made SimpleDevansh](https://artificialintelligencemadesimple.substack.com/p/why-does-changing-a-pixel-break-deep)
### AI Reveals the Most Human Parts of Writing
And another article from WIRED, this time by Katy Ilonka Gero, highlighting how large language models, packaged in the form of chatbots, have been a transformative tool in the hand of writers. Rather than letting the machine take the lead, it becomes a writing assistant that can provide some guidance during difficult passages or when writer's block is especially hard to overcome.
I've also used ChatGPT quite a lot, especially when I want to bounce off some new ideas quickly and see what the machine has to say about them, maybe generating some sentences that spark something. I never end up using what the LLM generates, because it's simply too generic, but sometimes I find interesting bits and pieces that spark ideas and structures for writing sentences in a way that I wouldn't have come up with myself. The article goes into all of this:
[AI Reveals the Most Human Parts of WritingWhen do writers want help finding inspiration? And when do they want full control? Computers could expose the true future of the medium.WIREDCondé Nast](https://www.wired.com/story/artificial-intelligence-writing-art/?ref=gorillasun.de)
###
## Gorilla Articles
This week I published the 3rd installment of the *3 generative artists* series. This one features Shvembldr, Qubibi, and Aleksandra Jovanic, with a focus on the distinct generative voices that they've acquired over the course of their careers. The article tries to lay open the aspects that make their approaches so unique and distinguishable, and hopefully provides some insights into building your own generative identity:
[Style, Voice and Identity in Generative ArtWhat is style? As an artist, what makes you, you? Moreover, how do artists find their own stylistic voice? Especially when it comes to generative art? In this article we have a look at the art of Shvembldr, Qubibi, and Aleksandra JovanićGorilla SunAhmad Moussa](https://www.gorillasun.de/blog/style-in-generative-art/)
As an artist, what makes you, you?
I preface the article with a short discussion about what the term *style* actually means in the arts. Style doesn't solely refer to a collection of perceptible attributes belonging to a piece of art, but rather, it also encompasses the imperceptible, such as the process according to which the art was created, the message that the artist tries to convey, as well as the inspirations that influenced the conception of an artwork.
Generative art is an artform that makes it incredibly difficult to categorize individual pieces, not just because there's a multiplicity of different tools, programming languages and algorithmic techniques, but also because they allow us to express our ideas in such varied ways. From this angle, generative art becomes that much more fascinating.
## Gorilla Sketches
I've had a new idea this week, well not really new, it's been at the back of my mind for a while and I finally found the time to make it real:

It's a strange kind of grid, and it probably doesn't look like much at this point, but there's actually many parts of the code that can be played with and tweaked. It's been a while that I'm this excited about a sketch!
At the same time I also had an interesting conversation with Julian over on TwitterX, around why it's sometimes so difficult to push through the final stretch of a project and it's always easier to get started on something new instead:
[](https://twitter.com/gorillasu/status/1695200819262435627?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/gorillasu/status/1695200819262435627?ref=gorillasun.de)

## Tip of the Week
You can now use Python in excel! That means you that you can use your favorite Python libraries directly in excel for every kind of number crunching that you'd like to do:
[Announcing Python in Excel: Combining the power of Python and the flexibility of Excel.Since its inception, Microsoft Excel has changed how people organize, analyze, and visualize their data, providing a basis for decision-making for the…TECHCOMMUNITY.MICROSOFT.COMMicrosoft Excel](https://techcommunity.microsoft.com/t5/excel-blog/announcing-python-in-excel-combining-the-power-of-python-and-the/ba-p/3893439?ref=gorillasun.de)
## Music for Coding
When I'm coding, writing and working I need to listen to something uplifting and ambient, you know, something that makes me feel like I'm spending a day at the beach with my friends.
That's why I love Tycho's music so much, it has exactly that effect - it teleports me back home. I'm always on the lookout to find artists that exude a similar vibe, and recently I came across the music of Christopher Willits. Signed by the same label he creates lush and dreamy ambient tracks that are perfect to listen to while working on a piece of code:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Style, Voice and Identity in Generative Art
URL: https://www.gorillasun.de/blog/style-in-generative-art/
Last updated: 2023-08-24T12:13:28.000Z
**As an artist, what makes you, *you*?** This is an incredibly tough question to answer - but to find a leverage point, there's this ephemeral thing called *style*. And that darned word can mean so many different things - all at once.
Formally, when referring to a singular artwork, it's the characteristics that allow us to recognize what *kind* of artwork it is, and in other words, allows us to categorize said artwork. Wikipedia, as well as many other sources, borrow Ernst Gombrich's succinct words to define the term. In 1968 the renown art historian wrote:
> In the visual arts, style is "\[...\] any distinctive, and therefore recognizable, way in which an act is performed or an artifact made or ought to be performed and made."
To that end, style isn't just a collection of attributes and/or characterizations associated with a particular piece of art; but it is more than that, it's *a way of doing - a process*. [An excerpt of Gombrich's writing can be found here.](https://monoskop.org/images/1/19/Gombrich%5FErnst%5F1968%5F2009%5FStyle.pdf?ref=gorillasun.de)
Categorization based on perceptible traits helps us construct a meaningful analysis framework for the art styles of past eras. Especially for classical and formal art styles that had to obey a number of set rules. For modern and contemporary art this might be a relatively constricted perspective however. In the age of the machine we have access to so many more tools that allow artists to express themselves in such a multifarious manner, that the lines between categories become increasingly blurry.
When referring to individual contemporary artists, a slightly more descriptive term might be the term "*fingerprint"*. This comprises an artists' technique, their creative approach, the ideas and messages that they try to express, as well as the choice of the perceptible components like color, shape/form, structure and composition.
Seeing that an artistic fingerprint is comprised out of so many different variable components, it is in essence an ever evolving beast that grows and changes shape as new works are completed. It is something that transcends the individual artwork and communicates across an artists' entire body of work.
---
Generative art is one such artform where it is difficult to categorize the individual artworks that have emerged in recent years. There's just to many factors that need to be considered when doing so. Generative systems often yield large, if not infinite, output spaces that comprise a wide variety of different compositions. Simultaneously, we also have the inner workings of these systems, that are often concoctions of different algorithmic methods that work in tandem to produce the final output.
Do we judge the system? Or do we completely ignore it and simply focus on the outputs? Given these two schools of thought, how do we create an analysis framework?
*Luckily, this is not the question that I'm trying to answer today - because I wouldn't know where to start.* A thoughtful piece on this topic is Peter Baumann's article titled Demystifying Generative Art over on LeRandom:
[Demystifying Generative ArtPeter Bauman (Monk Antony) develops a framework for appreciating and analyzing generative art through an investigation of the movement’s locus of artistic intent.Le Random — A Digital Generative Art Institutiontwo articles](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de)
In this article I'd like focus what style means in generative art. Being the 3rd installment of the 3 generative artists series, I'd like to amplify the voices of Shvembldr, Qubibi and Aleksandra Jovanic and showcase the unique generative voices that they have developed over the years.
All of them have been big inspirations to me on my genart journey. Stylistically they cover a lot of ground, and I believe that there's a lot of lessons to be learned by inspecting their careers as artists as well as how they arrived at the art that they're making today.
> "Art is the most intense mode of individualism that the world has known." - Oscar Wilde
## Shvembldr - Be Different, take Risks
The first artist that I want to have a closer look at today is [Shvembldr](https://twitter.com/shvembldr?ref=gorillasun.de). Having produced a large body of work since he discovered generative art for himself in 2018, I'd argue that he's become one of the modern pioneers in the space.

"CONCEPT" by Shvembldr
In an interview with [Marcelo Soria-Rodriguez](https://twitter.com/msoriaro?ref=gorillasun.de), an accomplished generative artist in his own right, Shvembldr makes the following statement after being asked about his artistic influences:
> I have a bit of a strange character - I want very much not to be like anyone else (this does not always work), so I try not to be guided by other artists when I create something, and if I use an idea or a technique, I try to remake it beyond recognition. I often use as references the work of artists who wrote with their hands rather than digital.
The only name that escapes Shvembldr is [Manolo Gamboa Naon](https://www.katevassgalerie.com/manolo-gamboa-naon?ref=gorillasun.de). But like... who isn't inspired my Manolo?
[Slowing down with... ShvembldrA short interview with generative artist Shvembldr.i·illucidMarcelo Soria-Rodriguez](https://www.iillucid.com/slowing-down-with-shvembldr/?ref=gorillasun.de)
Shvembldr's words resonate deeply with me. I've always thought that it's good to have a rebel mindset, and attempt to approach things from a different angle.
A good example for a group of artists that did things differently, are the early pioneers of generative art, like Vera Molnar for instance - I'd like to think of her as one of the early rebels. She was all in on generative art, even though some of her contemporaries looked at her practice with dismay. That didn't stop her however from making the art that she wanted to make:
> I put things on the wall to see them and when people came they would look to the side so as not to get some kind of terrible eye affliction from looking at them. And on the other hand, it made me stronger. - [In conversation with Hans Ulrich Obrist](https://vintage.hu/wp-content/uploads/2019/03/Molnar-Vera-HUO-interview.pdf?ref=gorillasun.de)
At that point in time there was no generative art that could be used as a reference point; it was completely new ground. Her and other pioneers like Frieder Nake and Manfred Mohr invented a completely new type of *visual research* for themselves*.* This led to the influential early geometric compositions that still inspire generative artists many decades later.
If you're familiar with Shvembldr, you've probably heard of his recent struggles - if you have the time read up on his story, and if you have social outlets maybe you can bring some attention to it and support his cause:
[Art is crimeStart selling your art and pay all your taxes, and you will be declared a criminal.Art is crime](https://www.art-is-crime.com/?ref=gorillasun.de)
Shvembldr discovered generative art for himself in 2018 while working on a small Javascript game for work; random positioning of elements led to interesting compositions that were visually pleasing, and could even be used for audio visualization. [His first instagram post is one such experiment.](https://www.instagram.com/p/BtI4VtsnxZw/?ref=gorillasun.de) This is not so different from how I got into generative when I was looking into ways to create visualizations that I could use to supplement my music.
After hicetnunc made it possible to mint interactive NFTs in 2021, Shvembldr discovered a new vehicle for the monetization of his creations. He took the leap and pursued this endeavor full-time. Later he had his first big break with his [Blocks of Art project](https://www.artblocks.io/collections/curated/projects/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/74?ref=gorillasun.de) on the then young ArtBlocks platform, becoming one of the most successful generative artists in the NFT space.
However, his entire existence was flipped upside down on the 10th of February 2022, when the Latvian police arrested and froze all of his assets. Having accrued almost $9M dollars through the sale of his NFTs on various platforms, transferring such a large amount of money to a bank in his home country raised the suspicions of the Latvian authorities. As of writing this article Shvembldr is still under investigation, even though he has carefully collected and publicly shared every possible kind of evidence that shows how he has acquired his funds. Yet, there is still no conclusion to the absurd situation he has been thrown into.
You can see updates on Shvembldr's situation on the same site that I linked above. Shvembldr took a leap of faith with generative art, gave it his all, and in my book, deserves every penny of the money that he made. Who could have predicted this ridiculous outcome? I hope Shvembldr's struggles come to an end sooner rather than later. If you have an outlet or channel through which you can bring attention to this issue, please do so.
To make art means to take risks. To accomplish anything meaningful really, you have to take risks.
> Art is an adventure into an unknown world, which can be explored only by those willing to take risks - Mark Rothko
Taking risks doesn't mean that you have to get shot with a .22 caliber like the performance artist Chris Burden did in 1972 - it means to step outside of your comfort zone, to work with a new medium that might feel clunky, to make something that your audience might not immediately *click* with.
> I'm not sure I want my art to be understood. I want my art to be imaginative and inspiring. I want everyone to interpret it in their own way when they look at it. - [Shvembldr interview with Jeff Davis](https://beta.cent.co/artblocks/+59s9p0?ref=gorillasun.de)
Taking risks means to do things differently. Just like Shvembldr did.
[Risk is an Indispensable Ingredient for Creative GrowthWhy artists need to take chancesMediumChristopher P Jones](https://christopherpjones.medium.com/why-artists-should-take-risks-475486d00eab?ref=gorillasun.de)
Kate Vass the Art Curator, echoes the words of Shvembldr and has similar views on finding inspiration as an artist - in an interview with LeRandom she says:
> I am always interested in new approaches, concepts and art forms. Those things are rarer nowadays, as the internet can kill any creativity. I always advise artists not to look around too much, as it’s known to erase original ideas by simply being influenced by things you look at or see elsewhere.
Each new project, is an opportunity to reinvent yourself. Try to draw inspiration from unusual sources, there's inspiration everywhere, especially when it comes to generative art, don't limit yourself to only studying algorithmic artworks from other generative artists. Push boundaries.
> I want to have my own way. I know it's presumptuous, but that's how I like to proceed - Shvembldr
## Qubibi - Finding inspiration in the Mundane
One artist that draws inspiration from unusual sources, and at the same time makes a kind of generative art that sits in a league of it's own, is [Qubibi](https://twitter.com/qubibien?ref=gorillasun.de).
> I want generative art to be an act of quietly watching over the clashing of rules and chaos.
In recent years, Japanese generative artist **Kazumasa Teshigawara,** operating artistically under the alias of **Qubibi**, has risen to become somewhat of superstar in the generative art space. Long before generative art became as popular as it is today, Qubibi was already experimenting with code as an artistic medium:
> I started creating my work which is a recent style, not because I had a passion for ”generative art” nor because I chose to do ”generative art”. I was just interested in a certain phenomenon, and as I began to create works of art, I came to realize that this is called "generative art". That's all. At that time, generative art was not as popular as it is today.
[‘Have you ever seen a dancing worm?’ qubibi in conversation with Artnome | VerseThe new project is “wiwizn”. I like print samples in printmaking. When you go to an exhibition of print artists, they show various attempts at color for a singlVerse](https://verse.works/journal/have-you-ever-seen-a-dancing-worm-qubibi-artnome?ref=gorillasun.de)
Qubibi pursued the ideas and phenomenons that interested him, not generative art as an art direction per se.
In a Marie Kondo-esque manner, maybe the only real way to find your own unique artistic voice, is to seek out the concepts and aesthetics that bring you joy and give you fulfillment, rather than pursuing more elusive things, i.e. an art movement as a whole. A generative artist is still just an artist, and generative art is still just an artform - maybe generative art isn't your own personal final frontier.
One of those phenomenons that Qubibi particularly enjoyed were Turing-esque patterns that emerged after experimenting with an altered version of a reaction diffusion algorithm. The algorithm has become quite a popular method among generative artists of today becoming a widely adopted technique in genart. He likened them to "Zebra stripes/sea shell patterns" in his interview with verse, and subsequently tried to make these patterns his own.
Qubibi released his first artwork in 2010, titled *Hello World -* a phrase that represents every programmer's first step into the world of code. And as far as I understand, *Hello World* was meant to be a sort of screensaver software that would run indefinitely, endlessly generating morphing organic patterns:
Although Qubibi was quite active in the Japanese scene in following years, his first big break in the western world was 8 years later in the form of his first [solo exhibition at the Museum of Digital Art in Zürich](https://muda.co/qubibi/?ref=gorillasun.de) (which sadly closed in 2020 due to the pandemic) showcasing his works over the years. Qubibi then proceeded to take the Tezos NFT space by storm with his highly acclaimed Mimizu and Wiwizn series.
The Mimizu series is brought to life with an evolved form of the same code that originally powered Qubibi's hello world program. In essence, it is a collection of still frames, each of which captures an individual ephemeral moment of his generator. One of the inspirations for this collection were Japanese curiosity stores that specialize in selling a variety of insects - the warm and earthy textures in Mimizu are in many ways evocative of this, as if each individual artwork represented a strange and rare bug. Mimizu literally translates to 'Earthworm' in English.

Qubibi wrote about some other inspirations that lead to the textures:
[Eight months of MIMIZUI would like to tell you the story of how MIMIZU was born as a way to regroup and begin anewMediumqubibi](https://medium.com/@qubibi/mimizu-december-cfdbf04d6418?ref=gorillasun.de)
Qubibi's Wiwizn series aims to be a symbolic inversion of it's spiritual predecessor Mimizu. Wiwizn draws inspiration from printmaking, where artists often show alternative versions of the artwork that are colored differently:
> When looking at works printed in various colors, the boundaries become blurred and the range of viewpoints widens as the colors change, and the interpretation becomes more than one. It means people who see the work gain the artist's point of view.
Wiwizn is in this manner a literal and symbolical inversion of Mimizu, even the titles are inversions of each other - if you noticed, they're the same word, just flipped upside down.

The narrative that Qubibi spans across his body of work is wonderful in so many ways, visually and symbolically it nourishes me with inspiration. While I find myself drawn in by the warm, almost innocently childish textures of his artworks, there's also some mysterious ingredient that eludes me, that I cannot fully comprehend. It were as if I'm making contact with an alien creature that doesn't obey the laws of our universe.
Qubibi is in a continuous conversation with his Art, giving himself and his practice the freedom to freely evolve. The lesson here might be to allow yourself to draw inspiration from any and every source around you, no matter how far removed it might be from the realm of art. There's beauty in everything. Even in something as simple as an Earthworm.
Just do whatever feels right to you. Finally, in an interview with Kaloh, Qubibi's advice to emerging generative artists:
> **We have no choice but to follow our aesthetic awareness without worrying about surroundings.** We have to create subjectively.
[The Fascinating Story Behind Qubibi – Personal Interview \[2022\]Read my personal interview with Qubibi, also known as Kazumasa Teshigawara, an artist and designer, born in Tokyo.Kaloh’s NewsletterKaloh](https://www.kaloh.xyz/p/the-fascinating-story-behind-qubibi?ref=gorillasun.de)
And here's a couple more interviews with Qubibi that you might enjoy reading:
[An Interview with QubibiThe legendary generative artist shares his vision of a brave new NFT world with Toshiaki TakaseMelissa Wiederrecht](https://www.rightclicksave.com/article/an-interview-with-qubibi?ref=gorillasun.de)
[GatherArt - Gather InfoWho are you? Kazumasa Teshigawara. I started qubibi to continue my work of creating. “MMZ 211 N” by Qubibi You have a very interesting backstory written on your website. What would you …GatherArt](https://gatherart.org/2022/11/qubibi-interview/?ref=gorillasun.de)
## Aleksandra Jovanić - Ask Questions
...and answer them!
Just like Qubibi, [Aleksandra](https://twitter.com/alexis%5Fo%5FO?ref=gorillasun.de) has developed a very unique and recognizable style over the years. Today, she is one of the women that stands at the forefront of generative art.

[Herbarium #988](https://www.fxhash.xyz/gentk/FX0-780706?ref=gorillasun.de)
Drawing inspiration from scientific diagrams and illustrations of the 18th and 19th century, her artworks add a modern touch bringing them to life with subtle animation. She says that she wants 'to wake up the artwork', and I think that's beautiful.
In an interview with Unit London, for her new release titled Breathe she's asked about her process:
> My approach is built on sequences of asking questions, how an idea can be improved or how something can be done, answering /visualising through code, and then asking a new set of questions. I keep doing this until I’m satisfied with the outcomes. In the process of deconstructing or simplifying a problem and coming up with solutions, the first step is to build from the most basic geometries.
[Breathing Life into Generative Art with Aleksandra Jovanic | Unit LondonJoin us in delving deeper into Aleksandra Jovanic’s unique approach to mathematics, geometry and generative code.Unit LondonPhoebe](https://unitlondon.com/2023-04-24/breathing-life-into-generative-art-with-aleksandra-jovanic/?ref=gorillasun.de)
Asking your own questions can be one of the best ways to drive forward a project and develop ideas into more complex things. *What would it look like if I did this?* *What happens when I add this line of code? What happens when I change this number?* Again, this reminds of the early visual research that the genart pioneers did.
Aleksandra's approach isn't an isolated incident however, I see other generative artists follow a similar approach:
> Each time I work on a generative collection, I write down lists of questions to ask myself to help refine my process and act as a kind of 'quality control'. I have quite a few of them now and was thinking of maybe typing them up as an fxtext piece for fellow artists. Thoughts? 🤔 [pic.twitter.com/qbUYnQBwT9](https://t.co/qbUYnQBwT9?ref=gorillasun.de)
>
> — Bruce @ Studio Yorktown (@StudioYorktown) [October 8, 2022](https://twitter.com/StudioYorktown/status/1578644226841006081?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Asking questions can help you narrow down the scope of a project, remove the components that don't work, and incorporate new elements that add something, slowly building out the complexity of the project in a controlled manner.
Just like Aleksandra asks herself questions to develop a piece, she also tries to ask her audience questions. In the [accompanying summary that she wrote after completing her Chromatlas series](http://aleksandrajovanic.com/chromatlas/?ref=gorillasun.de) she elaborates on another inspiration for her works:
> The other important theme and the one I often return to, at the core of Chromatlas is– human psychology. It stems from my fascination and an insatiable curiosity for topics like **apophenia** – the tendency to perceive a connection or meaningful pattern between unrelated or random things or **illusions**
What seems like a collection of grounded scientific diagrams, incorporate forms, symbols, proportions and numbers that are in actuality an act of deception. She lets the viewers draw their own hypothesis as to what the patterns that emerge could mean.
Aleksandra has unarguably taken her generative practice down a unique direction, crafted a very unique generative aesthetic and at the same time built an impressive portfolio. I highly recommend checking out all of her creations if you're looking for inspiration. Maybe you can attempt to create your own generative pseudoscientific diagrams afterwards!
## Concluding Thoughts
Looking back at the artists that I've mentioned, what all of them seem to have in common, is that they found and drew inspiration from places that spoke to them and sparked something inside of them. Inspiration comes in many forms, be it as an Earthworm or a mid-century scientific diagram.
Moreover, pursuing the aesthetics and phenomenons that inspire you can be one way to find your unique generative voice. What's important is that you stay true to yourself and make the things that you enjoy making. Ultimately, making art is about having fun.
---
**And that's it from me this week again, hope this was as fun to read as it was to write, and that you learned something new!**
**If you enjoyed this article, consider sharing it with your followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Newsletter 18
URL: https://www.gorillasun.de/blog/gorilla-recap-18/
Last updated: 2023-12-19T23:11:11.000Z
**Hey everyone 👋 and welcome to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Recap - a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI.**
**Hope you have a good stay!**
---
*First things first - I turned 27 just yesterday! Thank you all for the warm wishes over on TwitterX, you really made my day! I'm incredibly grateful for all the lovely people I've got to interact with through creative coding, generative and the internet!* ❤️ *I'm hoping to make many more internet friendships in the future.*

This was my fourth trip to Tunisia. Luckily it wasn't as hot as last summer 🥵 Now I feel full of energy and excited for what's to come. Got lots of things in the works already!
Second order of business - we're doing some minimal rebranding, the Gorilla Recap is now titled Gorilla Newsletter, as that more accurately encapsulates what it's slowly evolved into over the past weeks.
Although there's still a short segment on my own endeavors every week, the main aim is to capture important happenings from the past week in the genart space, as well as an assortment of interesting reads.
## Genart Updates
### The Power of Processing
On the occasion of Casey Reas' 923 Empty Rooms launching at Bright Moments in Berlin this past week; Alex Estorick from RCS had the chance to interview both Casey Reas and Lauren Lee McCarthy, the creators of Processing and p5js respectively:
[The Power of ProcessingCasey Reas and Lauren Lee McCarthy explore the future of social software with Alex EstorickMelissa Wiederrecht](https://www.rightclicksave.com/article/the-power-of-processing-casey-reas-and-lauren-lee-mccarthy-interview-generative-art?ref=gorillasun.de)
The interview goes into detail on the design implications of p5js and processing, that they're not just tools to make generative visual things, but rather vessels for building a community, and at that, a community that is as inclusive as possible.

Both Processing and p5js were meant to be transformative and disruptive vessels, that sought to be boundary pushing in several ways; by making code, as a creative medium, more accessible to a larger group of people and secondly by redefining what it actually means to be a creative coder. The interview was definitely the highlight of the week for me!
### Dmitri Cherniak's Lightyears
Another thing that caught my attention was the mini-documentary for Dmitri Cherniak's new project caught my attention:
[](https://twitter.com/dmitricherniak/status/1691627163508748455?ref=gorillasun.de)
[Link to Video](https://twitter.com/dmitricherniak/status/1691627163508748455?ref=gorillasun.de)
Earlier this year Dmitri Cherniak made waves, not just in the genart space, but in the entire art world when [Ringers #879, aka The Goose, was auctioned off at Sotheby's for a whopping $6.2M](https://www.sothebys.com/en/articles/dmitri-cherniak-ringers-879-goose-lays-6-2m-golden-egg-at-generative-art-auction?ref=gorillasun.de) \- and he's already back with a new mesmerizing project titled *Light Years*.
[](https://twitter.com/dmitricherniak/status/1693662194360107099?ref=gorillasun.de)
[Link](https://twitter.com/dmitricherniak/status/1693662194360107099?ref=gorillasun.de)
What's special about Light Years, besides the mesmerizing outputs, is that it's inspired by the great László Moholy-Nagy and at the same time backed by his estate. The documentary shows us how Dmitri is allowed direct access to the private archives of Nagy and working closely with Daniel Hug that is currently in charge of the estate. The video is really fascinating - go watch it.
We need more high quality video content like this for generative art!
## Interesting Reads
This week I've come across some really nice articles that I thought were really worth sharing, covering generative art, making it as a writer on the internet and thinking out loud about improving the Twitter Algorithm 👇
### On Sketching by Tyler Hobbs
With Tyler Hobbs you get some of the best pieces of advice on tackling a career as a generative artist. I was delighted to see him publish a new article this week on the topic of sketching and how ideas develop over time:
[On Sketching (and the Life-Cycle of Artistic Ideas) — Tyler HobbsI find that many gardening metaphors apply to artistic creation. For example, harvest season is not a year-round event. First you prepare the soil, then plant the seeds, and then care for the plants as they develop over time. Artistic ideas follow a similar path. They grow best in a rich soil, formeTyler HobbsOn Sketching (and the Life-Cycle of Artistic Ideas)](https://tylerxhobbs.com/essays/2023/on-sketching?ref=gorillasun.de)
I've mentioned this a couple of times throughout various blog posts, but one of my favorite pieces of writing on generative art is Tyler Hobbs essay titled reflections on 5 years of Generative Art. He addresses a many of the hardships that come with it and how to approach it in a manner that allows to preserve some of your sanity. One invaluable piece of advice that he provides in the essay is that new works emerge by putting in the time, and that it's okay to make try out new things even if they ultimately end up as a crumpled paper in the trash bin.
In this new article, he reiterates on the concept of sketching as a practice that doesn't necessarily always need to produce masterpieces. But rather, as a selection process where you weed-out the duds from the ideas that might have potential and later on down the line grow into larger projects. He also says that it's really important to set yourself up for success with an easy to boot up template that lets you save your code and output at the same time - even though I have my own template, it could use some (many) improvements.
I also highly recommend checking out the Tweet where there's a lot of interesting comments, questions and discussions from the community:
[](https://twitter.com/tylerxhobbs/status/1692573719720260082?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/tylerxhobbs/status/1692573719720260082?ref=gorillasun.de)
Here I'd also check out Tyler's other essays that are all wonderful pieces of writing. I'll also pitch my own essays on the topic, which can maybe give you some different perspectives:
[Creative Coding: The New EraCreative coding is a new interdisciplinary art form that bridges the gap between technologists and artists. This article explores what it means to be a code artist, what it means to make art with code, and how we approach this new discipline today.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/creative-coding-the-new-era/)
The longest piece I've written to date - it took a couple of months to organize my ideas for this one.
[The Importance of Sketching with CodeSketches are more than just little artworks that you hack together in your bedroom. They’re ongoing conversations that you have with the yourself and the machine. It’s important to explore them, gain new perspectives and ultimately contribute to something larger than yourself.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-importance-of-sketching-with-code/)
If you feel like a quick and inspirational bite, this one's for you.
### How I make six figures on Substack by Emma Gannon
I don't generally like sharing articles with these kinds of headlines - because this newsletter isn't really about making money, as much as it is about coding and making art. However, as someone that's been doing quite a bit of writing over the past two years, I found Emma Gannon's success story incredibly inspirational.
It's not one of those 'get rich quick' kind of posts - she goes into the nitty gritty of her 14 year long career as a writer on the internet and provides a gigantic list of tips and advice:
[How I make six figures on SubstackIt’s been a surprising/thriving 18 months on here, so here’s some stuff I know.The Hyphen by Emma GannonEmma Gannon](https://thehyphen.substack.com/p/how-i-make-six-figures-on-substack)
For the first point on her list she echoes the words of Bill Gates, back from an article he wrote in 96, stating that **Content is King**. Although the landscape has drastically changed since the early days of the internet, the phrase still rings true up until the present day - content with *substance* is what drives the internet forward, it's essentially an intellectual service that you provide to your audience.
A content creator provides information, knowledge, ideas and entertainment in exchange for their audience's time and money; and it's never been easier to monetize engagement in this current day and age. Gate's original article can be read here:
[“Content is King” — Essay by Bill Gates 1996Ever wondered where the phrase “Content is King” stemmed from?MediumHeath Evans](https://medium.com/@HeathEvans/content-is-king-essay-by-bill-gates-1996-df74552f80d9?ref=gorillasun.de)
Looking at the social media space today, Gates' thinking was in many ways ahead of it's time. Without the intent to glorify the man - reading his words, it seems to me that he had a visionary understanding of the internet. Which explains the success of his endeavors.
Emma Gannon shares many more pieces of invaluable information throughout her article, hence why I highly recommend reading it if you are someone that creates content on the internet.
### Making the Twitter Algorithm better
I can't tell if Elon is delusional, or brilliant.
I can't tell if him being copiously active - in a seemingly haphazard manner - on the platform that he's acquired, is daring and avant-garde, or simply plain out dumb. I believe that if you hold this much power, you should be a bit more careful with the words that you share with the rest of the world.
But maybe, actually something good can spring from this brazen approach to running his business - if he actually follows through on the promises that he's making. Since my last post [The Current State of Social Media](https://www.gorillasun.de/blog/the-current-state-of-social-media/), I've spent many idle moments to think on what Human Friendly Algorithmic Dopamine mechanisms could look like, and even though I'm still very far from having a definitive idea on the subject, I believe that a big step towards that end would be transparency.
I recently came across this tweet from a twitter user I've shared on the newsletter before, when we dove into the factors that have an impact on your tweet rankings. This time they return with suggestions on improving said algorithm:
[](https://twitter.com/NFT%5FGOD/status/1691617711569109011?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/NFT%5FGOD/status/1691617711569109011?ref=gorillasun.de)
I can't vouch that all of the suggestions are actually good ones, but it's good to get the discussion started again.
If you want to learn more and you're curious about how the Twitter algorithm functions - the version that was open sourced earlier this year at least - I've written about it in this article:
[Everything we learned about the Twitter Algorithm so farElon Musk’s decision to open-source the algorithm that powers Twitter after acquiring in October of 2022, is a monumental event in social media history. In this post we’ll dive into everything that we’ve about the inner workings of the code so far.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/everything-we-learned-about-the-twitter-algorithm-so-far/)
## AI Corner
### Scientific Discovery in the Age of Artificial Intelligence
This one's a research paper, but it's a worthwhile read. It details some of the emergent methods how AI tools are being incorporated into scientific research methods - for instance for the purpose of data analysis or automated component design:
> AI systems can enable efficient, intelligent and highly autonomous experimental design and data collection, where AI systems can operate under human supervision to assess, evaluate and act on results.
The article juxtaposes the benefits of these methods with some of their deficiencies:
[Scientific discovery in the age of artificial intelligenceNature - The advances in artificial intelligence over the past decade are examined, with a discussion on how artificial intelligence systems can aid the scientific process and the central issues…Nature](https://www.nature.com/articles/s41586-023-06221-2.epdf?sharing%5Ftoken=VNBCL-B5z7x9yroz7VHXjtRgN0jAjWel9jnR3ZoTv0NZ6DLC7sCSFQ-fnesQT80MG5tIwXOiTkbck2M8kGB2OXNe%5FnMse2r%5F%5FTenJJwQRyiWRVae4mZzA-YquCQg9JAzwBK1UiBZQkjUqHME4HBPT-c4BOt-he7EpCkSUxM%5F2xo%3D&ref=gorillasun.de)
This can have important implications for a variety of fields, making me wonder if in the future a fully autonomous type of AI research can be made feasible. As of now, these methods still require human supervision to be of any use.
### Google's Project IDX
Google announced a new online code editor that runs fully in the cloud. It's aimed specifically for the development of apps. One big draw of the editor is integrated support from AI tools. I have used ChatGPT for debugging purposes and for quickly brainstorming ideas; however I have yet to try tools like google co-pilot:

I signed up for the PaLM2 developer API many weeks ago, but it seems I'm still on the waitlist.
I really want to try out code generation/completion plugins very soon. I think it could be a different creative coding avenue to explore, where it gets easier to break *writer's block* while exploring ideas.
You can sign up for the IDX waitlist here:
[Project IDXProject IDX is an entirely web-based workspace for full-stack application development, complete with the latest generative AI (powered by Codey and PaLM 2), and full-fidelity app previews, powered by cloud emulators.Project IDX](https://idx.dev/?ref=gorillasun.de#introduction)
I don't know how long it takes to get an invite however 🤞
## Tip of the Week
Besides posting awesome works of generative art, Yazid also provides much needed perspective. Genart is already a difficult endeavor in and of itself, having to learn the mechanics of social media while constantly marketing yourself in some manner just makes things so much harder.
One reply to his Tweet that stood out was by Rik Oostenbroek:
[](https://twitter.com/Yazid/status/1691621554957017134?ref=gorillasun.de)
[Link to Tweet and it's replies](https://twitter.com/Yazid/status/1691621554957017134?ref=gorillasun.de)
Do not let your emotional well-being be affected by meaningless algorithmic metrics. These things are at best random. I have definitely experienced self-doubt from not receiving the reaction that I was expecting on work that I poured my heart into. Ultimately your work speaks for itself.
Sit down and have fun. That's all there is to it.
---
## Music for Coding
You might know Jake Bowen as one Periphery's guitarists. When he's not shredding the guitar he also makes electronic music. His album Isometric was one of the first instrumental electronic pieces that I fell in love with, and it just resonates with me so much more all these years down the line:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Recap 17
URL: https://www.gorillasun.de/blog/gorilla-recap-17/
Last updated: 2023-12-19T23:11:17.000Z
**Hey everyone 👋 and welcome to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride!**
**This is the weekly Gorilla Recap - a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI.**
**Hope you have a good stay!**
---
## Genart Updates
### Fxhash $5M Seed Raise
The biggest news this week is from FxHash - closing a $5 million seed raise!
[](https://twitter.com/fx%5Fhash%5F/status/1688927210059763713?ref=gorillasun.de)
[Link to Tweet](https://twitter.com/fx%5Fhash%5F/status/1688927210059763713?ref=gorillasun.de)
FxHash has most certainly been an instrumental vessel in democratizing generative art, not only by providing generative artists with a platform to monetize their endeavors, as well as drawing the attention of the public eye, but also by building a respectful and friendly community where artists can grow together. FxHash has unarguably cemented it's place as a part of genart history - and I'm excited for the future of the platform. Big congrats!
Here's also some words straight from Cosimo over on the FxHash discord:

Kaloh also recently started a fantastic podcast keeping us all up to date on genart and web3 things - the most recent episode features Ciphrd himself, sharing his thoughts about the current state of the platform and it's future in light of this seed raise:
[Raising $5M for fxhash 2.0 and future plans ft. CiphrdListen now | Kaloh’s Podcast | Ciphrd, aka Baptiste Crespy, is a generative artist and the founder of fxhash, an open generative art platform on the Tezos blockchain.Kaloh’s NewsletterKaloh](https://www.kaloh.xyz/p/raising-5m-for-fxhash-feat-ciphrd?ref=gorillasun.de#details)
### Kate Vass on Rethinking Art Collecting
We get another stellar article from LeRandom, this time authored by LeRandom's lead that goes under the alias of [*thefunnyguys*](https://twitter.com/thefunnyguysNFT?ref=gorillasun.de), a conversation with Kate Vass. Kate Vass launched her Galerie in 2017; located in the heart of Zürich, it now features pieces from the current leading names in the genart and blockchain space.
She states that showcasing contemporary work is important, as it is essentially a looking glass into the complexities of our everyday existence. She recounts the initial inspirations for launching her gallery, some of the challenges of exhibiting modern artforms, and also gives insight into the behind-the-scenes of some of the works that have been featured:
[Kate Vass on Rethinking Art CollectingKate Vass, founder of Kate Vass Galerie in Zürich, visits with thefunnyguys in an effort to uncover her motivations and vision for this space.Le Random — A Digital Generative Art Institutionthefunnyguysthefunnyguys is in charge of the overall direction of Le Random and spearheads its acquisitions.](https://www.lerandom.art/editorial/kate-vass-on-rethinking-art-collecting?ref=gorillasun.de)
Kate Vass also has some insightful words for aspiring artists:
> I am always interested in new approaches, concepts and art forms. Those things are rarer nowadays, as the internet can kill any creativity. I always advise artists not to look around too much, as it’s known to erase original ideas by simply being influenced by things you look at or see elsewhere.
To an extent I agree with this - I've experienced this myself, sometimes I don't pursue new ideas because I feel that they are too similar to something that I've already seen. But maybe these ideas should be pursued nonetheless, with your own personal touch they might just transform into something original. If not, you can always move on.
And if the interview hasn't quenched your thirst for art history, you can continue reading this piece that recollects 10 of the most influential moments that have shaped Generative Art as we know it today:
[10 Moments from Generative Art Timeline Chapter 2: The Modern Era 1850-1949 by le random. — Kate Vass Galerie10 Moments from Generative Art Timeline Chapter 2: The Modern Era 1850-1949 by Le Random https://timeline.lerandom.art/#/chapter-2Kate Vass GalerieKate Vass](https://www.katevassgalerie.com/blog/lerandom?ref=gorillasun.de)
The creators of LeRandom were also joined by Kate Vass in a live Twitter space to discuss these 10 moments - [you can find a recording of the space here](https://twitter.com/i/spaces/1OyJAVVzbAzxb?s=20&ref=gorillasun.de).
### Hyundai ArtLab
My fellow generative artist, the prolific [Aleksandra Jovanić](https://twitter.com/alexis%5Fo%5FO?ref=gorillasun.de), joins forces with [Ivana Dama](https://www.ivanadama.com/home?ref=gorillasun.de) to create an exclusive artwork for the Hyundai Artlab:

The Hyundai Artlab's mission is to bring together artists and audiences from various fields that lie at the intersection of art and technology; and this by featuring artworks that explore this modern intersectional practice. Previous artists on their roster include Katja Novitskova, Sougwen Chung, and Zach Lieberman.
This time around, instead of commissioning a single artist, they brought together two artists from different areas of expertise to collaborate on an artwork. The article explains the involvement of both parties, and how the two of them created Data Waves - an experiment that merges aspects of data science and generative art:
[Generating Ecosystems: Code, Language, and SoundTwo artists merged their respective practices to interpret the decentralized, ever-evolving spirit of the Artlab ecosystem. Their process was quite literal.Hyundai ArtlabAleksandra Jovanić & Ivana Dama](https://artlab.hyundai.com/editorial/generating-ecosystems-code-language-and-sound?ref=gorillasun.de)
It's a very interesting read - Aleksandra and Ivana also share some insights into their creative pratice that I found very inspiring.
## Interesting Reads
Here's some interesting reads for the tech and algo nerds 👇
### Getting Creative with Embeddings
Amelia Wattenberger is back at it again with her creative writing tool, in which she explores text analysis in a novel manner.
Rhythm is an aspect of writing that I don't see often utilized outside of poetry and prose, but it has a profound effect on the readability of your text. Even in technical writing - I find that a lot of it tends to be incredibly dry, by virtue of the subject matter. But it doesn't have to be, and it shouldn't.
In her article she details the motivation for her tool, explains how it can help you become a better writer by exploring text, and details some of the technical aspects under the hood where she harnesses the power of AI in a really cool way AI:
[Getting creative with embeddingsAmelia Wattenberger’s personal websiteAmelia Wattenberger](https://wattenberger.com/thoughts/yay-embeddings-math?ref=gorillasun.de)
[You can try the app for yourself here.](https://sentence-length.netlify.app/?ref=gorillasun.de)
### The game of set
In this video Catherine Hsu, assistant professor at Swarthmore College, shows us the game of Set - a deceivingly simple looking game that poses many mathematical questions.
Set is a game about pattern matching: players try to identify sets of 3 cards, such that this set fulfills several different criteria. And this as a game of speed, where sets need to be identified by the players as quickly as possible.
This already brings up many questions, for instance how many cards need to be revealed until we can guarantee the occurrence of a set? Catherine goes into detail on all the mathematical intricacies of the game in the Numberphile video:
### Insights into Stack Overflow’s traffic
Apparently there's been some misinformation floating around about StackOverflow's traffic dropping by 50% compared to last year - here's a post directly from the source, stating that this is in fact not accurate:
[Insights into Stack Overflow’s trafficWe’re setting the record straight.Stack Overflow BlogDes Darilek](https://stackoverflow.blog/2023/08/08/insights-into-stack-overflows-traffic/?ref=gorillasun.de)
There has been a drop in traffic, but only by a 5% due to various factors. It does however make me wonder if people are using StackOverflow less with powerful LLMs and language models on the rise:
> The surge in generative AI, like the rise of any other disruptive technology, should cause us to reflect, challenge, and question how we measure success. The future of the internet and the modern tech landscape isn’t going to be measured by web traffic alone—it’s about the quality of content, trust in the content, and the communities of experts and human beings curating the content.
I've used ChatGPT and Bard occasionally for debugging purposes, or when I want a quick answer on a specific topic that would most likely take me some time to sift through links, but it really isn't a substitute to domain experts that can provide tailored feedback.
### The case of the extra 40 ms
A Netflix engineer recounts the story behind an unusual bug that only occurred on a specific device - along the way we get a behind-the-scenes (pun intended) into the pipeline that powers Netflix in the background. John Blair walks us through how he tracked down and ultimately identified the root cause of the bug:
[Life of a Netflix Partner Engineer — The case of extra 40 msBy: John Blair, Netflix Partner EngineeringNetflix TechBlogNetflix Technology Blog](https://medium.com/netflix-techblog/life-of-a-netflix-partner-engineer-the-case-of-extra-40-ms-b4c2dd278513?ref=gorillasun.de)
## Gorilla Articles - The current state of Social Media
In recent years social media has become an instrumental tool for me to share my own creations with the rest of the world. I thought that I was slowly getting a hang of things: posting relatively regularly, playing into what the algorithm likes, and generally becoming more comfortable with the social platforms that I'd been active on.
Slowly but surely my *world* view has changed though - social media has *changed*. It's been on my mind a lot, consequentially motivating this think-piece on the issue:
[The Current State of Social MediaSocial media has changed significantly over the past two decades: from networks that aimed to connect people, to content-centric devices that mainly care about engagement and user retention. Many issues arise that are not immediately evident to the user.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/the-current-state-of-social-media/)
Social media platforms have turned into dopamine machines that try to maximize engagement by whatever means work best for this purpose - engagement formulas I like to call them. The human connection aspect isn't in the foreground anymore. I tackle this issue in the article. There's a lot of nuance to this which makes it quite a difficult topic to write about, but I believe it turned out pretty good. Ciphrd left me an interesting comment, an observation that I hadn't fully thought about:

Which makes me wonder if the future has space for human-friendly dopamine strategies that can make social media fun and engaging, while at the same time refraining from being exploitative and manipulative. But maybe these two criteria are not entirely compatible, and human-friendly algorithms are merely wishful thinking. I'll think about it more and get back to you in form of another article.
I leave you with this interesting article I found after researching the issue some more:
[Dopamine, Smartphones & You: A battle for your time - Science in the Newsby Trevor Haynes figures by Rebecca Clements “I feel tremendous guilt,” admitted Chamath Palihapitiya, former Vice President of User Growth at Facebook, to an audience of Stanford students. He was responding to a question about his involvement in exploiting consumer behavior. “The short-term, dopami…Science in the Newsadmin](https://sitn.hms.harvard.edu/flash/2018/dopamine-smartphones-battle-time/?ref=gorillasun.de)
Let's see how the social media landscape develops in the coming years. If you have any thoughts on the issue don't hesitate to leave a comment or shoot me a DM over on the former birdsite.
## Gorilla Sketches
Only a little sketching this week - continued working on this sketch from previous weeks. The main change here is that there's two types of arc shapes now: a first type that act as *obstacles*, they can't be intersected by subsequent arcs that are place, and a second type of arcs that can overlap.
This creates a nice interplay of shapes imo, but there's still work to be done on the positioning strategy, to be able to create a variety of different layouts:


I also continued working on my particle system with Verlet integration. In the previous article we went deep into how Verlet integration works, but we didn't actually do much with it. For instance, we didn't really talk about how we compute boundary collisions, resolve particle-particle collisions, or handle mouse interaction.
These turned out to be quite tricky to get *right,* hence I'm gonna need a little bit more time before the article on those ideas is ready. But here's a little sneak peek:
0:00
/0:22
1×
I also had a new idea for generating pattern sequences that I still need to explore a bit, but I believe that there's something there that has potential:


Doesn't look like much just yet, but I've got some vague ideas floating in my brain already.
I'm hoping to do more sketching this week!
### Tip of the Week - Branchless Programming
Not a new video per se, but the Youtube recommendation algorithm did it's thing and now it's found a spot in this newsletter - I've never thought about it, but sometimes there's ways to structure and rewrite your code such that you avoid unecessary if/else statements, that can introduce a computational overhead. Especially when run inside of a for loop:
Overall, when it comes to interpreted languages there isn't much to be gained from eliminating certain branches in your code. But for low-level languages you can actually squeeze out some more performance in certain scenarios - here's an additional cool article on the topic:
[Branchless programming. Does it really matter?Branchless programming is a programming technique that eliminates the branches (if, switch, and other…DEV CommunityJobin Johnson](https://dev.to/jobinrjohnson/branchless-programming-does-it-really-matter-20j4?ref=gorillasun.de)
## Music for Coding
And to wrap up this week's newsletter, some music to listen to while coding. This time I wanted to feature one of my favorite indie Japanese artists that goes under the alias of [*In the blue shirt* \- Ryo Arimura-san](https://twitter.com/Arimuri?ref=gorillasun.de) creates wonderfully upbeat, sample based tracks that instantly put me in a good mood. It's a wonderful unique, bubbly and happy vibe that I haven't felt with anything else really:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**

## Sign up for Gorilla News
Newsletter every Monday, tutorials every Thursday and the occasional Sunday essay! Directly in your inbox!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
### The Current State of Social Media
URL: https://www.gorillasun.de/blog/the-current-state-of-social-media/
Last updated: 2023-08-08T15:11:32.000Z
**Social media is changing in a fundamental way.** This sentiment of mine isn't solely sparked by the metamorphosis that ~~Twitter~~ X is currently undergoing - but it's something that I've become more and more aware of in recent years. It's an uneasy feeling really, when a big part of your current livelihood depends on platforms that are seemingly more and more fragile every passing day.
Social media platforms have lost a quintessential characteristic that defined them in the past - social media isn't social anymore. Previously labeled as social *networks*, the goal of *connecting people* has largely been abandoned, especially by the platforms that have established rather large user bases over the past two decades. Today platforms that are entirely dedicated to this purpose are an exception. Discord for instance. Networking, virtually socializing as well as making new connections; all of those initial promises have long been forgotten.
There has been a massive paradigm shift.
Social media platforms cease to be communication-centric devices, that provide individuals with the tools to connect and communicate, but rather, vessels for constant and uninterrupted content distribution. You still have to connect with other users on these platforms for you to consume content, but *becoming connected* has largely become a secondary aspect, and not the primary purpose.
Ian Bogost's thought provoking article [*The Age of Social Media Is Ending*](https://www.theatlantic.com/technology/archive/2022/11/twitter-facebook-social-media-decline/672074/?ref=gorillasun.de)on the Atlantic, illustrates it as follows:
> \[...\] connection as a primary purpose has declined. Think of the change like this: In the social-networking era, the connections were essential, driving both content creation and consumption. But the social-media era seeks the thinnest, most soluble connections possible, just enough to allow the content to flow.
It's hard to pin-point, exactly *what* platforms have transformed into over the years, and equivalently, what they're trying to become in the future - because they do so many different things. It's unclear what the primary purpose of many of them has become at this point. Look at Twitter for example, under it's new *management* it's unambiguously trying to become an everything app. A super app that lets you do... well, everything. Post your opinions, trade stocks, and at the same time order yourself some food, why not?
To be fair, Twitter is probably not the best example these days. However, one reason that allows platforms to get away with such drastic transformations is by virtue of having amassed such ridiculously large user bases, that are in many ways dependent on those platforms.
When your livelihood depends on such a platform, you're most likely not going to pull the plug just because of some annoying new feature. You'll adapt somehow and weather the tides. One example thereof is Instagram, ceasing to be an image-centric platform, when the short-form video format became increasingly popular, after some initial backlash people simply gave in.
I believe that the growing ambiguity around the nature of social media platforms can largely be attributed to the mechanisms that constitute their inner workings. Being primarily focused on the generation and maximization of revenue, by whatever means necessary, some truly predatory and manipulative algorithmic strategies have taken shape over the past two decades, and all of that under the guise of being a service for the user.
It's unclear how things will develop in coming years, what new *trends* will emerge and how the major players in the field will adapt these new strategies. But to me it's clear - these issues need to be addressed more, need to be talked about more, and a conscious effort needs to be done against them.
This is a loaded topic, but let's try to address one thing at a time.
## The Identity Crisis of Social Media Platforms
TikTok cracked the code when it comes to engagement - the simple concept of an endlessly scrolling video feed taps into something primal in our psyche, by design, it intermittently, but continuously, triggers the reward system in our brain, rewarding every upward swipe with another video. Just like you would train a pet with treats and positive reinforcement when they did a trick.
The concept is simple, but it works. Other platforms quickly scrambled to replicate this micro-entertainment scheme, as if it were the Krabby Patty formula for user engagement and retention.
After TikTok rose to an insane level of popularity, we observed most other major platforms implementing some sort of endlessly scrolling video feed. *If you can't beat'em, join'em.* I challenge you to show me a platform that serves video content, and doesn't implement an endlessly scrolling feed. Youtube added shorts. Former Twitter loads an endlessly scrolling feed of videos whenever you watch a video on mobile, so does Facebook, and even Reddit. Probably many more that I'm missing here.
I remember a time when it was actually quite difficult to post video content on Instagram. This has drastically changed though, when the platform changed it's entire identity to revolve around short-form video with it's reels feature. There was a big backlash at the time:
[‘Stop trying to be TikTok’: Why users hate the new InstagramInstagram is refocusing its content towards videos trying to chase TikTok’s success - but users think it’s a betrayal of what the app used to be.EuronewsGiulia Carbonaro](https://www.euronews.com/next/2022/07/26/stop-trying-to-be-tiktok-how-instagrams-copycat-strategy-has-backfired-with-loyal-users?ref=gorillasun.de)
But it's important to see the issue from Instagram's perspective and play the devil's advocate for once - would the platform have been able to survive if it didn't implement this trendy new engagement formula?
*Betray* is a strong word - sure, you make a portion of the user base unhappy by changing how your platform works; but at the same time you're staying on top of the competition, preventing users from leaving to another platform that has this particular feature and at the same time attract new users that want that feature. Instagram continued to grow by half a billion users since 2020 after implementing reels.
[Head of Instagram says Instagram is no longer a photo sharing appIt’s leaning into algorithms, video, and entertainment.The VergeMitchell Clark/cdn.vox-cdn.com/uploads/chorus_asset/file/21698434/Reels_IOSX_3.png)](https://www.theverge.com/2021/6/30/22557942/instagram-no-longer-photo-app-video-entertainment-focus?ref=gorillasun.de)
Similarly, in 2022 Facebook's main feed has been revamped to look and feel more like TikTok, with the aim to appeal more to younger audiences. As mentioned, this isn't an isolated incident, and I believe that we'll see this happening more often in the future, where platforms undergo complete overhauls to adapt and implement the newest, most engaging formulas.
Rather than having an Eco-system of apps that have a distinct, definite and clear-cut purpose, it'll feel much more like a soup of different things. And it already feels like that to me.
In other news, we still have Meta trying to be somehow innovative with it's gimmicky Metaverse. But that hasn't been working out so well. At this point in time, it's not certain if the concept will actually ever come to fruition, since there doesn't seem to be much interest in the concept:
[The metaverse: Not dead yetTwo years ago, the metaverse was hyped as the Next Big Thing in tech. Nowadays, Generative AI has grabbed all the headlines. But don’t count out the concept of interconnected virtual worlds just yet.ComputerworldMatthew Finnegan](https://www.computerworld.com/article/3697812/metaverse-not-dead-yet.html?ref=gorillasun.de)
This raises question: why is engagement so important to these platforms? Why do they go to such lengths to adapt the formulas that retain users the best, even going as far as to completely change their identity?
## The Masses as the Product
To understand why connecting users is no longer a priority to so many of the major platforms, one has to understand how these massive open broadcast channels are monetized and generate revenue.
Rather than the user simply being a user, ***the user is now also the product***. Engagement is what fuels these platforms, it's the lifeblood that keeps them alive. While these platforms give you the chance of reaching millions of people at any given instant, at the same time, your existence on the platform is being sold to advertisers and offered to other users.
The main way that social media platforms generate revenue is directly via advertisers paying to have their content displayed to users of the platform:

Revenue of major social media platforms in 2021
The more time you spend on the platform, the more ads you will see, the more likely it'll be that you click on an ad and maybe even make a purchase thereafter. That's why it's so important to keep you scrolling, and keep you consuming content for as long as possible.
This is not the only way that you generate revenue for these companies though. Not just by looking at the ads, but also simply by existing on these platforms: the way that you interact with the platform, the accounts that you follow, the content that you like and bookmark, the posts that you engage with - all of that information is tracked and provides insights into what kind of person you are, as well as the things that you might be interested in, which in turn can provide important indications on what products or services you are most likely to purchase.
All of this information can then be sold as targeted advertisement to third party companies that are looking to advertise their products:
[How Facebook (Meta), X Corp (Twitter), Social Media Make Money From YouIf you’re not paying for the product, the product is you. That’s a truism that’s especially suited for social media and its foundation for generating revenue.InvestopediaFull Bio:max_bytes(150000):strip_icc()/GettyImages-1256442767-c11cffce58b34647a539eae6da7b1300.jpg)](https://www.investopedia.com/stock-analysis/032114/how-facebook-twitter-social-media-make-money-you-twtr-lnkd-fb-goog.aspx?ref=gorillasun.de)
A different form of monetization that has become popular in recent years, are premium subscriptions to the platform, that unlock certain perks and additional benefits for the paying users.
For instance, one perk that Twitter blue subscribers obtain is an algorithmic boost to their tweets, which prioritizes tweets made by premium users in search and rankings - disregarding for a moment that this is a morally and ethically questionable monetization practice, it plays out to the same principle of monetizing the user-base, for the user-base.
In the future, premium Twitter users also get the chance to earn money from ad impressions that may appear underneath their tweets. That's yet another way to attract more people: the platform as a means to earn money. This one could actually be a good change - if it weren't for the fact that you had to pay to play. You need to be a premium subscribed to obtain your payout, otherwise it's held hostage.
And a slight variation on the previous monetization strategy: giving users the ability to sell subscriptions to other users, in exchange for access to premium content. This isn't an entirely new concept. Initially Twitter stated that they would not take a cut from these subscription fees, but that will probably change later on. This is also happening on Instagram, and a couple of other platforms.
Teach a man to fish, and he will feed you a lifetime... Wait, that's not how the saying goes, or does it?
Where does that leave the user though? When the platform revolves more around generating revenue, in whatever way it can, rather than being true to it's original purpose, then it takes away a lot from the user experience. All of these features are not in service of the user, maybe they are advertised as such, but they merely exist because they have the potential to generate revenue for the platform. And ultimately this has a detrimental effect on the platform as a whole.
That's why I believe that these things need to be well thought-through before they're added in as features.
[Social media prioritizes profit over peopleLike any other student, a part of my daily routine is checking my phone constantly, whether it’s to text someone or see an update on one of my favorite sports teams. However, I find that of everything that I use on my phone, social media takes up the majority of the time. From TikTok to \[…\]The Michigan DailyTom Muha](https://www.michigandaily.com/opinion/social-media-prioritizes-profit-over-people/?ref=gorillasun.de)
In some ways I find this similar to developments that are unfolding in the video-game space, where predatory monetization tactics have in many ways completely altered the identity of certain franchises that were previously beloved for their game play and their story in equal parts.
One major example is the Diablo franchise, the first and second installments being some of the most popular games in the early 2000s... and well, it's not been going too well with the most recent one.

When a large part of the product becomes centered around the monetization aspect of things, this has a drastic effect on the rest of the product:


**Where am I trying to go with this?**
In video games, a product that primarily revolves around immersion, story-telling, game-play, and consequentially *the user having fun*; the adverse effects of monetization strategies can quickly become apparent as they are detrimental to the overall experience.
When it comes to social media platforms, these things aren't as clear, the lines become more blurry, as to what is acceptable and tolerable. However there still is a perceived effect: the identity of the platform changes. The nature of the content that is shared on the platform changes and as well as the way that users interact with the platform.

I swear, I wrote this Diablo analogy before I saw the tweet 😂
## Content Creation: A Game of Psychological Warfare
*The direct consequence of engagement formulas, as well as the monetization of engagement is a change in the type of content that is incentivized.* Who would've thought, but I'm actually going to use Youtube as a positive example in this case. One of Youtube's algorithmic metrics to gauge the quality of a video is watch-time:
> Watch time is the total amount of minutes viewers have spent watching your videos. It's a key metric because **YouTube elevates videos and channels with higher watch times in their search results and recommendations section** \- [Hubspot Blog](https://blog.hubspot.com/marketing/youtube-analytics?ref=gorillasun.de)
The outcome of this, is that interesting videos can exist on the platform. There's still a lot of trash in the mix, but at the very least thought provoking content has a fighting chance among the 500 hours of video content that is uploaded every minute to the platform, and can survive in the long run. As a side-note, I actually think that the Youtube recommendation algorithm is really good.
A metric that indirectly encourages interesting content makes it possible for creators in all sorts of different niches to exist. For instance, two of my favorite channels are [3blue1brown](https://www.youtube.com/@3blue1brown?ref=gorillasun.de) and [Numberphile](https://www.youtube.com/@numberphile?ref=gorillasun.de). I also occasionally enjoy a 40 minute long lore video on some obscure video game. It's true that Youtube ultimately still has many other problems, but at least there's one metric that has the potential to promote meaningful content and the organic growth thereof*.*
When the only metric that matters is engagement, creators are incentivized to lean into cheaper tactics, and play into content strategies that maximize that metric. In most cases this manifests itself in the form of the exploitation of one or more cognitive bias of the human brain. Some individuals more susceptible to it than others, it is all with the aim to inflate the numbers that signal the algorithms whether a piece of content is engaging or not.
The reality of today is that algorithmic metrics dictate the value of content. The metrics are more important that the essence of the content.
[The Evolution of Social Media MetricsA brief history of social measurement As social media strategies and methodologies have evolved, we’ve seen a similar evolution in how brands and agencies develop their social measurement frameworks. In the first few years, a lot of the focus was around ‘Fans’ and ‘Fan growth’ reflecting the ’gold rJames Lubbock](https://www.linkedin.com/pulse/evolution-social-media-metrics-james-lubbock?ref=gorillasun.de)
A piece of content doesn't survive by virtue of what it is, but rather, by means of playing into the metrics that will artificially amplify it and keep it alive. This is why emotional content does so well for example, especially when it's controversial or even toxic, it will incite people to engage somehow, be it to fight the subject matter or ridicule it. The algorithm doesn't know, nor does it care, if this interaction healthy or not - it only cares that some form of interaction is taking place.
Naturally that's just the tip of the iceberg. The root of the problem is that over the course of the past two decades, companies have crafted these hyper efficient and addictive engagement machines that directly play into the human psyche, without actually understanding the repercussions that these methods might have in the future.
[The surgeon general’s wake-up call for social networksWe have enough data to make good recommendations for platforms, lawmakers, parents and children.The Verge/cdn.vox-cdn.com/uploads/chorus_asset/file/23951344/STK040_VRG_Illo_N_Barclay_4_facebook.jpg)](https://www.theverge.com/2023/5/24/23735741/surgeon-general-social-network-mental-health-report?ref=gorillasun.de)
## Concluding Thoughts
There's been the tiniest amount of progress in the form of congress hearings and law makers starting to become aware of the impact of social media. But at the same time it's sad how far behind we are in the regulation of these things. While lawmakers are grappling with whether or not an app 'accesses devices on the home WIFI' the real danger lies many layers of of abstraction deep.
Here's some ideas to make things better in the future:
- **Algorithmic Regulations:** in many ways it's the wild-west out there when it comes to the algorithms that power the mainstream social media platforms of today. There's laws and regulations for literally everything else in the world, but when it comes to these matters, that are arguably shaping the future generations of humanity, there's a big and gaping void. We need people in charge that have an understanding of the current issues, the implications and effects of predatory metrics, and that can put in place meaningful directives on how these algorithms are allowed to operate.
- **Downscale and Transparency**: maybe super apps are the future, but at this point why do we need an app that does everything, when there's a beautiful and varied eco-system where everyone can choose the service that they like? Social media platforms need to be more transparent on what they're trying to achieve and held accountable. Similarly social media platforms are becoming too large for their own good, for instance, more than half of the world's population is on Facebook. I believe that downscaling could solve a lot of the problems, I'm not certain if that will eventually happen however. There's another great article on this by Ian Bogost on this topic:
[People Aren’t Meant to Talk This MuchBreaking up social-media companies is one way to fix them. Shutting their users up is a better one.The AtlanticIan Bogost](https://www.theatlantic.com/technology/archive/2021/10/fix-facebook-making-it-more-like-google/620456/?ref=gorillasun.de)
- **Awareness and Transparency:** Stop being the product. Switch to a service that doesn't try to manipulate you, or at the very least be aware of how you are being exploited. And stop falling for the tricks. If you have friends and family members, younger siblings and kids that maybe aren't as tech savvy as you, make an effort to have a conversation with them. Things that might be evident to you, might've never crossed their mind.
---
Social Media has become an indispensible part of my existence on the internet, most of the people that find themselves on this very blog, do so by following a link that I might've shared over on Twitter.
Maybe even you, find yourself here through a link that I've posted over on the birdsite.
The words that I write only become alive in the mind of the reader. Otherwise it’s just a bunch of dead bytes floating around on some distant server. The letters that I'm typing into the editor right now only hold meaning when they're read - this blog only lives through it's readership. My mission is to inspire, document my journey, share my learnings and findings, and have my ideas proliferate in some manner on the internet. And social media platforms have been instrumental in achieving these goals - for that I am immensely grateful.
What do you think about these issues? Is social media changing for the worse or the better? What will social media look like in 5 years? In 10 years?
---
**As always, I hope you've enjoyed this post, I definitely had a lot of fun writing it!**
**If you did, consider sharing it on your socials, or signing up to the newsletter to get updates whenever new content is posted on the blog. It helps a lot! Otherwise, cheers \~ Gorilla Sun 🌸**

## Sign up for Gorilla News
### Newsletter every Monday, tutorials every Thursday and the occasional Sunday essay! Directly in your inbox!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
### Gorilla Recap 16
URL: https://www.gorillasun.de/blog/gorilla-recap-16/
Last updated: 2023-12-19T23:11:23.000Z
**Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I go over everything that I found noteworthy from the past week in tech, generative art, creative coding and AI. Hope you have a good stay!**
---
## Genart Updates
### Teztalks with Re—tain
[Re—tain](https://re-tain.xyz/?ref=gorillasun.de) is gearing up to be the next big thing on Tezos - and will arguably become a valuable part of the generative art ecosystem on Tezos. Co-founder [Piero](https://twitter.com/pifragile?ref=gorillasun.de), that you might already know as the creator of [EditArt](https://www.editart.xyz/?ref=gorillasun.de), talks us through all of the important points in this TezTalk:
What I found really exciting is that Re—tain doesn't aim to be a platform with a million features, but rather, a genart-centric platform that streamlines the minting experience for artists, while at the same time addressing some of the pain points that generative artists run into when publishing new projects.
What I'm most intrigued by at this point, is what the minting experience will be like. Apparently it will be different than what we've seen from FxParams and EditArt: the collector will still be involved in shaping the final mint, but as far as I understand it, not directly via inputting values or adjusting sliders. Overall, I'm very excited to see what they've got in store for us.
If you want to learn more about Piero, as well as EditArt, here's a little interview I did with him a while ago:
[All Eyes on EditART - Interview with PieroIn this post we have a look at EditART, a hip new platform on the Tezos blockchain that revolves around customisable generate NFTs. We also ask it’s creator, Piero, a couple of questions to wrap it up.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/editart-marketplace-interview-piero/)
### Alba Stranger Skies Group Show
Alba is back with yet another stellar group show: Stranger Skies! Kicking off the same day that this newsletter lands in your inbox:

Excited to see some of my fellow generative artists participating:

Alba is slowly but surely accumulating an impressive roster of projects and artists - you might want to launch your own project once the curated shows come to an end and the platform goes live for the public.
### Per Kristian Stoveland
Had to share this one, considering that the trailer is so beautiful - [Per Kristian Stoveland, aka Perkwerk](https://twitter.com/perkwerk%5F?ref=gorillasun.de), generative artist and that you might know as the creator of *The Harvest* is teaming with [Rik Oostenbroek](https://twitter.com/RikOostenbroek?ref=gorillasun.de), and [Erick Calderon](https://twitter.com/ArtOnBlockchain?ref=gorillasun.de), the creator of [Artblocks](https://twitter.com/brtmoments/status/1687208855275720707?ref=gorillasun.de), for a new generative art series in collaboration with Red Bull Racing:
0:00
/0:30
1×
[The Velocity Series](https://twitter.com/perkwerk%5F?ref=gorillasun.de)
### 923 Empty Rooms
And since we already mentioned [Artblocks](https://twitter.com/brtmoments/status/1687208855275720707?ref=gorillasun.de), here's [Casey Reas](https://twitter.com/brtmoments/status/1687208855275720707?ref=gorillasun.de) newest project, a collaboration between [Bright Moments](https://twitter.com/brtmoments/status/1687208855275720707?ref=gorillasun.de) and [Artblocks](https://twitter.com/brtmoments/status/1687208855275720707?ref=gorillasun.de). As the title of the project suggests, there will 923 mints representing the different combinations that the colorforms below can be combined into:

I'm curious to see what the final mints will end up looking like when they get released!
0:00
/0:43
1×
---
## Interesting Reads
### The resonance of Generative Art - Interview with Zach Lieberman
Another excellent article from [Peter Bauman](https://twitter.com/MonkAntony%5Ftez?ref=gorillasun.de) on [LeRandom](https://www.lerandom.art/?ref=gorillasun.de), this time in conversation with Zach Lieberman, asking him about some of his personal first inpirations in the generative art space, before pivoting into a discussion about the evaluation of generative art.
Peter analyses this topic in an earlier article, [Demystifying Generative Art](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de) in which he groups generative artists and collectors into a couple of different camps: Systemists, Resultists, Conceptualists, etc. each one of them placing an emphasis on a different part of the generative artwork when it comes to it's evaluation.
Zach finds that the output is the only thing that matters, the only thing that should matter to the viewer at least:
[Zach Lieberman on the Resonance of Generative ArtResonance can refer to qualities of sound and acoustics as well as the power to evoke deep emotions. Peter Bauman (Monk Antony) speaks with Zach Lieberman, artist, MIT professor and co-founder of openFrameworks, about generative art’s relationship to music as well as its ability to make us feel some…Le Random — A Digital Generative Art Institutiontwo articles](https://www.lerandom.art/editorial/zach-lieberman?ref=gorillasun.de)
### A history of collecting digital objects at the V&A
A brief recollection of the digital collectible and how it's meaning has changed over the years. Generative art has played an incredibly important role in this timeline, as it is a fundamentally different kind of art, in contrast to what was previously known.
Is it sufficient to hang a plotter drawing on a wall? Is it a sufficient representation that captures all aspects of the artwork? Similarly, when it comes to new technology, or timely applications, how should these be captured and presented in the future when they have served their purpose and/or have become obsolete. This article addresses these ideas:
[A history of collecting digital objects at the V&A · V&AA timeline of collecting, from the earliest acquisitions of computer art in 1969 to the complex digital works in the collection todayVictoria and Albert Museum](https://www.vam.ac.uk/articles/a-history-of-collecting-digital-objects-at-the-va?ref=gorillasun.de)
### On Curation by Yusuke Shono
Yusuke Shono shines some light on the other pieces exhibited at the Proof of X exhibition: *Blockchain as a Medium for Art* \- showcasing 10 different approaches to that central topic. New kinds of conversations emerge when artists interact with blockchain technology, giving rise to interesting explorations and conversations that tackle the capabilities, and limitations, of the tech:
[On Curation | Yusuke ShonoIn the first of a series of curatorial essays for RCS, the architect of Proof of X shares his vision for blockchain as a mediumYusuke ShonoDerek Beaulieu and Alex Estorick](https://www.rightclicksave.com/article/on-curation-yusuke-shono-proof-of-x-digital-art?ref=gorillasun.de)
### Demystifying TypeScript Discriminated Unions
This post dives into Typescript discriminated unions - I've personally never heard about this feature, nor did I know what they are and had to look it up:
> At a high level, a discriminated union is a type that can represent multiple possible data structures, and each variant is associated with a unique tag or discriminator. The tag helps the compiler determine which specific variant is currently being used, ensuring type safety and avoiding runtime errors related to incorrect type assumptions.
It's an interesting feature that showcases the capabilities of Typescript:
[Demystifying TypeScript Discriminated Unions | CSS-TricksTypeScript discriminated unions are types where a key or value can be used to differentiate between the keys and values of several types at once.CSS-TricksAdam Rackis](https://css-tricks.com/typescript-discriminated-unions/?ref=gorillasun.de)
I think it's about time that I learn Typescript.
### Kim Asendorf Artist Spotlight by Abnormality
Abnormality wrote an excellent article on Kim Asendorf and his experiments in digital expressionism - how he started out with glitch art and then later on found his own digital voice in the generative art space minting projects on the Tezos and Ethereum blockchain:
[Artist Spotlight Vol 7 - Kim AsendorfA look into Digital Expressionism Art.The Culture Projectabnormality](https://thecultureproject.substack.com/p/artist-spotlight-vol-7-kim-asendorf)
### Building through a bear Market
Zack, better known as the SVP of SuperRare, one of the largest NFT platforms on bitcoin, speaks out about the difference of building web3 tech in this current bear market vs. the previous one - as well as some of the lessons learned over the course of the past 5 years in the space:

[Link to Tweet](https://twitter.com/SuperRareRoses/status/1687482206812303360?ref=gorillasun.de)
---
## AI Corner
### Bruce Sterling on the Art of Text-to-Image Generative AI
In this lecture at the AI for All conference in Eindhoven, the prolific and influential science fiction writerBruce Sterling tackles the current state of AI, with a focus on text-to-image generators that have become increasingly popular in 2022 - demonstrating the scale of the industry that has emerged around this new tech, showcasing the endless capabilities of these models as well as some of the silly problems that they still struggle with at this point:
A transcript of the talk can also be found here:
[Bruce Sterling on the Art of Text-to-Image Generative AIAuthorized transcript of Bruce Sterling’s lecture during the TU Eindhoven conference AI for All, From the Dark Side to the Light, November 25, 2022, at Evoluon, Eindhoven, co-organized by Next NaturBruce Sterling on the Art of Text-to-Image Generative AIGeert Lovink](https://networkcultures.org/blog/2023/05/17/bruce-sterling-on-the-art-of-text-to-image-generative-ai/?ref=gorillasun.de)
Throughout, Bruce shows many an example of interesting AI generated imagery.
### AI-powered smart NPCs
A new application that's recently been seeing more attention, has been smart NPCs for video games. These smart NPCs come in the form of a plugin for Unreal Engine 5:
[Replica unveils AI-powered smart NPCs for Unreal EngineReplica Studios is unveiling AI-powered smart NPCs for the Unreal Engine platform. Those NPCs can chat with players using OpenAI.VentureBeatDean Takahashi](https://venturebeat.com/games/replica-unveils-ai-powered-smart-npcs-for-unreal-engine/?ref=gorillasun.de)
*How does this work?* Instead of having pre-programmed and scripted responses to dialogue options, NPCs can now be talked to freely, and reply in a manner to address your statements and questions as a real person would. This is done by having an LLM sitting in the background generate the NPC responses and bringing them to life with an AI voice generator. This allows you to talk freely and dynamically to any NPC that might roaming around the virtual world.
And this works relatively well at this point, obviously there's still many things to figure out when it comes to context as these models will often deviate from the main point. Here's a demo of this in action
The implications of this are incredible, we'll likely see a wave of next-gen games that implement this and add a completely new layer of depth to the overall experience.
---
## Gorilla Articles
### Euler and Verlet Integration for Particle Physics
Another installment in our physics system series in which we have a first look at Verlet Physics. We ease ourselves into the Verlet integration method by first examining Euler integration, the method that we've inadvertently used up until this point. Along the way we'll also discover that there's quite a few problems with how the way that we've been programming physics so far, and that we're actually quite far from simulating forces accurately. Why that is, becomes clearer throughout the article:
[Euler and Verlet Integration for Particle PhysicsIn this post we revisit our particle system, and have a first look at the Verlet Integration method, which is an alternate method for simulating particle physics. It is in many ways more robust that the regular Euler Integration method that we have employed so far.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/euler-and-verlet-integration-for-particle-physics/)
We conclude the post with a comparison between Verlet and Euler integration, demonstrating that Verlet integration is in many ways much more accurate than Euler integration. This week we'll probably pick up from where we left off and create some soft bodies with the Verlet method.
It was also really cool to see Gustavo reach out on Twitter, telling me that he liked the post. It always makes me happy when I build on top of other people's resources and I can do them justice:

Message from Gustavo! 🙌
---
## Tip of the Week
Drawing a rotated rectangle is a bit of tricky problem if you've never done it before. There's a couple of ways to do it, I've touched upon the topic in this previous post of mine:
[An Algorithm for Polygon IntersectionsIn this post we’ll work our way towards an algorithm that can compute convex polygon intersections. We’ll also a method for intersections between axis-aligned rectangles, a function that can determine the intersection of two line segments, as well as a point in polygon test.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-algorithm-for-polygon-intersections/)
The easiest way to do so, is probably by first positioning the vertices of the rectangle around the origin given the dimensions of the rectangle, and then rotating these vertices by an angle, or alternatively with a matrix transform to then translating them to the position that you want them to be at on the canvas.
An different method that I just recently figured out is the trigonometric approach, in which we cheat a little bit and place four points on an ellipse to delineate the rectangle. The problem here is that if we want this rectangle to be at an angle, we need to rotate the ellipse, which requires some gnarly trigonometric equations that are a bit tricky to figure out. So here they are:
```
function slantedEllipse(pos, radX, radY, ang, slant){
let x = pos.x + radX * cos(ang) * cos(slant) - radY * sin(ang) * sin(slant);
let y = pos.y + radX * cos(ang) * sin(slant) + radY * sin(ang) * cos(slant);
return {x: x, y: y}
}
```
radX and radY are the horizontal and vertical radii of the ellipse. Slant is the angle that the ellipse is slanted by.
---
## Music for Coding
Might not be everyone's cup of tea, but been listening a lot to F.O.O.L. - which is on the heavier side of electronic music. I mainly listen to this when I'm at the gym, taking care of my abused back, but it also works really well for writing code. This track has quickly become one of my favorites, the intro also being somewhat reminiscent of Polyphia:
---
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week!**
**If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**

## Sign up for Gorilla News
Newsletter every Monday, tutorials every Thursday and the occasional Sunday essay! Directly in your inbox!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
### Euler and Verlet Integration for Particle Physics
URL: https://www.gorillasun.de/blog/euler-and-verlet-integration-for-particle-physics/
Last updated: 2026-10-16T14:48:03.000Z
**I never thought that this series would grow to this length - but the more I learn about this topic, the more I find things to write about. Starting from what seemed like a very trivial sketch - some circles bouncing around on the canvas - I actually ended up learning so much about simulating physics, about collision detection, optimizations for computing collisions faster, how springs work, how to connect particles with springs and create meshes, and even taking a dip into soft body physics.**
*And now, what if I told you that there was a completely different approach to doing all of these things?* That the way we implemented our particle system in it's current state, was just one of the different approaches in which things can be done? And that the system we created is actually flawed in many ways? Yes, there's actually many issues that still remain and that we're going to tackle throughout this article.
First we'll go over what we've done so far, again, but this time around examine it from a mathematical point of view. And while we're at it, we'll also identify some problems that exist in this system. In the second part of this article we'll then talk about Verlet Integration, a different numerical method to compute the movement of particles on the canvas.
It might seem like a scary term at first, but it's actually not that complicated, it just requires us to do a little bit of setup to get there. Overall, it isn't even very difficult to implement. One important aspect of Verlet Integration is it's *numerical stability* \- we'll see what that means towards the end of the article - making it excellent for scenarios where we have a number of interconnected particles: for instance when we're trying to model soft body physics! That's why it's worth looking into, to help us and make our future soft body simulations more accurate, more robust and overall much smoother!
Another thing, before we start - I want to give a gigantic shoutout to this amazing video from Gustavo, who creates educative computer science and game dev content on the Pikuma Youtube channel. I genuinely don't know why it's only got roughly 10k views, it deserves many more.
It's a bit of long watch, but really worth it. I learned a lot from it. Thank you Gustavo!
Gustavo explains all of the concepts that we're also gonna tackle so beautifully and in the very best order that they could be explained - starting with the Regular Euler Integration approach and then moving on towards Verlet Integration. I definitely recommend watching it, it helped me understand things a lot better. [Also go follow Pikuma on Twitter](https://twitter.com/pikuma?ref=gorillasun.de) for more content like this!
That said, let's get into the tutorial 👇
## Euler Integration
Let's have a look at how we've computed the movement of particles in our system, so far.
Essentially, the future position of a particle on the canvas, can be determined by means of it's current position, it's velocity and an acceleration term, in addition to other forces that act upon the velocity in a similar manner to the acceleration. I go over what velocity and acceleration are in this post if you're not up to speed:
[An Algorithm for Particle Systems with CollisionsIn this post we will program a particle system in p5js from scratch. We’ll mainly dicuss object oriented programming and delve into the necessary physics concepts to compute collisions, all while implementing a full particle simulation with P5JS.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-algorithm-for-particle-systems-with-collisions/)
But to recap, the velocity of a particle is a vector that indicates the direction that it is moving in, as well as the speed that it is moving at. The acceleration is a term that indicates how the velocity is changing over time. If we're speeding up, or slowing down basically. The new position of a particle is calculated by adding the velocity vector to it's current position. The formula that describes this is simply the addition of the two vectors:
\\( P\_{n+1} = P\_{n} + V\_{n} \\)
Similarly, velocity is defined in terms of acceleration - the new velocity becomes the current velocity plus the acceleration vector:
\\( V\_{n+1} = V\_{n} + a\_{n} \\)
If you're like me and can understand this better as code, it would look as follows:
```
position.x = position.x + velocity.x
position.y = position.y + velocity.y
velocity.x = velocity.x + acceleration.x
velocity.y = velocity.y + acceleration.y
```
In p5js, the wonderful framework that we use to visualize things, we have the convenient vector class that makes things a bit easier, and cuts the number of lines of code that we have to write in two:
```
position = p5.Vector.add(position, velocity)
velocity = p5.Vector.add(velocity, acceleration)
```
This way of computing the future position of a particle is called **Euler Integration**! It is one of the simplest ways to compute the movement of particles on the canvas, and is also very often used for video games, because of it's simplicity. With just a few lines of code we can make particles move around on the canvas!
### The Problem with Euler Integration
**But what are we actually doing here? Why is it called Euler Integration? What are we integrating after all?**
As the video by Gustavo illustrates so beautifully, a particle moving in space is actually a continuous phenomenon - computers however, are discrete machines. We can only represent continuous phenomenons as discrete approximations. A particle moving through space from point A to point B, actually physically moves from point A to B, occupying all of the space that lies between these two points as time passes. Just like a puck gliding over an air hockey table.
In our Javascript simulation, the particle doesn't behave like that though. The particle jumps forward in incremental and discrete steps towards it's destination. We are updating it's position by addition of a velocity vector, a discrete quantity, after all. We only perceive this as a smooth motion because these steps are generally minuscule, obfuscating the fact that they're discrete steps and creating the illusion of a smooth motion.

To put it simply, approximating a continuous function with discrete numeric steps, is usually known as integration.
An since it's only an approximation, a problem arises: an error gradually accumulates over time. This error can sometimes become more and more apparent the longer we let our particle simulation run. This might not be a big deal when it comes to creative coding and generative art, where we usually aim to make a chaotic and fun-to-watch particle chaos, but in other scenarios this is problematic.
Let's see why this is, and demonstrate it with a simple sketch - let this run for a while and observe the behavior of the particles:
What is happening here? Why does the particle keep bouncing higher and higher over time? Euler Integration is a method that gains energy over time. This is due to the approximation error that arises: every time that we calculate the new position of the particle, we're actually overshooting the actual real value by a little bit leading to an offset. This manifests itself by the particle bouncing higher and higher over time. And this isn't ideal, we don't want things to get more volatile over time.
### Semi-implicit Euler Integration
There's actually a hack to make this system lose energy over time instead. In fact it's what we've been doing all along in the previous versions of our particle system! Let me explain!
In the previous tutorials, we would add forces directly to the particle's velocity, such as the particle's acceleration and gravity. This is technically correct, but not exactly the proper way of doing things.
Normally, in Euler integration, all external forces are first combined, for instance the gravitational force, and then used to determine the acceleration of the particle. The acceleration being the sum of the external forces, divided by the mass of the particle. This resulting acceleration can then be added on to the current velocity, to determine the future velocity, which in turn lets us compute the new position of the particle. These steps essentially constitute the update() function of the particle, and would look as follows:
```
update(sumOfForces){
this.acceleration = p5.Vector.div(sumOfForces / this.mass)
this.position = p5.Vector.add(this.position, this.velocity)
this.velocity = p5.Vector.add(this.velocity, this.acceleration)
}
```
An exactly in this order! Order is important!
Note that the new position of the particle is computed before we update it's velocity. This is the proper order of computations in the Euler integration method. Doing things in this manner however, will lead to an accumulating error that makes particles gain energy over time as we mentioned before - and is reflected by an ever increasing velocity, which in turn makes the particle speed up more and more over time.
Have a look at this example that demonstrates two different approaches, where the first particle **on the left**, uses the exact update function as shown above, using the proper Euler integration method. The second particle **on the right**, is updated in the same manner as in the preceding tutorials, where we update the velocity with a seperate addForce() function - that adds external forces directly to the particle's velocity. We observe two very different behaviors:
But wait a second, there aren't really any external forces applied to the particles, other than the gravity vector that we've initialized at the beginning of the setup function. So why does the second particle keep bouncing in place, and doesn't exhibit any increase in height over time, like the first one?
**It's due to the order of operations.** We've essentially flipped the order of the velocity update and the position update, computing the new velocity of the particle before we compute it's new position. This ends up being *the semi-implicit Euler method*, and results in a particle behavior that doesn't gain energy over time - in fact, it does the opposite, the accumulated error leads to an undershooting of the actual position of the particle, losing energy over time.
Therefore, if we were to flip these two lines in the draw loop, we'd obtain the same behavior of the regular Euler method, and the particle would also end up gaining height over time:
```
ourParticle.addForce(gravity)
ourParticle.update()
```
Here, same code, just the two lines of code flipped:
Even though we did inadvertently end up implementing the semi-implicit approach, it's always better to write things in a clear and readable manner. The update function for a particle that implements the semi-implicit Euler method would look as follows:
```
update(sumOfForces){
this.acceleration = p5.Vector.div(sumOfForces / this.mass)
this.velocity = p5.Vector.add(this.velocity, this.acceleration)
this.position = p5.Vector.add(this.position, this.velocity)
}
```
Computation of position and velocity have a different order now.
Simply placing the velocity update before the position update. Hence, the order of things matters a lot! Here's the same example again, but rewritten in a nicer way:
...
**Hold up a sec!** If the semi-implicit Euler method should be losing energy over time, why does the second particle maintain the same bounce height?
### A Clarification on our previous Implementation
Well, that's actually because this is a very *special case of the semi implicit Euler method*: when the initial velocity of a particle is a zero vector, then it will actually not lose energy over time and end up conserving it. We'll actually exactly hit the mark and have the particle bounce up to it's original height every time.
Have a look at this example, where we pass in a random vector as the particle's initial velocity as we create it, it will actually bounce lower and lower, and after a while come to a full stop:
Phew, glad we solved this mystery! The reasons why an initial zero velocity leads to conservation of energy are a bit more elaborate, but I'm just going to side step that for now! I looked into it a bit, and it seems that in this special case the particle ends up being a [Hamiltonian system](https://en.wikipedia.org/wiki/Hamiltonian%5Fsystem?ref=gorillasun.de), which is essentially a special kind of system that conserves it's energy as already mentioned.
---
*And just to make sure that things are clear:*
It's important to understand that in the particle systems that we've programmed previously, it might have seemed that we did things correctly, but you'd notice that if we were to let things run long enough, everything would eventually end up coming to a standstill. This can end up being a bit confusing, hence I really recommend playing with the formulas for yourself, and trying to recreate the simple bouncing particle sketches from scratch to get a feel for this.
Why am I bringing this up? Because I don't want you to mistake the previous sketches for accurate physics simulations, where it might've seemed that we've created a realistic gravitational pull directed towards the bottom of the canvas. **This is in fact not what is actually happening.**
In a friction-less world, a ball would keep bouncing forever. In our case the particle didn't stop bouncing because of friction though - we didn't implement any friction - it stops bouncing merely because it was losing energy due to the integration method that we were using, causing an accumulating error. I hope this makes sense. It felt necessary to clarify this, to be able to move forward with a better understanding of what we are actually doing.
### Updating our system with a time-step component
Up until this point, the little physics simulations that we've created have an apparent animation speed that is directly tied to the frame rate of the draw loop. Increasing this frame rate, would also lead to an increase in the speed of the animation, and vice versa. And this isn't ideal, we'd much rather have the speed of the engine be independent from the frame rate.
For instance if we run the previous sketches at 30 frames per second, rather than 60 frames per second, then the simulations would only progress half as fast. So, how do we solve this and make the speed of the simulation independent from the frame rate?
Well, there's actually another variable that goes into the formulas for computing the position and velocity of a particle in movement. **Delta Time:** a time increment that scales the acceleration and velocity in the velocity and position update statements respectively. This time increment variable usually represents the time elapsed since the beginning of the previous frame and the beginning of the current frame. Essentially the formulas then become:
\\( P\_{n+1} = P\_{n} + V\_{n} \* \\Delta t \\)
\\( V\_{n+1} = V\_{n} + a\_{n} \* \\Delta t \\)
This scaling ensures that the simulation progresses at a consistent rate, regardless of the frame rate.
P5 already provides this delta time variable out of the box in milliseconds, and we'd simply have to scale it, dividing it by a factor of 1000:
```
let dt = deltaTime / 1000
particle.update(sumOfForces, dt)
```
Then we can simply pass it in as another input to the particle's update function.
And in action this would look as follows, for instance here's a sketch at the native frame rate:
And here's the same sketch at a very choppy 10 fps:
Note here that we had to make some changes to the overall numbers, for instance we reduced the mass of the particle and cranked the force of the gravity, otherwise things would overall be very slow.
And that concludes everything I want to say about Euler Integration, I think that we're ready to tackle Verlet Integration now!
## Verlet Integration
If you've got a solid grasp on everything that preceded then the rest should be a walk in the park!

In a nutshell, Verlet Integration is a different approach to computing the future position of a moving particle, without us requiring to explicitely store the velocity of that particle. Yes, that's right, with Verlet Integration we can do without the velocity variable, because we can actually estimate with a nifty formula - in which we only need to remember the previous position of the particle. We'll deduce this formula from the semi-implicit form that we had a look at earlier.
So instead of explicitly storing the velocity of the particle and manipulating it, we'll now store the current position of the particle, it's previous position as well as it's acceleration. Let's see how this works!
Backtracking a bit, and returning to the formulas for the semi-implicit Euler Integration method, we have:
\\( V\_{n+1} = V\_{n} + a\_{n} \* \\Delta t \\)
\\( P\_{n+1} = P\_{n} + V\_{n+1} \* \\Delta t \\)
Note how in the semi-implicit form the new position depends on the new velocity. These same position update formula, for the previous position of the particle would look as follows - simply going back one step in time, as indicated by the suffixes of the variables:
\\( P\_{n} = P\_{n-1} + V\_{n} \* \\Delta t \\)
We can rewrite this in terms of the current and previous position:
\\( V\_{n} = \\frac{P\_{n} - P\_{n-1}}{\\Delta t} \\)
This means that the current velocity can actually be deduced from the old and the current position. Ok, this is great! How does that help us find the next position of the particle though? Let's rewrite the formula for the next position, substituting the \\( V\_{n+1} \\) term:
\\( P\_{n+1} = P\_{n} + ( V\_{n} + a\_{n} \* \\Delta t ) \* \\Delta t \\)
And from before we know that \\( V\_{n} \\) can be written in terms of the old and previous position, hence we'd obtain the following:
\\( P\_{n+1} = P\_{n} + ( \\frac{P\_{n} - P\_{n-1}}{\\Delta t} + a\_{n} \* \\Delta t ) \* \\Delta t \\)
Let's clean this up a bit and we get:
\\( P\_{n+1} = P\_{n} + P\_{n} - P\_{n-1} + a\_{n} \* \\Delta t^2 \\)
And more concisely:
\\( P\_{n+1} = 2P\_{n} - P\_{n-1} + a\_{n} \* \\Delta t^2 \\)
And as you can see, this formula doesn't require any velocity term for the computation of the next position of the particle!
### Implementing a Verlet Particle
The hard part's done - armed with this new formula we can now implement our Verlet Particle. First, let's add a member variable in which we'll store the old position:
```
class Particle{
constructor(position){
this.position = position
// initially we'll set the old position to the current position
this.oldPosition = this.position
// we can also pass this in as an input
this.mass = 1
this.radius = 15
}
}
```
As for the update function, we'll now implement Verlet integration:
```
update(sumOfForces, dt){
this.tempPosition = this.position
this.position = p5.Vector.add(p5.Vector.sub(p5.Vector.mult(this.position, 2),
this.oldPosition), p5.Vector.mult(sumOfForces, dt*dt))
this.oldPosition = this.tempPosition
}
```
Here we need to first store the current position in a temporary variable, since it will become the old position after we've computed the new current position. Then we have a gnarly line in which we simply apply the formula that we concluded with in the previous section to compute the new position of the particle, and finally we set the old position to the temporary value that we stored earlier.
### Boundary Checks with Verlet Integration
So we have one little problem left when it comes to checking if the particle is within the bounds of the canvas. Previously we'd simply point the velocity of the particle into the opposite direction when we hit a canvas boundary.
Now we don't have an explicit velocity vector anymore and can't use that exact method anymore to make our particles bounce off of the boundaries. But we can sidestep this by computing the velocity temporarily, by subtracting the old position from the current position and then using that velocity to cheat a little bit. We'll essentially reflect the old position around the current position of the particle, in a way pretending that we are coming from beyond the canvas boundary.
And that would look as follows:
```
constrain(){
let velocity = p5.Vector.sub(this.position, this.oldPosition)
if(this.position.x < 0){
this.position.x = 0
this.oldPosition.x = this.position.x + velocity.x
}else if(this.position.x > 400){
this.position.x = 400
this.oldPosition.x = this.position.x + velocity.x
}else if(this.position.y < 0){
this.position.y = 0
this.oldPosition.y = this.position.y + velocity.y
}else if(this.position.y > 400){
this.position.y = 400
this.oldPosition.y = this.position.y + velocity.y
}
}
```
And in action our final Verlet simulation:
You can see here that Verlet Integration also suffers from a loss of energy over time, but maybe not as harshly as the semi-implicit Euler Integration method.
### Numerical Stability
At the very start of this article, I mentioned that Verlet Integration is numerically more stable than Euler Integration. Let's put this to the test and compare the two methods - let's see how quickly the two lose energy in comparison to each other:
Well it seems that there isn't much difference here really. Bummer.
But wait, we're not actually doing this the right way! This energy loss and the accumulating error have a lot to do with the size of the time increment. The larger this time increment, the quicker this accumulated error will become apparent. That means if we were to make this time step smaller, we'd be able to make more accurate predictions. How do we do this though?
We simply run our simulation several times per frame, dividing the time increment by the number of simulation steps. Let's compare the methods again - but this time let's run the update step 10 times every frame, the draw loop would look as follows now:
```
function draw() {
background(220);
let dt = deltaTime/1000
for(let n = 0; n < 10; n++){
verletP.update(gravity, dt/10)
verletP.constrain()
eulerP.semiImplicitUpdate(gravity, dt/10)
eulerP.constrain()
}
verletP.display()
eulerP.display()
line(0, 200, 400, 200)
}
```
And in action:
Here I also give the Euler particle a random starting velocity to give the Verlet particle a fair chance, because the Euler particle would simply bounce forever if it's initial velocity is zero as mentioned before. In this scenario you can see that Verlet integration conserves energy much, much better than the Euler method!
In both cases, this means that our simulation will be more accurate for more time steps, but comes at the expense of a computational overhead. Ultimately it will boil down to your application and how accurate you need/want things to be!
## Concluding Thoughts
In this article we covered Verlet Integration, and also extensively discussed the regular Euler Integration method that is most commonly used for simulating simple particle system, as well as other applications. We also discussed some of the problems with it, such as the accumulating error that leads to a gain or loss of energy over time and discussed how to make things more accurate by running the simulation over smaller time steps.
In the next post we'll discuss how to do collisions and springs with the Verlet integration method and then also revisit soft body physics.
**As always, I hope you enjoyed this post, I definitely had a lot of fun writing it. If you did, consider sharing it on your socials, or signing up to the newsletter to get updates whenever new content is posted on the blog. It helps a lot! Otherwise, cheers and happy sketching \~ Gorilla Sun 🌸**

## Sign up for Gorilla News
Newsletter every Monday, tutorials every Thursday and the occasional Sunday essay! Directly in your inbox!
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
### Gorilla Recap 15
URL: https://www.gorillasun.de/blog/gorilla-recap-15/
Last updated: 2023-07-31T23:15:37.000Z
**Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I go over everything that I found noteworthy from the past week. Hope you have a good stay!**
---
*Before we start - since this newsletter is meant to be something to enjoy in your inbox every Monday, I'm making an effort at improving it in that regard. For instance, no more embedded tweets that can't be displayed in an email - instead screenshots that link to their respective tweets by clicking on them. Let me know if there's any other improvements to make this a better experience!*
That said, let's get into some cool tech, genart and AI things of the past week! 👇
## Overflow AI
This is arguably the most exciting news for me personally this week! StackOverflow is bringing out it's own AI chatbot! All while staying true to the original mission that StackOverflow promised - keeping the developer community at the center!
Essentially, the chatbot will provide responses to your questions while also citing the answers that it uses to provide reponses to your questions - I think that this is HUGE! What's bothered me about ChatGPT is that there's no way of telling what the source of the answer is, even if it is in many cases a patchwork of some internal representations. Now I can actually credit something tangible when I do end up using a snippet of generated code, and at the same time feel much more comfortable about it while doing it!
This enhanced search experience is also planned to be delivered as an integration to IDEs like Visual Studio Code, as well as Slack. You can check out the entire roadmap here:
[Announcing OverflowAILet’s highlight the new features and products we announced today from the stage of WeAreDevelopers.Prashanth ChandrasekarStack Overflow Blog](https://stackoverflow.blog/2023/07/27/announcing-overflowai/?ref=gorillasun.de)
## Interesting Reads
Some juicy reads from the past week 👇
### Reviving dead social Media
One of those great links from the Ghost newsletter, and a very fitting one at that. It seems that the landscape of social media platforms is in a constant state of upheaval, and I've certainly been struggling with making a decision on how to navigate the rising tides moving forward.
A couple years back it wasn't as difficult as it seems now, just make an account, make good content and play by the rules of the algorithm. And with consistency you'll very likely end up with a decent amount of engagement. Well, it's no so easy anymore, things *feel* a lot more random these days. It's almost like social media platforms don't know what they want anymore.
Emily Rochotte paints a beautiful picture of the current identity crisis that social media platforms find themselves in today and also illustrates some approaches to navigate these turbulent waters in addition to finding success on them:
[Reviving dead social media | The Content TechnologistAutomation killed the social media star. How can creators embrace evolving social media algorithms without chasing their audience away?Emily RochotteThe Content Technologist](https://www.content-technologist.com/dead-social-media-engagement-revival/?ref=ghost.org)
Authenticity and emotions matter more than ever.
### Beware of NPM Malware
You probably download NPM packages without giving it a second thought. And that's fine, the likelihood that you'll download a package that contains some sort of malware is quite low - roughly 0.007222% according to an article on The New Stack:

[Is npm a Hotbed of Malware?WhiteSource, a leading open source security provider, says npm, one of the most widely used JavaScript package managers, is a playground for malicious actors.Steven J. Vaughan-NicholsThe New Stack](https://thenewstack.io/is-npm-a-hotbed-of-malware/?ref=gorillasun.de)
And the average indie dev, hacking away in their bedroom is often not the target of elaborate malware schemes, but rather, researchers and devs working at larger companies handling sensitive and valuable data on a daily basis. What sounds like a plotline from a dystopian movie becomes a very real threat - a North Korean state-backed hacking syndicate known as the 'Lazarus Group' attempts infiltration of sensitive devices with elaborate malware schemes. This excellent article by [Feross Aboukhadijeh](https://socket.dev/blog/social-engineering-campaign-npm-malware?ck%5Fsubscriber%5Fid=1131868666&ref=gorillasun.de) goes into the details:
[Social engineering campaign targeting tech employees spreading through npm malware - SocketThe Lazarus Group launched a sophisticated social engineering campaign targeting developers in the cryptocurrency and cybersecurity sectors, using compromised accounts and malware-laden NPM packages.Socket](https://socket.dev/blog/social-engineering-campaign-npm-malware?ref=gorillasun.de)
### Putting the "You" in CPU
Not a read for the faint of heart - Lexi Mattick explains how programs run on your computer, from start to finish, in this e-book-esque series of articles. How can you pass up on something that starts off as strong as this:
> I would’ve killed for one solid article explaining what I learned, so I’m writing the article that I wished I had.
Even if you know exactly how computers work, or at least think that you know how computers work, this one's a must read:
[Putting the “You” in CPUCurious exactly what happens when you run a program on your computer? Learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables.Putting the "You" in CPU](https://cpu.land/?ref=gorillasun.de)
I wish someone would have shown me this when I took my first computer architecture course.
### Google's Proposal for a Web Environment Integrity API
Last week I also came across [this scary tweet](https://twitter.com/nearcyan/status/1684242509847822336?ref=gorillasun.de) \- a *proposal* from Google about integrating a Web Environment Integrity API into their browsers. Despite it being a proposal, an apparent prototype already exists in chromium:
[](https://twitter.com/nearcyan/status/1684242509847822336?ref=gorillasun.de)
So what does this WEI API do? It essentially allows browsers to monitor and fingerprint the entities that are operating the browser. This is to ensure that these entities play by the same rules as others, for example, as a measure against automated means of cheating in browser games. At least that is my understanding of it. A more detailed explanation can be found here:
[Google’s nightmare “Web Integrity API” wants a DRM gatekeeper for the webIt’s just a “proposal,” but it’s also being prototyped inside Chrome right now.Ron AmadeoArs Technica](https://arstechnica.com/gadgets/2023/07/googles-web-integrity-api-sounds-like-drm-for-the-web/?ref=gorillasun.de)
### The Bull Case for Digital Art
An [interesting thread](https://twitter.com/nf%5Fsuzanne/status/1685563671538475008?ref=gorillasun.de) I found by Twitter user SuzanneNFTs, highlighting some of the factors that make digital NFT art attractive for the younger generation, and is in many ways already primed to value as well as be more open to purchasing and owning digital assets:
[](https://twitter.com/nf%5Fsuzanne/status/1685563671538475008?ref=gorillasun.de)
## AI Corner
### Why transformative Artificial Intelligence is really, really hard to achieve
I've already touched upon the risks of AI moving itself into a position of unhalted growth in previous issues of the Gorilla Recap. There's a big dichotomy around this very issue currently, some think that it's a genuine concern and that we are very near to the singularity if we don't carefully monitor advancements in the AI space, others argue that we are still nowhere near achieving general intelligence, and that most models at this point are still only imitating and regurgitating patterns that they have been trained on.
An excellent article by Arjun Ramani and Zhengdong Wand published by The Gradient tackle this topic, arguing that the world is just too complicated for us to assume that advancements in theoretical AI, such as the current text generation models (that have become incredibly popular in recent months), can be considered powerful enough to be transformative on a larger scale:
[Why transformative artificial intelligence is really, really hard to achieveA collection of the best technical, social, and economic arguments Humans have a good track record of innovation. The mechanization of agriculture, steam engines, electricity, modern medicine, computers, and the internet—these technologies radically changed the world. Still, the trend growth rate…Arjun Ramani and Zhengdong WangThe Gradient](https://thegradient.pub/why-transformative-artificial-intelligence-is-really-really-hard-to-achieve/?ref=gorillasun.de)
> \[...\] myriad hurdles stand in the way of widespread transformative impact. These hurdles should be viewed *collectively*. Solving a subset may not be enough. Solving them all is a combinatorially harder problem.
### Why AI is a Threat to Artists
Even though I find recent AI advancements really exciting, it also poses a very real risk to many types of creatives, especially to those who create and produce visual and written content - as those two fields have seen the largest leaps in advancement in recent years. I often find that the space is advancing so fast that the attention is immediately shifted to the new technologies when we haven't even decided on regulating the tools from yesterday.
Paris Marx, host of the wonderful podcast **Tech won't save us** is joined by [Molly Crabapple](https://mollycrabapple.com/?ref=gorillasun.de), an accomplished and prolific illustrator to discuss all of these matters and voice her concerns:
[Why AI is a Threat to Artists w/ Molly Crabapple - Tech Won’t Save UsAre AI image generation tools really democratizing art? Molly Crabapple explains why art is innately human, what’s lost by having AI take over making art, and what risks image generation presents for working-class artists.Tech Won't Save Us](https://www.techwontsave.us/episode/174%5Fwhy%5Fai%5Fis%5Fa%5Fthreat%5Fto%5Fartists%5Fw%5Fmolly%5Fcrabapple?ref=gorillasun.de)
Check out the other episodes as well, really an excellent podcast!
Molly Crabapple also wrote an op-ed for the Los Angeles Times on the same topic which I found to be a very important read:
[Op-Ed: Beware a world where artists are replaced by robots. It’s starting nowAIs can spit out work in the style of any artist they were trained on — eliminating the need for anyone to hire that artist again.Molly CrabappleLos Angeles Times](https://www.latimes.com/opinion/story/2022-12-21/artificial-intelligence-artists-stability-ai-digital-images?ref=gorillasun.de)
## Gorilla Articles
### Programming Soft Body Physics and Blobs
We continue making cool things with our particle system: last week we discussed how springs work and put together a particle and spring mesh - this week we double down on this and have a look at making squishy and bouncy blobs.
Turns out that fine tuning them is quite tricky and there's a number of configurations in which they can be wired together. This tutorial walks you through this process, shows some improvements to the particle system so far and also goes over some possible configurations for our blob shapes:

There hasn't been a second article this week, as I've gotten quite sick and bedridden over the weekend, in addition to helping my family move across the country. But I'm on the mend now and already working on the posts of the coming week! So keep your eyes peeled for that!
## Gorilla Sketches
I got a decent amount of sketching in towards the beginning of the week, returning to an idea that I did some months ago actually - a sketch that revolved around computing the collisions between arc shapes and subsequently being able to pack them on the canvas.
Back then I would trace the arc shapes with tiny line segments and then compute the intersections of those to determine if the two arcs intersected. This time I wanted to do it the proper way however, and actually compute the intersections of those arcs which turns out to be a bit tricky, requiring you to first determine if the two circles that the arcs fall on intersect and then check if those points of intersection fall into the angular range that the arcs cover. I managed to do it ultimately however:
[](https://twitter.com/gorillasu/status/1683771736859328512?ref=gorillasun.de)
[You can view an animated version of this here](https://twitter.com/gorillasu/status/1683771736859328512?ref=gorillasun.de)
This ultimately lead to recreating the original arc packing sketch:

It's not much, but it's honest work.
And alter integrating it into the circular sketch that I started working on in the previous week - combining a more chaotic system with elements that retain some structure. You know, threading that fine line of system and chaos in generative art:

Excited to see where this will go!
## Tip of the Week
I don't use it as often as I used to anymore, but FFMPEG is one of those very useful tools that you should have in your trickbag as a creative coder. Whether you need to convert between different media formats, or need to shave off a couple of MBs from a gif to get it within some platform's size limit - FFMPEG got your back.
The caveat is that it's not the easiest command line tool to use - with it's hundreds of different flags and options, that can be mixed and matched in various ways, it can quickly become difficult to actually figure out how to perform a specific task. ffmprovisr to the rescue. I wish I had found this site many moons ago, rather than having to scour different forum and stackoverflow posts to find the correct command, It provides commands alongside detailed explanations for the flags that are being used:
[](https://amiaopensource.github.io/ffmprovisr/?ref=gorillasun.de)
[https://amiaopensource.github.io/ffmprovisr](https://amiaopensource.github.io/ffmprovisr/?ref=gorillasun.de)
Alternatively you can also give my personal beginner's guide a shot:
[A Simple Guide to FFMPEGFFmpeg is an essential tool for creative coders. Here’s a primer on using FFmpeg, and showcase of some of it’s capabilities.Ahmad MoussaGorilla Sun](https://www.gorillasun.de/blog/a-simple-guide-to-ffmpeg/)
## Music for Coding
This week I thoroughly enjoyed these fantastic soundscapes from Ben Böhmer, a german producer and musician that blends sounds in a magical manner to the like of Tycho, Bonobo and Christian Löffler. If you want something for a moody and rainy train ride through a grey and brutalist German landscape, this hits the spot:
**And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week! If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Programming Soft Body Physics and Blobs
URL: https://www.gorillasun.de/blog/soft-body-physics-and-blobs/
Last updated: 2026-08-10T16:20:59.000Z
**This post is a direct continuation of the previous article *Spring Physics, Particles and Meshes*. If you haven't read that one yet, then I recommend checking that one out first before coming back here.**
[Spring Physics, Particles and MeshesSprings are an integral concept to physics, fundamental components used in many applications, coming to life with Hooke’s Law from the 17th century. In this post we have a look at how to code and simulate such springs and extend a previous particle system with them.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/spring-physics-and-connecting-particles-with-springs/)
All about spring physics and combining them with particles to create bouncy meshes. Links to all previous posts in the series can be found here as well.
**In this post we'll talk in more detail about soft body physics, explore some of the different shapes that can be constructed with particles and springs, and discuss some approaches to creating different kinds of squishy blobs.**
---
We concluded the last post by creating a spring mesh - a structure that consists of a number of particle instances connected by springs in a very particular manner. But that's just the tip of the iceberg, a rectangular mesh is only one of the possible shapes that we can create with the system that we've built so far. There's many more interesting structures that can be constructed by chaining together particles with springs in particular manners, each of them presenting a different behavior depending on it's particular skeletal structure.
One very popular shape in creative coding and generative art are blobs, and it's actually a really tricky problem to configure them to your liking. We'll get into more detail on this later on. The direct inspirations for this article are two wonderful blobby sketches from two awesome creative coders - [Roni Kaufman](https://twitter.com/KaufmanRoni?ref=gorillasun.de):
> Experimenting with blobs [pic.twitter.com/AdvA3jSCCb](https://t.co/AdvA3jSCCb?ref=gorillasun.de)
>
> — Roni Kaufman (@KaufmanRoni) [June 21, 2022](https://twitter.com/KaufmanRoni/status/1539196005178015745?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
And [Juhani Halkomaki](https://twitter.com/JuhaniHalkomaki?ref=gorillasun.de):
> [#creativecoding](https://twitter.com/hashtag/creativecoding?src=hash&ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) [#p5js](https://twitter.com/hashtag/p5js?src=hash&ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
>
> Inflate/deflate/gm [pic.twitter.com/WBUpwgQqrh](https://t.co/WBUpwgQqrh?ref=gorillasun.de)
>
> — Juhani Halkomäki (@JuhaniHalkomaki) [February 27, 2023](https://twitter.com/JuhaniHalkomaki/status/1630098615749300224?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Juhani's sketch even inspired Daniel Schiffman to make a video on the topic:
Dan uses the famous toxiclibs library by [Karsten Schmidt](https://genart.social/@toxi@mastodon.thi.ng?ref=gorillasun.de) to create the cute and bouncy character that you see in the thumbnail. If you don't feel like coding all of the parts of the code from scratch like we're doing, and want a solid library to handle the involved physics for you, then toxiclibs is probably the way to go. Dan also talks a little bit about the historic significance of toxiclibs in creative coding.
In this post however, we'll be creating some very bouncy and deformable blob shapes by making use of the physics system that we've built over the course of the past 4 articles. Here's what we'll be making:
Let's get into it 👇
## Improvements
Before we dive straight into coding our soft body blobs, I'd like to first make a number of improvements to the particle system that we've put together so far! We'll make some modifications to the boundary collisions as well as the mouse drag functionality that make them more accurate, and we'll also add our grid lookup back in!
### Improved Boundary Collisions
On my last Twitter post in which I announced the previous article, I got a comment by [Galo](https://twitter.com/GaloAndStuff?ref=gorillasun.de) \- another awesome creative coder and generative artist - with an idea for improving the function that prohibits particles from leaving the canvas, indicating that there's a better way to handle boundary collisions:

Do we call them X posts now?
The way that we've done it so far: when it's registered that a particle's radius exceeds one of the boundaries of the canvas, we simply invert the velocity of the respective horizontal or vertical component, depending on which boundary has been crossed. This comes with the side-effect that the particle sometimes gets stuck on the edges in a jittery and glitchy manner.
A better way to do this, is by applying an opposing force to the particle when it hits the boundary, giving it a soft and smooth push in the opposite direction that it's coming from. Since we already added such a function to our particle class that accepts as input a force vector and adds it to the velocity of our particle, we'd only need to alter our checkEdges() function slightly and pass in a vector pointing pointing inwards towards the canvas.
Here's what this new behavior looks like in action with some random particles dispersed on the canvas:
Btw, Galo is also a certified blob scientist:

This interactive piece fills the window with ever growing blobs [https://www.someblob.art/](https://www.someblob.art/?ref=gorillasun.de)
### Improved Mouse Drag
We can also make some improvements to the code that takes care of dragging and dropping the particles. The previous behavior was a bit wonky, where it would only move the particle along with the mouse while the mouse was being dragged. If we pressed a particle, without moving the mouse, the particle would simply jump back towards the position that the attached springs drag it to. We don't want that, instead, even if we are not moving the mouse we'd like the particle to stay at the position of the cursor.
Let's get rid of the previous code and make some modifications to the Particle class, adding the dragging behavior to the particle class itself - for this we need to add a new member variable:
```
this.dragging = false
```
Simply a boolean flag that indicates that the particle is being dragged. Now, we need to give the particle two new functions that take care of toggling this flag when the mouse is pressed and the cursor is within the radius of the particle:
```
mousePressed() {
if (dist(mouseX, mouseY, this.pos.x, this.pos.y) < this.radius) {
this.dragging = true;
}
}
mouseReleased() {
this.dragging = false;
}
```
In the particle's *mousePressed()* function we check if the cursor is inside of the particle's radius, if that is the case we can set it's *dragging* flag to true. As for the *mouseReleased()* function, we reset the *dragging* flag to false again.
In the particle's update function we take care of what happens when the particle's dragging flag is set to true. We run a different behavior if that is the case:
```
updateState(newPos) {
if(!this.dragging){
this.addForce(this.acceleration);
this.limitVelocities()
this.pos.add(this.velocity);
}else{
this.velocity = p5.Vector.sub(createVector(mouseX, mouseY), this.pos);
this.pos.add(this.velocity);
}
}
```
In the case that it is being dragged, we register the offset between the mouse coordinates and the current position of the particle - this then actually becomes the new velocity of the particle. This is important because once we release the particle we kind of want it to retain some amount of velocity and keep traveling into the direction that we were dragging it, and not simply lose all momentum and sit wherever we released the mouse. Then we also need to set the position of the particle to this velocity such that the particle follows the cursor.
Lastly, we use P5's inbuilt mousePressed() and mouseReleased() functions to loop over all particles and trigger the particle's mouse functions:
```
function mousePressed() {
for (let i = 0; i < particles.length; i++) {
particles[i].mousePressed();
}
}
function mouseReleased() {
for (let i = 0; i < particles.length; i++) {
particles[i].mouseReleased();
}
}
```
And in action this works as follows:
You might have noticed, I also made an additional change to the checkEdges() function, such as not to kill the entire momentum of a particle when it collides with the boundaries:
```
checkEdges() {
if (this.pos.x - this.radius < 0) {
this.pos.x = this.radius;
this.velocity.x *= -.25;
this.addForce(createVector(1, 0))
} else if (this.pos.x + this.radius > width) {
this.pos.x = width - this.radius;
this.velocity.x *= -.25;
this.addForce(createVector(-1, 0))
}
if (this.pos.y - this.radius < 0) {
this.pos.y = this.radius;
this.velocity.y *= -.25;
this.addForce(createVector(0, 1))
} else if (this.pos.y + this.radius > height) {
this.pos.y = height - this.radius;
this.velocity.y *= -.25;
this.addForce(createVector(0, -1))
}
}
```
There probably is still a better way to do this. Here I'm essentially combining both behaviors from earlier.
### Adding the Grid-lookup back In
And to make things run faster, we'll also add our grid look-up back in. This is important because the soft body blobs will end up being made up out of a large number of particles. We'll just use the very basic form of the grid lookup, without all of the other mini optimizations that we discussed in the spatial hashing article:
[Optimizing Particle Systems with a Grid Lookup and Spatial HashingIn this post we have a look at a method with which we can greatly improve a collision detection system. Using a lookup grid we can greatly reduce the number of required checks between particles. We will also look at some methods to optimize this lookup grid.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/particle-system-optimization-grid-lookup-spatial-hashing/)
For your convenience, here's the entire grid class:
```
class Grid {
constructor(canv_wid, canv_hei, s) {
this.cellSize = s;
this.numCols = Math.ceil(canv_wid / s);
this.numRows = Math.ceil(canv_hei / s);
this.cells = [];
for (let x = 0; x < this.numCols; x++) {
this.cells[x] = [];
for (let y = 0; y < this.numRows; y++) {
this.cells[x][y] = [];
}
}
}
addParticle(particle){
let col_idx = Math.floor( particle.pos.x / this.cellSize);
let row_idx = Math.floor( particle.pos.y / this.cellSize);
this.cells[col_idx][row_idx].push(particle)
particle.gridCell = { col: col_idx, row: row_idx }
}
removeParticle(particle) {
let { col: col_idx, row: row_idx } = particle.gridCell
let cell = this.cells[col_idx][row_idx];
let arr_idx = cell.indexOf(particle);
cell.splice(arr_idx, 1);
}
getNeighbors(particle) {
let top_left = [
floor((particle.pos.x - particle.radius) / this.cellSize),
floor((particle.pos.y - particle.radius) / this.cellSize),
]
let bottom_right = [
floor((particle.pos.x + particle.radius) / this.cellSize),
floor((particle.pos.y + particle.radius) / this.cellSize),
]
let neighbors = []
for (let i = top_left[0]; i <= bottom_right[0]; i++) {
for (let j = top_left[1]; j <= bottom_right[1]; j++) {
if (i < 0 || j < 0 || i >= this.numCols || j >= this.numRows) continue
let c = this.cells[i][j]
for(let p of c){
// don't add the particle itself
if(p != particle) neighbors.push(p)
}
}
}
return neighbors
}
}
```
Simply drop it into your code and make sure to add the particles to the grid when you create them with `grid.addParticle(particle);`. In the draw loop, while checking for collisions between particles, we then just fetch the neighbors of a particular particle from the grid and pass those as input into the `checkCollision()` function:
```
let neighbors = grid.getNeighbors(p)
p.checkCollision(neighbors)
```
Make sure to loop over this array in the *checkCollisions()* function, instead of the global particle array. Lastly we just need to update the grid at the end of every draw loop by removing all particles and adding them back again:
```
for (let p of particles) {
grid.removeParticle(p)
grid.addParticle(p)
}
```
And a complete example goes here:
The code here needed to be minified to be able to run in the widget. Feel free to copy it over to your editor of choice and auto-formatting it for readability purposes.
## Soft Body Physics
Alright, I think that's enough foreplay for now. Let's get to the main topic: Soft Body Physics!
In the most recent post we actually already had a stab at soft body physics when we created a mesh out of particles and springs! In physics a soft body is some type of material that can undergo significant deformations but still retain it's overall structure, just like the mesh that we made:
Here's the mesh sketch again, but with all of the improvements that we've covered in the previous sections.
There's multiple approaches to creating soft bodies in physics simulations, in our case we're using a mass-spring system; as the name suggest, it makes use of a wireframe of connected particles and springs to model the overall shape of the body.
In this way we already have seen a good method for creating rectangular and block-y shapes, simply by arranging the particles in a grid like manner and then connecting each particle with all of it's neighbors using springs. Naturally, the diagonal springs here need to be a bit longer.
So, the question now is, how do we arrange the particles and springs to create more organic shapes? Like a deformable blob for instance, that almost behaves like some sort of jelly? There isn't really a straightforward answer to this, because it depends on what kind of material you want to simulate, and how you want your blobs to ultimately behave. In the coming sections we'll first create a class for our blob and then experiment a bit with different configurations.
### The Blob Class
It only makes sense to also model our blob as an object. It's two main member variables are arrays that store references to it's constituent particles and springs. Let's start with the constructor:
```
class Blob{
constructor(){
this.particles = []
this.springs = []
}
}
```
We'll leave the particles and springs array empty for now and set up a separate function *makeParticlesAndSprings()*, devised specifically for the purpose of populating these later on. We also need two more functions for our blob shape - one to handle the physics, compute collisions and apply the spring forces to the particles:
```
run(){
for(let s of this.springs){
s.update()
}
for(let p of this.particles){
let neighbors = grid.getNeighbors(p)
p.checkCollision(neighbors)
p.checkEdges();
p.updateState();
p.limitVelocities()
}
}
```
And another one to draw the particles and springs to the canvas:
```
display(){
for(let p of this.particles){
p.display()
}
for(let s of this.springs){
s.display()
}
}
```
And that's already a big chunk of our blob's functionality. Now we simply need to think about configuring the springs and particles in a meaningful manner.
### Blob Configurations
If you've checked out Roni's tweet where he showcases his blob sketch, and went one tweet deeper, you'll have seen a sneak peek behind the scenes where Roni shows what's going on behind the scenes:
> Debug view version of the same video: it's all particles and springs [pic.twitter.com/KCXKNvRhLb](https://t.co/KCXKNvRhLb?ref=gorillasun.de)
>
> — Roni Kaufman (@KaufmanRoni) [June 21, 2022](https://twitter.com/KaufmanRoni/status/1539282929679056898?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Let's observe what's going on here. The blobs in this case are essentially circles, spanning a number of particles around their circumference, connecting each particle with it's previous and next neighbor, as well as the particles one step further. There's also a central particle that is connected to all the other particles on the circumference, seemingly holding everything together.
Alright, that's a starting point! Let's try to recreate this - to do so let's add a couple more variables to our blob class:
```
constructor(startPos, radius, detail){
this.startPos = startPos
this.radius = radius
this.detail = TAU/detail
this.particles = []
this.springs = []
}
```
A start position around which we'll center our particles, a radius that determines the size of this circle, and a detail variable, which is simply an integer that specifies the number of particles that we want to place evenly spaced out around on this circle. All three of these are passed in as inputs to the Blob's constructor.
Now we'll add the other function that we already mentioned earlier - *makeParticlesAndSprings()* that takes care of placing the particles on the circle:
```
makeParticlesAndSprings(){
for(let a = 0; a < TAU; a+=this.detail){
let x = this.startPos.x + this.radius * cos(a)
let y = this.startPos.y + this.radius * sin(a)
let p = new Particle( new createVector(x,y) )
this.particles.push(p)
grid.addParticle(p)
}
for(let n = 0; n < this.particles.length; n++){
let p1 = this.particles[n]
let p2 = this.particles[(n+1)%this.particles.length]
this.springs.push(
new Spring(p1, p2, dist(p1.pos.x, p1.pos.y, p2.pos.x, p2.pos.y), .25)
)
}
particles.push(...this.particles)
}
```
Nothing too crazy here, we just compute the coordinates of the particles the standard trigonometric way, converting from polar coordinates to their Cartesian counterparts, which we use to create the particle and add it to the Blob's designated array, as well as the lookup grid.
Then in another loop we go over the particles one by one and connect them to their immediate consecutive neighbor with a spring. The rest length of these springs is the distance between the particles' positions on the initial circle. The stiffness parameter can be anything really, here I chose a moderate value of .25\. We add these springs to the blob's *springs* array. And finally we also store references to the blob's particles in the global particle array that we use to check for mouse interactions.
Not having added a central particle yet, let's see what this looks like by creating two blobs and drawing them to the canvas:
Ah well... pretty poopy. We get two particle chains that promptly collapse into themselves, since there aren't any constraints that push the particles to try and maintain the structure of the initial shape. Let's add the central particle and the springs that connect it to all other particles, as well as another spring connection to neighbors one step further away, just like in Roni's sketch:
```
let centerParticle = new Particle(new createVector(this.startPos.x, this.startPos.y))
this.particles.push(centerParticle)
grid.addParticle(centerParticle)
for(let p of this.particles){
this.springs.push(
new Spring(p, centerParticle, this.radius, .2)
)
}
```
And in action this looks as follows:
And that's much better already!
## Different Configurations
One thing that I didn't like about this blob configuration is that it can fold into what looks like a taco, when the central particle is dragged around too quickly:

My blob don't jiggle jiggle, it folds.
I don't really like that, and overall these blobs are also not as squishy as I would like them to be, they stay relatively round at any given moment. What if we drop this central particle again, and do it a bit differently - for instance, what if we hide another smaller circle of particles inside of the outer one?
That's actually pretty nice, the blobs are much more deformable in this scenario, and kind of try to return to their original shape when they don't collide with anything else. We can also add more springs in between the two particle rings in an attempt to make them less jiggly:
That's also not bad. Can we get a similar behaviour without an inner ring of particles? And instead add more springs to the original outer ring making it more rigid?
Here we're simply adding springs with increasingly distant neighbors to each particle, but with decreasing stiffness, dividing the stiffness factor with the loop variable. This has the effect that the skin of the blob doesn't fold that drastically anymore at any given point. Now what if we combine both ideas in one:
I'm not entirely certain if this is better than the other ideas individually, but *better* here is quite a subjective term since it all depends on what you want to do with these blobs. I'll leave it here, maybe you can come with some cool cofingurations or even completely different approaches to modeling these blobs such that they have new and interesting behaviors. Let me know!
## Closing Thoughts
In this post we had a look at soft body blobs, and how to go about making them. Even though it's not an incredibly difficult task from a programming point of view, there's a lot of room for improvement and fine-tuning the particle-spring systems to get interesting behaviors.
Furthermore there might more constraints that we can add to our blob shapes to make them behave in a more natural manner, for instance we could enforce them to maintain a consistent volume - however at this point I have no idea how I would go about doing that. Although I'm already exchanging ideas with some folks on the topic! 👀 If there's any particular direction you'd like me to take this in the next installment, let me know in the comments or shoot me a DM over on my socials!
**That's it from me, let me know what you thought about this article in the comments 👇 otherwise consider sharing the post with friends and family on your socials, as well as signing up to the newsletter to receive updates whenever there's new content. Cheers, happy coding \~ Gorilla Sun 🌸**
## Sign up for Gorilla Sun
A blog about making art with code. Here you can find tutorials and articles on Creative Coding, Generative Art, and Computational Design.
Subscribe
Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
### Gorilla Recap 14
URL: https://www.gorillasun.de/blog/gorilla-recap-14/
Last updated: 2023-12-19T23:11:28.000Z
**Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I go over everything that I found noteworthy from the past week. Hope you have a good stay!**
---
Just to kick things off, and since I've already covered the bird site events a number of times, I feel like it's my duty to report on it again... let's have a look at it, shall we?
Very soon, Twitter will be no more. I'm not certain what it will be called, but the antepenultimate letter of the alphabet just doesn't roll off the tongue as nicely as the familiar 'Twitter'. I feel that I'm witnessing the plot-line for a dystopian future:
[Twitter is being rebranded as XThe bird site may lose its logo on Monday.The Verge/cdn.vox-cdn.com/uploads/chorus_asset/file/24805464/F1x5VdQX0AA9Sgt.jpeg)](https://www.theverge.com/2023/7/23/23804629/twitters-rebrand-to-x-may-actually-be-happening-soon?ref=gorillasun.de)
Out of all the previous changes to the bird-site this seems like the worst one yet... I'm not entirely certain if I will continue using *Twitter* if this continues. I genuinely enjoy the interface, especially with how relatively easy it is to post media on the platform. I like it because things are familiar.
If there's going to be continuous drastic and erratic changes to the platform I'll probably stop posting on there as much, even though it is an integral part of the blog. A big chunk of traffic on the blog comes from the links that I tweet out, and has been the primary channel of communication for a long time now. Well, only thing that can be done at this point is to wait and see how things will go down.
## Genart Updates
### The Human Shader Project
Why learn Shader programming if you can become the Shader? That was the idea behind Inigo Quilez's Human Shader project, where the pixel values of the canvas are computed by means of a distributed human effort.
> Hello, I present you with the Human Shader, a project where anybody can participate and help create the first ever human-brain-only powered shader and mathematical image! Please join us and be part of history [pic.twitter.com/QxkWw5gNZF](https://t.co/QxkWw5gNZF?ref=gorillasun.de)
>
> — inigo quilez (@iquilezles) [July 18, 2023](https://twitter.com/iquilezles/status/1681400126034808833?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Every person that chooses to participate, claims a pixel and then needs to compute the RGB values of that pixel using a worksheet - essentially simulating what the shader would have done for that pixel. Yours truly has claimed the pixel with coordinates (30, 31) - initially making a wrong calculations, leading to a wrong RGB color... correcting it later however. Inigo decided to keep the other errors in however, saying that he found them 'cute'. Keep your eyes peeled for his coming youtube video on the experiment.
### N=12 group show on Feral File
12 generative artists join forces under the guidance and curation of Aaron Penne - the group exhibition N=12 places an emphasis on the "wonderfully silent dialogue" that happens behind the scenes of each piece.
> N=12 is now open to view on Feral File!
> ✨ Collecting begins July 20 ✨[https://t.co/AD3Y4UHmBT](https://t.co/AD3Y4UHmBT?ref=gorillasun.de)
>
> I worked with 12 artists across 7 timezones who shared their code and artistic processes for several months, creating generative artworks with a dozen distinct fingerprints [pic.twitter.com/cpKxL06ms5](https://t.co/cpKxL06ms5?ref=gorillasun.de)
>
> — Aaron Penne (@aaronpenne) [July 13, 2023](https://twitter.com/aaronpenne/status/1679503633099157504?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
[You can learn more about the individual pieces and read Aaron's statement on the exhibition page.](https://feralfile.com/exhibitions/featured?ref=gorillasun.de)

### Re—tain - New Genart Platform on Tezos
Coming to you from the makers of [Editart.xyz](https://www.editart.xyz/?ref=gorillasun.de) and [diyframe.xyz](https://diyframe.xyz/?ref=gorillasun.de), Piero and Andre Fuchs joined forces with Bruce (aka Studio Yorktown) to bring you a new generative art platform on Tezos. [The main page is already up](https://re-tain.xyz/?ref=gorillasun.de) and accepting submissions for early access - both for artists, and collectors!

Can't wait to see what the three of them have cooked up! [Go give them a follow on Twitter ](https://twitter.com/re%5Ftain%5Fxyz?ref=gorillasun.de)for their official announcements!
## Interesting Reads
### Demystifying Generative Art
My favorite read of the week is by far this analysis by Peter Bauman - instead of trying of making an analysis of the factors that make generative art 'interesting' or 'good', instead we lay the foundations for a framework of analysis that allows us to make such an informed analysis.
For instance, the age old question re-emerges: What is more important, the system operating in the background? Or the final output that is ultimately presented to the public? Or are they equally important? Or is it neither, and it's the concept that's the most important aspect of an artwork? The article discusses all of these angles of approach:
[Demystifying Generative ArtPeter Bauman (Monk Antony) develops a framework for appreciating and analyzing generative art through an investigation of the movement’s locus of artistic intent.Le Random — A Digital Generative Art Institutiontwo articles](https://www.lerandom.art/editorial/demystifying-generative-art?ref=gorillasun.de)
### Interview with Piter Pasma
If you've been following this newsletter, or are active in the generative art scene in any way, then Piter Pasma probably doesn't need an introduction. Also having played an important part in the N=12 exhibition, and having made ripples in the generative art world with his Universal Ray Hatcher, an interview with Right Click Save is well deserved. The interview goes dives deeper into Piter's beginnings from the demoscene to the early genart days on the Tezos blockchain and hicetnunc:
[The Interview | Piter PasmaAs a new group exhibition of the Generative Artists Club marks the start of Feral File 2.0, one of its stars speaks with Alex EstorickPiter PasmaAlex Estorick](https://www.rightclicksave.com/article/the-interview-piter-pasma-generative-art?ref=gorillasun.de)
### The Story Behind the Source
Camille Roux and Matthieu Segret, both prolific generative artists, released their new project *The Source* \- a beautiful piece of generative art that takes a stab at watercolor textures and the creation of colorful patterns. The write-up showcases some behind-the-scenes processes that lead to the creation of the artwork:
[The story behind The SourceThe year-long journey: from project kickoff to gm.studio dropImmutable CollectiveCamille Roux](https://immutablecollective.art/writing/the-story-behind-the-source/?ref=gorillasun.de)

### GUMBO
Mathias Isaksen is back with another banger project that's been in the works for quite a while: GUMBO. He details the past 6 months of development in this Twitter thread, sharing WIP images for every step of the progress:
> G(u)m(bo)!
>
> To celebrate tomorrow's launch at [@artblocks\_io](https://twitter.com/artblocks%5Fio?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de), I present to you all: The story of Gumbo. Those who have followed the development these last 6 months will probably find most of this very familiar🕵️ starting with the first and most recent Gumbo: [pic.twitter.com/1jNdTpMbvp](https://t.co/1jNdTpMbvp?ref=gorillasun.de)
>
> — Mathias Isaksen (@st4yhome\_art) [July 18, 2023](https://twitter.com/st4yhome%5Fart/status/1681285139525935105?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
### The story behind Mark Knol and the SMOLSKULLs
Not a new article, but I recently saw it floating around on Twitter again and since I haven't shared it on here yet, I thought that I might as well. Another very inspirational and insightful peek into the mind of an important persona in the generative art scene - an interview with Mark Knol and the story behind the SMOLSKULLs, one of the earliest hits on FxHash:
[fxhash - The story behind Mark Knol and the SMOLSKULLsToday I’d like to share an exciting conversation with Mark Knol. He is one of the most popular artists in the generative art Tezos community, and his Smolskulls can be seen all around this blockchain these days. He has published generative art for a while across multiple platforms - hit et nunc, fxh…fx logo](https://www.fxhash.xyz/article/the-story-behind-mark-knol-and-the-smolskulls?ref=gorillasun.de)
###
## Gorilla Articles
### Spring Physics, Particles and Meshes
Fourth installment in the physics system series that we started a while ago, this time we have a look at springs and how they can be simulated with code. Spoilers: we're going to be using Hooke's Law. Combining springs and particles we also now have a useful framework for creating dynamic and bouncy meshes:
[Spring Physics, Particles and MeshesSprings are an integral concept to physics, fundamental components used in many applications, coming to life with Hooke’s Law from the 17th century. In this post we have a look at how to code and simulate such springs and extend a previous particle system with them.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/spring-physics-and-connecting-particles-with-springs/)
I got some comments already on some further improvements, and directions into which I can take it next. For instance, we could try adapting this to 3D, as well as taking a dive into Verlet Integration, which is an alternative approach to coding a particle system.
### Gorilla Explorer
I worked some more on my Portfolio / Project Explorer. Re-implementing it from the ground up with Vue.js. There's still things that I think I can do better, and probably need some shuffling around, but I'm quite happy with the state that it's in right.
Also makes me realize that this is the first time that I'll publish an interactive app to the interwebs, hoping for some feedback on it when it goes live:
> Update on portfolio viewer (calling it Gorilla Explorer lol) ✨
>
> Re-implemented everything from the ground up with Vue.js. Still quite some work left to bring this over the finish line but overall v happy with the progress, but definitely learnt a lot putting this together! 🤓 [pic.twitter.com/aFVfO7nv7O](https://t.co/aFVfO7nv7O?ref=gorillasun.de)
>
> — Ahmad Moussa || Gorilla Sun (@gorillasu) [July 19, 2023](https://twitter.com/gorillasu/status/1681653700736024578?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
I also have plans to repurpose it for other things, like a learning tool for instance.
## Gorilla Sketches - A Glimpse into the Core
This week I actually found some time to explore some new ideas, and as thing go, ultimately leading to something completely different. You already got a *glimpse* of it in the header image. I present **A Glimpse into the Core!**

It's still a work in progress but I feel like I'm honing on something interesting. This one isn't very technical, but I just wanted to make something fun that looks cool. I went through many ideas in quick succession, you can see some more variations in my recent Twitter posts:
> Searching 🔍🧐 [#genart](https://twitter.com/hashtag/genart?src=hash&ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) [pic.twitter.com/WavZtMrWm8](https://t.co/WavZtMrWm8?ref=gorillasun.de)
>
> — Ahmad Moussa || Gorilla Sun (@gorillasu) [July 21, 2023](https://twitter.com/gorillasu/status/1682330328898125824?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)

## Music for Coding
This week I'm including one of my personal favorite bands: Snarky Puppy! At this point, I don't know how many times I've watched/listened to this rendition of their song Lingus - but it still hits all the same every time.
I got the chance to see them live in 2018, Cory Henry wasn't with them at the time, but I got to see him a couple months later doing a solo show. But anyway, listen to this astounding piece of music, it will give you good vibes guaranteed:
**And that's it from me this week again, hope this caught you up with all genart news of the past week! If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching \~ Gorilla Sun 🌸**
### Spring Physics, Particles and Meshes
URL: https://www.gorillasun.de/blog/spring-physics-and-connecting-particles-with-springs/
Last updated: 2023-08-03T12:58:00.000Z
**And another installment in the physics system series that I started a couple of weeks ago. I didn't anticipate writing this many posts on the topic, but I kept finding interesting things to extend the system that we've built thus far. In this post we'll have a look at springs: elastic connections with which we can tie together two particles. We'll also revisit a concept that I've covered in the early days of the Gorilla Sun Blog: Hooke's Law! Lastly we'll also have a look at creating dynamic and bouncy meshes with our springs and particles.**
---
A couple of days ago I was brainstorming new topics to write about, and my mind circled back to the particle system. I felt like there was a lot more there to unpack. For instance, how could I make the system more interesting? In it's current state the particles have a bit of a sad existence: although they can repel each other, there really isn't much more that they can do. What if we repurpose them and give their existence a new meaning. What if we tried to connect these particles, with a link, or an edge of some sorts? What would that end up looking like?
And how would you even code something like that? Now, the particles aren't only impacted by collisions with other particles, but an additional force comes into play, dragging, pulling and pushing it in various ways. The edge itself in this case also has some physical properties: it has a rigidity and an elasticity and needs to be able to exert a force on the particles that it's connected to. I'm making it sound more complicated than it actually is, but that's all of the things that we'll need to consider before we get started.
Here's the previous articles to get you up to speed:
[Programming a Particle System with ChatGPTYou’ve probably heard about ChatGPT, and you’ve probably heard that it can write code. In this post we’re taking it for a spin and explore a practical example - we’ll make it code a full-fledged particle system from scratch! Let’s see what the best prompts are for this purpose!Ahmad MoussaGorilla Sun](https://www.gorillasun.de/blog/programming-a-particle-system-with-chatgpt/)
A fun and lighthearted exploration of the capabilities of ChatGPT for creating different kinds of particle systems in P5JS
[An Algorithm for Particle Systems with CollisionsIn this post we will program a particle system in p5js from scratch. We’ll mainly dicuss object oriented programming and delve into the necessary physics concepts to compute collisions, all while implementing a full particle simulation with P5JS.Ahmad MoussaGorilla Sun](https://www.gorillasun.de/blog/an-algorithm-for-particle-systems-with-collisions/)
Coding a particle system from scratch covering all the necessary concepts from object oriented programming to simulating and coding physics.
[Optimizing Particle Systems with a Grid Lookup and Spatial HashingIn this post we have a look at a method with which we can greatly improve a collision detection system. Using a lookup grid we can greatly reduce the number of required checks between particles. We will also look at some methods to optimize this lookup grid.Ahmad MoussaGorilla Sun](https://www.gorillasun.de/blog/particle-system-optimization-grid-lookup-spatial-hashing/)
A method for optimizing the previously programmed particle system, allowing us to crank up the number of particles and creating very large systems.
And here's what we'll make in this post:
You can rerun the sketch a couple of times to see variations, as well as click and drag the particles around the canvas.
## The Particle System so Far
Thus far we've put together a neat little object oriented particle system: particles are self-sufficient entities that can move around on the canvas and can detect other particles, colliding and bouncing off of them. Later on, we also added in a grid-lookup which speeds things up significantly, allowing us to draw a relatively large number of these particles to the canvas.
To briefly summarize, in the first post, we created the heartpiece of our code: the particle class. It allows us to instantiate several particle objects. This particle class has a number of member variables that describe it's position and movement, where the movement is described by a velocity and acceleration vector. In every iteration of the draw loop we update the position of the particle according to these vectors and simultaneously check for collisions with other particles which can in turn affect the values of these vectors.
Furthermore, since we don't necessarily know which particles are currently in the vicinity, we theoretically need to check for a collision against all other particles. This can get quite slow. A smarter way to do this, is by only checking for particles that actually are in the vicinity, and a convenient structure that allows us to do so is a grid (lookup). This grid divides the canvas into several cells, and at any given moment, a particle can only touch upon a few of these cells. Hence we only need to fetch the particles that are also currently in these cells and check for collisions against those.
From a bird's eye view, this is already all there is to it. Naturally implementing this is a different beast, which you can learn about in the previously linked posts.
## Springs and Brush Strokes
This is a topic that is near and dear to my heart, since it's one of the first things that I studied when I found my way into creative coding, and I've touched upon springs in this previous article from way back when:
[Simulating Brush Strokes with Hooke’s Law in P5JS and ProcessingHooke’s Law is generally found in physics and concerns the behaviour of springs, however it can also come in handy for simulating brush strokes programmatically.Ahmad MoussaGorilla Sun](https://www.gorillasun.de/blog/simulating-brush-strokes-with-hookes-law-in-p5js-and-processing/)
I came across a sketch on OpenProcessing by a Japanese user going by the name of *Bun.* The sketch revolved around drawing pretty convincing and realistic brush strokes. I thought that this was super cool and dove straight into the code, discovering that there was also an accompanying tutorial for it.
Now, the million dollar question is, what do these brush strokes have to do with springs? Well, the brush in this case is actually simulated by means of a spring that's dragged behind the cursor, all while depositing 'ink' on the canvas. The ink in this case simply being many circles that vary in size depending on how fast the brush is being dragged.
To simulate this spring we make use of a formula from a dude name Robert Hooke. We'll get into what this formula is about in the next section!
## Hooke's Law
So what's Hooke's Law? In the 17th century Robert Hooke formulated a very neat way to represent linear elasticity. It's essentially a principle in physics that describes the relationship between the deformation of a spring (the change of its length) and the forces applied to this spring. It states that the force required to extend, or compress, a spring from it's natural rest length, is directly proportional to the amount of displacement from said rest length.
Mathematically this relationship can be expressed with the following formula:
\\( F = -k\*x \\)
Here, F is the force applied to the spring, k is the spring constant, basically the stiffness parameter, and x is the amount of displacement. Here, the negative sign is required, because the force of the spring counteracts the external force and pushes in the opposite direction. We'll see how this translates to code in just a second.
## Connecting Particles with Springs
Let's implement what we've discussed in the previous section, starting off with a spring class that we'll subsequently use to connect two particles:
```
class Spring{
constructor(particleA, particleB, restLength, stiffness){
this.particleA = particleA
this.particleB = particleB
this.restLength = restLength
this.stiffness = stiffness
}
}
```
The first two member variables of our spring class are self-explanatory, simply references to the two particles that the spring is connecting with each other. To correctly simulate the behavior of a spring, we need to make use of the positional information of the two particles that it's connected to.
The other two parameters specify the length of the spring at rest as well as a stiffness factor. The rest length of a spring is the length of the spring when it is in its undeformed, unstretched, or uncompressed state, its the natural length that the spring assumes when there are no external forces applied to it. Generally, springs naturally counteract the external forces exerted on them and try to return to their rest length. The stiffness factor is one such parameter. It determines how strongly the spring counteracts these external forces: the stiffer a spring the more reluctantly it will deviate from it's rest length, and the more force has to be exerted on it to make it deviate from it's rest length.
Now, let's see how this works - here's the update function of our spring class, again making use of P5's useful vector class and functions:
```
update() {
// 1
let d = p5.Vector.sub(this.particleA.pos, this.particleB.pos)
// 2
let dst = d.mag()
// 3
var deformAmount = dst - this.restLength;
// 4
var restorativeForce = this.stiffness * deformAmount // F = -kx
// 5
let f = p5.Vector.mult(p5.Vector.div(d,dst),restorativeForce)
// 6
this.particleA.addForce(p5.Vector.mult(f,-1));
this.particleB.addForce(f);
}
```
There's a couple of parts to it, let's go over them step by step:
1. We compute the distance between the two particles, simply by subtracting their positional vectors from each other.
2. We turn this quantity into a positive value: we can conveniently use the mag() vector function which computes the following sqrt(d.x . d.x + d.y . d.y).
3. We compute the amount of deformation (extension or compression), by subtracting the distance between the particles from the length of the spring at rest. The sign of this value in this case indicates if the spring is compressed or extended.
4. Hooke's Law: we compute the force that the spring has to exert to counteract the particles pull on the spring, which simply is the stiffness of the spring multiplied by the amount of deformation.
5. Here we compute the force vector that we have to apply to the particles, essentially the force that the spring exerts on these tow particles. This force vector is the normalized distance vector (the direction of the force), scaled by the restorative force given by Hooke's Law.
6. Lastly we apply the force to the particles, for this we'll give the particles an additional function into which we can pass in a vector and apply it to their velocities. Here we also need to invert one of them to point in the opposite direction, simply by multiplying by negative one.
The *applyForce()* function looks as follows:
```
addForce(f) {
this.velocity.add(f.div(this.mass));
};
```
Here we also take the mass of the particle into consideration. And that's already pretty much it, here's a complete minimal example (no grid lookup):
In P5's setup function we create N particles and then loop over them connecting each two consecutive particles. At the beginning they might be at random positions on the screen, but the springs will swiftly bring them together.
## Damping Factor
You might notice that there's an issue here, the particles will simply not stop wiggling around since the spring can never really reach and stay in it's equilibrium position. We can remedy this with a damping factor that we'll add as a new member variable:
```
// at the end of the spring's update function
let dampingForce = p5.Vector.mult(p5.Vector.sub(this.particleA.velocity, this.particleB.velocity),this.damping)
this.particleA.addForce(p5.Vector.mult(dampingForce,-1));
this.particleB.addForce(dampingForce);
```
We essentially create a force that counteracts the velocity of the two particles. In real life this would happen naturally as there's all sorts of friction that would slow down the particles. Here we need to introduce such a behavior manually, slowly dissipating the oscillations over time. The damping factor should only be a small value here, relative to the stiffness of the springs.
Adding in this snippet, we get:
And that's a much smoother behavior now.
## Creating a Mesh
Now we can take this a bit further and create a full fledged mesh with what we have, simply by wiring up the particles with springs. Let's start simple, and say we have four particles, we'd connect each one of them with all other particles:
The diagonal springs need to have a little bit of a longer rest length in comparison to the other springs connecting consecutive particles. Assuming that the springs of all consecutive particles are of the same length, these diagonal springs will be the diagonals of a square, and the formula for their length is the rest length of the shorter springs times the square root of 2\. In our case since the shorter springs have a length of 50, then the diagonals have a length of 50\*sqrt(2), which is slightly more than 70.
Naturally we can also form a rectangle or any other rectangular shape, and the system will naturally come to a resting position. Here we assign random rest lengths to the connecting springs:
But we don't end up with a pretty square shape like before.
Now let's extend this and make a larger mesh. Again, we don't actually need to modify any parts of the particles or spring class, we just need to wire things up in a grid-like manner. All of this is done in the setup function in which we create the particles and springs:
```
N_PARTICLES_X = int(random(2,7))
N_PARTICLES_Y = int(random(2,7))
let xspc = (WID-PAD*2)/N_PARTICLES_X
let yspc = (HEI-PAD*2)/N_PARTICLES_Y
let particle_grid = []
for(let x = 0; x < N_PARTICLES_X; x++){
let column = []
for(let y = 0; y < N_PARTICLES_Y; y++){
column.push(new Particle(new createVector(PAD+x*xspc, PAD+y*yspc)))
}
particle_grid.push(column)
}
for(let x = 0; x < N_PARTICLES_X-1; x++){
for(let y = 0; y < N_PARTICLES_Y-1; y++){
springs.push(new Spring(particle_grid[x][y], particle_grid[x+1][y], 50, .13));
springs.push(new Spring(particle_grid[x][y], particle_grid[x][y+1], 50, .13));
springs.push(new Spring(particle_grid[x][y], particle_grid[x+1][y+1], 50*sqrt(2), .13));
springs.push(new Spring(particle_grid[x][y+1], particle_grid[x+1][y], 50*sqrt(2), .13));
}
}
for(let y = 0; y < N_PARTICLES_Y-1; y++){
springs.push(new Spring(particle_grid[N_PARTICLES_X-1][y], particle_grid[N_PARTICLES_X-1][y+1], 50, .13));
}
for(let x = 0; x < N_PARTICLES_X-1; x++){
springs.push(new Spring(particle_grid[x][N_PARTICLES_Y-1], particle_grid[x+1][N_PARTICLES_Y-1], 50, .13));
}
for(let x = 0; x < N_PARTICLES_X; x++){
for(let y = 0; y < N_PARTICLES_Y; y++){
particles.push(particle_grid[x][y])
}
}
```
This looks complicated, but it's actually very straightforward. We instantiate the initial positions of the particles in the shape of a grid on the canvas, depending on the number of particles that we want to have vertically and horizontally and store them in a 2D array.
Then we loop over this array and wire up the particles, connecting each particle with it's right neighbor, bottom neighbor and the particle to the bottom right of it. The bottom particle is also connected to it's top right neighbor. We do this for all particles except those in the last row and column as they don't have these neighbors. For these we need an extra loop to connect them. Lastly we simply copy over the particles into the simple array that we use to iterate over the particles in the draw loop. We don't need the 2D array anymore. And that's pretty much it, now we can see various types of meshes emerge:
I had to minify the code for the snippet to work, but you can simply copy it over into the p5 editor or OpenProcessing and auto-format the code to play with it.
## Mouse-drag for Particles
Let's also quickly add in the ability to drag particles with the mouse and see how the meshes behave in that scenario - for this we need two flags and also need to modify p5's inbuilt mouse listeners:
```
function mousePressed() {
for (let p of particles) {
let distance = dist(mouseX, mouseY, p.pos.x, p.pos.y);
if (distance <= p.radius) {
dragging = true;
dragParticle = p;
break; // Stop checking the rest of the particles
}
}
}
function mouseDragged() {
if (dragging && dragParticle) {
dragParticle.pos.x = mouseX;
dragParticle.pos.y = mouseY;
}
}
function mouseReleased() {
dragging = false;
dragParticle = null;
}
```
There's probably a better way to do this, but sufficient for now:
## Closing Thoughts
It kind of blows my mind that with relatively little such an interesting system emerges. The beauty of emergence: the mesh doesn't really know that it exists, it's simply the particles and springs working in tandem to create this intricate and dynamic structure.
I think this is a good point to end this, a next step might be to take this into 3D, or creating more complex mesh-like structures with springs, and combining them with other attractive forces, etc.
**As always, I hope you enjoyed this post, I definitely had a lot of fun writing it. If you did, consider sharing it on your socials, or signing up to the newsletter to get updates whenever new content is posted on the blog. It helps a lot! Otherwise, cheers and happy sketching \~ Gorilla Sun 🌸**
### Gorilla Recap 13
URL: https://www.gorillasun.de/blog/gorilla-recap-13/
Last updated: 2023-12-19T23:11:33.000Z
**Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I go over everything that I found noteworthy from the past week. Hope you have a good stay!**
---
## Twitter Creator Payout Program
Why do I write so much about Twitter on here? Over the past two years twitter has become my main social media outlet, and although it isn't the best platform for organic growth, it's been good for the type of content that I create.
Besides that, most creative coding, genart, and tech folks are on Twitter - hence, it is (used to be) a great way to connect with people. These days it seems that I'm having much more meaningful interactions over on Mastodon though.
Whereas the bird site finds itself in a constant state of upheaval - hot off the press, we have an announcement regarding a [Creator Ads Revenue Sharing Program](https://twitter.com/Twitter/status/1679572360695824384?ref=gorillasun.de):
[](https://twitter.com/Twitter/status/1679572360695824384?ref=gorillasun.de)
Oh btw, I'm so done with Twitter Embeds - for everything that's not a video I'll include a screenshot from now on with a link to the original tweet. In case that the site completely burns down I'll still have the image data.
Getting paid for being a creator on Twitter doesn't sound so bad, right? Feels like a step in the right direction. Ah, but hold up, there's a catch - let's have a look at the requirements to be elligible for this revenue sharing program:

Ah, there we have it. You have to pay money to potentially have the chance to make some money from this revenue sharing program. There's some more things about here that aren't immediately evident. For instance, you're not getting for the impressions per se, but rather for ad impressions underneath your tweets. Moreover, only Twitter blue subscribers count towards these ad impressions. If you're familiar with how ad impressions, you'll know that one impression is at most only a couple of cents.
This video by Jon Cartwright summarizes this entire fiasco very well:
> this site sucks [pic.twitter.com/mCwX6P4h1v](https://t.co/mCwX6P4h1v?ref=gorillasun.de)
>
> — Jon Cartwright (@JonComms) [July 14, 2023](https://twitter.com/JonComms/status/1679835348250112000?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Still, I'm not entirely certain on how things will go with this. Maybe against all odds this will actually work out somehow? Anyway, enough of Twitter now.
## Gorilla Discourse Forum
Last week I asked on Twitter if folks would be interested in a forum for the blog. Although there weren't that many votes, the response was overall a bit mixed:
> Quick question - would there be interest in a forum section on the blog? For asking questions about code/creative coding/genart related topics?
>
> — Ahmad Moussa || Gorilla Sun (@gorillasu) [July 13, 2023](https://twitter.com/gorillasu/status/1679451967624556548?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
And understandably so, I also have my doubts about the usefulness of such a forum - do we really need another place to discuss code related things? There's already quite a few places where this can be done, my favorite being Raph's birbsnest which is a wonderful little community, then there's like another dozen other discord servers that also revolve around code related things, like the official p5 server, the fxhash server, praystation's server, just to name a few.
Why did I think that the forum would be a neat thing to have? Before I looked into how to set up the discourse I came across this post:
[✨ Introducing Discourse on Ghost - Reimagining the integration!🚀 I’m thrilled to announce Discourse on Ghost - a powerful (open source) tool that allows you to create a seamless and engaging community experience on your Ghost Publication! Discourse has rich discussion capabilities that allow you to create a truly immersive and interactive community experience…Ghost Forumvikaspotluri123](https://forum.ghost.org/t/introducing-discourse-on-ghost-reimagining-the-integration/36844?ref=gorillasun.de)
Essentially an integration that provides a single-sign-on SSO solution for Ghost and Discourse, meaning that, if you sign in to the Gorilla Sun Blog you also automatically get logged in to the discourse forum. I think this is really convenient for the user and eliminates the hassle of having to go through a sign up in yet another place. It keeps things in the same space.
Now, unfortunately this is not feasible the way that I have Ghost set up, I'm not self-hosting my Ghost blog, hence I can't easily make the required configurations for this. Should I switch over to self-hosting the blog then? Imo the negatives outweigh the positives - for instance I wouldn't know what I'd be doing and I'd probably break a lot of things, and the associated hosting costs would probably end up a bit higher. I'll probably practice it a little bit in the coming weeks and then reassess how I feel - self-hosting at some point in the distant future seems inevitable.
Although the SSO solution isn't possible, I did however end up spinning up my own discourse instance on a digital ocean droplet, I got enough free credits to have it up for two months now, so let's see how this goes. [You can find the forum here](https://forum.gorillasun.de/?ref=gorillasun.de):
[](https://forum.gorillasun.de/?ref=gorillasun.de)
Sign up a make a post if you feel like it!
## Genart Updates
Some updates from the world of genart and creative coding!
### NFT Show Europe
IRL highlight of past week was without a doubt the NFT show europe event held in Valencia, I wasn't there physically but I saw that folks had a good time over on Twitter:
[](https://twitter.com/loackme%5F/status/1680135379523960832?ref=gorillasun.de)
Genart panel at NFT Show Europe in Valencia
One really cool thing that caught my attention was [Mekhno](https://twitter.com/mekhno%5Fart?ref=gorillasun.de)'s little live minting setup: an ipad + a mini printer for his project **a reveure!**, check out his profile for some videos of the printer in action:
[](https://twitter.com/mekhno%5Fart/status/1679755041521934338?ref=gorillasun.de)
Also thanks Mekhno for a spot on the allowlist! Here's my iteration, simple but beautiful:
[](https://www.fxhash.xyz/gentk/FX1-73890?ref=gorillasun.de)
[a reveure! #46](https://www.fxhash.xyz/gentk/FX1-73890?ref=gorillasun.de)
### Highlight Launch Announcement
Another contender enters the arena: Highlight, a new generative art platform on Ethereum. I believe that it'll be open access right from the get go, and having had a sneak peek behind the scenes 👀 I have to say, that I'm really impressed by the interface so far:
> The first fully open access generative art platform on Ethereum.
>
> Launching 7.26
>
> 👇 [pic.twitter.com/upLaMWlGPP](https://t.co/upLaMWlGPP?ref=gorillasun.de)
>
> — Highlight (@Highlight\_xyz) [July 13, 2023](https://twitter.com/Highlight%5Fxyz/status/1679544111714410505?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
I'll most likely cover it more detail in the coming days!
### Le Random Chapter 2 of the Genart Timeline
We enter the modern era with Le Random's beautiful timeline page, in addition to a number of new articles that are very worth reading:
> Catch up over the weekend ⛱️
>
> 🔲 [@MonkAntony\_tez](https://twitter.com/MonkAntony%5Ftez?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)'s Generative Art Timeline: Chapter 2 (The Modern Era)[https://t.co/HC8E5myAf3](https://t.co/HC8E5myAf3?ref=gorillasun.de)
>
> 🔲 [@speciesofvalue](https://twitter.com/speciesofvalue?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)'s "Generations of Verse"[https://t.co/YA2mQLxEur](https://t.co/YA2mQLxEur?ref=gorillasun.de)
>
> 🔲 [@verse\_works](https://twitter.com/verse%5Fworks?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) \+ [@harvey\_rayner](https://twitter.com/harvey%5Frayner?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) \+ Le Random's "A Conversation with Harvey… [pic.twitter.com/OS6miWUhMB](https://t.co/OS6miWUhMB?ref=gorillasun.de)
>
> — Le Random (@lerandomart) [July 14, 2023](https://twitter.com/lerandomart/status/1679821409705422848?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
I particularly enjoyed this post on generative poetry, catching us up on past attempts up to the modern approaches that different artists take:
[Generations of VerseElisabeth Sweet touches on the history of generative poetry and its impact to this day.Le Random — A Digital Generative Art Institution](https://www.lerandom.art/editorial/generations-of-verse?ref=gorillasun.de)
## Interesting Reads
Besides new things I also came across these interesting reads this week.
### How the Slowest Computer Programs Illuminate Math’s Fundamental Limits
Came across this article while scrolling through the comments to a hilarious reddit post:

The article talks about "Busy Beavers", and if that doesn't strike a bell, then we're in the same boat. Essentially, busy beavers are maximally inefficient computer programs that are still fully functional and capable of terminating. What's so interesting about these slow programs? Well, it was discovered that these types of programs actually have some connections to some of the open problems in mathematics. One of the most interesting reads I've come across in a while:
[](https://www.gorillasun.de/p/8534f8ce-1fdf-4288-be2b-78fda6d60719/)
### Everything you always wanted to know about Mathematics
An approachable maths book? Blasphemy! Well Brendan W. Sullivan create such a beautiful book, and from the first couple of pages the book already makes you feel gain new insights:
> This maths book is trending on Hacker News!
>
> I took a quick look and realized how great of a book this is to learn how to think mathematically.
>
> It's 700 pages long and very approachable compared to other maths books. [https://t.co/Ra2EtO3ET9](https://t.co/Ra2EtO3ET9?ref=gorillasun.de) [pic.twitter.com/geBx0Zccdo](https://t.co/geBx0Zccdo?ref=gorillasun.de)
>
> — elvis (@omarsar0) [May 25, 2023](https://twitter.com/omarsar0/status/1661733108247580675?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
I'm saving this one for some upcoming long train rides. 🔖
## Gorilla Articles
### A Recursive Circle Packing Algorithm for Organic Growth
Some weeks ago, I don't remember exactly how, I came across [a sketch by Kevin Workman](https://happycoding.io/tutorials/p5js/creating-classes/bonsai-tree?ref=gorillasun.de) on his page Happy Coding - [fantastic site btw](https://happycoding.io/?ref=gorillasun.de) you should definitely check it out - in which he creates a mini Bonsai tree with a recursive circle packing procedure. I haven't seen circle packing done in that manner, hence I immediately dug into the code and also made a writeup for it:
[A Recursive Circle Packing Algorithm for Organic Growth PatternsIn this post we have a look at a simple algorithmic idea that can produce some very interesting organic looking patterns. At it’s essence it’s a circle packing strategy, but with the added twist that these circles are connected in a tree like structure. 🌳🦠Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/a-recursive-circle-packing-strategy-for-organic-growth-patterns/)
Super happy with how the tutorial turned out, the response over on Twitter was stellar. Haven't had a tweet pop off like that in a while:

### 3 Generative Artists - Consistency and Momentum
In the second post of the week we continue our *3 generative artists* series, we have a look at words of wisdom from Jared Tarbell, Tyler Hobbs and Kwame Bruce aka Studio Yorktown - intermingled with my personal experiences and anecdotes:
[3 Generative Artists - Consistency and MomentumPutting in the effort day after day and latching on to those fleeting moments of inspiration can go a long way to set yourself up for success. Advice from accomplished generative artists Jared Tarbell, Tyler Hobbs and Bruce aka Studio Yorktown.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/3-generative-artists-3-pieces-of-advice/)
Which artists would you like to see in the next installment? Leave me a comment!
## Music for Coding
Another one of those obscure Japanese 70s funk albums: uber funky bass lines, intricate drum patterns, soaring brass melodies and gnarly electric guitar licks to top it off. It's got it all - maybe not very calming but it works quite effectively for turning on the burners when you're coding on a deadline.
**And that's it from me this week again, hope this was a fun read and hope to see you in the next post! If you enjoyed it, consider sharing it with friends and family on your socials that have an interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content, cheers and happy sketching \~ Gorilla Sun 🌸**
### 3 Generative Artists - Consistency and Momentum
URL: https://www.gorillasun.de/blog/3-generative-artists-3-pieces-of-advice/
Last updated: 2023-07-16T14:39:48.000Z
**In this second installment of the 3 generative artists series, we have a look at another batch of accomplished artists and the pieces of advice that they give to aspiring coders. The overarching theme of this article is *consistency and momentum:* the journey to becoming a better version of yourself is woven in threads of persistency and deliberate effort.**
We'll have a look at words of wisdom from Jared Tarbell, Tyler Hobbs and Kwame Bruce aka Studio Yorktown.
## Jared Tarbell - Program Something Every Day
The first time I learned about Jared Tarbell's work, was while researching interesting generative algorithms and stumbling across his transcendent [substrate algorithm](http://www.complexification.net/gallery/machines/substrate/?ref=gorillasun.de):

A very simple system, that can create intricate, mind boggling patterns. Till today, I think it is one of my favorite computer generated artworks. Jared Tarbell has been at it for decades, arguably pioneering a era of generative art at the start of the 2000s - Jared Tarbell hasn't done many interviews, but this one with Artnome is an insightful window into his character and process:
[Interview With Generative Artist Jared Tarbell — ArtnomeAt its best, art is transcendent and sublime. However, few artists can regularly create works that evoke feelings of awe and wonder on that level in its viewers. Even fewer artists have managed to do this by writing code on a computer, a tool which many consider to be at odds with natural beauty, anJason BaileyArtnome](https://www.artnome.com/news/2020/8/24/interview-with-generative-artist-jared-tarbell?ref=gorillasun.de)
> “How do you become a good programmer and create meaningful work?” My advice is always this. Just program something every day, even if it’s something simple. You can just do a little bit every day, even just 15 minutes.
I think that this is one of the best pieces of advice that you can give to someone that's just starting out. Slowly getting comfortable with writing code, making it an effortless process. The same way that writing in your native language probably isn't a big challenge. Making foreign symbols and statements become more and more familiar. Soon you'll notice that the difficulty shifts from writing code, to reasoning about underlying problems that you want to solve with code.
And not just for beginners; even if you're already a long way down the road, it helps keeping the gears oiled.
I remember doing something similar back during uni days. Every time that I'd encounter a difficult piece of code or reading in an assignment, I'd challenge myself to read it every day until the due date. The first couple of times I'd just be as clueless as if I hadn't read it. I don't know what exactly happens in my brain when I do this, new connections get established, neurons getting connected in new ways, some brain patterns getting reinforced. After a few rounds, I'd simply start to understand it a little better, until it'd finally click.
That was essentially my strategy for understanding the formula of the vanilla Fourier transform. By the end of it I felt that I had a much deeper understanding of it. It's one of the most fulfilling feelings to me, to understand something after breaking your head over it for several days and weeks at a time.
When you find things difficult, you just keep doing them until they're easy.
Here's another example. When I started working on the first couple of posts for this blog, it was a massive struggle. From trying to find topics to write about, to doing the research and acquiring the necessary knowledge to then adequately address these topics and somehow produce a relevant and meaningful piece of writing... being a "blogger" seemed like an insurmountable mountain.
Painstakingly typing in one word after another into the editor, re-reading whatever I'd written, finding that it was an incoherent mess of word vomit, rewriting everything from scratch several times over, then finally deciding that it was done - for better or for worse - and ultimately hitting that publish button with a mixed bag of self doubt and impostor syndrome.
And all of this many times over. I've gotten a lot more comfortable with the entire process at this point. But only because I've subjected myself to the *process* so many times. Behind the scenes, there also lies a big folder of posts, all in various states of completion, that will likely never see the light of day. But it wasn't a waste of time, each single one of them was a meaningful learning experience.
And naturally, it's the same when it comes to writing code and sketching. Maybe another way to frame this: it's about becoming comfortable with being uncomfortable. Building a habit, and automating some of the associated mental processes can a go a long way.
> You’d be surprised how good of a programmer you are by the end of the first month of doing something like that.
Program something every day. Do it.
## Tyler Hobbs - Putting in the Time
Sometimes the most daunting thing is sitting your butt down and getting started on that idea that's been living at the back of your mind like a little devil. Pestering you, wanting to be made real.
Beside Zach Lieberman, another one of my very first generative art idols was Tyler Hobbs. You probably know Tyler Hobbs as the creator of the pivotal generative blockchain project [Fidenza](https://tylerxhobbs.com/fidenza?ref=gorillasun.de):

A piece of writing of his that had a lasting impression on me, was his essay titled Reflections on Five Years of Making Art Through Programming:
[Reflections on Five Years of Making Art Through Programming — Tyler HobbsI recently passed the five year anniversary of when I started making generative art. This was also approximately when I decided to get “serious” about making art. It’s hard to take an exact count, but I think I’ve made 600+ generative works at this point. I think I’ve done okay for myself.Reflections on Five Years of Making Art Through ProgrammingTyler Hobbs](https://tylerxhobbs.com/essays/2019/reflections-on-five-years-of-making-art-through-programming?ref=gorillasun.de)
Every now and then I still find myself coming back to it, especially when I'm frustrated or stuck on some piece of code that doesn't seem to be going anywhere:
> What I've been surprised to find is that "ideas" aren't really important. What is important is putting in time at the studio (or at the desk in your bedroom). When I physically make myself sit down and do something, new work comes out.
Many years ago I approached art in a completely different way than I do today. At that time I wasn't making any generative art, I was however actively trying to become a better musician. A big part of my daily practice routine back then, and arguably the most enjoyable and rewarding one, was trying to compose a little melodies. It's very similar to daily sketching actually - you come up with and idea and then you try to bring it to life as a visual or audible manifestation. There's a lot of parallels between the two, which is probably why I didn't find creative coding so foreign to begin with.
Well, where am I trying to go with this anecdote? Some days I'd come up with a relatively interesting tune *imo*, other days, I simply wasn't able to find that spark that led to an interesting sequence of notes. And on those days, I'd usually beat myself up over it, leaving me with a taste of disappointment for the rest of the day.
> I can even start with a premise like "this will be garbage, and I'm okay with that". After two or three rounds of garbage, something neat from the spirit realm happens to appear on my paper or screen and then I know what to work on.
At the time, I didn't understand, that the quality of those ideas didn't really matter. What mattered was that I was actively trying to mould my ideas and turn them into reality. Practicing this process and getting better at it. A side effect of this is, that you're also getting the *not-so good* ideas out of the way, making space for new things. It's unreasonable to think that you're gonna make something interesting every time you sit down to create.
Ideas don't matter that much. What matters more, is spending time with these ideas, harnessing them, what potential they might hold, discarding them and moving on to other things if they don't work, returning to older garbage ideas, combining them with new garbage ideas and turning them into slightly less garbage ideas. You get the point. And this isn't just about generative art, it's applicable to every passion you have. It's about showing up, and putting in the time.
## Bruce Studio Yorktown - Momentum, a hidden super power
[Bruce](https://twitter.com/StudioYorktown?ref=gorillasun.de) has quickly risen to be a household name in the generative art scene, you might know him from his generative blockchain projects Sabler, [Tesseract](https://www.fxhash.xyz/gentk/FX0-707613?ref=gorillasun.de) and more recently [Perpendicular Inhabitation](https://www.fxhash.xyz/generative/24169?ref=gorillasun.de):


[Perpendicular Inhabitation](https://www.fxhash.xyz/generative/24169?ref=gorillasun.de) and [Tesseract](https://www.fxhash.xyz/gentk/FX0-707613?ref=gorillasun.de)
I really admire his work - not only the stunning outputs, but also the mindset behind them: the unwavering consistency of aesthetic coherency in his work is something I find really fascinating. It's an aspect that I struggle to capture in my own creative work.
Bruce often also shares his thoughts on his process, recently he posted this very insightful post:

I can relate to Bruce's statement a lot. I find that I have moments where ideas are just flowing seamlessly, proliferating and spawning even more ideas. When these moments come, it's important to latch on to them, and not let them go to waste. I found that some of the magic of those moments can be stored in written form in a notebook, but it doesn't hit the same way.
Naturally, it helps to put yourself in a position from which it becomes easy to catch these moments of increased inspiration, and make it easy to convert them into meaningful work. I've found that I have a couple spikes throughout the day in which I'll get a lot more done than during the entire rest - and usually the work that I produce during those times is also qualitatively much better. For me, it's that one darned hour in the evening during sunset... and I'll be damned if I don't catch it.
Inspiration comes and goes in waves. And when that wave comes, you have to be ready to catch it.
## Concluding Thoughts
To summarize all of the above: showing up every day, putting in the hours, and at the same time being mindful about the process is a good way to set yourself up for success. I can personally vouch that these pieces of advice work, be it for generative art, or other creative work, like writing or making music.
**If you have thoughts on these topics I'd love to hear them, leave a comment or shoot me a message. Otherwise that's it from me, cheers and happy sketching! If you enjoyed reading this, consider sharing it on your socials or alternatively signing up to the mailing list and receiving updates whenever there's new content \~ Gorilla Sun 🌸**
### A Recursive Circle Packing Algorithm for Organic Growth Patterns
URL: https://www.gorillasun.de/blog/a-recursive-circle-packing-strategy-for-organic-growth-patterns/
Last updated: 2026-10-16T14:41:15.000Z
Rule based systems are one of the quintessential pillars of generative art, where sets of predefined rules coalesce into a multitude of different patterns and designs. Arguably, the most famous example for this is John Conway's Game of Life, a cellular automaton that gives rise to an infinite number of different patterns, emerging from a simple set of rules.
Building and playing with such a system is one of the most satisfying and fulfilling aspects of creative coding - an exploratory approach to coding is encouraged, and code tweaking is rewarded with new, exciting and unexpected results.
In this manner the question '*What if?*' becomes the overarching narrative that drives the sketch forward. What if I add this constraint? What if I add another rule here? What if I add a random offset there? You'll only know what you'll get by adding in these rules and running the code.
The other day I came across such a rule based system, that immediately sparked a lot of exciting ideas. For a while now, I'd been searching for an algorithm, or a strategy, that could generate organic patterns without being overly complicated. And that's exactly what I stumbled across.
---
*All credit here goes to* [*Kevin Workman*](https://happycoding.io/?ref=gorillasun.de) *who came up with the idea for the* [*2021 Genuary prompt *One process grows, another process prunes**](https://genuary2021.github.io/prompts?ref=gorillasun.de).
It's a simple concept, but the resulting patterns are really impressive. At it's core it's a type of circle packing procedure, with the added twist that circles are placed in a propagative manner, growing a tree-like structure outwards starting from an initial node.
You can find the original implementation on his website Happy Coding, where he's collected many more of his sketches and tutorials - I really recommend checking it out, as it's a treasure box of creative coding and p5js material:
[p5.js Example - Bonsai TreeUse recursion to create a digital bonsai tree.Happy Coding](https://happycoding.io/tutorials/p5js/creating-classes/bonsai-tree?ref=gorillasun.de)
That said, let's first see what this sketch is about and then dive into the nitty-gritty of the implementation!
Here's what we're going to put together:
## The Idea
The idea is pretty straightforward: starting from an initial node, we place a new node somewhere in it's vicinity, such that the original node becomes a parent node to the newly placed one. Now, both the original node, and the newly placed one have the ability to place further nodes in their vicinity. These nodes can then in turn place new nodes, and so on. Just like a tree that grows new branches, we *grow* a structure of connected nodes outwards populating the space on the canvas
The important thing here, is that nodes can only be placed in such a manner that they don't overlap or intersect other nodes that already exist on the canvas. Naturally, we also need to include a stopping criteria, to determine when this system should stop growing; either when the entire canvas has been filled, or when the individual *branches* have reached a certain maximum length.
And that's essentially the core idea that powers a large multitude of different patterns - depending on how we end up dialing in the parameters of this system:


Some stylistic explorations
For instance, we could set conditions on the size of the circles, such that newly placed nodes need to be smaller than their parent nodes. This would result in a pattern where branches decrease in size as we move outwards. We could also play with the colors of the nodes, such that child nodes inherit a slightly darker shade of their parent node's color. There's a **lot** of room for experimentation!
## Tree Data Structures
**How do we approach this idea from an algorithmic point of view?**
Well, the resulting patterns don't just resemble *trees*, but they can actually also be represented as trees. Let me explain what that means. Trees are very versatile data structures for a number of different applications:
> *In* [*computer science*](https://en.wikipedia.org/wiki/Computer%5Fscience?ref=gorillasun.de)*, a *tree* is a widely used* [*abstract data type*](https://en.wikipedia.org/wiki/Abstract%5Fdata%5Ftype?ref=gorillasun.de) *that represents a hierarchical* [*tree structure*](https://en.wikipedia.org/wiki/Tree%5Fstructure?ref=gorillasun.de) *with a set of connected* [*nodes*](https://en.wikipedia.org/wiki/Node%5F%28computer%5Fscience%29?ref=gorillasun.de)*. Each node in the tree can be connected to many children (depending on the type of tree), but must be connected to exactly one parent,*[*\[1\]*](https://en.wikipedia.org/wiki/Tree%5F%28data%5Fstructure%29?ref=gorillasun.de#cite%5Fnote-Subero%5F2020%5Fp.-1) *except for the root node, which has no parent (i.e., the root node as the top-most node in the tree hierarchy) -* [*Wikipedia*](https://en.wikipedia.org/wiki/Tree%5F%28data%5Fstructure%29?ref=gorillasun.de)
This one takes me way back to my undergrad days, when I was still learning about different kinds of data structures - I remember struggling a lot with linked lists initially, when we were tasked with implementing one from scratch in Java.
Based on the above explanation, a tree data structure boils down to connecting a number of nodes in a parent-child relationship. In this manner, we don't actually have to explicitly define this tree, nor does it exist as a tangible entity in our code, but rather, it emerges through a bunch of connected nodes. This will hopefully become clearer in the coming sections.
The best way to approach this, is in an object oriented manner, in which we create an abstract Node class that can store a reference to it's parent node, as well as an array of references to it's child nodes. A tree is actually a special kind of graph structure, where nodes can only ever have one parent node. Otherwise it would be a completely different beast. Armed with this node class, we can then create as many instances as we want and wire them up in a tree like structure. That way we can store their individual positions and sizes, but more importantly give them useful functionality to draw them to the canvas and allow them to spawn their own child nodes.
## A Recursive Placement Procedure
To grow our tree, we could simply store all nodes in a separate array, pick a node at random from that array, and then try to append a new child node to the selected one. If it's not possible to do so, we simply try another random node and so on. But this isn't that efficient, because once the tree grows larger, most of the nodes that lie somewhere towards the center, would already be surrounded by other nodes. Hence there wouldn't be much point in trying to attach new nodes to them, since there's no space anyway.
A better strategy for growing our tree, is the way that Kevin did it in his original implementation. Instead of trying to grow random nodes in the scene, we'll try to grow the root node (growing here means attaching another node), if this fails (due to lack of space), we pick one of it's already existing children (if it has any), and try to grow this child node instead. If that fails, we pick a child of that child node and repeat the procedure. In this manner, we're iteratively traveling down a *branch* of the tree. This can be done very elegantly in a recursive manner, such that we always end up traveling outwards towards the outermost child nodes. I believe that this way the tree grows in a much even manner.
This recursive procedure can be split into two distinct functions, one that creates a child node and attempts to place it, and another one that takes care of the traversal and calling the recursive step when the placement fails.
In the placement function we have to compute a number of things: an angle, a distance value and a size parameter, to determine where the node should be placed with respect to it's parent node. We also need to check for collisions between the to-be-placed node and already existing nodes. There are a couple of things that we also have to consider here. For instance, as the tree grows larger, the number of checks that we have to make will grow exponentially. This can get really slow at some point. For aesthetic reasons, we also don't want nodes to intersect the edges that connect already existing nodes on the canvas, which requires an additional separate check. We'll talk more about this in a bit.
## The Algorithm
Alright, now we can get to work and implement this algorithm!
### The Node Class
Let's begin with the Node class that constitutes the heart piece of our sketch.
```
class Node(parentNode, position, radius, depth){
constructor(){
this.parentNode = parentNode
this.childrenNodes = []
this.position = position // of the form {x: x, y: y}
this.radius = radius
this.depth = depth
this.id = idCounter++
}
}
```
Let's see what we have got here. Each node stores a reference to it's parent node, holds an array of children nodes - which will create later on - as well as information about it's position and size.
There's two additional parameters here, a depth variable that tracks how far down we are in the tree - we'll use it to check if we've reached a certain depth, in the case that we want to limit the maximum length of the branches. Furthermore, we also give the node an id via a global counter that gets incremented whenever a new node is created. This one we'll use during collision checks to conveniently avoid checking a node against itself.
Another function that we can also already cover here, is the function that draws the node to the canvas:
```
this.display = function(){
if(this.parentNode != null){
line(this.position.x, this.position.y,
this.parentNode.position.x, this.parentNode.position.y)
}
ellipse(this.position.x, this.position.y, this.radius)
}
```
It's simply an ellipse, in addition to a line that goes from the center of the current node to the center of it's parent node. Naturally for the root node this isn't possible as it doesn't have a parent node, hence we need to check for that with an if statement.
### The Recursive Procedure
Now to the meat of the sketch. As mentioned earlier, we'll implement the recursive step in two parts: a function that can create new nodes and tries to place them, and another one that repeats the placement process for an already existing child node if the prior function fails.
Let's start with the latter:
```
this.grow = function(){
let canGrow = this.attemptGrowth()
if(!canGrow){
let randChild = random(this.childrenNodes)
if(randChild){
randChild.grow()
}
}
}
```
Basically, we have another function called attemptGrowth() - we'll have a look at it in just a second - which returns a boolean value, indicating if a child node has been appended or not. If the result is truth-y, then we simply terminate.
If the contrary is true however, then we select an already existing child node from the array of child nodes of the current node (if there are any) and call revursively repeat this procedure for the selected node.
The code of the placement function attemptGrowth() looks as follows:
```
this.attemptGrowth = function(){
if(this.depth>0){
let angleFromParent = random(TAU)
let distFromParent = random(minBranchLength, maxBranchLength)
let childSize = constrain(this.radius*random(.8,.95), 2, 70)
let childPosition = {
x: this.position.x + distFromParent * cos(angleFromParent),
y: this.position.y + distFromParent * sin(angleFromParent)
}
let child = new makeNode(this, childPosition, childSize, this.depth-1)
// check for intersections here
let placeable = true
for(let n = 0; n < allNodes.length; n++){
if(
child.intersects(allNodes[n]) || this.boundaryCheck()
){
placeable = false
return false
}
}
// attach the new node
// and append to
if(placeable){
allNodes.push(child)
this.childrenNodes.push(child)
return true
}
}
}
```
There's a few things here that we need to address. Firstly we want to compute some values that indicate how the node, that is-to-be-placed, should be placed. We do this by calculating an angle and a distance value, convert from polar coordinates to Cartesian coordinates, and then store them. After selecting a radius for the child node, we can create a new node object with these parameters.
In the implementation by Kevin, the procedure for checking for intersections is also done in a recursive manner. But here I'm cheating a little bit and using a loop. Whenever we attach a new node, we'll actually also store a reference to it in a separate array, such that we can conveniently loop over this array and check for collisions. This comes at the cost of using more memory, but has the advantage that it allows the existence of multiple root nodes, if we want to have multiple trees in the scene that we don't want to overlap. We can still do it in a recursive manner later, by storing references to the root nodes.
To check for collisions between nodes we simply check if the distance between their centers is less than the sum of their radii. Circle collisions are the easiest type of collision to compute.
Overall, this strategy is quite flexible, later on we can try to do it a bit differently, for instance, we could try to attach new child nodes at the extremities first and then travel backwards instead of attaching nodes at the first possible occasion close to the center.
### A preliminary example
Let's take what we've got so far and put it all together:
In p5's setup function we're creating a single node which we'll use as the initial root/source node. We'll set it's parent to null, since it's not attached to any other node yet.
In the draw function we now simply need to invoke the grow() function of the source node, and the magic procedure that we describe earlier will start placing nodes, growing our first tree like structure.
## Node / Edge Collision
There's a couple of things in the above sketch that I think we can improve on; for instance I don't like that circles can overlap the edges that exist between some of the nodes.
For this we'd have to compute collisions between circles and line segments. However, since we don't have to actually determine the points of intersection between the node circles and the edge segments, we can simplify this and compute the point distance of the center of the node to the edge segment, which I believe is computationally slightly simpler and less taxing. I'm not going to go cover the math here and just show you how it's done.
We recur to this trusty old [resource by the legend Paul Bourke](http://paulbourke.net/geometry/pointlineplane/?ref=gorillasun.de), who's probably documented every type of intersection in existence:

An implementation for it can be found in [this stackoverflow answer](https://stackoverflow.com/a/1501725?ref=gorillasun.de):
```
function dist2(v, w) { return sq(v.x - w.x) + sq(v.y - w.y) }
function distToSegmentSquared(node, edge) {
p = node.position
v = edge.p1
w = edge.p2
var l2 = dist2(v, w);
if (l2 == 0) return dist2(p, v);
var t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;
t = Math.max(0, Math.min(1, t));
return dist2(p, { x: v.x + t * (w.x - v.x), y: v.y + t * (w.y - v.y) });
}
function nodeEdgeCollision(p, v, w) { return sqrt(distToSegmentSquared(p, v, w))}
```
And integrate into our sketch we'd get:
Basically, whenever we create a new child node, we also create an edge object represented by it's starting and end point (the center of the current node and it's parent) of the form \`{ p1: {x: x, y: y}, p2: {x: x, y: y} }\` and store it in a separate global array called edges. While trying to attach a new node to the tree, we can loop over this array and check if this new node intersects any of the existing edges - just like we check for intersections with other nodes.
## Edge / Edge Intersection
Now if you run this sketch a couple of times, you'll notice that there's still another issue. It's a bit subjective, but I also don't particularly like it when edges cross each other. To avoid this we'd need an additional line segment intersection test, a function that accomplishes this can be found in [this stackoverflow answer](https://stackoverflow.com/questions/9043805/test-if-two-lines-intersect-javascript-function?ref=gorillasun.de):
```
// returns true if the line from (a,b)->(c,d) intersects with (p,q)->(r,s)
function edgeIntersect(edge1, edge2) {
let [a,b] = [edge1.p1.x, edge1.p1.y]
let [c,d] = [edge1.p2.x, edge1.p2.y]
let [p,q] = [edge2.p1.x, edge2.p1.y]
let [r,s] = [edge2.p2.x, edge2.p2.y]
var det, gamma, lambda;
det = (c - a) * (s - q) - (r - p) * (d - b);
if (det === 0) {
return false;
} else {
lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;
gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;
return (0 < lambda && lambda < 1) && (0 < gamma && gamma < 1);
}
};
```
And in action:
Now we have much more control over the resulting pattern. When it comes to performance, this isn't quite that efficient, since we need to go over all other nodes and edges whenever we place a new node. A solution for reducing the number of necessary checks by implementing a grid lookup, I've covered how this works in this article:
[Optimizing Particle Systems with a Grid Lookup and Spatial HashingIn this post we have a look at a method with which we can greatly improve a collision detection system. Using a lookup grid we can greatly reduce the number of required checks between particles. We will also look at some methods to optimize this lookup grid.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/particle-system-optimization-grid-lookup-spatial-hashing/)
If you want to challenge yourself and implement it with this sketch, go for it!
I'll cover this in a second post, as this one is already getting quite lengthy.
## Concluding Thoughts
For the final code I added in a loop in the setup function to place a number of initial nodes such that they don't overlap:
So overall, besides being a really cool algorithm I also noticed that it's a much faster strategy for circle packing. You don't necessarily have to draw the connections between the circles, nor do you have to make the circles shrink the further you travel from the root node - and I think you'd get something that is visually very close to a regular circle packing algorithm. I think that way it's also a bit faster, because instead of trying random positions on the canvas - which are slowly populated by circles - we're actually trying to place circles in places where there potentially is free space. Starting the recursive procedure from the child nodes - backwards - towards the root could also potentially be an interesting exploration.
**There's more things in Kevin's code that I didn't cover here, for instance, there's the ability to prune a branch, which I find visually really cool. I'll cover that in the next post hopefully. That said, this one's a wrap. Big shout-out to Kevin and his lovely website! Cheers, happy sketching, and if you enjoyed this post consider sharing it on your socials \~ Gorilla Sun 🌸**
### Gorilla Recap 12
URL: https://www.gorillasun.de/blog/gorilla-recap-12/
Last updated: 2023-12-19T23:11:40.000Z
**Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I recap everything that I found noteworthy from the past week. Hope you have a good stay!**
---
This week we start with a bang - humbled to share that my entry for the Web3Writers contest was selected for the first prize!
> 🏆 Congratulations to our competition [@fx\_hash\_](https://twitter.com/fx%5Fhash%5F?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de) winners! 🎉🚀
>
> 🥇 First Place: [@gorillasu](https://twitter.com/gorillasu?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
> 🥈 Second Place: [@\_stc](https://twitter.com/%5Fstc?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
> 🥉 Third Place: [@sriceart](https://twitter.com/sriceart?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
>
> Thank you for sharing your knowledge and passion. You're all stars! Keep up the great work
>
> Articles in comments 👇 [pic.twitter.com/DygC7DZ7YF](https://t.co/DygC7DZ7YF?ref=gorillasun.de)
>
> — Temple Wallet (@TempleWallet) [July 10, 2023](https://twitter.com/TempleWallet/status/1678446609544224770?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
Congrats also to Agoston Nagy and Srice for their brilliant articles!
## Twitter more Volatile than Ever
In light of the recent erratic changes on Twitter, that seem to be completely at the whims of Elon's spurs of the moment, there seems to be a second surge of migrations from Twitter to other platforms. Especially with Meta's new threads app slowly rolling out.
I would have liked to give it a try at this point, but unfortunately it isn't available in the EU region yet due to data privacy regulations.

But it seems that an astounding number of people have already joined the new platform:
[Instagram’s Threads surpasses 100 million usersBut will the users stick around?The VergeJay Peters and Jon Porter/cdn.vox-cdn.com/uploads/chorus_asset/file/24774109/STK156_Instagram_threads_2.jpg)](https://www.theverge.com/2023/7/10/23787453/meta-instagram-threads-100-million-users-milestone?ref=gorillasun.de)
Meanwhile, I make my return to the pachyderm. The only reason that I stopped posting on Mastodon in recent months, as well as other platforms despite my best efforts sometimes, is because it's just a lot of work. Each platform has some different posting and formatting guidelines which can be a bit time consuming.
Besides that, I would really love to see the actual cage fight between Elon and Zuckerberg, simply because it would be unreal. Seeing how Zuckerberg works out, all of my money is on him:
[Mark Zuckerberg is ready to fight Elon Musk in a cage matchThe ball is now in Musk’s court.The Verge/cdn.vox-cdn.com/uploads/chorus_asset/file/24742194/350457055_218583294315389_8997521909640967870_n.jpg)](https://www.theverge.com/2023/6/21/23769263/mark-zuckerberg-elon-musk-fight-cage-match-worldstar?ref=gorillasun.de)
Is this the end of Twitter? Will Zuckerberg figuratively, and literally, deliver the knockout punch?
## Genart Updates
And yet again, there's been many new things in the world of generative art!
### P5 frameBuffer Released
I've seen Dave mention this a couple of times already, and he has previously also created a [framebuffer library](https://www.davepagurek.com/programming/p5-framebuffer/?ref=gorillasun.de) specifically for this purpose - but now it's finally part of P5, which is wonderful news. Once I give it a try I'll definitely make a post about it:
> p5 now includes support for framebuffers! If you use WebGL mode, this is like a more efficient createGraphics (this sketch [https://t.co/VcgV7cI79j](https://t.co/VcgV7cI79j?ref=gorillasun.de) uses 120 of them and runs decently on a phone!) and also lets you access 3D depth info. Stay tuned for tutorials and resources! 👀 [https://t.co/xcwsEH9hDL](https://t.co/xcwsEH9hDL?ref=gorillasun.de)
>
> — Dave Pagurek (@davepvm) [July 11, 2023](https://twitter.com/davepvm/status/1678604404730249216?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
### 1988 Interview with Sonya Rapoport
Sonya Rapoport didn't directly make art with computers but rather used computer printed documents as an artistic medium, she states:
> \[... \]my work is an aesthetic response triggered by scientific data. The format is computer print-out, a ritualistic symbol of our technological society.
Mark Webster points out this interesting interview with her from 1988 in which she's asked about computer art, her thoughts on it and how it will be regarded in the future:
> Sonya Rapoport | 1988 Interview[https://t.co/4hfuz5rIwc](https://t.co/4hfuz5rIwc?ref=gorillasun.de)
> I particularly like her take on the future of computer art. [pic.twitter.com/sTdQd3CZwG](https://t.co/sTdQd3CZwG?ref=gorillasun.de)
>
> — mark webster 🪸 (@motiondesign\_01) [July 6, 2023](https://twitter.com/motiondesign%5F01/status/1676886801229783040?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
More of her work can be seen here:
[Computer Printout Drawings – Sonya Rapoport Legacy Trust](https://www.sonyarapoport.org/project-type/early-computer-paper/?ref=gorillasun.de)
Excerpt: In early 1976, artist Sonya Rapoport chanced on a box of discarded computer printouts in the basement of the UC Berkeley Math Department, a find which eventually led to her reinvention as a digital artist.
### FxHackathon workshops resumes
Two new workshops were held over on the FxHash discord! '**Creative inputs as parametric space**' lead by Alejandro, creator of the innovative piece Pensado a Mano, and '**Concept Development. How to Tell a Story**' by Anika Meier.
They will soon be available on the FxHackathon page, here:
[fxhash — fxhackathon 2023: co-creation interfaces onboardingBuilding custom minting interfaces with fx(params)fx logo](https://www.fxhash.xyz/events/fxhackathon-2023:-co-creation-interfaces/onboarding?ref=gorillasun.de)
If you feel inclined to participate in the hackathon, you can also find all important information over on that page.
## Interesting Reads of the Week
### Lessons from the Catastrophic Failure of the Metaverse
It's hilarious that Meta thought this was a good idea, and I'm not sure if Meta actually knew what they were building. What's the actual use-case? It just seemed like an arbitrary mish-mash of VR spaces that you could visit. There was no appeal and no interest and that was reflected in the number of users.
The Nation paints a good picture of how things went down:
[Lessons From the Catastrophic Failure of the MetaverseDid the “creative class” learn anything from buying into a product that was obviously destined to flop?The NationKate Wagner](https://www.thenation.com/article/culture/metaverse-zuckerberg-pr-hype/?ref=gorillasun.de)
### Harvey Reiners Quasi Dragon Studies
Harvey Reiner's quasi dragon studies is one of the most interesting generative art projects that makes use of blockchain tech to create something really unique. Essentially, individual iterations of his token don't just exist as unique iterations by themselves, but rather, they can be combined into larger pieces. He goes into the details of this in the write-up:
[](https://medium.com/@harvey.rayner/quasi-dragon-studies-a-composite-generative-art-series-and-experimental-model-for-web3-community-1eea74a9deeb?ref=gorillasun.de)
### An Interview with Richard Bourne
Mentioned this one already in previous issues, but now the full conversation is up on the tubes:
It was really invigorating seeing Richard talk about his sketching practice, his excitement about OpenProcessing as a platform, and how it's a way for him to live out this passion. It definitely left a mark on me.
### A different kind of indie mobile game
I'm not entirely certain under which category to place this, but I found this really cool and inspiring. I have a sweet spot for minimalist video games with a creative take on a simple concept - and this trailer just hit the sweet spot.
> I have secretly been working on a twisty mobile platformer, which will be releasing later... this month. Anyone likes circles? ⚪️v⚪️ [pic.twitter.com/eFKqrcApPX](https://t.co/eFKqrcApPX?ref=gorillasun.de)
>
> — Nicolai (@nicolaigd) [July 5, 2023](https://twitter.com/nicolaigd/status/1676694689288794113?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
## AI Corner
### Chat GPT releases it's Code Interpreter
ChatGPT Plus users get access to a new powerful feature: the Code Interpreter. It's basically a tool dedicated to executing code based off of prompts, for instance, you can drop in an excel sheet with some data, and ask it questions about this data. It'll then create the code to compute and provide answers to your questions.
But that's just one example, it has many more use, for example data visualization as well as image processing cases and [this article provides a nice run-down](https://levelup.gitconnected.com/the-magical-chatgpt-code-interpreter-plugin-your-personal-programmer-and-data-analyst-f8cd69e8323b?ref=gorillasun.de):
[](https://levelup.gitconnected.com/the-magical-chatgpt-code-interpreter-plugin-your-personal-programmer-and-data-analyst-f8cd69e8323b?ref=gorillasun.de)
I'm most likely going to check it out and have a post up about it as well.
## Gorilla Articles
Last week I took a little vacation to rest, recharge and also reduce my social media usage a little bit - and I feel incredibly replenished, and excited to get resume work on some articles that are in currently the pipeline!
Even though I took a breather I did work on a post that I think came together really well: an introduction to the Vue framework!
[An Introduction to VueVue is an excellent framework for creating intricate and reactive user interfaces, while maintaining a manageable code base. In this article we cover the core concepts and build a minimal app to showcase Vue’s features.Gorilla SunAhmad Moussa](https://www.gorillasun.de/blog/an-introduction-to-vue/)
In past issues of the Gorilla Recap I've already mentioned that I had been working on a little tool that will serve as a personal portfolio, and after asking some of the folks over on the birbsnest discord for advice I was pointed towards Vue as being a good solution for this purpose. And after getting into it, it definitely made the code much easier to manage.
That's why I didn't want to lose any time and put together a little introductory guide that summarizes all that I have learned so far. In the post I go over Vue's component based architecture and how the framework makes it easy to put together an intricate interface.
## Gorilla Sketches
I only did a little sketching this week, but had an idea of combining hexagonal tilings with hachure patterns - something I haven't tried before. Additionally I wanted to see what it would look like if I filled the space in between the hachures with colors in a gradient like manner, I think there's something worth exploring here:


Not sure where this one is going yet, but it's an interesting exploration.
Besides that I also tried my hand at a skeuomorphic landscape sketch, which still needs some more work before I'll post more about it, but I'll give a sneak-peek here:


Generative landscapes, made out of thousands of tiny lines.
Hope to get in a lot of sketching this week though - and that said, I leave with these beautiful words from Bruce:
> To dance with creativity means hearing whispers of self-doubt and self-criticism. It is a rhythm, a flow, often an end-step in the act of creation. In this tango, missteps become growth, while stumbles turn into lessons. A reminder always, to be kind to ourselves and the process.
>
> — Bruce @ Studio Yorktown (@StudioYorktown) [July 11, 2023](https://twitter.com/StudioYorktown/status/1678667896296288258?ref%5Fsrc=twsrc%5Etfw&ref=gorillasun.de)
## Music for Coding
Tycho released a new single! And it absolutely slaps! Literally! It's a bit different from his previous stuff, but in a really good and funky way. Give it a listen:
**And that's it from me this week again, hope this was a fun read and hope to see you in the next post! If you enjoyed it, consider sharing it with friends and family on your socials that have an interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content, cheers and happy sketching \~ Gorilla Sun 🌸**
### An Introduction to Vue
URL: https://www.gorillasun.de/blog/an-introduction-to-vue/
Last updated: 2023-07-10T19:18:15.000Z
**In the past two weeks I invested a considerable amount of time on learning the Vue Javascript framework. This post is to document what I've learned so far, and to provide a gentle and approachable introduction to the framework for those interested in learning it as well.**
Although I'm still far from mastering it I believe that I now have a good enough grasp of the core concepts that make Vue an excellent framework for creating involved user interfaces. This article is therefore split into two parts - firstly, an explanation of Vue is from a theoretical point of view, followed by a gentle introductory example in which we'll build a simple app to highlight some of Vue's features and how they work together.
The only requirements to follow along with this post are some familiarity with HTML and JS, and how they work together to create the behavior behind webpages.
## What is Vue
Vue is a Javascript framework aimed at simplifying the creation of user complex interfaces. When doing things with vanilla JS things can often quickly get out of hand, and you'll end up with bloated code that is not maintainable. How many times to you need to fetch something by it's DOM id when you simply want to update a value displayed on your page? Well, no more, because Vue is intended to be the silver bullet to this imperative manner of doing things.
Vue takes a declarative approach to doing things. This means, that instead of manipulating the DOM directly, we actually just tell Vue what we want to do, and it takes care of the logic for us. Vue is also reactive, and will take care of passing around values between different elements in our interface, depending on how we wire things up.
This sounds too good to be true, however, this way of writing code comes with it's own set of challenges. For me personally, I found it a bit tricky to get used to writing code in that manner, but once you get the hang of it, it should be a walk in the park.
I don't want to waste too much time telling you *what* Vue is, and would much rather *show* you what Vue is. How it works, and how it improves on implementing things with vanilla JS. You'll understand what Vue is along the way.
### Good ol' Imperative Javascript
Let's say we want to make a very simple single page web app: a single button that tracks how many times it's been clicked. How would we do this with vanilla Javascript? Here's what this would look like:
Count is: 0
Let's start with the minimal html:
```
```
And the Javascript would be:
```
document.addEventListener('DOMContentLoaded', function() {
var count = 0;
var countBtn = document.getElementById('countBtn');
var countDisplay = document.getElementById('countDisplay');
countBtn.addEventListener('click', function() {
count++;
countDisplay.textContent = count;
});
});
```
Luckily there's event listeners in Javascript that allow us to create this behaviour. Here we simply fetch the button element by it's id from the DOM, after the DOM has loaded, and then attach the event listener to it such that it's triggered when the button is clicked. When this happens the variable counter is incremented, and is assigned to the textContent of the button variable.
Hmmm, okay... that works, but there's a few things that we need to address. That's already quite a lot of code for something very basic, that doesn't even do much. Besides, we also have our HTML and Javascript in two separate places: which means, if we were to make a change to one of the two, we'd also have to update the html/javascript counter piece. The more complex the interface, the longer the code, the more tedious making changes will become.
Let's try to recreate this exact example with Vue and see how the framework streamlines the creation of interactive elements in the page. After considering a couple of different examples, for instance a login form, I decided on borrowing this example from [vuejs.org](https://vuejs.org/guide/introduction.html?ref=gorillasun.de#what-is-vue), with some modifications. It's simply the shortest and most digestible example to give a preliminary showcase of vue.
### On the order of things
The biggest challenge of writing this article was deciding on the ordering of how to present the different vue concepts. Vue features are quite intertwined, hence as a beginner it's tricky to immediately get a complete picture of things when you get exposed to a chunk of foreign code right off the bat. We'll try to do things in an incremental and hands on manner.
It's also important to note here that there's multiple different syntactical ways to putting together the code for a vue app - I'll try to stick to the most straighforward manner of doing things, the one that 'clicks' for me at least.
Also noteworthy here - we'll be working with Vue 3, which works quite a bit differently from Vue 2\. I'm not certain however if these differences matter at a beginner level however.
## Vue Components
Ok, enough foreplay - let's get straight into it. In this second part we'll create our first vue app from scratch, using the previous vanilla javascript example as a starting point.
The main ingredient of creating vue apps are *components* \- you can think of them as individual building blocks that allow us to create the different parts of a complex UI. These *components* usually represent the individual elements in our web page's DOM.
Moreover, vue components are reusable and self-contained units of code that encapsulate the functionality, structure, and styling of specific parts of a user interface. Organizing these components in a parent-child-like relationship, allows us to model intricate interactions between different parts of the interface and have them communicate with each other in a meaningful manner. For instance, several smaller components can make up more complex, larger components.
The two main advantages of this modular approach are, firstly, a reactive UI where data and functionality is encapsulated within the different individual components, and secondly, an underlying codebase that isn't an atrocious spaghetti mess, but rather something that is much more manageable - in contrast to the vanilla js approach where things can get hairy really quickly. Both of there advantages stem from vue's declarative manner of doing things. What this means, will become clearer throughout the coming sections.
Even though Vue is one of the easier frameworks to learn, it still has some concepts that require a little bit of getting used to. At some points it might seem like it's its own programming language. Let me show you the ropes now, and it shouldn't be too difficult to get a grasp of what such a component operates.
### Our first vue app
Creating a vue app boils down to three lines of code:
1. Making an HTML container that will serve as a container for our vue app ``
2. Creating the app in a script tag/file `let app = Vue.createApp({});`
3. Mounting the vue app that we just created into it's designated container `app.mount('#app')`
With this knowledge let's recreate our clicker counter with vue. This time the actual HTML in the body of our page will be much simpler - actually, we're going to leave it empty for now; there's a better way to create the HTML button with Vue. Besides the container into which we'll mount our app, we also need a script tag where we'll place all of our Vue code:
```
```
And the Vue code to create the app:
```
let app = Vue.createApp({})
app.mount('#app')
```
The mount() function simply attaches the Vue app to the DOM such that it renders when we access the page. Okay, in the next sections we can actually start writing some Vue code!
### Root component and Vue Template Syntax
How do we create our HTML button now?
As you might have noticed, the createApp() function actually takes an input parameter. Here we simply passed in an empty object, but in reality this is the root component of our Vue app, that serves as the top level component and entry point of the entire application.
In what follows, we'll see that Vue components are mainly modeled as JS objects, that encapsulate certain, Vue specific, options (object properties basically) that define these components' appearance and functionality. In this case passing in an empty object didn't introduce any appearance nor functionality. So nothing will actually render yet. We'll also get acquainted with a few of these options in the coming sections.
At the very top of these component objects you'll most often see a property called *template*, which will contain a string consisting of HTML code that represents the corresponding DOM element of a particular component. It's essentially a blueprint for the component's HTML that will be rendered into the DOM where we place the component.
For instance, in our case:
```
vue.createApp({
template: `
`
`
})
```
Now this would actually render the template option of our root component into the div with the id *app*.
What's important to note here is that we generally use backticks to define this template string, as HTML itself sometimes contains single and double quotes. For example, if we assign a class or id to as tag attributes. While using backticks we don't have to worry about escaping these symbols.
The backticks also come in handy, because we'll be using some of Vue's template specific statements. These can be used to inject values or functionality into our template string.
Another thing worth mentioning here, is that this template code can be encapsulated as a separate file called SFC, short for Single File Component. This becomes useful when the template code becomes lengthy. In that case, for clarity's sake it makes more sense to store it separately.
### Reactive Data and Component Methods
This is a good point to introduce two other, frequently used Vue component options. The first one is known as the *data* function and is declared in the following manner, usually right after the template option:
```
let app = Vue.createApp({
template: `
`,
data: function(){
return {
count: 0
}
}
})
```
The *data* function should always return an object. This object is essentially a representation of the internal state of the component. For instance, our clicker counter button should be able to remember the number of times that it has been clicked over the course of it's life time. The best way to do this is by storing this click count as a property in the returned data object.
Now you'll also notice that we made a change to our template HTML - we added the count variable inside of two pairs of nested curly braces. **It's also known as handlebar syntax, or alternatively mustache syntax, if you need to google it at some point.** What is does, is that it'll automatically convert the double curly brace statement into the value that the count property of the data object contains - which has an initial value of 0\. We mainly use this syntax for accessing the values from properties return by the data function, but there's some other Vue object options for which we can use it as well.
**What's special about this data object, is that it's reactive**. Meaning that, if the count variable is incremented, decremented, or changed is some way or another, it'll be automatically reflected in the HTML without us having to imperatively access the element in the DOM and update it. That's super convenient in so many scenarios, right?
Next we'll tackle how to increment our count variable whenever the button is clicked. We'll also do this in a self contained manner within our component, without having to fetch the button element by it's id.
Queue the methods option:
```
let app = Vue.createApp({
template: `
`,
data: function(){
return {
count: 0
}
},
methods: {
incrementCount: function(){
this.count++
}
}
})
```
The methods option essentially represents the functionality of a component.
This option is in essence an object that contains functions as properties, which can be used in our component to perform computations or add behavior, like updating the template HTML, upon certain events. Just like the code that gets executed during regular vanilla event listeners.
In our case, we'd like to increment the count property when the button is clicked. Hence we'll create a function that does just that. Notice how we also need to reference the *count* variable with the *this* keyword. In an OOP flavored manner we need to point Vue towards the correct instance of the variable that lives within the component object.
How do we actually trigger this method when the component is clicked? We'll have to tell the button element to listen for a click. With Vue we can create this event listener with the *v-on directive*.
A Vue directive is kind of just like an HTML attribute, in that it gets added to an HTML element in it's opening tag, but with the special behaviour that it gets parsed by Vue instead of being rendered to the DOM. To listen to a click event, we simply add this statement *@click=incrementCount*. This simply triggers the incrementCount method when the button is clicked (the @ symbol here is a shorthand for the v-on directive). We'll talk in more detail about Vue directives in the next section, but for this part I simply want to show you the syntax.
To put all of what we covered so far into action - we get a relatively unimpressive looking click counter button:
Inspecting the HTML in this case doesn't actually do much, as Vue will automatically convert the code to the final HTML - viewing the page source however, should make it possible to see what's happening underneath.
### Vue Directives
To conclude this quick speed-run of Vue basics, let's have a look at directives! As mentioned above, they're essentially a way to extend HTML beyond it's usual functionality. They can be used to add specific behavior and functionality to our components in a declarative manner, and in a way mimicking HTML tag attributes.
We've already seen the *@* symbol, which is actually just a shorthand for the *v-on* directive, that can be used to attach a click event listener to our DOM elements. We could have equivalently written it like this:
```
```
Where the *click* event is already built into Vue as a click event listener. We can naturally replace the click statement with our own custom events - but that's a tag bit more complicated, so we'll leave it for another time.
Another directive that we could have used in our button is the *v-text* directive, which is a convenient way to set the HTML content of a div. For example, instead of using Vue's handlebar syntax for our button we can equivalently do it in this manner:
```
```
The count variable is inserted into the component template via the v-text directive. I believe that having multiple ways of doing things in vue adds a little to it's complexity but also makes it more flexible in many ways.
And yet another directive is the v-show directive which can be used to show directives based on certain conditions.
```
```
So this is really cool, and highlights another cool thing that can be done in the Vue, evaluating expressions directly in the template!
There's many more directives that can be used for all sorts of purposes. I believe that the added declarative functionality from these directives is one of the hardest parts to master in Vue, but also makes many things much more straightforward.
It'll take a little bit of time to figure out how to use all of these directives effectively, but with a little practice it shouldn't be too difficult. At this point I recommend recreating this small vue app by yourself, if you feel so inclined, it'll help understanding what follows where we'll create a more complicated app!
## Towards a more intricate Interface
Most interfaces have more than just a single button, and often require different parts of the interface to communicate with each other in some manner. This is the aim of this section. We'll reuse the button that we've put together over the previous sections and will create an interface that holds several of these buttons. For this purpose we'll reorganize our code a little bit and learn how to create a more intricate interface with several components.
### Chaining Components
At this point in time, we've created a self contained clicker counter component that sits directly at the root of our app. How do we go about making this button reusable as a Vue component? What's the *Vue* way of doing things?
The first step is to clear up our root component, and turn it into a container for the interface that we're planning on building. Let's set the button component code aside for a second. Instead of having it at the root, we'll start off with something that looks like this:
```
let app = Vue.createApp({
template: ``,
components: ['buttons']
})
app.component('buttons', {
template: `
Here go the buttons.
`
})
```
Alright, there's already a lot to unpack here. Let's focus on the root component object that is fed to vue's createApp() function for a second. The template for the root component's HTML contains a *buttons* tag... if you're acquainted with HTML, you'll notice that this isn't actually a valid tag that exists in HTML, as opposed to the singular form of the word, *button*, that is.
**Last I heard, you couldn't just invent new HTML tags. Well, Vue actually lets us create our own tags! Let me explain how this works!**
In what preceded we talked a lot about components, but we haven't actually created any so far. Well, save the one that needs to sit at the root of the app. There's multiple ways to create components in Vue, the most straightforward being via the *app.component()* method. In contrast to the createApp() function, this one takes two inputs: a label/name for the component, as well as an object that specifies the component's options - which we've already discussed extensively at this point.
Besides the top level container at the root of our interface, we've also created a component that will serve as a container for multiple buttons:
```
app.component('buttons', {
template: `
Here go the buttons.
`
})
```
I like leaving the root component as simple as possible, even if it introduces another layer between top layer component and those at the very bottom. But that's just personal preference.
Here we're creating a new component called *buttons*, which will simply be a container that holds several buttons (we'll add these in a just a minute).
For now this component has a very bare-bone template, simply a div with some text in it. By having created a component with the name *buttons*, Vue actually allows us to use this identifier as an HTML tag. Using the component's name as a tag inside of the root component's template, it'll conveniently and automatically replace this custom tag with the HTML inside of the component's template.
In simpler terms: **Vue components can be used like custom HTML tags. Using such a custom tag in the template of another component, replaces it with the content of it's own template string.**
This was a bit of a mouthful to explain, but I hope it makes sense.
Additionally, we can also give the root component an option called *components* which indicates what child components we want to use inside of it:
```
app.component()
```
This isn't necessary in our case, Vue would still automatically understand what the buttons tag is referring to, but it's good practice nonetheless and might be required sometimes.
Alright, now we've seen another super powerful feature of Vue - let's make use of it for creating multiple buttons!
### Multiple Buttons
Now let's create a new component and feed it the button component object that we've created earlier:
```
app.component('clickerButton', {
template: `
`,
data: function(){
return {
count: 0
}
},
methods: {
incrementCount: function(){
this.count++
}
}
})
```
The only caveat here is that we should not give components names that are identical to already existing HTML tags. That would cause problems, hence, instead of using the label *button* for our component, we'll name our component *clickerButton*. Yes, I know, very imaginative.
We can now repeat the same process as before and insert our custom button as an HTML tag inside of our buttons container component:
```
app.component('buttons', {
template: ``
})
```
In this manner vue will automatically convert this tag to our custom button. Now what if we want to create two buttons? We could simply insert the tag twice. What if we want to insert the button n times? We could simply insert the tag n times... but that's hardly ever a good way to do things in code.
Vue got us covered in this case well, and we'll simply use another directive, namely the *v-for* directive:
```
app.component('buttons', {
template: `