perjantai 19. helmikuuta 2010

Using Facebook chat with Naali


Since Facebook opened its chat to Jabber/XMPP clients, it has been available to be used with Naali. Now you already can have your Facebook friends list in Naali and chat with people with it. Voice chat, however, doesn't work, because the Facebook chat doesn't support it. You can view your jabber id and server settings from the Facebook guide.

torstai 11. helmikuuta 2010

New UI in development

The new Naali platform is still some way behind the original realXtend viewer when it comes to feature completeness. It seems that our original predictions were correct, however, and the new technology enables us to create new features and fix issues at a high rate. One of the aspects we will be looking into a lot more in the near future is the user interface.

Until now UI design has been driven by the need to have some kind of a way to access the functionalities mostly for testing purposes. After the release of the 0.1 version (Don't forget to pick yours here) we will be concentrating a bit more on the UI side. Here's a brief explanation on the new approach by Jonne Nauha (typos are all mine):

Ether concept

We have had some actual UI design meetings now and decided on some high level consepts. One of them is "ether space" versus "inworld space". Th e aim is to have "ether" as the view where you land in when you launch Naali. It will be the place to make logins, create new avatars, create new worlds and possibly access tools/settings for the viewer. We would like to get rid of the "write your information to these text fields" approach. Of course this is somewhat necessary when creating avatars /worlds, but in basic use the workflow should be "I'll pick this avatar, I'll pick this world, ok lets go" -type of thing.

We tried to think of a simple and at the same time nice looking and inviting thing, so we started prototyping a "flip book" type of thing that resembles iTunes cover flow, but for virtual worlds. Me and Mikko Alaluusua have worked on this for a few days now and have got something together already. We did this out of Naali codebase with QtCreator and used pure Qt, namely the Qt animation framework is used heavily. The cards get loaded into a scene that is shown in a full screen graphics view, so it will be easy to port into Naali.

The fps in my capture software was too low to show the animations fluently and somehow it altered the colors too, but you should be able to get the idea. The navigation is WASD or arrow keys, and we'll add mouse selection functionality to the "cards" too. The background image and other graphics are only for prototyping, not what will eventually be included in Naali. For now the avatars have the basic image of the naali (arctic fox) and worlds all share the globe image. The idea with the images is that your avatar's screenshot will be inserted there and it is updated when you change your appearance or logout (not really decided yet) and for the world images a screenshot is taken from the position you last left the world in question.




Inworld widget interaction

The inworld widgets will probably stay with the slim frame or maybe some styling will be done there with proper graphics. The main thing inworld would be to get rid of the age old toolbar at the top of the screen. We are now close to 10 widgets and they will only increase in numbers when we go forward. We were thinking of giving each corner inworld a certain type like widgets on the top left, notifications / status things on the top right, messaging on the lower left etc. Of course the positions or the final look are not firmly decided yet. But at least I would like to remake the "widget toolbar" into something icon based and add some snappy animations like some kind of a layered menu that has sub groups for widgets like interacting, world building etc.

Also some kind of workspaces would be nice to make. So you could make different UI views and swap between them fast to get to your tools. A little bit like operating systems have multiple desktop views that have their own set of applications and you can move apps between them.

UI for interacting with objects and people

We also need something similar to pie menu we all know and love/hate :) There hasn't been any decisions about this yet, but some kind of a hovering "info card" for things you want to interact is the goal. This infocard could follow the avatar / object that you have interest in or it could be pinned to a position. The idea for these cards would be that there would be a viewport (camera) to the item, for example the avatars face that you clicked or movable view of a object you are interacting with. Also this card would have quick selections for sending messages to a user etc. This will also be the most challenging thing if we do it purely on Qt that needs an ogre viewport rendered to it. Right now all info that is showed of people is a static 2D overlay that has the avatars name. And if this is the best we can do with ogre then we probably go with Qt on these infocards.

Schedule

