While the development plan for Paragraphic is quite vague my next goal is making a first proof of concept version that I can have some people test to give me feedback on the design and structure. This will be a long way away from a beta or something fully functional, but with enough of the core parts to see if the main ideas work.
As a first step towards that I’ve now been working on a lot of more generic parts, like a more robust popup menu system, file saving and loading and undo/redo functionality. One drawback of using something like Godot that is designed to make games is that a lot of these types of application systems and controls need to be made more or less from scratch.
Sockets, connections and inputs
A big core feature that is now in place is that parameters on layers and nodes now have sockets on them, and that you can add connections between these sockets. For users of Patternodes this will be familiar, and basically it means that you can let one parameter control another. For example setting the color, size or stroke of something to be the same as something else. And when you change one, the other changes as well.
Currently the visual representation is quite simple and the connections are managed by context menus, but the basic functionality is now there.
This also helps explain the idea of the “Inputs” panel in the interface. While the name might change, the idea behind that is that it will allow the user to set up separate parameters there that they can then connect to nodes and layers in the document. This will let you set up a sort of control panel where you can quickly edit the colors and parameters you want to, going into the individual layers or nodes.
More nodes and preview tools
While there are still just a handful of nodes, you can now see the layer node system in action and add multiple nodes to a layer. For example repeating and transforming layer elements like above. The inspector shows the nodes as separate collapsible panels and lets you remove or add new nodes.
I’ve also added some first tools for the output preview view, allowing users to select and move layers by just clicking and dragging, and to easily add new shape layers. This is another example of wanting to reuse common concepts from other graphics software that the user will be familiar with.
Another reason for adding tools like these are that I wanted to make it easy to do simple things. While a parametric generative system is great to make complex things, a drawback is that it adds a lot of “overhead”, making it pretty complicated to make simple things as well. So while the graphic tools will likely not be powerful enough to make more advanced things, they’re there to make it easy to add simple things without needing to set up parameters and nodes.