Well, we all know that and one of the advantages of working on an Open Source Software is that the Source code is Open, Accessible, Editable by whosoever chooses to do so.
Has anybody actually taken advantage of this feature of Blender’s license and actually modified the code to suit one’s own purpose or Improve one’s workflow or whatever?
Really Interested to know this.
For some reason, sometimes I find the user interface slightly off. Don’t get me wrong here. It has certainly improved over the years. You know, sometimes you just wish - Can this one aspect of the interaction be a bit more simpler? What If I could modify the code a bit to simplify this construct or that interaction, without having to cry about it in the forums or beg the developers for some feature, which is very low on their priority list?
Unfortunately since I am not a developer, and very far from having scripting or coding capabilities, It just remains a dream.
But I am sure, a lot of people out here are not so limited in capabilities. Hence the question.
It would be inspiring for many others, if we know that ‘Yes, this is possible’ ‘Some one has done this before’ 'So there is always scope to improve.
Disclaimer: In no way, does this question imply or wish to denigrate the awesome work done by the Blender Foundation, Developers, Ton, etc. We are all indebted for their crusade in FOSS. No flame war intended here. No comparison with any other software as well.
I would be very surprised if no company (or a single freelancer even) has ever modified Blender’s code to integrate it more with other tools. The entire source is available so it would be very easy to modify it to your needs, you just can’t share it if it uses non-open-source code in your build so I guess most people would want to keep a lid on it.
apart from someone selling it without credits and with a brand new name (something sounding like “3d wow killer app”) i can recall a “dtp blender” taylored for 2d graphics
There were a couple of scammers back in the day who stripped the logos and splash screens off Blender and sold it as a 3D WoW Killer App. I don’t think they lasted very long.
I also recall someone putting together a branch that had a library of parametric architectural objects that made prototyping kitchen design (I think that was the main focus) a very quick operation. I believe that one was developed for a manufacturer of kitchen cabinets, but it was offered (for a price) to the public. The demo video for that one was very impressive. IIRC, the user could add their own parametric models to the library, so it could be used for almost anything architectural, if you were willing to spend the time building the library.
I also have heard rumors of someone working on a CAD friendly version of Blender.
I do remind two of such cases., there might be more
One of them was from Andrew Price, in which blender was used by some furniture company who build kitchens.
I think he works for them as his main job or so, he tuned blender so much you wouldnt recognize it.
It was possible to quickly create a kitchen based upon simple building blocks ( worked with some object library !)
And it was possible to quickly change materials different kinds of wood paint etc…
Another example was where some chemical scientist scripted around blender so much that it became mainly a tool for displaying various chemical structures in 3d, and to animate them, as a tool to explain chemistry reactions where this is sometimes a complex matter to imagine.
It depends if you only mean individual users making changes for themselves, or companies hiring developers to customize Blender.
Both happen, you might be surprised to learn in the features in Blender which exist specifically because they were funded by users/companies needed them.
Still, when your question is if there is a full fork out there, nope, not at the moment. I remember one from the 2.4x line. But that one’s long gone and didn’t last really long anyways. The current existing modifications are all specializations on top of a specific Blender version, just with the goal to have those modifications. Not with the goal to fork Blender and to establish an alternative version.
I personally wish the customization was not so low level or did not require “custom builds” (maybe plugins instead?) because we have all these most amazing builds yet no way to “combine them” within 1 app. It’s very fragmented and they get out of date as soon as new version of blender hits. At very least would be great to have simple python modifiers. All of that hard work being dismissed/lost instead of adding up to empower the community.
I’m sure Campbell could fill in more of the details on how new features make it into Blender from outside the Foundation but I think it goes a bit like this:
new feature code gets submitted in the form of a patch (small simple feature) or branch (large complicated feature)
feature is assessed for whether it’s ready for inclusion
if so, the feature’s code undergoes a review process to ensure the code is sufficiently well architected, the user interface is well designed, etc (see the Multiview review in progress on the Blender tracker for an example)
as part of the review process, there are code rewrites
if that code is accepted, someone has to volunteer their time to maintain it moving ahead
new feature code has to be merged into existing code by a maintainer like Campbell, not always easy to do
Switching the version control system to Git was definitely a step in the right direction to make that sort of stuff easier. (SVN merging is horrible.) If you’re building Blender it might be possible to do something like:
git checkout coolbranch1
git merge coolbranch2
to try two unmerged features on branches in a single build.
Patch submitters sometimes get direct commit access to become maintainers of their own features (for big features it often makes sense).
You don’t need us to give you permission to use git-blender, anyone can use free git hosting github/gitlab/gitorious/bitbucket… etc, and have their own branch in the same directory as a checkout from git.blender.org. This way you can develop on your own branch just like anyone else working on a branch in Blender, without having to ask for permission.
Also, reply to @jadhav333 Q which I missed before.
Can this one aspect of the interaction be a bit more simpler? What If I could modify the code a bit to simplify this construct or that interaction.
This is tricky… being opensource - there is nothing stopping you … BUT…
In practice - there are some areas which are easier to add your own customizations into then others.
User interaction just touches many parts of the code. - (keymaps/operators/event-system/drawing/selection)…
Unless you’re talking about some very limited change - its not an area you can jump in and modify - without touching many files… Which in turn makes it hard to maintain a modified Blender version, because you will likely get merge conflicts as Blender’s master branch, its a hassle to continuously sync up the changes.
Sometimes this doesn’t matter so much - for a really special use-case, it might be OK for a user to be on the same version, as long as it stays working. But often you want to be able to take advantage of new features too.
UI is a subjective topic. Open source certainly gives the impression that there’s minimal focus on usability. I have lost track of the number of times I installed and uninstalled a Linux distro. Tiny, little things that makes life easy are still not there after all these decades. I open an internet browser in a Linux distro, click on the address slot and I have to select the entire text to clear it by dragging, ctrl+A, use shift, etc. In Windows it’s automatically selected or highlighted and you can type immediately; File navigation is still disorganized, icon folders and texts are huge, they don’t make good use of the RMB context-sensitivity, installing new programs is not a breeze, you don’t know where the installed program went - little things that are huge to many people. And in Windows you can drag a window’s bar to dock it on the sides, etc. Bottom line is, Open Source don’t see usability as another major feature, which, IMHO, is supposed to be equivalent to killer ones. Like they say, you get what you pay for.