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 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!
That said, cue the news 👇
New in Creative Tech
1 — The "Insert" programming language for self-modifying quines: 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:
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.
2 — ZOZO's Contact Solver: 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:
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:
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: 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.

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:
4 — Frank Force's Tiny Retro Game & js1024fun: 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:
With this year's theme being "dreaming" the tiny game is a perfect fit. The competition 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: 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: 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.

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:

7 — Bird Sound Generator: 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.

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:

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:

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:
- 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?
- 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.
- What about new people trying to
learn how to codebecome 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:

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:

2 — Linus Torvalds on Vibe Coding: 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 — 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:
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:

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: 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: 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.

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: 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:
You have to be really careful, they can increase cognitive fatigue, 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: 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 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:

2 — WebDev Challenge by CodeTV: CodeTV 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:

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.
3 — Web Browsers on Video Game Consoles: 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.

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: 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.
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: 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:

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. 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, 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.

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, Mastodon, or Bluesky and since we've also got a Discord now, let me plug it here again. 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:

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






