1
$\begingroup$

I want to know all the processes, functioning, involved languages, examples of code, and URLs to official sites with updated information if possible.

NOTE: I'm not a programmer. I just want to know how and where to start learning.

Nine years ago, a user did respond:

Assuming you’re talking about the 2.5 series of Blender, at the lowest level, Blender’s UI is implemented using OpenGL (primarily coded in C). Hooked into that is a Python layer. This means that it’s fairly easy to modify Blender’s UI using Python without sacrificing much in the way of performance.

And according to the resume of better responses about its GUI development and portability, but not updated (4 years old):

No. You cannot use Blender's GUI package in other programs outside of Blender. Blender Graphical User Interface package is solely designed to be used with Blender on various platforms. Blender also has a custom window manager. And the UI widgets in Blender are tightly coupled with Blender's Data API (RNA/ID properties)

There is GHOST (General Handy Operating System Toolkit), which can be used outside of Blender, but it's very low level, only providing window access, mouse, keyboard, ndof and tablet events from X11/MS-Windows/OS X. It doesn't actually draw anything; buttons or text, for example, are handled by Blender's own code.

A year ago, but not as much detailed as a need:

Blender’s entire user interface is drawn on the screen via OpenGL. Most of the UI is defined in C, and some parts, like most of the layouts, in Python.

So:

  1. I know that Blender can render scenes in PCs that don't support the Blender Software trough its binaries — which accept CLI (Command Line Interface) commands — because a long time ago I couldn't run 2.79, but 2.76... But trough SheepIt Render Farm you could render other's 2.79 files without issues with your CPU and vise versa.
    • That CLI support makes Blender GUI independent (what means that GUI is just making CLI calls at every change) or is the GUI more core-nearly (what means that Blender Core Code is associated with changes in GUI code)?
  2. You effectively can implement the Blender Graphical User Interface (or part of it) into another application that uses [favorite-examples] languages?

Why

I'm searing for a concrete answer for that because I want to deeply participate in the Inkscape development, and its actual major issues (For users) are a no fully developed GUI and no CMYK support. In the other hand, Blender is actually super industrialized (which means that its use is a totally PRO- without CONs- for businesses)

Inkscape Developers are porting all its codebase (which is based in C) to C++ and they want also to split the User Interface to a separated implementation, in order to be able to use CSS files to develop it, and I want to know if it's possible to approach Blender Codebase in the process.

$\endgroup$
1
  • $\begingroup$ CLI is also a user interface. It just uses command line, and not pretty graphics. Both CLI and GUI communicate with "backend" that actually does stuff. Since Blender is OpenSource (and licensed as GPL) there should be no problem creating a new GUI for it in a different language, but that mostly depends on the language. Language would need to communicate with backend somehow. In most languages there usually is a way of "wrapping" binaries so they can be used as libraries, but that is language specific. $\endgroup$ – Filip Franik Jun 22 '20 at 7:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.