The aim is to get most of this done by the march release. It may be that "ether space" will have 70% of the defined features, inworld "info cards" 50% etc. as its hard to know what obstacles there will be ahead. Especially when our Ogre+Qt is a special thing without paint events that there always can be something unsuspected outcomes of this, good example is that we had fully working video calls in Naali IM before we moved them inside the scene and now gstreamer doesent render the video to the window handle.

maanantai 18. tammikuuta 2010

Naali 0.1(first public rc) released!

This is it. There are still a number of bugs to fix (some of the code heroes sitting right next to me are currently hard at work fixing and tweaking) and an incredible number of new features to do, but as the version number 0.1 suggests more than a final product this really is a glimpse of things to come. Nevertheless and although I might be considered partial, I still think it's already quite interesting and suggest you try it out for yourselves. Let's take a quick look.
Lisää kuva


Swimming with the fishes is as pretty as ever. There's of course a lot of room for optimization, but the graphical capabilities have traditionally been one of the focus points in our development and that won't change with the new Naali viewer. You can connect to existing realXtend and OpenSim worlds (sorry, walking between regions is still in the works) or host your own with the realXtend server (new version to be released soon).

Here's a shot of the user interface. We're currently working on enhancements to the visuals and a new layout for the UI, this is an example of some of the functionality. Note that I'm logged in with my Jabber account, which makes it possible for me to communicate with the outside world as well. Currently it's also possible to make video calls (and only video calls, yes, we're working on it) and we have quite a few ideas about future development for the communications module.

Ok pay attention, everyone, because now comes the really important part! We started the work on the new viewer and server software because we had a lot of ideas on how to improve realXtend, but the software architecture we had at the time didn't offer the kind of room for expansion we were looking for. Naali does. And not only room for us to work with, but for everyone interested in it as well. realXtend is an open source project where everyone can participate. The code is available under the liberal Apache 2 license, grab yours today right after you test the binary we prepared for you.

We would love to have your input on what you think about the new viewer as well as the bug reports that will inevitably be generated now that more and more people start testing the software. From now on we intend to make new binary releases more often, which means you will get to see the new features relatively quickly even if you don't want to build the code yourself. The Naali viewer is designed to be cross-platform and we have run tests on Linux, Mac support is on the way as well. I hope there are some enthusiastic Mac and Linux users who would like to join the community and together make sure Naali works equally well on all the platforms.

Get the software here:
http://code.google.com/p/realxtend-naali/

Here you can find discussion on realXtend software:
http://groups.google.com/group/realxtend
http://groups.google.com/group/realxtend-dev

If you run into bugs, please let us know here (please check for known issues first):
http://code.google.com/p/realxtend-naali/issues/list

We will be explaining the new features in more detail on this blog soon, you might also want to browse the existing documentation here:
http://wiki.realxtend.org/index.php/Main_Page

tiistai 15. joulukuuta 2009

Tutorial to import scene from Blender to realXtend

Requirements:
Blender
Ogre mesh exporter plugin (http://www.ogre3d.org/wiki/index.php/Blender_Exporter)
Ogre scene exporter plugin (http://www.ogre3d.org/wiki/index.php/Blender_dotScene_Exporter)
ModreX trunk or branch 0.1.2-rc



First you need to export all meshes from the scene. Select all meshes in scene by pressing 'a'. Then select OGRE mesh export tool from File->Export->OGRE Meshes. Ensure that you have selected all meshes from the "Selected" box. Select your favorite options and ensure that you have selected at least options "Fix Up Axis to Y" and OgreXMLConverter. OgreXMLConverter option may require that you specify the path to your OgreXMLConverter in the properties section.



In some cases not all textures are copied to the destination directory. To export textures from .blender file select File->External Data->Unpack into files. This will extract all textures from scene to location of your .blender file.



After exporting meshes you need to also export the scene file. This includes information on where the objects are placed in the scene. Select scene export tool from File->Export->OGRE Scene. In this dialog, ensure that all meshes are selected and that "Fix Up Axis to Y" is NOT selected.



Now after exporting scene and mesh files, we are ready to import them. Copy scene-, material-, mesh and texture files to OpenSim bin folder. Ensure that the name of the scene and material files are same expect for the file extension of course. Boot up your simulator if it isn't already running. Apply offset if necessary with command "ogrescene offset x,y,z", where x, y and z are the offset values of x, y and z axis. X and Y values of the objects in Scene file need to be between 0-256m and Z needs to be higher than 0. Otherwise the objects won't show up. By applying the offset command you can affect these values. Note that usually waterlevel in OpenSim is at 20 meters. Import scene with command "ogrescene import X", where X is the name of the scene without the .scene file extension.



After inputting the import command it may take a while to import all the objects. Sometimes there might be errors when importing the scene or when exporting to OGRE format and objects might not view exactly the same as in Blender.


Notes by Antti: The above example .blend file was retrieved from this site: http://gryllus.net/Blender/StudentGallery.html

Also note that the export tools for blender are quite specific about the format of the textures. You need to create UV maps for the textures and have the TexFace selection on in the Blender material menu.

torstai 10. joulukuuta 2009

ModreX region in OSGrid

This is a feature that many people have asked for: the ability to use grid mode with ModreX. We have now made this simple test server for testing interoperability of ModreX regions in an OpenSim grid.



Getting the region in ModreX mode is a pretty straightforward procedure. First configure your region according to OSGrid instructions, then modify ModreX configurations. First thing to do is to enable the default Event Queue and disable RexEventQueue. Without this, once entered to ModreX region, one can't teleport or walk out of it. Second thing to set is the client stack plugin. Set clientstack_plugin configuration to "ModularRex.dll" instead of the default LL. This makes UDP listener spawn RexClientViews instead of LLClientViews. This is important when using realXtend features like meshes, particle scripts and so on.

Final thing to notice from ModreX options is the ClientView option. By default this option is in mode compatible. The compatible mode is ment for interoperability purposes, it supports both LL and realXtend clients. However there is a drawback, compatible mode doesn't support smaller avatar update messages. This means that clients spend twice as much bytes on avatar update messages in compatible mode than in Naali or 0.4 mode. Both Naali and 0.4 mode do support these smaller avatar update messages, but SL client crashes on these messages, so these modes shouldn't be used in grids where SL clients are also used. Differences with Naali and 0.4 modes aren't that great, but as you can expect 0.4 supports the older realXtend clients and their features and is also compatible with Naali clients. Naali mode contains a bit more experimental packets that aren't handled properly in realXtend 0.4 series clients.

Now that the region is configured it can be added to the grid. Although you can see from the picture that the region is working in the grid it is still lacking some features. User needs to press Shift+R (on the 0.42 realXtend viewer) to switch to OGRE rendering and to view the scene properly. Currently grid mode doesn't support realXtend authentication or realXtend avatars. Also at time of the testing there were some problems uploading textures and the physics engine crashed few times. Mediaurls are disabled from the client since it didn't receive rex_mode flag in login response.

perjantai 6. marraskuuta 2009

0.0.2 preview release of next-generation realXtend software

Sorry for all the blogspamming, I know it's only been a bit over a year since I last wrote to this blog. After becoming the project manager for the realXtend team I didn't have as much time for blogging as I used to, which resulted in the long period of silence. There have been some changes in the organization as well and no more meeting logs to report, because the development teams in different companies are now seeing each other more in the real world. From now on this blog should be getting more lively (not referring to the Google product) and interesting, when our developers start to write about their work and achievements.

So what has happened since September 2008? The most important change was the decision to start building a next-generation realXtend platform in early 2009. The world server is still based on OpenSimulator, but now we have the ModreX project, which makes it a lot easier for us to integrate with OpenSim. The authentication and content delivery services are all new and we also have a built-from-scratch viewer known as Naali (Arctic Fox in Finnish). You can find a lot more information about Naali and Taiga (the next-generation realXtend servers) on their respective wiki sites, in this post I will cover some of the highlights of the latest release.It is important to note that Naali and Taiga are still in very early stages of development as the version number 0.0.2 suggests. The first end-user release of the next-generation platform is scheduled for early 2010. All the code is of course always available through our website, this release is meant for those of you who don't want to build the code daily, but are interested in our work. START SUBLIMINAL MESSAGE We would also like to give you all a chance to relatively easily see for yourselves what we have done and get interested enough to join the realXtend platform development. END SUBLIMINAL MESSAGE When you notice functionality missing or something lacking in the new release, keep in mind that the shiny new realXtend platform is built to be modifiable and modular so that YOU can participate. A good place to get started is our general or the more developer-oriented mailing list.

So, what can you expect from the 0.0.2 version released today? Let's take a look.

This rather innocent shot of Mikko showing off with his dual-monitor system becomes frightening when you realize that the round little island looks a lot like my head rising out of the ocean. You can see some of the inventory and editing windows in this screen.


Here you can see some of the interesting properties of the new technology. A couple of the users are logged in using the traditional realXtend avatar service, others have OpenSimulator authentication and one of them uses the new OpenID-based method. One of the most important features for us is the ability to easily move between worlds without dependencies to central authorities and OpenID seems to fit the bill quite nicely.


This picture shows the guys packaging Naali 0.0.2 downloads. We expect to get a lot of traffic, but there should be enough Naalis for everyone.


Here's Stompy the Robot, an important part of any packaging / delivery operation found in many post offices worldwide.


This is Jonne showing off the functionalities of the current user interface. Note the Jabber-based communication window that allows you to send messages to other Jabber users and the world chat functionality in the lower left corner. In the background, Stompy and his friend Crunchy are making sure that your packages arrive safely and usually take less space than when they were sent. Naali uses the OGRE rendering engine to deliver the goods.


I hope the little teaser got you interested enough to check out our wiki. There's a lot of good information there and when you come up with more questions, you can join us on the mailing lists. START LIE Don't worry, we won't try to get you to contribute to our little project and together make the virtual world a bit better place. END LIE

I would like to thank all the developers for the amazing job so far. The goals we had at the beginning of 2009 were pretty ambitious, but you have delivered time after time and I look forward to the final push towards the first end-user release set for beginning of 2010.

tiistai 16. syyskuuta 2008

Once again it's time for the weekly meeting logs. I'm still You and this time we have a guest star from OpenLife Grid.


[3:30] You: should I start
[3:30] Anna Asplund: please do that
[3:30] You: Ok, the official weekly meeting of 160908 is now officially official
[3:30] Sakai OpenLife: :)
[3:31] You: The situation at Admino is pretty simple right now, the code is frozen solid and we're working on testing etc.
[3:31] You: Currently we're busy working on grid mode -related stuff, there's quite a bit of fixing in it
[3:32] You: We're also doing some architecture stuff so that we have good tasks for the next sprint
[3:32] You: We're also doing some architecture stuff so that we have good tasks for the next sprint
[3:32] Tuomo Korva: would be nice to get short tutorials to wiki about ye new features
[3:32] Tuomo Korva: or at least descriptions
[3:32] Tuomo Korva: or at least descriptions
[3:32] Sakai OpenLife: such as...
[3:33] You: we'll keep working full speed towards a more functional grid mode at least until tomorrow evening, when we evaluate the situation again
[3:33] You: I can provide you with some documentation pretty soon
[3:33] You: wiki-stuff will be coming sort of soonish also, perhaps
[3:33] Tuomo Korva: see the change log what to document
[3:33] Tuomo Korva: see the change log what to document
[3:33] Anna Asplund: I would like to know if you are testing some lc features also? we would like some feedback maybe?
[3:33] Tuomo Korva: Global inventory for different asset types
[3:34] Tuomo Korva: Global instant messaging between sims
[3:34] Tuomo Korva: etc...
[3:34] Tuomo Korva: etc...
[3:34] Sakai OpenLife: global messaging is that building off teravus's XMPP work?
[3:34] You: but we haven't really dug into Ludo stuff as of yet
[3:34] You: we have our own global IM placeholder right now
[3:34] You: we have our own global IM placeholder right now
[3:35] Sakai OpenLife: kool
[3:35] You: we're looking into building a proper system or hopefully rather picking up one that already exists
[3:35] Sakai OpenLife: it would be good to pick up an existing sys
[3:35] Tuomo Korva: double messages, bug...
[3:36] You: fixing that bug will probably require rewriting a lot of the comms code
[3:36] Sakai OpenLife: there's some good examples in OS -> I can grab you an SVN #
[3:36] You: did Sakai & co already do something about it?
[3:36] Sakai OpenLife: for the commit that fixed double chat
[3:36] You: yeah I remember you mentioning it
[3:38] Mikko Pallari: If I remember correctly, they added acks to chat msgs
[3:38] Sakai OpenLife: yup
[3:38] You: anyway, there's not much more to tell about our current situation
[3:38] Sakai OpenLife: there's a lot unack'd in ur current code
[3:38] You: so Anna, please go ahead and tell us about LudoCraft
[3:38] Anna Asplund: We have been testing all new features at LudoCraft, and doing the documentation to wiki
[3:39] Anna Asplund: Integrating create avatar account feature to realXtend webpages is still on our task list. However we cannot change the appearance of the form.
[3:39] You: anyway, the entire comms stuff is a bit flaky right now and I wouldn't mind a complete rewrite of major portions, it'll just take time
[3:40] Anna Asplund: This create avatar account is something that needs work from your side, if possible?! or how do you suggest we should do it?
[3:40] You: ok, Rock-Andy said he'll be sending you the code for the interface
[3:40] Anna Asplund: That sounds good.
[3:41] Tuomo Korva: so we'll do release candidates on monday morning?
[3:41] You: erm hopefully perhaps maybe
[3:41] Anna Asplund: can you specify?
[3:41] Sakai OpenLife chuckles...
[3:42] You: we should at least aim for rc phase on Monday morning
[3:42] Anna Asplund: Antti, you said you might visit Ludocraft tomorrow?
[3:42] Tuomo Korva: bugfixing and testing unti then
[3:42] You: sure, I wouldn't mind having a chat with you guys
[3:43] You: and tomorrow would probably be the best day to do so
[3:43] Tuomo Korva: only sure-fixes and critical-fixes to SVN
[3:43] Tuomo Korva: no new features
[3:43] Anna Asplund: New features can wait until next sprint
[3:44] Tuomo Korva: we're using the r15 for this release, that is certain now
[3:44] Sakai OpenLife: If Klee was here it might be worth finding out how much further he has gotten
[3:45] Sakai OpenLife: we already have R15.1 stable
[3:45] Sakai OpenLife: and now R16 alpha
[3:45] Tuomo Korva: i think we'll go with r15 for this release
[3:45] Sakai OpenLife: all work after R15.1 ->R16
[3:45] Sakai OpenLife: is RealXtend based work
[3:45] Tuomo Korva: that's what we have been testing
[3:45] You: it would be nice to have Klee and our client coders co-ordinate a bit
[3:45] You: but I assume that's already sort of sorted?
[3:45] Sakai OpenLife: we're trying ... need to get you guys pushed into TRAC
[3:45] Tuomo Korva: which was not that great
[3:45] Tuomo Korva: he put some code to svn after the freeze
[3:45] You: ok
[3:46] Sakai OpenLife: yes
[3:46] Sakai OpenLife: based on feedback from the early 20080828 release you guys made it was very unstable
[3:46] Sakai OpenLife: 50/50 just to get a startup
[3:46] Sakai OpenLife: he's put a lot more work into this issue
[3:47] Tuomo Korva: in our tests r15 seems to be very stable
[3:47] Tuomo Korva: we haven't had random crashes for a long time
[3:47] Sakai OpenLife: the actual viewer running yes stable
[3:47] Sakai OpenLife: but with different hardware out there
[3:47] Sakai OpenLife: it's been very hit and moss to actually get the client to load
[3:48] You: well, in the future we're going to get a pretty broad userbase and thus more configurations etc.
[3:49] You: maybe we should come up with some sort of a bug reporting form so that we get consistent data on the users' systems
[3:49] Sakai OpenLife: yes there were a lot of issues with Ati users
[3:49] Sakai OpenLife: we have in place for the public dev beta testing grid
[3:49] Sakai OpenLife: an issue reporting system
[3:49] You: sounds nice, I'll have to check it out sometime
[3:49] Sakai OpenLife: which we'll then try to marry up with server log / reproduce etc
[3:50] Sakai OpenLife: and input into track
[3:50] Sakai OpenLife: so that TRAC doesn't become a large collection of untested bugs
[3:50] Anna Asplund: That is a good idea to make a simple enough report form or use any available system
[3:50] Sakai OpenLife: yes that's pretty much what we've done
[3:50] Sakai OpenLife: made a simplified report system with search and view others etc
[3:50] Sakai OpenLife: then we'll go through that information
[3:50] Anna Asplund: ok
[3:51] Sakai OpenLife: and create TRAC tickets
[3:51] Anna Asplund: how much data/input you get from users?
[3:51] Sakai OpenLife: (prevent a bloated untested collection of tickets)
[3:51] Sakai OpenLife: heeeeeeeaps
[3:51] Sakai OpenLife: lol
[3:51] Anna Asplund: Does it take long to process their reports?
[3:51] Sakai OpenLife: there's probably a good 2-3000 users ready to get into the public beta
[3:51] Sakai OpenLife: not long
[3:51] Sakai OpenLife: we're here full time
[3:52] Sakai OpenLife: when we're ready to open we'll keep daily SVN update to the public beta
[3:52] Sakai OpenLife: to keep the debug relevant
[3:52] Sakai OpenLife: so you could see them within hours of them coming in
[3:52] Sakai OpenLife: we'll also do a viewer 'control'
[3:52] You: sounds reasonable
[3:52] Sakai OpenLife: to the system
[3:53] Anna Asplund: hmm, what do you mean viewer control
[3:53] Sakai OpenLife: by having a recommened DL for the dev beta environment only
[3:53] Sakai OpenLife: bug reports are rather useless if we're not sure of what they're connecting with
[3:53] Sakai OpenLife: so we keep all the participants up to date
[3:54] Sakai OpenLife: with whatever test viewer of the day
[3:54] Anna Asplund: all right, that is true
[3:54] Tuomo Korva: we have another meeting starting in 5 mins, i guess we have gone through the important issues
[3:54] Anna Asplund: yes, what do you think antti? should we end this meeting
[3:55] You: I suppose there's nothing more to report about what LC is doing?
[3:55] You: are there any issues anyone would like to raise?
[3:55] Sakai OpenLife: well...
[3:55] Sakai OpenLife: lol
[3:55] Anna Asplund: planning the content of course and planning the features for next sprint
[3:55] Anna Asplund: this we could discuss tomorrow, if you visit
[3:56] You: ok
[3:56] You: hmm next tuesday's the planning date?
[3:56] You: aargh I didn't remember
[3:56] You: aargh I didn't remember
[3:56] You: it's going to be busy for us all
[3:56] Anna Asplund: yes, so do we meet then or not
[3:57] Anna Asplund: maybe a bit difficult, but doable
[3:57] You: but anyway, I believe we can conclude this meeting and continue about that later
[3:57] You: I'll be there tomorrow, sure
[3:57] Anna Asplund: see you later
[3:57] You: ok
[3:57] Sakai OpenLife: Cya Anna
[3:57] Tuomo Korva: bye
[3:57] You: thanks for being here
[3:57] Anna Asplund: bye everyone
[3:57] You: see you later alligators