About Kandinsky.io

December 12, 2021

Images are used in a plathora of projects, from marketing material, websites, social media to magazines; you name it. One can create an image using image editing tools like Photoshop, CorelDraw, Adobe Illustrator (and other sketching tools). An entire article can be associated to listing possible image creation tools. Another option would be to licence an image from one of the popular stock photo websites like Shutterstock, Getty Images. Of course, editing a licenced image in combination with an image editing tool allows you to further customize your images.

Kandinsky.io is a different kind of image creation tool; you don’t need graphic design expertise for creating images from scratch. This tool generates images providing you with simple options for customization based on your needs. You generate, customize until you find the image you like, and then download it.

Is this an AI?

Aspects of Kandinsky.io use a sub-field of Artificial Intelligence called Evolutionary Algorithms. Alow me to elaborate:

Each image style in Kandinsky.io has a different algorithm where upon giving input parameters, an image is generated as the output. If one of the paramters is slightly changed, the output is usually an image that is slightly different. In the world of artificial evolution this operation is called Mutation.

For each style’s algorithm, the parameters that generate an image are modeled using an evolutionary framework (that I have built). The framework creates an artificial DNA for each image which is mathematical in nature. The artificial DNA enables the system to generate an Individual (in this case the image), mutate it, cross it over with another image, which means to create a child image out of two other images by choosing parts of DNA from each parent image. The child image usually resembles it’s parents features. Here are three images that are mutations of eachother:

similar 1 similar 2 similar 3

In the tool when you click on Generate Similar button, Kandsinky is actually taking the image DNA, causing a random mutation on it and creating a new image out of the mutated DNA.

In later articles more details on evolutionary algorithms will be provided.

The Story

I have been fascinated with the idea of Evolutionary Algorithms, a process where biological evolution is simulated on a computer to solve problems in architecture, industrial design, and egnieering. Using this process, one does not design things explicitly. Rather the space of possiblities and a way to evaluate a particular design in terms of fitness are defined, and the computer will search this space for individuals that fit the criteria identified. In other words, the design of the object is evolved. This is magical!

I began to look at this in the context of art, specifically abstract art; ”Is it possible to create an algorithm that can automatically generate images that are aesthetically pleasing?”

This quest began during my studies as a Master’s student at the University of Waterloo. I built a number of algorithms that generated complex mathematical functions and through a process rendered said mathematical functions to images.

Generating images using algorithms aka Generative Art is not a totally new field. Karl Sims, Scott Draves and many others done early work on computer generated images. Presently, #generativeart hastag has more than 600 thousands posts on instagram.

I began representing the mathamtical formulas in terms of an evolutionary algorithm. I was able to generate populations of hundred of images, perform cross over, mutation and other evolutionary functions on them. I was also able to evolve the design of an image by allowing the population breed aesthetically fit images through multiple generations. If this was too complex, don’t worry about it. The gist is that I was able to have an algorithm generate images, then by selecting an image I liked, I was able to generate other images similar to it. I could perform this process endlessly.

I thought to myself, if I can enable others to evolve their own images, I have created something useful.

The tool that you see here as Kandinsky.io is the platform I have built to allow everyone evolve their own images. Of course, it does not have all the features that I want yet, but with your support and feedback I can get it there.

Image Styles

At the moment there are two different image styles available; The first style, which is called Abstract Style 1 (yup, I could not find a better name yet), can generate a large variety of different images. Efforts are underway for adding more styles on a regular basis. The second style is called Line Grid.

4 5 6
1 8 9
2 10 3

Customizations

Each image style has different options that allows you to customize an image. For example Abstract Style 1 provides a list of color palettes for each image that is generated. Here is an exmaple

palette 1 palette 2
image 1 image 2

For the image style called Line Grid the options are different. You can increase or lower the complexity of the number of lines, set background color and line color. As you can see below, both images have similar structure. The image to the right has more line dvisions horizonally and vertically.

line grid 1 line grid 2

Image Resolution

The tool allows you to download an image in any custom resolution you like. The current maximum resolution is 3840x3840. This limit will be increased in the future to support 4k, 8k and more.

Note that when downloading in a specific resolution Kandinsky is not just rescaling the same image, but it actually regenerates the image in the requested resolution by using the image DNA and generating all the pixels. This way image quality is maintained.

Thank you for reading!


Profile picture

Written by Bardia Khosravi
Founder and Developer, Kandinsky.io