An upcoming graphical application created with Eiffel and the Vision-2 libraries

24 views
Skip to first unread message

Finnian Reilly

unread,
Aug 18, 2019, 10:16:59 AM8/18/19
to Eiffel Users
Introducing Matyroshka

Over the weekend I held a software reveal and digital art exhibition to show of my new Matryoshka software which I hope to release to the general public by the end of the year, or early 2020. I invited various professional artists, graphic designers and illustrators based in Dublin, Ireland, and the software had a very positive reception.

The art exhibition contained some 200 images to show off the capabilities of the software. I have attached a few of the images below. The software is specialized for creating simple geometric fractals using a subject object which is replicated against a background image that forms a canvas. I see it as more of an educational toy, as it's fun and very easy to use and could serve as a good introduction to digital art. I and thinking to market it to kids and schools.

I will write a little about the technical details of the software as they are sure to be of interest to Eiffel programmers.

The Matyroshka Concept

I put together this animated video to demonstrate the basic concept behind the software. It doesn't actually show the software itself, only what you can produce with it. I named the software Matryoshka as Russian dolls are the perfect metaphor for what it creates.

I also made this playlist of tutorial videos that demonstrates the software itself in action. Being a big Linux fan, what I demonstrated was the GTK version on Linux Mint.

Model Extensions
To make the software I need to make some extensions to the Vision-2 modelling classes. In particular I need a picture model that is rotatable, flip-able and can be rendered at different levels of opacity.


Pixel Buffer Extensions
I also made many improvements to class EL_DRAWABLE_PIXEL_BUFFER (inherits
EV_PIXEL_BUFFER), most notably support for opacity setting and image flipping.

Container Extensions
I also made this very useful class for placing a discrete little progress bar underneath a button. Some Matryoshka rendering operations take quite a few seconds to complete when working with a 4K image.

Early Version Demo
I open sourced a very very early version of Matryoshka by including it in a graphics demo program. The current codebase looks very different but you can get some idea of how the software works.
See the directories ./fractal/* in this Vision-2 Extensions Demo.

Some Images from the Exhibition


grassy-buddha-2.jpeg
lizard-3.jpeg
irridescent-3.jpeg
rust-plate-3.jpeg
Reply all
Reply to author
Forward
0 new messages