I do have some great news I solved the problem with  blender operators that
means I now have full access to the whole API of blender. Everything in
Blender API is basically operators and properties.There are still
limitations to be solved of course.  First that I will tackle is how to
communicate data from Blender back to Pharo.

Also I have added example code for people to look at.  Just pull from my
repo here http://www.smalltalkhub.com/#!/~kilon/Ephestos/

Ephestos is not something I am making for others to use, its primarily for
my needs.

Because I am very interested in interacting and integrating other Blender
addons in my workflow I want to keep the Pharo API as close to BPY as
possible. This will make it easy for me to port BPY code to pharo and talk
to existing Blender addons. Blender addons are extremely important they
implement tons of new functionality for Blender.

A cube is not a separate object in BPY ,  a cube is basically a mesh
object. So BPYMesh would make more sense. But in BPY its really a
BPYObject.

Additional I can be lazy and avoid documenting stuff since translating
python calls to pharo is dead easy. Python has a very simple syntax, not as
simple as Pharo but quite close. So its easy to go to Blender wiki BPY API
and find all the information you want instead of me going through the pain
of rewriting this huge documentation. There are also a lot of tutorials
about making blender addons with python online, there is no way I can
compete with that . So in the end if you really want to take advantage of
Blender learning python and the blender api is mandatory. Pretty much every
major 3d app uses Python and Python is a very popular language so there is
nothing to lose by learning it.

I would not put too much faith to me mapping alone the huge BPY API, the
operators alone are 1500 or so I have been told, properties must be at
least double that amount. Translating all that to Pharo objects is just an
insane amount of work unless I find a cleaver way around it with some pharo
parsing but still too much work for little gain. But I will map some basic
stuff to decrease the need of writing python code.

About Atlas here is the repo that I am going to post the code

https://github.com/kilon/pyAtlas

For now I work on Ephestos and when I am happy with the progress I made
with it I will port it to Atlas and make an announcement here. Its
basically the same code minus the Blender stuff.

PS: It may also make some of you happy that I plan to expand Ephestos to
include besides BPY also BGE. BGE stand for Blender Game Engine , its a
game engine offered by Blender that excels at any kind of interacting
graphics, that means that you will have access to a very powerful game
engine and a general engine for 3d interactive applications. BGE is a lower
priority , but it should be easy to implement once the big limitations of
Ephestos have been solved.

More info about BGE can be found here
http://wiki.blender.org/index.php/Doc:2.6/Manual

you can find finished games made with BGE here
http://blenderartists.org/forum/forumdisplay.php?39-Finished-Games

A very good example is this http://deadcyborg.com/




On Thu, Jul 17, 2014 at 8:31 PM, Hernán Morales Durand <
[email protected]> wrote:

>
> 2014-07-16 12:31 GMT-03:00 kilon alios <[email protected]>:
>
> yes the one I am considering as strong candidate is
>>
>> (BPYObjects at: 'Cube' ) location : #( 0 0 0 )
>>
>>
> Why not BPYCube?
>
>
>
>> I would try to simplify bpy ( Blender Python API) and make it a lot more
>> pharo friendly.
>>
>> However plain python string will be kept as well, so you can copy paste
>> existing python code.
>>
>> One thing to note here is that Blender python addons are a huge deal.
>> Python addons are actually full blown python apps. Blender python is
>> basically a regular cpython 3 which is by far the most popular python
>> implementation , meaning not only that you can use blender api object but
>> any python library you can find. As a pharo developer you also can tap into
>> this power via Ephestos.
>>
>> something that I forgot to mention in the video, in the github repo there
>> is a rawcode.py. This is a strip down version of the Blender code that will
>> separate to its own project that I am naming "Atlas".
>>
>> The goal of Atlas, is to create a two way communication socket bridge
>> between cpython (most popular python implementation) and pharo. Very
>> similar to Ephestos but you will no longer need Blender. That means that
>> pharo coders will be able to use python libraries from inside pharo and
>> even mix python with pharo code. So you could make part of your application
>> in python and part in pharo and still function as a single application.
>>
>>
> I am interested in Atlas. Do you have a link?
>
>
>
>> If I find the time I would like to expand Atlas to other languages too,
>> so that pharo can take advantage of any library written in any language
>> without the trouble of FFIs. But most likely I will stick to python and let
>> others do the work.
>>
>> But even with just python as you imagine python is extremely popular and
>> quite friendly with the pharo way of thinking. Meaning that in python its
>> all about live objects too. Pharo will be able to tap into thousands of
>> powerful python libraries. 
>>
>> I reserve some doubts to the amount of problems I will have to face to
>> accomplish this and I am no way claiming it wont be a long process but so
>> far through these very first steps the idea seems to go well in practice.
>>
>>
>> On Wed, Jul 16, 2014 at 5:55 PM, Damien Cassou <[email protected]>
>> wrote:
>>
>>> On Tue, Jul 15, 2014 at 11:09 PM, kilon alios <[email protected]>
>>> wrote:
>>> >
>>> > The goal is to expose Blender coders to the power of Pharo and Pharo
>>> to the
>>> > power of Blender. As you can imagine the potential is huge but I
>>> rather talk
>>> > what Ephestos can do already.
>>>
>>> That's great kilon! I can't wait to see how far you could go with
>>> that. I hope you plan to use Pharo syntax instead of plain string for
>>> the messages. A message like this:
>>>
>>> "bpy.data.objects["Cube"].location = (0.0, 0.0, 0.0)"
>>>
>>> could be written like that:
>>>
>>> (EphestosMessage bpy data objects: 'Cube') location: (EphestosLocation
>>> x: 0 y: 0 z: 0)
>>>
>>> or something similar
>>>
>>> --
>>> Damien Cassou
>>> http://damiencassou.seasidehosting.st
>>>
>>> "Success is the ability to go from one failure to another without
>>> losing enthusiasm."
>>> Winston Churchill
>>>
>>>
>>
>

Reply via email to