Blender AIO: Question For The Devs

I’m just curious here. I see Blender as being a superbly AMAZING graphics program, and the mere fact that it has its own game engine takes programs like Maya by storm. But on a serious note, I see all these scripts, all these “add-ons”, but why? Why do we have all these scripts and add-ons? Why aren’t these functions built into Blender itself? I see groups like “Make Human” creating standalone software for very real human beings, very detailed. I see all these scripts that do these amazing things like help with hair and whatnot, particles, landscape, etc.

Why are these functions not already built into Blender? Would it not be easier to have Blender pre-coded to be able to create realistic human beings? Would it not be more functional for everyone to have a section for landscape, hair, fur, etc, precoded etc. already coded into Blender? Why use a script for what rightfully should already be in the program?

For example, I would like to be able to just download Blender and go right to work; no jumping around from site to site, download this, download that, hope I correctly put it in the right location and organize it correctly (It’s not fair to someone not knowing anything about Blender to be expected to know exactly how to install python scripts and addons and properly get them working.). I would rather just open Blender and have everything right there in the program itself ready to be used to do ANYTHING I want to do.

I’ve heard people say that Maya gets hacked to bits by their designers and whatnot and that’s why there’s a lot of bugs etc. Why not, on a serious note, have these “hacks” be part of the literal program? Why go through all the trouble of writing out these scripts and hoping they work without considering just making something so commonly used (and required for most projects) just part of the program itself? I think Blender could highly benefit from this. Yes, it means more work maintaining the scripts and etc., but that’s why there’s a community, that’s the essence of Blender being Open Source that it’s free for anyone to help and develope into the greatest program ever made for graphics. I think we’re selling ourselves short by not including these scripts in the program itself.

I’m open to honest and critical answers here, please please speak your mind and be honest, but also be open minded to the question I’m asking here. I’d really love to see Blender be the “Blender All In One Graphics Software” that’s open source, beats all of its competetors simply because of what it offers by DEFAULT that other programs don’t even consider because they find it a “daunting task”. Daunting task or not, Blender has a MASSIVE step ahead of any other 3D Graphics software out there:
OPEN SOURCE and COMMUNITY

Comments? :slight_smile:

Certantly, you do not need to jump from site to site,
just port these scripts from different people into C++ and submit a patch or patches.

You might notice, that maybe it will take you several decades to make a thing. But this is not a problem eirther - you may fund fellow coder for some time to make a trick.

Then - in case no effort and no funding - then. OK just good idea. But python scripts are easier to code and there are many people who do that, neither they are about to make it C code, and many of these addon scripts will not appear in a first place if no add on capability. there are not so many people who like C coding and can do that well enougth, while it is much easier to learn and code in python

other issues with separate projects - their developers do not neccesary have in mind blender comtibility on source code level when they develop a separate app. They have their ideas but they cannot be forced to behaive like you want. They develop for their own joy.

So someone needs to make all this mentioned by you work. And it all takes time and effort.

In case - you can help to significant degree - then OK.

In case not - then there are many good things, which never comes true due to no one pays special attention.

Then there’s also a matter of what is core Blender functionality and what is an extension of Blender functionality. Extensions often tend to be customizations or smaller features that lay outside of Blender’s main featureset.

IMO it’s good to keep those separate.

Blender 2.49 takes 1 second to start.
Blender 2.55 takes around 3 seconds to start.

Compare to other programs like max with around 30 seconds to start last time I was using it some years ago…

That is why is good idea don’t load things if you are not using them.

the days of the monolithic piece of packaged shite are over. Scripting languages in a host environment offering users a easy way to extend the base functionality of a software are what software like emacs or webbrowsers taught us for quite some time.

Think it this way: would all that amazing functionality exist to be packaged into Blender were it not for the efforts of users and a simple way to write them? Would they even try to do it in C++?

(It’s not fair to someone not knowing anything about Blender to be expected to know exactly how to install python scripts and addons and properly get them working.)
Do you think that single ‘Install Addon’ button in the User Preferences is too difficult to understand ?

The most important reasons for skripts/addons/plugins ist that it allows to add functionality that is only useful in a certain area and having them not be directly in blender means that the core developers don’t have to maintain all of that code.

All very good points so far, and I appreciate every one of them. The load time I suppose varries on what version OS you’re using. For example, I’m using Windows 7 64 Bit and it takes almost 10 seconds for Blender 2.5.4 to start up vice the like 2 seconds it takes Blender 2.4.9. I can see how the newest version most certainly has a lot more to it. Whether I had the addons enabled or disabled made absolutely no difference though, it was still just as slow. So I don’t think the addons and scripts they’ve made have any affect on how fast Blender loads, it’s when you use them and the more resources it pulls that causes it to go slower.

I see your point about functionality. People like to have something that’s just a preset and they can manipulate it any which way the like. That’s one reason I kind of like the idea of being able to disable addons. If you don’t want it and don’t need it then it doesn’t have to be on, but it can still be there later if you change your mind. No meddling around with the files inside the folders, just doing it from the program itself makes me feel better and more safe.

that’s one of my dislikes with linux, you have to be technically savvy to use it and if you don’t know how to properly mess around with the files and core information on the system then you’re just going to screw it all up. So when I saw blender worked kind of the same way that you add scripts here and add folders here and plug a dll addon here, it kind of threw me for a loop. I just like something that does all this for you from the program itself and I think the developers had this in mind when they created the new addon system.

