Hello Jack,
Actually, there is one way to create something like a plugin.
As you may know, V2 uses HTML for some parts of interface, like Home Page. And,
V2 interface is skin-based, so, for example, you could add your tab to the
sidebar.
Than you could create some RIA interface (Flash/Silverlight), and connect it
with OpenSim region module, which should provide some kind of web service
endpoint.
I've tried this in my project, and it works. I've created a simple presentation
screen, controlled from a tab in viewer sidebar.
You could even send some information about user (like username), than, just for
example, track avatar position in world and change the RIA interfaces
dynamically - but in that case you have to use something like WCF double
binding.
The trouble is that the users have to install your customized skin for viewer.
It's not a problem in a local enterprise network (my case), but with HG and
public grids.... yes, it's a problem.
If you are interested, I could publish VS2010 template for region module with
WCF interface (very simple), and three parts of such "plugin" - modified XML's
for viewer skin, Silverlight application and OpenSim region module.
But, as it seems to me, it's really easy to create something like this without
my bugs in code :)
Vitaly
15.05.2011, 12:20, [email protected]:
> Send Opensim-users mailing list submissions to
> [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.berlios.de/mailman/listinfo/opensim-users
> or, via email, send a message with subject or body 'help' to
> [email protected]
>
> You can reach the person managing the list at
> [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Opensim-users digest..."
>
> Today's Topics:
>
> 1. plugin/extension/module system for viewers? (Cider Jack)
> 2. AJET special issue: Virtual Worlds in Tertiary Education -
> proposal deadline approaching (Lee, Mark)
> 3. Re: plugin/extension/module system for viewers? (DutchGlory)
> 4. Re: plugin/extension/module system for viewers? (Sean McNamara)
> 5. Traffic visualization (vehicles/ppl) showcase
> (Marcus Alexander Link)
> 6. Re: plugin/extension/module system for viewers? (Toni Alatalo)
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sun, 15 May 2011 14:22:11 +1200
> From: Cider Jack <[email protected]>;
> To: [email protected]
> Subject: [Opensim-users] plugin/extension/module system for viewers?
> Message-ID: <[email protected]>;
> Content-Type: text/plain; charset=ISO-8859-1
>
> I know this is related to viewers rather than OpenSim directly and as
> such may be completely inappropriate for this list, so please feel
> free to ignore this!
>
> This has been on my mind for a few years now and I thought I would
> just go ahead throw it out there -- Why hasn't there been some sort of
> plugin/module system developed for Viewers? Something along the lines
> of Firefox or Google Chrome's add-on/extension system comes to mind. I
> would expect it to be simple to implement, and I can imagine all sorts
> of community created tools for builders, avatar designers, scripters,
> machinamists, terraforming, etc. that could greatly extend viewer
> functionality & customization! I can think of only four reasons this
> hasn't happened:
>
> 1. Nobody building viewers has thought of it (I don't believe this!)
> 2. Nobody has taken the time to implement it
> 3. A technical reason makes it impossible
> 4. SL's terms wouldn't allow the viewer to be used with SL (This
> sounds most likely to me)
>
> Is there something I'm missing?
>
> In regards to number four, it's probably primarily based on a
> combination of the dreaded CopyBot and the Emerald debacle. Perhaps a
> central repository where the code can be reviewed before release
> (again, like Firefox or Google Chrome) could prevent these sorts of
> abuses. Additionally I suspect the viewer would only need a couple of
> lines of code to load the plugins, and leaving the code out wouldn't
> affect the viewer functionality, so two versions of the viewer could
> be released - an extendable version, and the locked-down SL version,
> which isolationist grids like InWorldz may insist on as well.
>
> Anyway, just pipe-dreaming here! :)
>
> Cheers,
> ~!CiderJack
>
> ------------------------------
>
> Message: 2
> Date: Sun, 15 May 2011 14:26:49 +1000
> From: "Lee, Mark" <[email protected]>;
> To: "[email protected]" <[email protected]>;
> Subject: [Opensim-users] AJET special issue: Virtual Worlds in
> Tertiary Education - proposal deadline approaching
> Message-ID:
> <3b889ee9152f28429040abdc2c606f2e08a9da0...@mail01.csumain.csu.edu.au>;
> Content-Type: text/plain; charset="us-ascii"
>
> Dear colleagues,
>
> (Apologies once again for cross posting.)
>
> This is a reminder that proposals in the form of extended abstracts for the
> special issue of AJET on virtual Worlds in tertiary education are due on
> Monday, May 23, 2011.
>
> For more information, please see the Call for Articles at
> http://ascilite.org.au/ajet/about/special-issues/virtual-worlds-2012.html .
>
> Queries and expressions of interest can be directed to the Guest Editors,
> Mark J.W. Lee, Barney Dalgarno and Helen Farley at
> [email protected].
>
> *** About AJET ***
> The Australasian Journal of Educational Technology (AJET) (ISSN: 1449-5554)
> is a refereed academic journal that publishes scholarly research and review
> articles in educational technology, ICT for education, online and e-learning,
> educational design, multimedia, computer-assisted learning, and related
> areas. AJET is the official publication of the Australasian Society for
> Computers in Learning in Tertiary Education (ascilite at
> http://www.ascilite.org.au/). The journal was published under the title
> Australian Journal of Educational Technology from 1985 to 2004, after which
> it was renamed to its current title. In 2008, AJET became an online-only
> journal, and since that time has prided itself on being an open access
> publication.
>
> AJET's current Thomson Reuters Impact Factor is 1.278. It ranked 27 out of
> 139 journals in the 'Education & Educational Research' category in the 2009
> ISI Journal Citation Reports, making it one of the highest ranking
> educational technology journals.
>
> Kind regards,
>
> Mark J.W. Lee
> Adjunct Senior Lecturer, School of Education, Charles Sturt University
> Adjunct Senior Lecturer, DEHub research institute, University of New England
>
> ------------------------------
>
> Message: 3
> Date: Sat, 14 May 2011 22:14:05 -0700 (PDT)
> From: DutchGlory <[email protected]>;
> To: [email protected]
> Subject: Re: [Opensim-users] plugin/extension/module system for
> viewers?
> Message-ID: <[email protected]>;
> Content-Type: text/plain; charset=us-ascii
>
> YES, make a plug-in for viewing mesh objects..!!! no more SL mesh beta
> viewer...
>
> dutch
>
> -----
> ______________________________________________
> OpensimFan (twitter)
> MetalFan (OSGRID)
> Dutchlord (My Open Grid)
> --
> View this message in context:
> http://opensim-users.2152040.n2.nabble.com/plugin-extension-module-system-for-viewers-tp6364608p6364855.html
> Sent from the opensim-users mailing list archive at Nabble.com.
>
> ------------------------------
>
> Message: 4
> Date: Sun, 15 May 2011 02:02:06 -0400
> From: Sean McNamara <[email protected]>;
> To: [email protected]
> Subject: Re: [Opensim-users] plugin/extension/module system for
> viewers?
> Message-ID: <[email protected]>;
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi,
>
> On Sat, May 14, 2011 at 10:22 PM, Cider Jack <[email protected]>; wrote:
>
>> I know this is related to viewers rather than OpenSim directly and as
>> such may be completely inappropriate for this list, so please feel
>> free to ignore this!
>>
>> This has been on my mind for a few years now and I thought I would
>> just go ahead throw it out there -- Why hasn't there been some sort of
>> plugin/module system developed for Viewers? Something along the lines
>> of Firefox or Google Chrome's add-on/extension system comes to mind. I
>> would expect it to be simple to implement, and I can imagine all sorts
>> of community created tools for builders, avatar designers, scripters,
>> machinamists, terraforming, etc. that could greatly extend viewer
>> functionality & customization! I can think of only four reasons this
>> hasn't happened:
>>
>> 1. Nobody building viewers has thought of it (I don't believe this!)
>
> I myself have never thought of it before, but I wouldn't be surprised
> if someone else has, indeed.
>
>> 2. Nobody has taken the time to implement it
>
> This seems the most likely alternative to me.
>
>> 3. A technical reason makes it impossible
>
> Nah, it's not impossible. Of course you'd have to use a dynamically
> interpreted language for plugins, because the viewer is written in
> C++, which compiles to native code. Distributing plugins as native
> code is dangerous for two reasons: one, it's impossible to sandbox or
> control what native code can do, and two, you can't possibly
> distribute a plugin to be binary-compatible with every platform that
> SL runs on. As soon as you claim that you have built a native plugin
> that covers all the platforms, I will find a Linux distro where your
> plugin doesn't link, or run SL on Solaris or BSD. So it has to be
> platform-independent.
>
> So you could use JavaScript like Chrome/Firefox plugins do, or you
> could pick up one of the many readily-available scripting languages
> out there, like Lua, or you could build in something else entirely
> (Java and C# are conceivably possible, but would add system
> dependencies to the viewer: you'd have to have the Java runtime or a
> .NET runtime or Mono installed, as the case may be).
>
> Despite it being possible rather than impossible, I can definitely say
> that it wouldn't be, as you say, "easy". Integrating a dynamically
> interpreted scripting language and then designing a stable plugin API
> is no walk in the park; just ask the developers who work on Firefox or
> Chrome's plugin architecture. The biggest challenge would come in
> supporting whatever plugin API you design over the lifetime of the
> viewer, or properly versioning the plugin API in a way that doesn't
> break too many plugins too often (Firefox does this).
>
>> 4. SL's terms wouldn't allow the viewer to be used with SL (This
>> sounds most likely to me)
>
> Whether or not Linden Lab would find viewer plugins to be
> objectionable is completely orthogonal to whether they should be
> implemented. SL is just one grid; the fact that you're posting on the
> opensim ML indicates you know that other grids exist and they're much
> less strict. And no, I don't care a lick if InWorldz wants to lock
> down peoples' viewers. All the other OpenSim grids I'm aware of are
> very liberal about what viewers you're allowed to run, and what you're
> allowed to do with them. Take OSgrid and 3rd rock for instance. There
> are plenty of grids out there that will accept a viewer almost
> completely regardless of what features that viewer has ( provided that
> it doesn't attempt to attack the grid in some malicious way ). Thus we
> don't need to give a crap about what the corporate grids want in order
> to implement something. The software is open source.
>
> And besides that, I don't think that LL would have a fit about it. You
> seem to be under the misconception that third party viewers are
> carefully scrutinized and/or reviewed before they are allowed on the
> SL grid. That's not the case. There are a few rules you have to follow
> to host a third-party viewer, but you can more or less do what you
> want with the code, and you don't have to get LL's permission. You
> just can't break any laws or violate the terms of service. Shipping
> plugins hardly does that.
>
>> Is there something I'm missing?
>
> The challenging part of this is to engineer a plugins API that is
> useful, but not so expansive or general that it would (a) pose a
> security risk to the user (stealing their password etc), or (b) allow
> the plugin to do crazy things like provide mesh support (yes, I'm
> replying to your message DutchGlory), which could never gain any
> semblance of performance implemented in an interpreted scripting
> language.
>
>> In regards to number four, it's probably primarily based on a
>> combination of the dreaded CopyBot and the Emerald debacle.
>
> No. If plugins are done properly, it won't be possible to do something
> like a copybot, and the KDU thing will be completely irrelevant. You
> have to sandbox plugins and implement the API in a way that nothing
> inherently dangerous can happen. This is why you can install most
> plugins on Google Chrome or Firefox without worry that it will steal
> your passwords -- at least, not without your explicit consent. You
> have to find the balance between flexibility and security.
>
> It's NOT an easy engineering problem, but it is feasible.
>
>> Perhaps a
>> central repository where the code can be reviewed before release
>> (again, like Firefox or Google Chrome) could prevent these sorts of
>> abuses. Additionally I suspect the viewer would only need a couple of
>> lines of code to load the plugins, and leaving the code out wouldn't
>> affect the viewer functionality, so two versions of the viewer could
>> be released - an extendable version, and the locked-down SL version,
>> which isolationist grids like InWorldz may insist on as well.
>
> If the plugin architecture is implemented with proper sandboxing, the
> mainline LL viewer might even pick it up if it's particularly
> well-done. But LL has a history of not accepting large feature
> contributions from the community at large, so don't count on them
> picking it up. That said, if it's done right, I bet at least
> Imprudence, Phoenix and perhaps Hippo might pick it up.
>
> If I were to lay out a possible approach for this, I'd say we could
> start with QtScript or Lua integration into the viewer. QtScript
> provides JavaScript support, and is specifically designed to help you
> create an extension language for your app; and, it's written in C++ (a
> huge plus considering the rest of the viewer is). The license is
> compatible with the license of the viewer as long as we don't have to
> make modifications to Qt itself.
>
> But now that I've strayed completely off the topic of this list, I'd
> say that you should bring this up with the Imprudence developers for
> starters. Don't go to Linden Lab because they will say "show us the
> code or be quiet", essentially. They have their own feature roadmap
> that operates more or less independently of what the community wants,
> but since the viewer is open source, we've got the power to implement
> anything we want to.
>
> Sean
>
>> Anyway, just pipe-dreaming here! :)
>>
>> Cheers,
>> ~!CiderJack
>> _______________________________________________
>> Opensim-users mailing list
>> [email protected]
>> https://lists.berlios.de/mailman/listinfo/opensim-users
>
> ------------------------------
>
> Message: 5
> Date: Sun, 15 May 2011 09:20:00 +0200
> From: Marcus Alexander Link <[email protected]>;
> To: [email protected]
> Subject: [Opensim-users] Traffic visualization (vehicles/ppl) showcase
> Message-ID: <[email protected]>;
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi everyone,
>
> i am looking for a Traffic planning/Traffic visualization
> (vehicles/ppl) showcase.
> Would it make sense to use OpenSimulator for such a project, or is it
> just me - who want to use OpenSim as platform for everything ^^
>
> Thx,
> Marcus
>
> ------------------------------
>
> Message: 6
> Date: Sun, 15 May 2011 11:20:45 +0300
> From: Toni Alatalo <[email protected]>;
> To: [email protected]
> Subject: Re: [Opensim-users] plugin/extension/module system for
> viewers?
> Message-ID: <[email protected]>;
> Content-Type: text/plain; charset=us-ascii
>
> On May 15, 2011, at 9:02 AM, Sean McNamara wrote:
>
>> On Sat, May 14, 2011 at 10:22 PM, Cider Jack <[email protected]>;
>> wrote:
>>> This has been on my mind for a few years now and I thought I would
>>> just go ahead throw it out there -- Why hasn't there been some sort of
>>> plugin/module system developed for Viewers? Something along the lines
>
> We did this by developing a modular viewer, Naali. It has a module system
> somewhat similar to Opensim, but in C++.
>
>>> 2. Nobody has taken the time to implement it
>> This seems the most likely alternative to me.
>
> It did take us a couple of years :)
>
>> Nah, it's not impossible. Of course you'd have to use a dynamically
>> interpreted language for plugins, because the viewer is written in
>> C++, which compiles to native code. Distributing plugins as native
>> code is dangerous for two reasons: one, it's impossible to sandbox or
>
> Naali supports currently C++ modules, Python add-ons, but for custom
> functionality, most significantly Javascript which is loaded from the web.
>
> The support for interpreted languages was made exactly was this reason --
> dealing with native code addons is much more hairy.
>
> The C++ module system is still highly useful. For one, by using it for almost
> all functionality, many of the things are optional. For example the Bullet
> physics library, which is integrated in one module (yes, works on the viewer
> side too, which is often *very* useful). Also people sometimes need to do
> custom stuff in native code for special applications, which can be useful
> even if that is made in some special module that doesn't need to be
> distributed.
>
>> interpreted scripting language and then designing a stable plugin API
>> is no walk in the park; just ask the developers who work on Firefox or
>> Chrome's plugin architecture. The biggest challenge would come in
>> supporting whatever plugin API you design over the lifetime of the
>> viewer, or properly versioning the plugin API in a way that doesn't
>> break too many plugins too often (Firefox does this).
>
> We think we are close to freezing the first step of the API now, to declare
> it 1.0. It is documented in http://www.realxtend.org/doxygen/
>
> It still takes us at least some weeks anyway to make the last currently
> planned breaking changes. so now is a good time to give feedback if something
> seems wrong.
>
> This API is indeed similar to the W3C standardized DOM in web browser. In web
> browsers, the Javascript scope has things like 'document' and 'window'. In
> this virtual world browser, instead, there is 'scene' which has all the
> entities (prims on the opensim side) etc. And renderer which you can use for
> raycast etc.
>
>> The challenging part of this is to engineer a plugins API that is
>> useful, but not so expansive or general that it would (a) pose a
>> security risk to the user (stealing their password etc), or (b) allow
>> the plugin to do crazy things like provide mesh support (yes, I'm
>> replying to your message DutchGlory), which could never gain any
>> semblance of performance implemented in an interpreted scripting
>> language.
>
> We believe a good way to advance standardization etc. is to implement stuff,
> so now there is a working implementation out, even in production use, so we
> can really evaluate and test all these problems.
>
> Security is certainly a huge deal. I did the basics to sandbox our JS API in
> December, to protect from basic attacks known from the browser land, but it
> certainly needs more review still. It is now made so that remotely loaded JS
> code shouldn't be able to get system access in any way.
>
> Prim support in Naali is in c++, actually predates really working Python or
> Javascript support. Possibly is best to remain in c++ too.
>
> But some quite central things, like avatars and cameras, are now ported from
> C++ to Javascript. No performance problems there, it's not like you have
> thousands of them around in your scene. Object editing has been in Python
> since the beginning (was the original benchmark for the scripting API: i
> figured that if doing basic object editing is possible in a script, then also
> making games is easily possible).
>
> Also in the current Tundra 1.0.6 release, the whole UI (which looks like a
> web browser) is implemented in Javascript now. Naali 0.4 still has a largely
> c++ written UI (with some Python tools).
>
>> If I were to lay out a possible approach for this, I'd say we could
>> start with QtScript or Lua integration into the viewer. QtScript
>> provides JavaScript support, and is specifically designed to help you
>> create an extension language for your app; and, it's written in C++ (a
>> huge plus considering the rest of the viewer is). The license is
>
> This is exactly how we've done it in Naali too.
>
> The other guys originally used GTK for first UI tests, just to get debug info
> of the from-the-scratch written LLUDP implementation (Naali is BSD style
> apache licensed, no Linden code, respects the Opensim contributions policy).
> I was experimenting with adding Python support just manually first, to better
> know what kind of a tool would need for the job.
>
> Then we decided to use QT for UI, just to get something for good 2d widgets.
> Soon I learned about qtscript (and the similar pythonqt) which indeed use the
> qobject metadata mechanism for automatic exposing of c++ things to scripting,
> so we went with that and have during the past 1,5years ported all the
> modules, entity-components etc. to QObjects. So the same API works for c++,
> py and js. Lua could be easily added in a new c++ module, using QtLua. Then
> for the security reasons for remotely loaded code, only selected parts are
> available in the context for those (and new contexts are easy to make for
> different purposes, e.g. to support LSL style where a script can only see the
> own object).
>
> BTW: the JS system is not (only) a plugin / addon system, but it is also the
> way to make applications. It is identical to how web works as an app
> platform: besides getting static data from the servers, the viewer downloads
> also executable code as a part of the service. This way any sim can implement
> whatever kind of client side functionality, e.g. UI dialogs, mouse&keyboard
> handling etc. it wants.
>
> Some examples:
> the current free camera:
> https://github.com/realXtend/naali/blob/tundra/bin/jsmodules/camera/freelookcamera.js
> This default camera is instanciated by startup/cameraapplication.js so is
> always there by default.
>
> client side chat UI:
> https://github.com/realXtend/naali/blob/tundra/bin/scenes/ChatApplication/ChatApplication.js#L237
> .
> This is typically loaded from the server, if the service you connect to has
> decided to have a chat feature.
>
>> say that you should bring this up with the Imprudence developers for
>> starters. Don't go to Linden Lab because they will say "show us the
>> code or be quiet", essentially. They have their own feature roadmap
>
> You could show Linden our code, I don't know if they've looked at it :)
>
> But yah, I've bugged the Imprudence devs about this periodically .. well more
> late last year, when they said the time was immature as they had a lot to do
> with basics, but they hoped to get to this later.
>
> I guess there's two options for those who want this: a) try to do this on the
> SLviewer base b) join the Naali effort, where it's already made, to help
> getting missing SL features (or whatever features you need, that you
> typically use with Opensim) there. One benefit of Naali is that it's a normal
> open source project, like Opensim, not controlled by any single company, and
> has a liberal license compatible with Opensimulator itself. But sure SLviewer
> has a lot of nice functionality, is quite interesting if we'd get this in
> e.g. Imprudence too.
>
>> Sean
>
> ~Toni
>
>>> Anyway, just pipe-dreaming here! :)
>
> No pipe dreaming, it is already the reality, and quite normal (web browsers
> have had this for long, so why not vw viewers).
>
>>> Cheers,
>>> ~!CiderJack
>>> _______________________________________________
>>> Opensim-users mailing list
>>> [email protected]
>>> https://lists.berlios.de/mailman/listinfo/opensim-users
>> _______________________________________________
>> Opensim-users mailing list
>> [email protected]
>> https://lists.berlios.de/mailman/listinfo/opensim-users
>
> ------------------------------
>
> _______________________________________________
> Opensim-users mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/opensim-users
>
> End of Opensim-users Digest, Vol 45, Issue 32
> *********************************************
_______________________________________________
Opensim-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-users