Gorilla Recap 16

This week we have quite a few generative art updates: Re—tain on TezTalks, Alba's new group show Stranger Skies, several new generative art projects launching - as well as some interesting reads on generative art, digital collectibles and new developments in AI.

Gorilla Recap 16
Resuming #WIP

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 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, that you might already know as the creator of EditArt, 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 Piero
In 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.

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, generative artist and that you might know as the creator of The Harvest is teaming with Rik Oostenbroek, and Erick Calderon, the creator of Artblocks, for a new generative art series in collaboration with Red Bull Racing:


The Velocity Series

923 Empty Rooms

And since we already mentioned Artblocks, here's Casey Reas newest project, a collaboration between Bright Moments and Artblocks. 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!


Interesting Reads

The resonance of Generative Art - Interview with Zach Lieberman

Another excellent article from Peter Bauman on LeRandom, 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 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 Art
Resonance 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…

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&A
A timeline of collecting, from the earliest acquisitions of computer art in 1969 to the complex digital works in the collection today

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 Shono
In the first of a series of curatorial essays for RCS, the architect of Proof of X shares his vision for blockchain as a medium

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-Tricks
TypeScript discriminated unions are types where a key or value can be used to differentiate between the keys and values of several types at once.

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 Asendorf
A look into Digital Expressionism Art.

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

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 writer Bruce 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 AI
Authorized 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 Natur

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 Engine
Replica Studios is unveiling AI-powered smart NPCs for the Unreal Engine platform. Those NPCs can chat with players using OpenAI.

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 Physics
In 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.

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 Intersections
In 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.

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 🌸