[Opensim-dev] Client-side API/scripting Re: LookingGlass Viewer progress
Dzonatas Sol
dzonatas at gmail.com
Sun Dec 27 21:17:29 UTC 2009
Mister Blue wrote:
> Several people are playing with protocols and I am intrigued by the
> possibilities of a better protocol.
Let's say there are two main routes for protocols in regards to this
area. Between the grid/server and the viewer/client is more of the
easiest one to point out. We can call this route as being in the Agent
Domain in AWG terms.
On the website it is noted that: "User interface is not embedded into
the viewer -- all operations are through REST/JSON interfaces so user
interfacing can be supplied by JavaScript/AJAX web pages (initial sample
page provided) or through a completely separate application"
This is the protocol, at least the route itself, that needs attention
and what I have already started to focus on. My goal, however, hasn't
been to write an entire new viewer. To focus on the route itself, we
could say it is within the User Domain. The User Domain is where all the
client-scripts and interfaces communicate.
If we can somehow standardize the REST/HTTP based APIs, then that would
be a key element to many developers that make human-computer interfaces
and want to make them more immersive. This also applies for those that
just want their developer tools to 'just-work' easier with the Agent
Domain without the the need to write an entire new viewer. (i.e. a
blender plug-in that can easily import/export a "live" version of an
object before it is uploaded to the grid -- or, a movement control to
help machinima be easier and be supported separately from the viewer).
Obviously we need to start somewhere with the idea. Content-Type
shouldn't be the main issue at first, yet the REST URIs and expected
requests and responses can be drawn up and standardized.
I have also worked on a C# implementation called MonoVida, but I've
split it out and and narrowed it down to just the API (in C++) and
Communicator (C#, detached UI/Chat/Comm/Etc). It works on Linux,
Windows, and Mac. Currently at 0.9.9, it can be (re)started anytime the
viewer is running, which makes it ideal to debug interfaces and extensions.
Here is the main project site for MonoVida Communicator, which also uses
REST/XML to run in separate process and communicate with the viewer:
http://jira.dzonux.net:8080/browse/MVC
The Chat/IM/Contacts panels are separated/detached:
http://mono.dzonux.net/file/MonoVida-20090701a.png
Gestures are loaded and recognized (auto complete enabled), also notice
unicode works:
http://mono.dzonux.net/file/MonoVida-20090521.png
Multiple windows, detached, overlaid:
http://mono.dzonux.net/file/MonoVida-20090619a.png
World Map, notice it is on a entirely different screen than the viewer:
http://mono.dzonux.net/file/20091218a.png
Repository:
http://gitweb.dzonux.net/project/communicator.git
Step-by-Step of how to patch and compile the viewer to enabled the API,
and how to connect to the viewer from a different machine that runs
Communicator:
http://wiki.secondlife.com/wiki/User:Dzonatas_Sol/Communicator
SL-JIRA issue:
Detached H.I.D. API: "thinking outside the box" (i.e.
Chat/IM/Contacts/Etc windows in
separate-processes/plugins/ubiquitous-computing)
https://jira.secondlife.com/browse/SNOW-375
The patch as applied to Imprudence:
http://github.com/ArminW/imprudence/tree/snow375
Dzonatas
More information about the Opensim-dev
mailing list