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/yposition,color,growthSpeedand more) to control the plants, ground, sun and sky - Established the scene to have
plantsAmountbetween 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
globalCompositeOperationwas used for the petals of the "special plants", distinguishing them from regular plants - Two different
Time of Daywere 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
inRangeorpseudoRandomBetween) 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,centerGrowthSpeedandpetalGrowthSpeedare randomized - Included only a few fxhash features, but went into a rabbit hole for
firstRedrawand 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 Lightnessfeature (some ponies look dark, others look very bright) - Used fxparams for
timeOfDay,plantsAmount,flowerLightnessand thebackgroundSaturation, 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
son your keyboard to download a screenshot - The scene is redrawn every pseudo-random ms