Is Blender really able to do everything?

Compiling, libraries, modules, coding guidelines and porting

Moderators: jesterKing, stiv

Post Reply
Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

Is Blender really able to do everything?

Post by Berserk » Sun Feb 11, 2007 6:40 pm

Hello everyone.
I just joined here, so greetings as well.
Let's get to the million dollar question now:
I see Blender has a lot of features, one better than the other, but I really wonder if is really capable doing almost everything.
Can Blender:
- Access a network?
- Synthesize sounds?
- Access MySQL/SQLite databases?
- Display HTML pages?
- Be used (with Python) as a UML + FlowBased RAD tool (with even GUI editor)?

Well, in truth this is a tricky one, as I already know some of the aboves are not (yet) supported on Blender, but I'm unsure about some.

I also have some suggestions to give for the game-engine side:
- Octree would be nice, please support if not already done.
- ODE Physics uses per polygon collision detection. I would use CSG Primitives for collision detection and nothing more, if not done already. Even for static objects/worlds.
- (Question) Does the engine support A* and/or FSM for AI?
- I "invented" a terrain management system, but only the theorycal part.
Basicly, it's all about using splines for managing a 4x4(cells) grid, wich gets subdivided as Octrees does, where the cell in wich the render camera is gets detailed and subdivided as necessary, getting polygons where the splines crosses each other, while the other zones would result flat.
This way the detailing would be dynamic, still keeping a fixed proportion with the terrain size, depending more on the actual units size than the memory itself (the counterpart is: how much memory would be used for 10 splines, with the minimal detail, plus the polygon generation/subdivision for detailing?)
Is this a good idea, or am I better discarding it?

Thanks in advance for any help.
.
Bye, Berserk.
.

SiriusCG
Posts: 0
Joined: Mon Jun 05, 2006 2:05 am

Post by SiriusCG » Sun Feb 11, 2007 7:38 pm

Maybe you would like to start here: http://mediawiki.blender.org/index.php/Main_Page

and this one in particular: http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro

I believe you'll find most of your questions answered. :wink:

stiv
Posts: 0
Joined: Tue Aug 05, 2003 7:58 am
Location: 45N 86W

Post by stiv » Sun Feb 11, 2007 7:42 pm

Can Blender:
- Access a network?
- Synthesize sounds?
- Access MySQL/SQLite databases?
- Display HTML pages?
- Be used (with Python) as a UML + FlowBased RAD tool (with even GUI editor)?
My first impulse on reading this was that it should either be deleted as a troll or moved to News & Chat. However, it's probably worth leaving as a counter-example whenever anyone says there are no stupid questions.

Interestingly enough, the answer to most of these is yes. Thanks to the embedded python interpreter, blender has access to anything that has python bindings. For the last one, you might want to consult a dictionary for the definition of 'tool'.

Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

Misunderstanding... as usual for me.

Post by Berserk » Sun Feb 11, 2007 8:42 pm

Stiv: No, sorry. This was not meant as a provocation, but I'm really wondering if Blender actually can do such things. I was asking because I'm trying to figure out how much work would have took to add what I would like to add to it.
Basicly, I'm planning/analizing some kind of addition to the Blender's source code, that's why I asked.
By the way, I don't understimate Blender's potential, as actually includes almost everything a good multimedia programming framework has to offer.

SiriusCG: Yes, you're right. In fact, I'm quite a mess with graphics itself so this would be a good idea for me.

In the meantime, can somebody take this more seriously and give me a precise answer?
Thanks in advance.
.
Bye, Berserk.
.

jesterKing
Site Admin
Posts: 207
Joined: Fri Oct 18, 2002 12:48 pm
Location: Finland

Post by jesterKing » Mon Feb 12, 2007 7:07 am

A precise answer is already in the fact that Python can be used, for virtually anything, some extra pointers:

* Verse gives you network (but very likely not the protocol you want)
* see BlenderPeople for an example of database usage
* For fun I've used Blender to model UML-diagrams. Use a good naming scheme and write a simple exporter. If you model properly and do validity checking yourself, you'll have your UML modeller :]
* Python can be used in the gameengine, so yes, the engine supports artificial intelligence, as long as you remember to write it.

Apart from the Verse support, everything can be summarised into: Python. (But stivs already said that).

/Nathan

joeedh
Posts: 31
Joined: Wed Oct 16, 2002 10:30 pm
Contact:

Re: Misunderstanding... as usual for me.

Post by joeedh » Mon Feb 12, 2007 7:15 am

