Gimel Studio is a free and open-source, non-destructive, node based image editor for Windows and Linux. It is currently still in beta and work in progress. It shouldn't be used for heavy production work as the internals are changing quickly and there could be bugs.
The latest update, version 0.5.1 beta was meant to be a bug-fix release focused on improving stability, visuals and usability.
During the last few months I have been working on many different projects and ideas behind the scenes for Gimel Studio -a few of which have now made there way into this version either in full or part.
What's New & Improved in v0.5.1 beta
Node Graph & Image Viewport Improvements
The node graph was improved with fixes to the appearance of the nodes themselves and the icons. Node thumbnail previews now show a checkerboard pattern for easier viewing of an image's alpha channel and spacing between the sockets and node preview was expanded.
The Image Viewport was greatly improved with smoother and more-like-you-would-expect, dynamic zoom as well as other small visual fixes.
Progress Towards a True "Dark Theme"
A Dark theme was implemented for the menu bar, context menu, panels, node graph, etc. Though it's not yet complete in terms of a true dark theme throughout the interface, this version makes a leap in that direction. :)
New Developer Log Panel
A new Developer Log panel was added to aid those writing custom nodes with the Gimel Studio API. This log shows Python output and errors, which is very useful for debugging custom node scripts.
It can be accessed through toggling the menu item Window > Show Developer Log.
Major Python API Improvements
Many fixes were made to the custom nodes Python API. Prior to these fixes, Gimel Studio did not always load new python scripts from the customnodes directory.
A nice addition to the API is the ability to set the property widget visibility dynamically, making it easier to show different options with different properties of the same node.
def WidgetEventHook(self, idname, value): # Set the visibility based on values of the current state if idname == "Method" and value == "Certian Value": self.prop1.SetIsVisible(False) self.prop2.SetIsVisible(False) else: self.prop1.SetIsVisible(True) self.prop2.SetIsVisible(True) # Update the panel with the changes of visibility self.RefreshPropertyPanel()
New Core Nodes
2 new core nodes were added: Dilate/Erode and Edge Detect (thanks to @iwoithe)
Github Actions for Releases
I was able to setup automated releases with Github Actions. This makes releasing Gimel Studio much easier and helps to reduce the amount of work required to maintain a consistent release schedule. :)
GPU, GLSL-Based Engine & OpenImageIO Integration
I have pushed changes with the GPU engine (via the ModernGL library) and oiio (OpenImageIO) integration into another branch on Github. The changes include better file-type support via oiio (including .EXR files), a new GPU (GLSL-based) engine for nodes and the ability to write GLSL shaders for the node evaluations.
Based on some benchmarks, there is already around a 200% speed increase (for some nodes) using GLSL shaders + GPU engine vs. the CPU implementations of the nodes in v0.5.0 beta -which is pretty neat.
These features need a lot of refactoring and fixing at the moment, but it’s an exciting look into the possibilities for Gimel Studio.
You can take a look at the new features for yourself in the Github Repository. Please note that these features are in no-way production-ready and require moderngl and openimageio!
Blender Addon Improvements
Unfortunately, it was too much to fit the goals stated in the Blender Gimel Studio Addon Blender Artists thread here into this release, but the plan is to definitely get there in the next few releases. :)
Download v0.5.1 beta
You can download the latest release here. Thank you!