EasyBPY

WoBC_Web100.png

Introduction

The purpose of the EasyBPY module is to simplify the use of the Blender API by creating an extra layer of abstraction that is more human-readable, memorable and reduces the user’s exposure to complex code paths.

EasyBPY can be added to Blender by installing it into the (../scripts/modules) folder in the user preferences (AppData). The file can also be re-packaged with any other addon, so long as the developer respects the limitations of the GPL license.

For a visual introduction, please watch the announcement video.
EasyBPY can be obtained from Gumroad or GitHub.

Sacrificing Efficiency

Since EasyBPY is a layer above the regular API, it means that absolute efficiency is being thrown out of the window. The main point of the project is to simplify the user experience, sacrificing execution speed in the process. With that being said, the project can be described primarily as a user-experience (UX) project.

When writing layers of abstraction closer to expressive English, convenience should be accounted for in the form of predictive ‘convenience’ functions, e.g. functions that do the same thing, but are likely to be written by a newcomer in different ways.
An example of this would be the singular ‘selected object’ and ‘active object’, not to be confused with the plural ‘selected objects’ or ‘active objects’.

From a techno-philosophical perspective, all human interactions with programmable technology are moving towards a higher state of abstraction, which in turn is leading to simplified linguistic expression of instructional logic. Layers are written to encapsulate mathematical processes to reduce the required investment of thinking time. Progress in fields like artificial intelligence is catching up to substitute the human requirement of writing simple instructional logic. Eventually, inevitably, programming languages in a traditional ‘write everything perfectly’ sense will be redundant.

I talked about this subject more on episode #22 of the BlenderNest podcast (46:09).

It’s worth keeping in mind that people may have to adopt more managerial skill-sets as the design of technology proceeds to streamline the content creation process.

Why One File?

Considering that the design philosophy of EasyBPY relies around simplicity, what is more simple for the end-user to understand than one file? One file to download, one file to move, one file to use. This module will stay as one file, however there is the possibility for splitting the categories of functions into multiple files if this is more convenient for addon developers that want to integrate it into their projects. Turning the single file into multiple files will not take much effort, it will simply be a matter of copying and pasting the categories from the parent file [ref].

What’s the Point of an Easier API?

  • Newcomers will have an easier and more enjoyable time learning and making new content for Blender. The more enjoyable this process is, the more likely users will be to stick around creating content. This also increases the chances of people investigating Blender’s creation more deeply and perhaps one day aiming to contribute to core Blender.

  • Addon developers will not need to update code for lower level API changes. If the core Blender team decide to rename elements of the regular API, this does not affect EasyBPY’s function names. It will just be a matter of us keeping track of the changes and implementing them in the module so end-users don’t need to worry about it. Their only requirement is to keep the module updated.

Contributing to the Project

If you want to contribute to the project, please join our Discord server and propose ideas in the code-stuff channel. I will read pull requests on GitHub, but I will not accept them unless they are perfect. Typically, I will take all of the suggestions and implement them myself, then add you to the credit list.

Previous
Previous

My Experience with Hemiplegic Migraines