I did something similar a couple of years ago for a background App for Android, while exploring Kotlin, but more based on pre-defined "patterns" instead of shapes.
Feel free to take a look ;)
Github: https://github.com/ODDBureau/mosayq
Android App: https://play.google.com/store/apps/details?id=com.oddbureau....