raster.art
SEARCH
Create Account
No wallets connected. Please connect a wallet first.
nd-genuary32nd-plants-chatgpt3-001
NERDDISCO, 2023on fxhash
Platforms
fxhash
Description

Disclaimer

This artwork is partially generated by AI, and I seek to be as transparent as possible about the human and machine contributions.

From idea to foundation

For GENUARY32nd I wanted to create a generative artwork for the "plants" prompt. As I had no idea on how to get started, I thought about using ChatGPT to help me out. I documented the whole process to create the foundation of this artwork via the video Create Generative Art with ChatGPT & JavaScript.

You can also read about it on my website https://nerddis.co/nd-genuary32nd-plants-chatgpt3-001 and find even more background information.

fxhashify

After holding the generated code from ChatGPT in my hands, I switched to my manual process (which involves using my human brain) to convert the foundation into something that can be actually minted on fxhash. I call this "fxhashify", as this process is tailored to the capabilities of fxhash. If you are interested in this process, then please leave a comment on the video. If you just want to know what I changed, then please continue reading:

  • Used the Pseudo Random Number Generator from the params-boilerplate instead of Math.random()
  • Randomized parameters (like x / y position, color, growthSpeed and more) to control the plants, ground, sun and sky
  • Established the scene to have plantsAmount between 1 and 8
  • Spread the plants evenly on the ground with consistent spacing, related to the plantsAmount
  • Made sure that tall plants are in front of small plants
  • To prevent the plants from extending outside the scene, smaller-sized plants are placed along the edge whenever more than three plants were generated
  • A different globalCompositeOperation was used for the petals of the "special plants", distinguishing them from regular plants
  • Two different Time of Day were included: Sunny Day vs Rainbow Night
  • The proportions of the scene were kept, regardless of how it was scaled, using 2048 x 2048 px as the reference size
  • A lot of fine-tuning was done to make it look pretty and get the colors right in terms of lightness and saturation... <3 HSL
  • Added various helper functions (like inRange or pseudoRandomBetween) and the possibility to save the scene as an image by pressing "s" on the keyboard
  • The characteristic was added to continuously redraw the scene after a random timeout between 0 and 60000 ms, so that you can see the plants growing over and over again. After each redraw, stemGrowthSpeed, centerGrowthSpeed and petalGrowthSpeed are randomized
  • Included only a few fxhash features, but went into a rabbit hole for firstRedraw and added quotes from my most favorite movies, shows and music. But only the ones that had a connection to time
  • My little daughters gave me important feedback during development, so I integrated their favorite show "My Little Pony" into the Flower Lightness feature (some ponies look dark, others look very bright)
  • Used fxparams for timeOfDay, plantsAmount, flowerLightness and the backgroundSaturation, so that minters have an influence on the generated piece
  • Comments were added on all functions and everything in between

Code

Everything is JavaScript + Canvas 2D and open source under AGPLv3: https://github.com/NERDDISCO/nd-genuary32nd-plants-chatgpt3-001

Interactive

  • Press s on your keyboard to download a screenshot
  • The scene is redrawn every pseudo-random ms