2.5 DEV: New data API now in progress

http://lists.blender.org/pipermail/bf-blender-cvs/2008-November/016464.html

More info
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/DataAPI
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/RNA

Apparently not only does this signal the start of major development in 2.5, but also means a lot of possibilities are promised after this is complete, for example.

Automatically generated user interfaces with lists of data properties.
Access to Blender data by plugins, for example in a render API.
Automatic python scripting access to blender data, without manually written code that might be duplicated elsewhere.
A uniform interface for native and custom defined properties.
Making all properties animatable and proxyable.
Generating documentation.

Automatically generated user interfaces with lists of data properties.
Yummy.

Access to Blender data by plugins, for example in a render API.
Yes!

[edit]
Gah! I just realized I made one of those “I approve” posts.

Ok, let’s add an actual comment:

I hope plugins communicate through one of those self-describing data structures (is SDNA becoming CORBA?) Also, it would be incredibly cool if you could add custom (scripted?) interfaces to those data views.

browsing through the descriptions, surprised to see that vectors aren’t one of the key datatypes. Easily added on top with a simple python class for example, but with 3d in general being so vector friendly (colour values, light values, direction vectors, vertex positions etc), seems appropriate to include them.

He he, Brecht made an RNA Viewer. Not committed yet, but here is a nice screenshot:


This is that developer interface that they talked about, where every single editable thing is displayed.

So how’s that going to be useful other than the fact it displays everything, I’m curious to see what it’ll be used for.

the idea is that it is just a place to store everything… coders can code features and they’ll be available in list view as commands…

then other coders (or the same) can figure out how the ui should offer the features to the artist in a nice way, effectively separating the commands from the ui,

Not sure this is that though…
this looks more like the beginnings of a “lightwave style” spreadsheet editor… but i like the idea of a list view

Maya does something similar, as does Modo… not very useful to artist, but a boon to scripters and coders and of course it means faster/easier development

I look at that and I’m totally lost - well not really, but it’s unfamiliar to me and therefore it’s dangerous and I’m afraid of it :mad:

That’s because it’s the DEVELOPER’S interface.

Seriously, first the horizontal buttons thing and now this. Could we at least wait for the devs to get their ideas off the ground and functional before spitting all over them?

Has anyone else noticed all these blender users falling into the same trap of fear and loathing to let go of habits that they accuse everyone else of having?

note to self, don’t kid about GUI topics some people may be very touchy about it

Right. Sorry about that.

From what I gathered, this interface was automatically created by the Data API.

This isn’t the real interface; design for that is a long way off.

Surely flexabiltiy is THE best thing to code. In my experience sucky tools are the ones that only do stuff one way, not allways the best way.
Some say Blender shouldn’t be customisable, as this impedes development (don’t break the code rules). But I think that creativity exists in ‘exploring the tools’ as well as in making the art.
Why can’t we have everything and choose not to use some of it?

And if vertical menus work them I am happy to use them. Sorry for off topic.

Well to me that seems great!. Since everything could be a simple command, you will have the log of you actions and you could easily build little tools, script or other things in a way that even non code savvy can afford.

-Gian

Finally some steps in the right direction. I hope users and developers realise how important this is not only for external app. but also for Blender itself.

Do not worry. Eventually I guess Blender GUI of 2.50 will look something like this:
EDIT: This was presented last weekend during Blender Conference.

http://reynish.com/blender_ui/blender_25_ui.png

I suppose backward file compatibility will become an “issue”. Not that it would matter that much to an aware user. I’d say, if they’re changing things around at such basic levels (which is a great thing!) they ought to move on past 2.X to version 3.0 (as well as adopt a XX.XX.XX.XX version numbering scheme.)

EDIT, nevermind… not a rework of the basic data structures after all… just missed the “API” part of it. Sorry.

Quite a good point mzungu. It may not be such a serious problem when users are informed really in advance so they can plan which version of Blender to use for their projects.

looking forward…!!!

ok to stop any rumours and misinterpretations.

-the first screenshot is just a test to see if the rna actually works although there will be a list view option for those who like those

-SDNA which is the underlying data structures and fileformat, will not be changed.

-Vector data type will be added, in the code in comments brecht says vec3f will be added just takes a bit of thought

-only list view will be automatically generated, ordinary interface will still be manually placed and some aspects of the element will be automatically generated, like tooltips

-tools code will remain the same for now as RNA calls cannot be used outside rna, the change will be that tools will get its data from the automatically generated api not directly from sdna which avoids data corruption and allows for data contexts

I hope this will clear up confusion, and please leave UI discussions until we have a UI of somesort, Thank You

-Vector data type will be added, in the code in comments brecht says vec3f will be added just takes a bit of thought


struct vec3f
{
    float x;
    float y;
    float z;
};