Berserk wrote:Stiv: No, sorry. This was not meant as a provocation, but I'm really wondering if Blender actually can do such things. I was asking because I'm trying to figure out how much work would have took to add what I would like to add to it.
Basicly, I'm planning/analizing some kind of addition to the Blender's source code, that's why I asked.
By the way, I don't understimate Blender's potential, as actually includes almost everything a good multimedia programming framework has to offer.

SiriusCG: Yes, you're right. In fact, I'm quite a mess with graphics itself so this would be a good idea for me.

In the meantime, can somebody take this more seriously and give me a precise answer?
Thanks in advance.
.
Heh. Where did the idea for uml/gui editor come from? while these are both possible with python (for example, there are quite a few scripts for making guis for blender python scripts) I don't see the relevance of blender being a RAD tool. it's a comphrehensive 3d graphics package, not a developement platform :)

Joe

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Re: Misunderstanding... as usual for me.

Post by joeri » Mon Feb 12, 2007 10:31 am

joeedh wrote: it's a comphrehensive 3d graphics package, not a developement platform
Amen.

Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

Clarifying up

Post by Berserk » Mon Feb 12, 2007 4:33 pm

Ok, I was figuring out something like using Python for such things. But direct C++ support is not in, right?
So, thank you for advice on this.

Joeedh: This "funny" idea came in my mind after seeing http://duceland.com and various FlowBased programming tools.
The fact is, Python is a very good language, with OOP and lots of addins from various libraryes.
In plus, there are widgets wich are directly written inside of Blender C++ code, classes and various Python API modules wich makes Blender an excellent choice for general purpose multimedia development, as well as "normal" application development using its GUI and Network, Databases, etc.
Sound synthesys, as well as DSP, would be (together with network, databases, etc. indeed) the cherry on this cake, completing a full featured, general purpose multimedia framework.
So, here's why all those "strange" questions.

I'm not here for flaming, but I can't accept answers who seem to "put hands toward in advance", without knowledge on my real scope, on the other hand.

What Blender actually is, this is a known topic. What Blender can be, this is up to the future, don't you agree?
.
Bye, Berserk.
.

malCanDo
Posts: 1
Joined: Mon Oct 21, 2002 1:44 pm
Location: Ireland
Contact:

Post by malCanDo » Mon Feb 12, 2007 6:32 pm

> it's a comphrehensive 3d graphics package, not a developement platform

> What Blender actually is, this is a known topic. What Blender can be, this is up to the future, don't you agree?


I might have grasped the wrong end of the stick, but here are my thoughts.

Blender should of course always remain a tool striving towards 3D modelling/texturing/animation excellence, resulting in animations / GE games.


However, it should also be possible for people to utilise this technology to produce their own custom tools ( eg as a branch ).