yes, the “install addon” button is rather simple and easy to figure out, which I think kind of answers one of my questions. I didn’t fully grasp the idea of an “add-on” and looked at it more as a script. So I guess what I’m looking for is more available add-ons that come preinstalled with blender. that’s going to take time and work as the software has been layed out differently and is newer and uses a different version of python and all.

I’d like to see more ideas and oppinions though please :slight_smile:

One way to bring all scripts in one place - might be button ‘share my addon’ which will in turn upload all the script to dev servers ( together with standard description ). This way - more people ( because a lot of add on devs just do not have personal web page to put script or do not bother to share their work ) will contribute with small and usefull bits.

as for management window to manage addons ( including those, available in above mentioned server ) - that can also might be useful.

as a temp solution you might maintain page with all the links to scripts ( with local copies if license is applicable ) you consider to be useful. such aggregation will save a lot of time for others.

there is already such repository in blender wiki - but no all scripts are there - so it is possible to make effort to improve situation there.

There will always be more and more addons that will be bundled with Blender releases, the trend has already started, and already the Lux guys are thinking of bundling LuxRender with Blender as soon as the API settles down.

There have been many complaints about software having too many addons/plugins to do things that should be hard coded into the core, and some should, but not all. Maya was designed to let people mess around with it so that they can customize tools, Blender is kind of that way, since Python is a flexible way to access core features, but without tampering with the core. Development of tools as addons could quite literally be too fast to incorporate into the core of a piece of software, but hard coding leads to less flexibility in many ways, especially when there are dependencies that could break here or there with minor changes. If the Python code doesn’t work, it doesn’t “break” Blender or anything else down the line (save for the crashing, but it won’t break core tools and/or functions).

I have to say that the flexibility of addons appeals to me for the simple fact that they are there if you need them and not when you don’t. More tools are developed and can be when needed simply by using Python to grab tools from the core in order to function while leaving the core code alone. Python is slower since it is not a compiled language, but is more accessible and more and more companies are adding Python to the mix for their software just because of the shear possibilities for third party developers. It’s a good thing, in my opinion.

Thank you both for your comments :). I agree that the addons and links should be completely centralized. Right now I’ve just found at least four different websites with a “repository” of scripts. I haven’t found, however, a single website with all the scripts bundled together in at least a .zip file. I really wish they were hard coded into Blender, but your argument makes sense. There are just too many things that could break if they were hard coded and it’ll make multiple things per addon to look at when making updates here and there, etc.

I like Skurdakov’s idea of being able to share addons and whatnot. I wish there was a CENTRAL location that was official with blender where scripts could be written and tested, shared, etc., bug checked, everything, and put into a location affiliated directly through blender so that they could be spread out as people needed them.

Here’s the idea:

User 1 creates a script to create human bodies, very well defined, detail is great, and flexibility with the type and style of bodies is phenomenal, and he uploads the script (through his blender program in the user preferences -> Addon’s window). It’s uploaded and given a hard link and put into “alpha” rating (just as any other software, things need to be bug checked and reviewed before they’re tossed out there for everyone to use).

Online Community tests the script and bug reports for that script are posted in that scripts description page and whichever user who wants to add a patch to the script or upload a revision is allowed to with the permission of the original script owner. Eventually it reaches Beta, then Full production.

User2 is checking out his preferences window and looks in the Addons section and decides, “Hey, i want a new Addon.” and instead of having to head over to the website, there’s an addon browser built right into blender with a rating of “Alpha, Beta, etc.” next to it. User2 sees “Alpha”, decides he wants to test it out anyways, downloads the script from within blender and updates the menus and runs the script. If there’s a bug he can go into the addons section and “submit bug report”, if not then he can go into addons section and say it works perfect and it updates it on the website central location with his comment and his Operating System and Blender Version number.

the rest of the community does the same thing with dozens of other scripts and addons and not only are scripts more widely distributed, but they now have every user in Blender able to test, work with, comment on, submit bugs, and be able to have all these third party scripts and addons not just “hey download my script!” but “hey look, a new script, let me check it out!”.

unless it’s being used i don’t think it’ll slow down blender to be honest. If it’s disabled then it certainly shouldn’t cause blender to go slower. However I’m sure that if you had like 400 scripts and addons in your directory it could possibly slow blender down then.

But right now the Blender community (as far as scripts and addons) seems rather disorganized. Blender has a list of these addons and scripts on its site, but realistically, if I want to get every script on the page i’d rather not spend the next four hours downloading each individual one and installing it then testing it then if I don’t like it uninstalling it, etc. etc. etc. It should be centralized, have a bug tracking system, and be put into blender for better and more distribution and handling.

any thoughts on that on how to make this idea better? I think this would be a fantastic idea though :smiley:

Cd27, the scripts and addons uploader/downloader sounds like a really good idea for a script/addon. :smiley:

The biggest problem would be online storage for all the scripts. Perhaps the script/addon “script/addon loader/uploader” would be able to take new repositories so that it could have a list of trusted sites that it could periodically check up on for updated scripts/addons. New repositories could be suggested by existing repositories so the user doesn’t really need to wade through the net looking for new repositories.

I guess a way to download/upload scripts/addons is only a natural progression from the current script/addon manager.

Edit:

I guess that what’s being discussed is an internal svn system for committing and downloading scripts, coupled with a simple script repository browser.