Hi Jonne,

 

We all want to see realXtend succeed and I've been working to help realXtend
become a viable solution for several years now, ever since my involvement
with Alon Zakai (the creator of Emscripten) on Syntensity.

 

RealXtend's long-term success as an open-source project depends on
dev-community growth and wide-scale adoption of realXtend-based solutions.
While Kitely currently doesn't have the manpower or the financial resources
to do actual realXtend-related development, I have been openly campaigning
for realXtend adoption by the OpenSim developer community for almost a year.
I've done so in private talks with key OpenSim devs and in public recorded
presentations and interviews I gave inSL (Toni and others can attest to this
fact). One recent result of these direct conversations is that David
Daeschler from InWorldz (which is currently the biggest OpenSim-derived grid
in active user numbers) is willing to allocate development resources to help
make realXtend a viable viewer for OpenSim-based worlds.

 

As for realXtend-based solution adoption, Kitely is a high-profile player in
the OpenSim community. Our open support and adoption of realXtend has real
PR value for the project. For realXtend to get consumer traction and become
a viable alternative to OpenSim, it needs to have high profile OpenSim
providers, such as Kitely and InWorldz, publicly adopt it. Doing so will
attract OpenSim (and TPV) developers to work on realXtend. It will also
create more business opportunities for all the companies currently
developing realXtend.

 

Finally, I've recently started campaigning to get realXtend additional
funding from third-parties. I've encountered some good initial reactions
from people but it's way too soon to know if any of this will result in
donations to the foundation.

 

As for your comments about the technical aspects of how to go about
implementing this, I tend to agree. realXtend needs to be able to support
manipulating prims and SL-type avatars to help migration of SL/OpenSim
content into realXtend but ,even if there is an interim period during which
OpenSim is used as the backend, in the long run realXtend can offer a better
engineered solution without using the OpenSim backend. However, for people
to be able to move over to 100% realXtend solution, that solution needs to
maintain the prim capabilities and the SL-type avatars. It shouldn't be as a
hardcoded part of realXtend but these capabilities should be supported
independently of OpenSim and its inefficient protocols. A scripted UI and a
protocol translation layer that can be moved from the viewer to the server
and eventually eliminated can help shorten this transition period.

 

Cheers,

 

Ilan Tochner
Co-Founder and CEO
Kitely Ltd.

 

 

From: [email protected] [mailto:[email protected]] On
Behalf Of Jonne Nauha
Sent: Sunday, April 29, 2012 12:53 PM
To: [email protected]
Subject: Re: [realXtend] Growing support for OpenSim compatible viewer.

 

I think we reX devs have all at least tinkered with the idea to make some
kind of OpenSim support in our heads, and shortly at times on our IRC
channel when the subject comes up. The idea is fun, and as we all worked on
Naali before we know how it can be done. For me, this however should not
touch the basic core of Tundra in any way. As Toni said Tundra is now a
generic 3D application framework/engine that has its own thing. The code
base and the framework/coreapi/application separation is much nicer, I could
say its at least 100x nicer codebase to work on than what Naali was :)

 

This being said, I believe the Tundra framework/core apis are in fact so
nice that OpenSim support could be done in a separate OpenSimModule that
just _does it all_ and would not touch other parts of Tundra, if this can be
done, its clean and we would have a non trivial testimonial that Tundra core
itself is quite nice :) 

 

For logging in to OpenSim and getting the basic scene to render could be the
first step. For this the OpenSimModule would need to do the following:

1.      Do the login with xml-rpc (utilise code from Naali
OpenSimProtocolModule, rewrite the somewhat ugly login code though and find
nicer xmlrpc lib)
2.      Create a new client scene with SceneAPI.
3.      Handle the incoming LLUDP message (utilise code from Naali
RexLogicModule). This would include making a translation layer for the scene
coordinate system as we moved Tundra to Ogres system.
4.      Translate the object messages into Tundra
Entities/Components/Attributes. This would leverage our existing
EC_Placeable + OpenSimModule would reintroduce EC_OpenSimPrim from naali
codebase in some way).
5.      Render the OpenSim scene, wohoo o/

I actually think this would not even be too much work. I think more work
would be to do the avatar and after that finally syncing scene changes back
to the OpenSim server. Not to mention inventory, opensim chat etc. to get a
"fully featured" opensim client out of Tundra.

 

