30.01.2022 [upd 06.02.2022]

Small GUI to Make Weird Designs

#tech #art

Hello! First week already proved challenging. Unfortunately I fell ill which also made it more difficult to finish something meaningful in time, but I have some results.

The Idea

I really like art based around very simple concepts. An example of such a concept is pixel art. The idea of pixel art is about as simple as it gets - you draw with little squares. So, I was doodling around trying to come up with something similar that looks cool. sketch I came up with a modification of pixel art, with non-parallel lines and variable line width. I tried recreating it in inkscape, but quickly encountered multiple problems, like differently angled lines being at different distances from each other and the ends of lines looking off.

How to GUI

In the end I just decided to write my own program to make this kind of designs. Only experience writing GUI I had was using QT (C++); it was painful. I decided instead to use Godot, as using a python-like language with dynamically typed variables seemed like a much better idea for a GUI.

I had a few ideas I wanted to implement in my Goo-e: shortcuts that the user can set/unset just by right-clicking the element instead of going into settings menu and searching for it there (I prototyped it but didn't yet use). Another idea was giving the user to ability to save any value as default (again, by right-clicking), for now I implemented it with a button next to a value.

How do I optimize this ;-;

program screenshot As you can see the UI is incredibly bare-bones. Main features are there: you can pan, zoom, draw and erase lines on a grid. Changing the angle of the grid is incredibly laggy as the code has to update a huge amount of individual nodes (objects). I will probably completely rewrite the entire program at some point.

Was it worth it?

Writing an entire program just to make this very specific type of designs might seems silly, especially considering how I realised that this effect can be achieved just by applying a simple image transform on a picture made using a normal square grid.

Regardless, the experience is valuable. I felt good programming, abusing the hell out of Godot's signal system and other features that make my life just a little bit easier. And damn does it feel good accomplishing something at the end of the week and posting about it here. Here is something I doodled in the program: see if you can figure out what it says, each letter is made out of 1 line. pic That's it for this week! Let's see what lies ahead :)