Gimel Studio

Non-destructive, node-based 2D image graphics editor written in Python, focused on simplicity, speed, elegance and usability

This repository tracks the next step of Gimel Studio (the v0.6.x series) to become a truly usable and serious node-based, non-destructive image editor. It is currently in initial development stage and things will probably change from what is currently here.

We're especially seeking Python and/or GLSL developers, 3D artists, photographers and UI designers to help with the project. However, even if you have none of these skills you're still welcome, of course, to give feedback and suggest ideas and improvements. :)

WIP Mockup

Here is a WIP mockup of the redesigned UI:

68747470733a2f2f692e6962622e636f2f514e4e593276582f67696d656c2d73747564696f2d7769702d75692e706e67

Discord & Gitter

If you'd like to join development, help with the UI design or have questions, comments or ideas you can join the Gimel Studio Discord or Gitter. These are places where you can chat with the developers and project contributors and get the latest updates on development.

Vision

The main goal is to expand on and greatly improve upon the concepts from the original version of Gimel Studio to create a serious (yet fun!) 2D graphics editor.

This includes:

  • Re-designed UI (highly inspired by the Blender 2.8x UI and parts of Sketch)
  • Improved file-type support (.tiff, .exr files, etc)
  • 16-bit workflow support
  • CPU and GPU based processing
  • Highly improved node-graph and overall workflow for image editing
  • Greater emphasis on re-usabilty of nodegraph setups via templates, etc
  • User preferences and UI translations
  • Gizmos for the viewport to allow for WYSIWYG-like interaction for transforms, etc (e.g: crop, rotate, etc)
  • Continued improvement and additions to the Python API for scripting custom nodes

Nodes can be used to composite, create/add new effects and/or composite raster and vector graphics on-demand. Helpful gizmos in the interactive viewport can be used to do various editing tasks and speed up the workflow. Preset node graph templates can be created, used and re-used to save time setting up common node-setups.

Custom nodes can be scripted with the built-in Python API for maximum flexibility. Integrations with other software like Blender are planned.

With a fully non-destructive workflow that uses both GPU and CPU processing while being seamlessly cross-platform on Windows, Linux and MacOs (for 64-bit systems), Gimel Studio aims to be a simple, yet powerful 2d graphics editing tool for beginners and pros alike.

Visit our home landing-page here for detailed information on the project goals, etc

Status

We are working towards an MVP which will showcase much of the core goals and features listed on the website.

The initial UI is now mostly laid out according to the WIP UI mockup and the core nodegraph rendering is just functional (it "just works") at the moment. There is much more to do...and we could really use help to speed progress along. ;)

Take a look at the Github Issues for details on immediate and future tasks to be done. Issues labeled "Good first issue" will be the best for new contributors. We are willing to mentor any contributors as needed.

Pull requests are always welcome! :)

Running the code

At this early stage of development, the code is very WIP and likely to change a lot. Many things are not implemented and/or not stable.

Windows

  1. pip install -r requirements.txt
  2. Get the OIIO (OpenImageIO) pre-built python wheel (Windows only) here and install it.
  3. python src/main.py

Linux

  1. pip3 install -r requirements.txt
  2. If building wxPython fails, Download the wheel file for wxpython which matches your Python version and Linux OS version from https://extras.wxpython.org/wxPython4/extras/linux/ and install the wxpython package with pip3 install <pathtothewheelfilehere>
  3. python src/main.py

Please note that the renderer, which relies on OIIO (OpenImageIO) will be disabled if OIIO is not found. The rest of the application will run, but the renderer will not work.

For linux, OIIO will need to be built from source since pre-built wheels are not yet available. See this issue.

MacOs

  1. Make sure you have Python 3.8+ installed on your system.
  2. Navigate to the root folder and in your terminal, run python3 build.py. This will install all of the neccesary libraries and will give you the option to create a standalone executable or just run the code with Python.

GitHub

https://github.com/GimelStudio/GimelStudio