A downloadable image generator for Windows

imaginator is an interactive image generator!

How to "play":

  • Select the image you prefer from the grid by clicking on one of the nine icons or via the num-pad keys [7-8-9 / 4-5-6 / 1-2-3]
  • As soon as you select one, the remaining eight are replaced with mutations of your selection.
  • You may select the same image more than once, if you want to explore alternate mutations of that image. 
  • You may change the mutation intensity by mouse - dragging the green bar on the right, or by using the UP / DOWN arrow keys. A low mutation intensity will tend to generate images that are more similar to your selection, while a high mutation intensity will tend to generate images that are quite different from your selection.
  • As soon as you discoveer an image you really like, you may save it to disk at a good resolution (1024 x 1024), by clicking on the large image or by pressing ENTER. imaginator will create a folder next to your executable and store your images there.

By repeating the selection process, imaginator tends to produce interesting or beautiful images, according to your own taste!!

How it works:

imaginator generates images by using a special type of neural networks, called Compositional Pattern - Producing Networks (CPPNs).  More specifically, the images are generated by mapping the pixel coordinates (X, Y) to a vector of (R, G, B) values, through a relatively complex network of various types of functions, such as sinusoidal functions, sawtooth waves, bell curves and others that are not typically used in neural networks. In order to generate variations of images, the system actually mutates the topology and parameters (edge weights and node biases) of those networks, by using a simplified implementation of NEAT (Neuroevolution of augmented topologies).

General information:

I have been working on this generator for some time and decided to publish it in the context of this year's PROCJAM (procedural content generation jam). It also kind-of matches this year's theme, "renewal", but that is admittedly accidental :) . Feel free to use it to generate abstract images for your own projects, within the context of the jam or for any other project!

The project is inspired by older projects that are based on the same idea, such as PicBreeder and EndlessForms. Unfortunately, both of them are built with java - based technologies that are no longer compatible with most browsers. And that is part of the reason why I decided to implement a similar system from scratch. The other part is the joy of reinventing the wheel, of course :).

Technical Info:

This project is being developed in c++ and uses the SFML library as UI / graphics layer.

StatusIn development
CategoryTool
PlatformsWindows
Rating
Rated 5.0 out of 5 stars
(2 total ratings)
Authorseedgamelab
Tagscppn, image-generator, interactive-evolution, pcg, SFML

Download

Download
Imaginator v0.0.3 119 kB

Install instructions

  1. Download the zip file.
  2. Extract anywhere and run. The application is a single executable file.
  3. If you receive any virus warnings from windows, please ignore them!
  4. Once you choose to save an image (by pressing enter or by clicking on the large image), the application will create a folder, and save it there.

Development log

Comments

Log in with itch.io to leave a comment.

could you add a different download i think this one has issues got like a trojan or something

(1 edit)

Hi @BadTimez, there's nothing wrong with the executable. It must be just windows defender (or other antivirus software?) being over-protective with unknown executables. Unfortunately this is a common issue with c++ apps (see here, for example https://answers.microsoft.com/en-us/protect/forum/all/windows-defender-flagged-m...) and I am not sure how to solve it atm :(

p.s. I suggest a leap of faith!

(+3)

Super nice idea and implementation!

Sometimes there are multiple images which i would like to mutate to see where it goes. Maybe some kind of 'undo' functionality (to go one or two steps back and select another image) would be a cool feature for future implementation.

Also the possibility to choose the image resolution would be a cool feature.

Keep it up!

(1 edit) (+2)

Hello @DevDudeDD, thanks for your kind words!

I totally see your point(s) :) . For example I also get frustrated when I accidentally select something by mistake, so an 'undo' button would be really cool, indeed.

At the moment I have lots of ideas for user control, such as selecting the types of functions that are used by the network, the color - encoding at its output (RGB / HSV / XYZ / LAB etc)  and many more, but I am not sure if / when I will find the time to put them together in a well - organized application with a good UI.

As a first step towards that diretion I am planning to include a settings file, where the user may edit some of these options (such as resolution, functions, output etc) so if you are interested stay in touch!