I would also recon we would do it a bit differently this time with client
side scripting support like Toni suggested also. The OpenSimModule should
handle all the messaging and construct the scene for rendering it and all
that basic stuff. I think how we went partly wrong in Naali was that all the
UI for example was hardcoded in to the c++ code. Tundra basically has no UI
when you log in to a world, the scripts from the scene define the UI of that
particular server. I think even if we know OpenSim has chat and inventory
etc widgets, we should handle those things in OpenSimModule emit some
related Qt signals and make the ui in scripts (local in this case). People
then could modify how their UI looks locally, make nice mods and share those
scripts with other clients. Anyways the point is, imo we should not hardcode
UI into the OpenSimModule, if something requires that emit the data to a
scripting layer (if feasible, it is always not, but eg. for chat and
inventory it would work great).

 

That all being said, this is the for me at least still that "tinkering in
our heads" kind of stuff :) Its fun to think for a coding challenge how to
do it, but actually doing even the simple OpenSim scene rendering takes some
serious works hours. Of course it would help if you get us reX devs on
board, for a novice to Tundra/Naali/rex tech/C++ it might be a lot more
work. 

 

So I guess I might ask a question too. Are you willing to put some effort
into this by the OpenSim dev community or are you just asking "will you do
this for us?". If it is the latter, at least speaking from our company
perspective (don't want to but any words to other rex involved companies!)
we are very happy with Tundra and OpenSim as a server is not in our roadmap.
If you ask me personally I would be happy to chip in on my free time if this
effort materializes :)

 

It is easy as peanuts to fork Tundra and just get to work. But if we want
the module to integrate cleanly into Tundra as an optional module, we should
have some talks how we can accommodate this and what would be the best
approach. I mean if someone starts working on this for two months then send
a pull request that has added hacks around the core APIs to "just get it
work" it would be swiftly rejected and no one wants that.


Best regards,
Jonne Nauha
Adminotech developer



On Sun, Apr 29, 2012 at 5:47 AM, Toni Alatalo <[email protected]> wrote:

On Apr 28, 2012, at 11:30 PM, Lord wrote:

Recently, Linden Labs/Research announced an upcoming move (Havok AI
sublicensing) that seemed to indicate that they were going to develop their
Second Life(tm) viewer without further consideration of the Open Source
community.

 

I wonder what motivated that statement, seems a bit weird: "Sublicensee must
require the Third Party Viewer to connect only to servers owned or operated
by the Company [Linden Lab]."

 

Is it perhaps because Linden has only paid for a license to use it for their
service?

 

There are some who believe that they will just fork the SL(tm) viewer
without the changes needing licensing and continue onward, either with open
sourced solutions to the features they develop that can be used in OpenSim,
or simply by doing without those features.

 

Sure, people don't want to loose what they have. How much it would develop
further from there, well, who knows.





While this may work for awhile, their message is of a slippery slope
variety, and will probably result in their closing it down more and more as
time goes on in order to make it a tradeable asset.

 

Is this a somehow known? We here haven't followed SL recently here,
everyone's been too busy working I guess.






In light of this development it has occured to some in OpenSim that they
need to break free of the ties to Linden Labs/Research(tm) and produce their
own open-sourced viewer with no LL dependencies. However, there are strong
reasons for not wanting to write one from scratch: mainly, time and money.
Due to this, it has been suggested that OpenSim start with an already
existing viewer, such as Radegast, or Tundra/Naali and build from there.
There seems to be growing support within the OpenSim community for such a
viewer.

 

This is a bit of a turn, no?

 

Thinking about these things some 1-2 years ago, come to conclusion that the
Linden renderer is what many Opensim folks are happy with .. is definitive,
how all the graphics should look etc. And it was then LGPLed and all
(right?) so licensing became more Opensim compatible too.

 

We've figured it has to do with the need: if you want an exact SL clone, may
be not a bad idea to use the SL viewer. And Imprudence and Aurora and what
not, KirstenLee for Cinematic / Machinima use etc. So I've been concluding
that that front continues on the same way.

 

But if instead you are interested in a humble still a bit immature candidate
Internet standard virtual worlds thing based fully on open source libs,
which is modular (uses the same entity-component system for core things than
you can define for your own functionality, even from scripts) etc .. then
some other solutions are more interesting ;)

 

With realXtend recently the most important thing has been to make a fully
generic application platform. Tundra reached that, and is solid and stable
now. We are happy and can make applications.

 

The 'Second Life application' was one of the original use cases for Tundra
too. Already in the Naali version it was all modular -- for example prims
and other sl things were are in one app logic module (RexLogic is called, to
mean the legacy lludp+rex features .. could be LLLogic too). Inventory was
another module, there was actually two implementations: Linden inv in C++
and a Webdav inventory too using a Python dav lib for the networking (but
the final QT Gui for it was written in c++).

 