An example of this was the MakeHuman project - they initially started out adding a layer ( UI and functional ) to Blender. However ( and I'm not sure of the reasons ), they do not use the Blender engine now ( but maintain Blender compatibility ).


Another example ( that may be touched on here ) is using components of Blender to make a level editor style app - this makes sense to me, as in any 3D artist environment, not all artists will require the extensive set of tools available, and restricting these in a less complex custom UI can help speed up work flow.



As a real-time 3D developer, I use Director and Shockwave 3D to create a lot of apps ( eg a 3D art gallery creator ). I have a few other apps ( eg a 3D comic book viewer ) that I am planning on developing over the next 6 months.

I'd like to look into using Blender components to help create these, but I'm sure there will be issues here.

Here are some issues that might arise...

- what is the story with creating a tool with the components eg GHOST, the GE engine, but not releasing the source code to this. It can be assumed that GHOST / GE would be used as is, and any fixes to these would be fed back in, but the application code that ties these together to create the actual product would not be released - otherwise, if I was going to charge, someone could just download the source, recompile, and give it away for free.

- can I come to a commercial arrangement? Is it going to be cheaper / a lot more expensive than just using my current tools.

Using Blender components like this would also assist with uptake in educational research efforts also ( eg someone researching anything that can be photographed could use Blender to auto-set up scenarios and render them out, based on calculated data - or they may link the GE in with real-time data, to visually display where certain objects are currently located, and view around them interactively ).

I'd like to see Blender components open to a wider range of solutions, both commercially and educationally.

Mal

Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

Sorry for asking...

Post by Berserk » Mon Feb 12, 2007 9:13 pm

Well, sorry for bothering all of you.
I apologyze, let's just ignore this.
I started not knowing if is Blender natively capable in any of the listed features, and I'm ending up still not knowing this.
By the way, I wasted 2 days discussing useless (private) details on how, why and when.
Sorry for being bothering you.
.
Bye, Berserk.
.

malCanDo
Posts: 1
Joined: Mon Oct 21, 2002 1:44 pm
Location: Ireland
Contact:

Post by malCanDo » Mon Feb 12, 2007 9:58 pm

Beserk,

Those features you mentioned can definitely be done in Blender using a bit of creativity.

You seem to be a programmer, with a specific interest in real-time / game technologies - your best bet might be to either try to accomplish what you want in Python, or to download the Blender source, compile it and just modifiy it to get some of your requested features in C/C++. If you are a coder, you'd be more than welcome to the GE coding team.

Mal

Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

This sounds better.

Post by Berserk » Tue Feb 13, 2007 6:03 pm

Ok, my apologyes for heating up.
Well: as you sayd, yes. I'm interested in downloading the C++ sources and add what I would like in.
So, I just asked in order to know how much is already done from my additions list, because I'm indeed planning and analizing for a source code addition.
This sayd, can someone please tell me how much is already supported at C++ code level in Blender, from these features I'm planning to have in?
- MySQL access (just like the SQL console)
- Network sockets (meant as they're meant in RFC protocols, so just TCP/IP stack etc.)
- DSP for sound synthesys (Sine, Sawtooth, etc. waveform generators)
- Sound Synthesys (actually using Sine, Sawtooth, etc. and output them to a sound stream)
- HTML format reading/displaying inside Blender Widgets

Thanks everyone in advance for any help on this.
.
Bye, Berserk.
.

malCanDo
Posts: 1
Joined: Mon Oct 21, 2002 1:44 pm
Location: Ireland
Contact:

Post by malCanDo » Tue Feb 13, 2007 6:11 pm

Hi Beserk,

> please tell me how much is already supported at C++ code level in
> Blender, from these features I'm planning to have in?

I'll try my best to describe what is in at C++ level, so someone correct me if I'm wrong.

- MySQL access (just like the SQL console)

No, you will need to add in database access yourself..

- Network sockets (meant as they're meant in RFC protocols, so just TCP/IP stack etc.)

No. You can have a look at the VERSE technology that is included, to see if there is technology that can be re-used ( maybe packet handlers ), but Blender does not have built in TCP/IP or UDP support.

- DSP for sound synthesys (Sine, Sawtooth, etc. waveform generators)
- Sound Synthesys (actually using Sine, Sawtooth, etc. and output them to a sound stream)

It may have these, if they are available through the two sound libraries that Blender used - OpenAL and libSDLs sound system. If you want to do serious processing other than the normal real-time game ones, these may have to be added.

For a graphical UI to define inputs, processing, and outputs, have a look into Blenders existing Noodles functionality ( used in materials and compositor ) as a great way to allow users to visually set up the sound synthesys flow.

- HTML format reading/displaying inside Blender Widgets

No. Are you thinking of adding in eg a FireFox / Gecko renderer, so that a Blender window can be opened to point to a web page, which might include help? For this, it might be worth looking into Cairo, which is used by Firefox, and which displays 2D content using OpenGL. Here's an example of it being used to display 2D content on a plane in 3D, in ogre3D - http://www.ogre3d.org/phpBB2/viewtopic. ... c&start=75 )

Hopefully all the no-s won't put you off, and you'll see enough existing functionality in Blender to encourage you to start developing with it, and adding to it!

Mal

Berserk
Posts: 0
Joined: Sun Feb 11, 2007 6:22 pm

You never know...

Post by Berserk » Tue Feb 13, 2007 6:28 pm

You never know how graceful I am against you. Thank you very much.
Now, to the points:
- I'm not really experienced with network layers, so may also be this VERSE technology is right for me. Is it possible to use it for writing network clients? AFAIK, TCP etc. uses packets, or however primitive commands wich are later used to construct protocols. Is this VERSE technology the case?
- basicly, DSP is some kind of way to take a number and rotate it, using somewhat standard waveforms wich, if plotted on a graph, have proportional differences wich pop to the eye like (indeed) a Sinusoid, a Sawtooth, a Square block chain, etc. the DSP core does basicly this.
I'll have to look for this more deeply, maybe this is supported in some collateral way.
- HTML display.
No, I was not thinking about a FireFox clone - I'm lazy, but not up to this - but just standard HTML reading, as (in example) the Blender on-line manual inside an help viewer, with some images (maybe) and (not for sure) JavaScript, but without flash player/shockwave/pdf/whatever else the web has to offer.

Fortunately, as I sayd earlyer, I'm lazy - until a certain point - and so, no. Your no-s wont discourage me - but a failure does, how strange is this?

Cheers :)
.
Bye, Berserk.
.

Post Reply