[Fiware-miwi] XML3D (<)-> reX EC mapping doc (Re: Hangout to discuss 3D-UI architecture)

Toni Alatalo toni at playsign.net
Fri Jan 24 08:07:31 CET 2014


As planned in the meeting yesterday, we’ll document the co-use of the XML3D vocabulary (which is somewhat identical with the reX components already) and the reX EC model — for the integrated use of 3D-UI and Sync.

I started a draft in a gdoc, is also pasted below: https://docs.google.com/document/d/1OgU7hAatSAH3foGZ1ngWCv8xagyOlKkG8C5CQOQwExo/edit

Torsten can perhaps take this forward towards integration to the arch etc docs? IIRC Philipp also said he'll have some chances later today or during the weekend (Christof needs this by Sunday to ship on Monday - can and will of course be improved later but some sort of first version). Feel free to either work on & comment in the gdoc or move to the wiki suitably. I’m busy with other things till noon now but can return to this in the afternoon (and Erno can check this today too).

~Toni

The scene model to integrate 3DUI & Synchronization

To integrate 3D-UI with network synchronization an abstract scene model is used in the client core. It is implemented as a Javascript library and also provides the JS API for application developers to create and manipulate the scene. It uses the realXtend Entity-Component (reX EC for short) model, which is also used in the network protocol and on the server when implementing networked multi-user applications. The same API is used on the server side for scene manipulations. Here we describe the mapping from the XML3D structure and vocabulary to the realXtend scene model with entities, components and attributes. In this description XML3D is in bolded xml tags (e.g. <mesh>) and the reX EC mapping in Javascript in italic (e.g. entity.mesh).

XML3D <group> elements are reX EC entities: entity
XML3D elements inside a group, for example <mesh> and <light>, are corresponding reX EC components attached to the entity: entity.mesh, entity.light
A single XML3D element without an encapsulating <group> is also a reX EC entity with the corresponding component. That is, <mesh> is same as <group><mesh/></group>: entity.mesh .
XML3D <group transform=matrix> is mapped to the reX EC Placeable component which has the same transform matrix as the transform attribute correspondingly: entity.placeable.transform
XML3D <view> elements are mapped to corresponding reX EC camera components: entity.camera . The camera for the view is automatically set as the active one (the scene can have multiple cameras simultaneously but only one can be used for one view).
Hierarchical XML (nested tags) in XML3D is mapped to identical hierarchy of entities in reX EC. (implementation NOTE: hierarchical structure is not implemented in reX EC yet, current implementation of the mapping uses placeable parent reference attributes. This will change in coming releases)
XML3D element attributes, for example <mesh src=x>, are mapped to the corresponding reX EC attributes: entity.mesh.meshRef.x . Harmonising the attribute names to have them the same everywhere is under consideration.
XML element attributes unknown to the reX EC scene vocabulary (existing Tundra components) are mapped directly: <myelement myattr=x> is myentity.myattr.x . (implementation NOTE: proper implementation for arbitrary types in the networked system is not yet implemented).

The API to create, remove and listen for changes in the scene is documented in the Synchronization GE docs. 

-----
1) The client core (in WebTundra) uses it also when running in standalone mode for single user applications, without using a server and the Synchronization GE overall. 
2) This might actually currently require ent.mesh.meshRef.ref (with that additional .ref at the end) due to using an AssetReference type instead of just a string for the ref like in src - let’s consider changing that


On 23 Jan 2014, at 15:01, Christof Marti <mach at zhaw.ch> wrote:

> Hi 
> 
> Here is the hangout link for the meeting: 
> https://plus.google.com/hangouts/_/7acpjrv7f2be4bmhtjela651hk?hl=de
> 
> Cheers Christof
> 
> Am 23.01.2014 um 09:18 schrieb Marti Christof (mach) <mach at zhaw.ch>:
> 
>> Thanks Toni
>> 
>> It looks like today 14:00-15:00 is the best option. Would be great if Philipp can join then too (Had no feedback so far).
>> 
>> Best regards
>> Christof
>> 
>> Am 22.01.2014 um 17:01 schrieb Toni Alatalo <toni at playsign.net>:
>> 
>>> A bit about the agenda: What prompted this to me now was reading our arch doc & 3DUI and Sync GE docs. I find the overall arch doc does an ok job for now for describing the whole, but the GE ones are from different worlds. They are both fine as themselves but don’t tell how they should work and be used together (which the arch doc does promise).
>>> 
>>> The docs in question:
>>> Overall Arch: https://forge.fi-ware.eu/plugins/mediawiki/wiki/fi-ware-private/index.php/Advanced_Middleware_and_Web_UI_Architecture
>>> 3DUI GE: https://forge.fi-ware.eu/plugins/mediawiki/wiki/fi-ware-private/index.php/FIWARE.ArchitectureDescription.MiWi.3D-UI
>>> Sync GE: https://forge.fi-ware.eu/plugins/mediawiki/wiki/fi-ware-private/index.php/FIWARE.ArchitectureDescription.MiWi.Synchronization
>>> 
>>> The question I think we should answer clearly for app developers is: what is the API one should use to develop an app for the overall arch.
>>> 
>>> I’ll post separate notes about the meet we had last Thu about xml3d support in WebTundra in general & especially how net sync of xml3d data is planned to work there — have the notes about it on paper now but need to type it, either later this evening or tomorrow before this session. It is a bit a different topic but closely related.
>>> 
>>> Cheers,
>>> ~Toni
>>> 
>>> On 22 Jan 2014, at 14:51, Christof Marti <mach at zhaw.ch> wrote:
>>> 
>>>> Hi 
>>>> 
>>>> At the meeting a short hangout dedicated to discuss the common 3D-UI architecture description was requested.
>>>> It has to be quite short notice because we also have to update the page until Friday.
>>>> I prepared a doodle containing dates for today and tomorrow: http://www.doodle.com/9gzbu6ggyiit3a6z
>>>> 
>>>> Please register your availability asap, if you are involved in the 3D-UI GE architecture.
>>>> If no time-slot fits for you please let me know.
>>>> 
>>>> Christof
>>>> ----
>>>> InIT Cloud Computing Lab - ICCLab http://cloudcomp.ch
>>>> Institut of Applied Information Technology - InIT
>>>> Zurich University of Applied Sciences - ZHAW
>>>> School of Engineering 
>>>> Phone: +41 58 934 70 63
>>>> Skype: christof-marti 
>>>> _______________________________________________
>>>> Fiware-miwi mailing list
>>>> Fiware-miwi at lists.fi-ware.eu
>>>> https://lists.fi-ware.eu/listinfo/fiware-miwi
>>> 
>>> _______________________________________________
>>> Fiware-miwi mailing list
>>> Fiware-miwi at lists.fi-ware.eu
>>> https://lists.fi-ware.eu/listinfo/fiware-miwi
>> 
>> _______________________________________________
>> Fiware-miwi mailing list
>> Fiware-miwi at lists.fi-ware.eu
>> https://lists.fi-ware.eu/listinfo/fiware-miwi
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fiware.org/private/fiware-miwi/attachments/20140124/97ec37c8/attachment.html>


More information about the Fiware-miwi mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy