(Completion) Art-generating Robot

I created a robot which learns the same way that humans do (from influence) and documented the process of it creating a new piece of art.

Instead of appending to an already-crawled and SEO-optimized article, I’d make another to gain some more domain space for myself.

The due date: 2nd of September, 2019. The acclimation of 8 months of work, an estimated 250 hours of complex coding, contemplation, mathematical modelling, construction, and management, produced something higher-valued than myself in the area designated “contemporary art”.

Process displaying the art robot's ability to learn over time, with the last panel involving code

(Not the best photo)

Modern art is abstract “value”, defined by being unconventional, unexpecting, undefined and dynamic. The artwork produced is of greater value than anything else I could possibly create physically.

How it learnt

Breaking Down: Strokes

As I stated earlier, the robot’s brain learnt in the same way of which traditional humans do. One could argue (which I will) that artists today use a much different inspection of reality compared to traditional artists, where I will place my creation in the former. Simply-put, my robot simply inspects the transactions which artists before it had made on a topic, and comes up with an appropriate plan to re-create by breaking down it’s strokes, colours, and total-assortments.

One-third of the robot’s brain is being able to look at something, and break it down into the perfect “brush strokes” to symbolize that artwork on it’s own and give it a special identifier. For example, this methodology can be applied to periods of art such as impressionism, which idolized short and expressive colours to create scenery. Here are some examples:

Pachi Pinterest Artwork Signac Palais Avignon

One could use this third of a technology to break down each artwork, and identify each of their signatures as “impressionist”, so that artworks could easily be labelled into this category on-demand. This was not my goal, so I did not develop this any further.

Breaking Down: Parts

Humans are provided with extensive skills to do most of the breaking down, which is why I am defining these areas before I explain the lengthy training that the robot has to undergo to “create”. I described the requirement for these tools (breaking down strokes, parts, etc) as the enablement of our brain - if we did not posess the skills to understand patterns, inspect individual components, and look at a macro-level and manifest with influence of our past memories and experiences - we’d have no “art” today.

That’s why the next breaking down aspect is parts. Each artwork is made up of blocks of chosen colour as well as subject “blocks” (blocks of colour making up subjects of importance). Parts can be established dependent on the above indicator of strokes to give a “colour discrimination” level.

Colour Discrimination

This is basically how different a colour has to be from another to count as no longer being part of the “block”. NOTE: RED AND BLUE MAKES PURPLE. If I have a low colour discrimination, if my artwork is all red and blue I can accurately find the bounds of the parts due to the very different nature of each of those colours. To compare, if I have a low colour discrimination on red, blue, and purple. I may have parts which contain red and purple, or red and blue - but never blue and red.

Colour discrimination is one of the main factors of breaking apart an artwork to get segments to learn the primary role of in an artwork, which is normally set to a static level pre-set before starting to run over a set of artworks.

Finally, the learning

When finished breaking down an artwork into parts and strokes, on-top-mapping and regressive mathematical functions can be used to map similarities and create a general plan to re-build the artwork with a completely unique spin each time. That is a heavy topic which I may write about in the future, this involved a big chunk of the projects hours, involving me coming up with hacky solutions to NP-hard problems such as the travelling salesman problem.

Simply-put, imagine a bunch of artworks being broken up into small pieces composed of micro-strokes and macro-parts - then imagine taking a bunch of similarly sized pieces in a location and using them to create a map that it sees as the most important pieces, the colour variations allowed, and other meta parts of an artwork.

With colour variation allowed, imagine training a bunch of self-portraits to my robot: you’d get the components of a face: eyes, hair, skin tone, lips, and so on. It’d understand that face colours may only possess a spectrum, from darker tones to a brighter tone. Eye colours could only be a few colours though tints are on a spectrum, and quickly you can understand that this robot is able to take a range of people’s photos and cache (save) the minor discrepancies that unify the body.

One could say that if this robot was trained on every face in the world to-date, you’d be able to let it generate a random person’s face, or a future-individual on it’s own. But say one photo is 1mb, 7000000000mb = 7000tb which is roughly $1,085,000 dollars worth of SSD hard-drive space (trust me - you’d want SSD…) or $297,000 for HDD hard-drive space.

Anyone up to fund me?

Philosophical Application


Before, I did say completely unique, though that is not entirely true (BREAKING NEWS: SCANDAL). In game-generation, there’s an idea that if you want to make a world be generated completely randomly from a random seed, it’s possible for two worlds to possess the exact same qualities with enough iterations of generating a random world. The same goes in password hashing (it’s possible for two (and more) passwords to log into the same account). The same goes in theoretical universal expansion: that there exists a copy of one’s self and surroundings, and possibly a copy of earth, if given an infinite or long-enough range of time to allow creation to continue.

The same goes for this robot art-child, there are a very… very large amount of artworks that can be generated from a couple of examples - even one example. But with enough “spins” of the “self-portrait-roulette”, another identical may be created. This speaks to our individuality, since the appearance of us is so gosh-darn rare, that once you then apply the individuality and psychological differences - personal congruency (exact equality) I’d say is impossible.

Lastly, one concept artist’s don’t pay much attention to is the artwork size dependent on variability - a larger artwork has more atoms that can be used to a uniqueness added unto it. This doesn’t really apply, but in my robot - larger samples means more work which equates to more randomness.


I hope that was interesting or beneficial to you, and if you are planning to do something programmatic for a school-project or (in my case) HSC major work - I’d love to either chat with you, but also encourage you greatly to do it. This project really opened my eyes to the human creative process, generating structures, and in-general made my programming much stronger.

Written on October 6, 2019