Yazid (.eth / .tez) Profile picture
Mar 22 25 tweets 13 min read
Before the release of my 'Automatism' project on @artblocks_io this Friday, I wanted to share some stories of the origin, background, and developments of the algorithm behind it, an algorithm which I came to call "Sharp-E"!
🧵👇
As far as I can remember, this might be the actual tweet where I got the inspiration to explore an algo that does what Sharp-E does. I was fascinated by how artists like @shidahysf drew things seemingly out of nowhere to fill up an entire space.
("Sharp-E" = Thick strokes like a Sharpie + autonomous and delightful like Wall-E)
I started out with a humble circle packing algorithm
then quickly went from non-colliding individual circles to non-colliding strokes made up of many circles drawn closely together. I coupled this with a classic random walk algorithm which I had enjoyed playing with at the time.
At this point I was using noise to determine the curves of the strokes in-flight, so parameterizing those values plus the maximum lengths of the strokes (how many circles a stroke was made up of) allowed me to start controlling how they looked and behaved.
Playing with the starting angles of the strokes also ended up becoming quite a defining way for to me to achieve more variations in the outputs.
As I continued tweaking and just plain having fun with generating random outputs, I started to enjoy seeing things appear in the outputs which resembled symbols or forms, like faces, letters, words,
or inevitably, dicks. 😂

This was a more hardcoded approach I did for fun which obviously didn't make it into the final version, but doing this did teach me a bit about parameterizing certain behaviors, such as dramatic mid-stroke angle changes.
These concepts of achieving a hand-doodled aesthetic, plus that of personal interpretations of meaning derived from the outputs of this "mindless" exercise of creativity, became quite central themes to the project.
Credit for the name 'Automatism', which I felt fit perfectly with those themes, goes to a good friend of mine in this space, a confidant, and a long-time supporter of my art. If I am the father of Sharp-E, he would undoubtedly be it's loving uncle.
(Thank you @goartrover!) Image
In the beginning I hadn't set out to create Sharp-E as an algorithm to release as a long-from generative project. When I had applied to AB earlier in July I actually submitted an early version of what became 'Hashed Cities' as my proposal. Image
Initially I thought it wouldn't have enough variety. But by the time my turn in the queue came up, I had had a lot of fun with the algo that I got more comfortable with the idea. Early feedback about its diversity also gave me some much-needed assurance to take it forward. ImageImageImageImage
(Thx to @ippsketch who demystified the AB process ahead of time, @bendotk @aaronpenne @piterpasma @amygoodchild @j2rgb @ioan1x @JosVromans @DataNeel @emilyxxie @rustysniper1 @williamapan @NadiehBremer + others I may have missed who offered feedback & encouragement!🖤 #genartclub) Image
From that point I continued iterating, and I also started testing out larger sets of outputs (100s at a time). But I quickly ended up getting into a bit of an infinite loop, endlessly tweaking and iterating but not feeling like I was getting anywhere.
In fact I remember reaching a point where hated almost all outputs 😅

(This project was by far the most mentally-challenging art project I've ever undertaken)
I had also reached some performance limitations in Sharp-E's collision detection, as I had just been using simple vector distances then, which compared every new point to all existing points. I did start implementing a quad-tree to solve this problem, but I procrastinated. A lot.
I decided to take a looong break from it in November/December, shifting my efforts onto other projects instead, and I ended up releasing my first few long-form projects on @fx_hash_ which had just launched then.
A breakthrough came around mid-January, when there was a Genuary prompt on "Packing", and it got me to revisit my efforts.
I also had a chat with @piterpasma then who quickly made me spot some oddities in my code. His other big contribution was suggesting to explore additive sine waves for my curves. I took it up and ended up loving it.
(Thank you Piter!) ImageImage
The last major change to the algorithm happened post-AB curation board review. I sought out feedback and learnt that they would've liked to see the algo lean more into the "drawn by hand" idea. Up to that point I had mainly kept the strokes fairly clean.
I worked at it throughout an entire weekend and added a feature which introduced some subtle textures to the strokes, simulating different pressure points, angle differences, fraying in the marker tips, that sort of thing.
Then I took it further and turned the dial up to 11.
One final thing I added was a slight ease-in in the drawing animation of the strokes. That, plus the periodic auto-reassembly of the strokes, to potentially facilitate re-viewing if displayed on digital frames. This I have @ArtOnBlockchain to thank for.
(Thank you Erick!! 🤝)
Some of these last few outputs I quote-tweeted were early iterations which got developed further for the final version. You can see the eventuality of the algorithm in the Ropsten sample outputs, which I hope to speak more of soon.

For now, thank you for tuning in this far! ✌️🖤

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Yazid (.eth / .tez)

Yazid (.eth / .tez) Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(