If you want, it is perfectly valid and possible to implement Opensim things
in modules for Tundra, for example. Some of them don't need anything new
from the core. With the old Naali builds you can already test if, if the
latest 0.4 release still connects to current Opensim .. it may :)

 

Much could be written for example in Javascript, for example all the
inventory and if you want authention and such things .. such app logics are
often in js with Tundra. And UIs and custom editing tools etc.

 

BTW I've found the effort to add 3d rendering to Radegast with pure OpenGL a
really nice exercise. And whole Radegast and actually the LibOMV in there
too.

 

One way for Tundra-Opensim connection would be making some sort of
DotnetScriptModule to Tundra for C# plugin support (or can they integrate
just with c++ somehow) and use LibOMV. Naali of course has the old C++ LLUDP
code too. I'd probably first test first with pythondotnet bridging, like did
with Blender (in http://playsign.fi/engine/BlenderOMV).

 

But I don't know if LLUDP is that interesting to use.

 

In fact, both Ilan Tochner of Kitely, and Tranquility Dexler(David
Daeschler) of InWorldz were very interested in the possibility (
http://www.hypergridbusiness.com/2012/04/new-linden-policy-may-hurt-viewer-d
evelopment/ ) .

 

Yes, we have been talking with Ilan about these things for a while now.

 

He explained well how sees content interoperability as the key. I think that
makes a lot of sense. So we might consider e.g. OAR import&export to Tundra
(EC_Prim), not SL protocol things etc.

 

Though in general it at least used to be so that e.g. Collada support is
much more important for typical reX users than OAR. Might be an interesting
effort to write Collada scene saving to the Opensim .. put the primdata in
collada's xml somehow, the X is for eXtensible after all.





Would it be possible to achieve an OpenSim compatible version of the viewer
(and possibly the platform) ?  I think it would draw more people to the
entire Tundra platform as they use the viewer.

 

Is certainly possible. And I think if something like that is made, it easily
becomes a feature for the platform. For example if you make a Prim
entity-component, can put the data in the attributes there so that they are
automatically saved to Tundra files, synched over the net in realtime etc.

 

To complete the features for a really useful level would take some
substantial development effort. Quite a lot was made in the Naali project
back then. Prim rendering and avatar support (also to get the animations,
Melanie's LegacyAvatarModule project). Ilan has been asking about those and
we've tried to estimate the amount of work to for example integrate that old
LegacyAvatarModule, for LL avatar support, to current Tundra. Is not trivial
mostly because the format is undocumented and only a few people have reverse
engineered it afaik etc.

 

One thing I've wondered about Opensim and reX is connecting from WebNaali to
Opensim. It would be very simple, at least if there is a nice working C#
websocket server module (and I'm sure there is nowadays) (also some Python
one might make sense if could then share the code between Opensim and
Tundra, as the Tundra one uses py). Basically to repeat the old WebNaali
demo by logging in to some Opensim server, and getting an avatar and moving
and chatting there -- the others using Linden viewers or whatever. Could
sync some cube position to test how collaborative editing could work
(another point Ilan advocates is having good simple editing, creation tools,
even just basic at start).

 

This could be done either with the WebGL+WebSockets based original WebNaali,
or the alternative Flash3D thing we've been working for one project right
now. A prim editing test with WebGL would certainly be a fun experiment, and
I think is easiest to develop on that anyhow (can just move vertices from
javascript) .. even as a prototype for native Tundra too if someone want's
it there. Simple 3d modellers made with WebGL seem to work pretty nicely
(3dtin and then that one Finnish one, Tinkercad).

 

The reason why I've wondered if those browser based things might be
interesting for Opensim folks is that they bring something new, for example
a simple scene viewer to show worlds on websites. As it seemed that on the
native app side people are content with the slviewer base. But if that is
changing now and there's interest for a normal open source viewer project, I
think Tundra is certainly worth considering. Has matured well now for the
basics and is nice to build on.

 

With the browser based engines I'm curious about the performance. If they do
clever batching, might render prim style builds fast more easily than with
Ogre .. though I'd guess Ogre is still easily faster for heavy scenes. Am
talking about prims as discussed them with Ilan, about how they can be
useful for quick easy builds .. I think he's right that they can be a
competitive advantage.

 

~Toni

 

-- 
http://groups.google.com/group/realxtend
http://www.realxtend.org

 

-- 
http://groups.google.com/group/realxtend
http://www.realxtend.org

-- 
http://groups.google.com/group/realxtend
http://www.realxtend.org

Reply via email to