1/32 minted

open marketplace

Project #26299

Published on March 28, 2023 at 16:15

## 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](https://youtu.be/PrEbE7iG2Lc).

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

Price3.2Minting opensMarch 31, 2023 at 19:00Ticket Grace Period7 days(2)Royalties25.0%(2)Tags