Open Source Platform
for interconnected virtual worlds

Getting Started with Naali

From Rex community wiki

Contents

What is Naali?

Naali is the realXtend's new open souce cross-platform virtual world viewer.
The main frameworks are Qt, Boost and OGRE.

Viewer features

  • OpenSim, realXtend and OpenID Authentication and Login
  • Inventory (OpenSIm and WebDAV)
  • In-world Chat
  • World Editing and Building
  • Internal Web Browser
  • Avatar Editing
  • Entity-component Editing and Synchronization to Server
  • Jabber IM
  • Mumble In-world Voice (requires the Mumble client)

Naali 0.3.0 Inworld windows

Naali running on windows

Naali 0.3.0 Inworld ubuntu

Naali running on Ubuntu 10.x aka lucid

Naali running on the MeeGo platform

Naali running on a MeeGo mobile device

Naali running on the Maemo5 platform

Naali running on the Maemo5 platform on the Nokia N900 mobile device

Technical limitations

  • Due to the Naali project being in early development stage there is no multiregion support. That is, you can log-in to an Opensim grid like osgrid, but you will only see the initial region where you logged on to. You can, however, teleport to adjacent regions.

System requirements

  • GPU with Shader Model 3.0 support

Frequently Asked Questions About Naali

'Q: Why is there no FAQ about Naali?'
'A:' What kind of a stupid question is that, of course there is!

Controls

Default bindings

Here are the the default bindings of current naali, we try to update this list on every release. Currently the support for binding keys has gone away with our input system refactoring. We will hopefully get it back soon. You can still change movement keys by typing 'bindings' to console.

NOTE: The controls tab in setting does not currently apply to anything.

Control Action
W, A, S, D Movement controls (A and D do strafe). Navigating Ether cards.
Arrows Movement controls (left and right do rotate).
F Toggle the fly mode
F1 Toggle console (inworld)
ESC Toggle ether login space (always)
SPACE Jump / fly upwards in fly mode
C Crouch (doesn't work in ModRex server) / fly downwards in the fly mode
MOUSE WHEEL Move the camera closer / further off the avatar
CTRL + TAB Toggle the free-look mode
CTRL + B Toggle normal inworld view and build mode
CTRL + F Toggle full screen mode
LEFT MOUSE Touch object
RIGHT MOUSE Look around in mouse-look mode (see below)
Focus Chat Return (Enter)
Python Several keys, check the settings python section for bindings
Naali Commands Several keys, check the settings general section for bindings

Mouse

You can enter the mouse-look mode by zooming "into" the avatar with mouse wheel. In mouse-look and free-look modes, hold down the right mouse button to look around and, if you are moving simultaneously, to steer the avatar.

Camera controls

For more about camera controls see Camera Controls

Console commands

Default toggle console key is F1, console toggle will only work if you are inworld. Type help to the console to get the summary of the available console commands.

Python

It is possible to run arbitary Python code within the viewer. A way is to put the code to bin/pymodules/usr/command.py and then press alt and the period key (alt+.) in the viewer window. World needs to have focus for python to execute the run command, click anywhere in the world to ensure this.

See bin/pymodules/readme.txt for info about how to make own modules, bind arbitary keys etc. The object editing tool is implemented as such a plugin, and Naali also comes with a Naali webserver plugin that can serve live screenshots over http (is disabled by default). When developing a Naali Python module, you can press F11 to reload all the code so that you don't have to restart the viewer to have the new version running -- this works e.g. when modifying the object editing tool.

Getting and running Naali

Windows

  1. Download the installer http://code.google.com/p/realxtend-naali/downloads/list
  2. Install Run the executable and install to your preferred location.
    Follow the instructions given by the installer.
  3. Run Naali from your start menu or browse to your installation folder and execute viewer.exe
  • Note: You should install to a fresh new folder. Installing on top
    of existing earlier Naali version might cause you some startup troubles.


Linux

At the release time of 0.3.0 and forward we are providing debian packages for i386 and amd64 architectures. Although these .deb files will open on any debian based linux system they were made specifically for Ubuntu feisty aka 10.x. This is due our quite extensive need for dependencies and how we list then to the deb control file. The names and versions that are listed inside the file can be found from lucid repositories, other repos might have the packages named differently or the needed version might not be available. Hopefully you can upgrade if you are running < Ubuntu 10.

GUI approarch
  1. Download the appropriate debian package
  2. Install you can simply open the deb file. This should start 'GDebi Package Installer' where you simply click 'Install Package' to install Naali.
  3. Run You can now find our menu item from Applications -> Internet -> realXtend Naali
Terminal approach
# for 32bit Ubuntu lucid
$ wget http://realxtend-naali.googlecode.com/files/realXtend-naali_0.3.0-ubuntu-lucid-i386.deb
# for 64bit Ubuntu lucid
$ wget http://realxtend-naali.googlecode.com/files/realXtend-naali_0.3.0-ubuntu-lucid-amd64.deb
$ chmod +x realXtend-naali_0.3.0-ubuntu-lucid-<arch>.deb
# If you get errors on dpkg install about dependecies try running "sudo apt-get install -f" to fix them 
$ sudo dpkg --install realXtend-naali_0.3.0-ubuntu-lucid-<arch>.deb
# You can run the start script from where ever in the system with (or use the menu item described above)
$ /opt/naali/run-linux.sh
Unistalling
# Open a terminal and run
$ sudo dpkg --remove realXtend-naali
Details About Installation
  1. /opt/naali
    • Naali start script run-linux.sh and viewer executable
    • Shared librarys that can't be found from lucid repos: libPropertyEditor.so, libQtSolutions_PropertyBrowser-2.5.so, libPythonQt.so and libPythonQt_QtAll.so
    • Naali modules ./modules/core
  2. /usr/share/applications/naali.desktop
    • Desktop file for the application menu
    • You can go and modify this with root privileges and change terminal=true so youll get all Naali console prints when running naali from the shortcut item
  3. /usr/share/pixmaps/naali.png
    • Icon for the application menu
  4. Depends
    • libogremain-1.6.4, libqt4-core (>=4.6.0), libqt4-gui (>=4.6.0), libqt4-network (>=4.6.0), libqt4-script (>=4.6.0), libqt4-webkit (>=4.6.0), libqt4-phonon (>=4.6.0), libqt4-xml (>=4.6.0), libqt4-xmlpatterns (>=4.6.0), python (>=2.6), libpocofoundation9, libpoconet9, libpocoutil9, libpocoxml9, libboost-thread1.40.0, libboost-filesystem1.40.0, libboost-program-options1.40.0, libboost-date-time1.40.0, libboost-system1.40.0, libboost-test1.40.0, libcurl3, libcurl3-gnutls, libxmlrpc-epi0
Shipped Modules
AssetModule.so            ECEditorModule.so         InWorldChatModule.so      
OpenALAudioModule.so      ProtocolModuleTaiga.so    RexLogicModule.so        
UiModule.so               CommunicationsModule.so   EnvironmentModule.so     
OgreAssetEditorModule.so  PhononPlayerModule.so     PythonScriptModule.so    
SupportModules.so         WorldBuildingModule.so    DebugStatsModule.so       
InventoryModule.so        OgreRenderingModule.so    ProtocolModuleOpenSim.so  
QtInputModule.so          TextureDecoderModule.so   WorldMapModule.so

Comparing to windows installers linux is missing: MumbleModule and TelepathyIMModule

Building Naali from sources

This information was a bit old from Naali 0.1 times so we removed it to avoid confusion.

We have since moved to git from svn and we need to update the build instructions accordingly. We'll try to get the updated instructions here as soon as we can...

Login to worlds using Ether

This new Ether login view is the default in Naali. You can always switch back to the classic login ui from the top right corner in ether. If you shutdown naali with classic view enabled, Naali will remember that next time you start. At this point ether might be too heavy to run fluently with older PCs, as its very animation heavy and this will drop FPS compared to a static ui.

Naali Ether

General Ether Info

Default Cards If this is your first start of Naali that has ether space, you will see one avatar and two preset demoworlds. Mr. Anonymous is the default, then you should see fishworld and audi world just as our previous releases classic login view did. Neither of the default servers doesen't require authentication. This means you can enter the worlds with any unique Firstname Lastname combination. There for it's suggested that you edit Mr. Anonymous to your preferred name to avoid name conflicts. If someone is in that server with "Mr. Anonymous" the server wont let anyone else with the same name in.

Storing Cards Ether will store your cards to a config file under your operating systems user account folder. So that you don't have to be typing server addresses and credentials all the time, this enables quick switching of worlds and identities. Once you make a card to ether Naali will remember it until you remove it.

Naali The Arctic Fox
Storing Screenshots Ether will take screenshots of your avatar and world once you logout from a world. When you create new avatars that has not visited any worlds yet you will see a naali (artic fox) as your default avatar cards and a planet for you world cards.

Controls You can use Ether with mouse and keyboard. You can select cards anywhere to be selected and moved to center with left clicking them. Navigating with keyboard happens with either WASD or arrows. Once you have your desired combination. Hit Enter or click Enter World button to login.

Modifying Avatars and Worlds

Avatars: Click "Edit Avatar" button from the top of the card. This will bring up a UI to edit you avatar settings. Worlds: Click "Edit button on the clower corner of the card. This will bring up a UI to modify your server url:port.

Note: On the world cards, Info and Register buttons doesn't do anything yet. The aim is to open a webview inside Naali to show you either grid information or go to the grids register account page.

Adding New Avatars

New Avatar
Click the floating "New Avatar" button. First you need to select if you want to create OS or realXtend avatar. Next step is to fill the required fields. You can go back without saving at any time by hitting Return button or save the new card with Save button.

Adding New Worlds

New World
Click the floating "New World" button. Insert your server address with port. http:// to front will be automatically added if you omit that. Once the server url is set you can click Get Grid Info button to fetch the grid data from the server. This is optional, but its a nice way to check if the server url and port are correct and that the server is up.

Removing cards

Remove Card
Once you have selected (the card is in the center) the card you want to remove. Hit the "X" button floating next to the card. Avatars and world have their own delete button. This will remove the card from config and remove the screenshot file.

Connecting to a server

Enter World
Once you have selected an avatar and a world, hit Enter World button or Return key on your keyboard. This will start the login. Ether will automatically change to the inworld view once login is completed.

Communications

Using IM communication

Naali viewer supports jabber protocol for IM communication. You can use any jabber provider or event Google Talk accounts since they use jabber for IM protocol. You can find public jabber services here: Public Jabber servers


IM
Access You can toggle the visibility of the IM widget with the IM button located in the bottom left corner.


Jabber login
Login Now do a login with you jabber credentials. We have provided presets for gmail and facebook, you can select them from the drop down menu.

Friends List Once you are logged in, you can toggle the friends list and access the basic functionalities from the top menu.

Adding friends You can send friend requests from the menu "Actions -> Add Friend". After your friend has accepted your request he will appear on the friend list.


Changing Status Click "Status" and you'll get a menu to edit you status message and state. State can also be controlled from bottom of the friends list.

Text Chat You can start text chat session by clicking on a friend's name in the friends list and choosing "Start chat".

Voice Chat To start a voice/video chat click a friend's name in the friends list "Start Video Conversation".

Logout Simply select "Status -> Sign out" from the top menus.


Logged in

Here's a nice video tutorial on the Naali IM features, check it out http://www.youtube.com/watch?v=4iiE66hY-RU

Using Inworld Chat

Chat widget You will find the chat widget from bottom left corner of Naali when you are inworld. In the normal view chat messages are stacked and shown floating in the air for some time. To view chat log click the History button.

Chatting To send a message simply input text and hit Return (Enter)
Resizing You can resize the history view by clicking and dragging the top/right widget border
Focus Chat When you want to chat and you have focus in the world
eg. you are moving your avatar hit Return (Enter) to set focus to chat


Normal Chat View

Normal Chat View

History Chat View
History Chat View

In-world Voice

Voice communication tab is automatically shown if a world has a voice service available. Default sending audio mode is 'always off'.

In-world voice is 3D so you can notice attenuation and direction of an audio source. Just be sure that your avatar is close enough of the an another avatar you are speaking with.

Actions

  • Toggle in-world voice mode: click mode button
  • Open in-world voice participant list widget: click participant list button
  • Mute a participant: Click mute check box in participant list widget

Voice control tab

Voice control tab

In-world voice participant list

Using the Avatar Editor

To bring up the avatar editor, press the green button on bottom right corner. It has a avatar symbol so should be easy to find and is above the inventory button.

Avatar Editor

From top to bottom, there are controls for adjusting appearance (morph and skeletal modifiers), changing textures, and editing attachments.

In the bottom row there are buttons for loading a new avatar, loading a new attachment, reverting to last saved avatar, and saving the new appearance.

Avatars and attachments are loaded to the editor from local hard disk. You can download and extract the ExtraAvatars-package http://dev.realxtend.org/gf/download/frsrelease/117/58/Naali-ExtraAvatars.zip for some of the avatars and attachments from the old realXtend viewer.

You can export your avatar when logged in with a realXtend account. Webdav avatars are supported for opensim accounts if the server is Taiga (>0.1.2). Normal opensim+modrex servers do not provide storing avatars to server, only Taiga has this for OS accounts.

Using the Environment Editor

The Environment Editor can be launched from the viewer toolbar under 'World Tools'. The editor contains functions for editing multiple aspects of the virtual environment.

  • Terrain
  • Terrain texture
  • Water
  • Sky
  • Fog
  • Ambient light

Environment Editor

Content Creation Tools

In the current Naali version the content creation tools are still under construction. Here's a short overview of what features are already functional.

World Building Mode

World Building mode aims to provide a separate user interface for building and editing the world. As there are many editing tools we need all the space we can get on screen to efficiently work with them. The underlying functionality is almost always in python and the below explained Object Editor code, so build mode is just trying to make the UI experience for building better and also to add functionality later on.

There are currently more features working in the Object Edit window that this build mode, but we are actively porting features into the new UI. The aim is to get rid of the python UI all together when this work is done.

World building offers

  • Quick toggling between normal and build mode without the need for menus/buttons
  • Rich tools for building/editing
  • View port to selected object that you can rotate and zoom

Ways to access world building

  • Ctrl + B toggles normal/build mode
  • When in build mode ESC will get you back to normal mode
  • 'Build' button on the top right toolbar switches to build mode

World Building mode


Object Editor Window

The Object Editor can be launched from the viewer toolbar. It supports selecting objects from the 3D scene with the mouse, and moving, rotating and scaling them either by using a 3d widget or manipulating the values in the 2D dialog. Some other basics like adding a new object, duplicating an existing object, and calling the Opensim server side undo for an object work too. And of course assigning a mesh to be used for the object, by dragging a mesh reference from the inventory to the mesh field.

Object editor

The same window has also a materials tab, where you can assign textures or materials also by dragging or copying the references from the inventory.

The move (translate) manipulator

Currently you need to press Move/Rotate/Scale buttons to enable a 3d manipulator widget. When no manipulator is active, dragging the object moves it freely based on the view direction. This part of the UI is not really designed yet, the workflow is to be improved.

Limitations

Having pulldowns which directly show the available assets like meshes and materials to use is not implemented yet.

Assigning textures or materials to objects works currently (till 0.2.1) only for meshes, not for prims.

About the other properties shown, only ServerScriptClass is experimentally synchronized to server in 0.1 and till 0.2.1, the other params like prim geometry is just shown and modifying them does nothing.

Changelog and History

Version 0.3.1 (UNDER DEVELOPMENT)

Features
  • Renderer service now has screenshot services. RenderImage() and RenderAvatar(), will take screenshot of the current rendering window and return you a QPixmap that you can manipulate and/or save.
  • Alt-Camera controls: Rotate camera up/down with mouse and zoom in/out a selected object with mouse scroll.
Internals
  • EC_SoundRuler and EC_Ruler don't cast shadows anymore.
  • New and cleaned up manipulators: blog post
  • World Building object viewport now remembers its orientation and relative position
  • Ether card screenshots are not taken via renderer service with a proper camera ec so you wont see desktop artifacts in the photos anymore.
Bug Fixes
  • Animation Sync wouldn't sync with server on first usage.
  • CAVE now works also with OpenGL

Version 0.3.0 (27.08.2010)

Features
  • Added a new attribute type "QVariantArray" that can contain x number of QVariants. Also added ui elements for ECEditor so user should be able to edit this new attribute by using the ECEditor window.
  • Attribute interface can now contain metadata such as min and max value. This information is mostly used by the ECEditor.
  • Hovering prims/meshes that have media urls will show the "link" mouse cursor.
  • Shadow quality setting (off/low/high)
  • Texture quality setting (low/normal)
  • Attach sound to entities with object edit (EC_AttachedSound)
  • EC_SoundRuler: A visualisation for EC_AttachedSound. See Blog post
  • EC_Mesh: A component that is responsible to request mesh/material assets and displaying them on the scene.
  • Enable hotkeys for object edit: alt-s for scale, alt-r for rotation, alt-m for translate (move), ctrl-z for undo, delete for delete, alt-l for linking objects, ctrl-shift-l for unlinking objects
  • Constant size transform widgets (there's some small fluctuation in size, but mostly stays constant).
  • Fullscreen mode. Can be enabled from settings-> rendering or with hotkey Ctrl + F.
  • First Implementation of CAVE-system. Can be configured from settings->CAVE. At the moment only works correctly on DirectX, on openGL there is backprojection of the scene in CAVE-views. This will be fixed for the next release. Also when you disable CAVE, all the views are destroyed.
Internals
  • EC_Touchable: can now set hover cursor, has hover in/out signals, can disable material highlight.
  • Legacy MediaUrl: Now uses touchable entity component to show a 2D preview of the webpage. Touchable will give us clicks for the entities that will in turn invoke python loadurlhandler web browser to show the url.
  • UiServiceModule: optional light-weight UI module for creating alternative UI's.
    • UiModule can be disabled now quite feasibly.
  • LoginServiceInterface: Developers can can create their own login (screen) modules for OpenSim/realXtend/WebLogin which utilize the existing protocol modules.
  • Move Console UI from UiModule to SupportModules in order to make console usable with possible alternative UI implementations.
  • Qt::WA_DeleteOnClose window flag can be now used for QWidgets that are embedded to the view. When proxy widget is closed, the QWidget is now deleted as it should.
  • Simple LoginScreenModule for demonstrating the use of UiServiceModule and LoginServiceInterface.
  • Expose EC_OgreCamera and it's parent entity to scripting.
Bug Fixes
  • Implemented button width checks in our QStyle, long text buttons were clipping.
  • MediaUrlHandler: Improved performance with only loading webviews in memory that really exist in the scene. Better deletion code, hopefully cuts down the crash bugs.
  • Mumble voice stability and quality improvement
  • Hide IM button from the view if no IM module available.
  • IM login widget not responding to mouse. IM widget crashing on context changes.
  • If login process fails, the error message is shown on both Ether and classic login screens.
  • InputContext can now be properly used from Python
  • ScenePtr null check to WorldBuilding when creating camera to the obj viewport
  • Correctly initializing our QApplication subclass. Affected certain linux machines to crash on loading.

Version 0.2.5 (05.08.2010)

Features
  • A map view that shows the map tile from the server and the avatars on the region as icons.
  • Video support for media urls. If mime type of mediaurl is video and supported by Phonon backend Naali will play the video in endless loop using refresh ratio defined with media url texture.
  • World Building new UI: new object, clone object and delete object. Selected object viewport on the right side can now be rotated with mouse and zoomed with mouse wheel. New shortuts for manipulating selected object, Ctrl = move, Ctrl+Alt = Scale, Ctrl+Shift = Rotate.
  • Couple of new stats for network profiling + dumping network traffic to file
  • Use dummy "Loading..." items in each inventory folder when using OpenSim inventory for increased responsiveness: the expansion arrow is visible even though the folder has no children retrieved yet.
  • Scene complexity tab in the Profiler window. Shows information about objects, materials and textures, including total triangle count, to assist world builders in keeping within their chosen complexity & performance budgets.
  • Web UI / screenshot server can now give a picture as a response to a HTTP query with camera position and orientation. A new web ui (html+js) is included that shows a minimap and a 3d view and features moving the view with arrowkeys and rotating with mouseclicks. Demo server being upgrade now, link put to there soon.
Internals
  • New QtInputModule that replaces the WorldInputModule. Fixes input bugs in focus handling and allows easy use of all kinds of e.g. modifierkey+mouseclick handlers in other modules.
  • Refactored ECEditor's property browser (ECBrowser).
  • Module and service getter API improvements
  • Javascript API experimental additions: MouseHover and MouseClick qt signals for 3d scene entities
Bug Fixes
  • Shadows now fixed. On DirectX we use multiple shadowmaps for better shadow quality. On openGL we are forced to use only 1 shadowmap which degrades shadow quality.
  • Notification message boxes now blend in with the background. Bug introduced when we changed the Naali QStyle.
  • Better handling of webdav exceptions when connecting to inventory.
  • Chat bubble and name tag appearance fixes.

Postponed for next release (is in develop branch)

  • Include new version of EC_DynamicComponent.

Version 0.2.4 (11.6.2010)

Features
  • Texture Caching
    • Textures get now stored on disk after decoding is complete. This will fix the issue that textures were always decoded when it was found from asset cache as encoded image. Impact of this is most notable on slower machines as j2p decoding is quite heavy. Modern PCs should also see login speed improvements.
  • Texture and asset cache configuration
    • Naali settings now has a new tab called 'Cache'. Here you can set the max disk usage for both caches, reset both caches and set if only j2p textures are stored to texture cache.
    • If you enable caching everything, it means also jpg, png, bmp etc. formats will be cached after decoding. For normal PCs this should not be necessary but again for slower machines this might give you some speed ups in loading worlds.
    • Assets cache default max size: 300 mb (min size 10mb). Texture cache default max size: 500mb (min size 20mb). Be prepared to increase these if you visit alot of heavy content worlds. Max size for both is 9000 mb.
    • If caches get full oldest date modified files will start to be removed from cache.
Bug Fixes
  • EC_3DCanvasSource crash fix in some worlds that have mediaurls.
  • Ether now suppresses key input to animation and login action controls when classical view is shown. This fixed the bug that when pressing enter in classical login views web browser would start a login in the background.
  • Shadow fixes so all worlds should have the new nicer shadows. There is still a bug with openGL and the shadows might not show. To be fixed.

Version 0.2.3 (9.6.2010)

Features
  • Changelog now lists versions starting with the latest one
  • URL based textures: Supports asset ref url from webdav inv or just a url to any image on the web. Supported types are JPG, PNG, GIF, BMP, TIFF and a few other exotic ones. NOTE: jpeg2000 is not supported yet with http textures. This can be made to work if needed. UDP path decodes j2p textures as before.
  • Object Shape is updated to the server when modified from object edits property editor. This essentially means prim shape manipulation is possible in Naali. (ObjectShape packet)
  • Objects name and desctription is updated to server. (ObjectName and ObjectDescription packets)
  • ECEditor supports now multiediting. You can open ECEditor by typing "eceditor" to console window and you can pick your entities simply by clicking them on the scene. Note! if EntityComponent's attributes don't appear on the property browser, you can try to edit them by using xml editor (right click editor's selected entities list and choose "edit xml ..." option from the dropmenu).
  • Debugging: Requesting god-mode from server
  • Debugging: Ability to kick out users from server + modal info dialog when user is kicked from server
  • Links (must begin with "http://" or "https://") in chat log are clickable and opened using OS's default web browser
  • Now using Parallel-Split Shadow Maps for better shadow quality
  • Python API: upgrade to PythonQt 2.0.1 which exposes all of Qt 4.6 and supports operator overloading
  • EC_DynamicComponent started: support for defining custom component data and handlers in Python and Javascript (untrusted js api still just a minimal test and off by default, with trusted py code all of the normal Naali and standard py api can be used). A small animation time position sync slider is included in release, shows in tools menu when logged onto a server which has an entity with a component that has that data (a demo place will be set up soon)
Bug Fixes
  • Crashed when assigned url as texture/material field.
  • Media url textures on prim: If set to whole prim (not with multiple dropping) it will apply to all sides.
  • Webdav inventory performance enhancements, no more unwanted web fetches. Also smarter fetches so that asset ref urls are available right after upload for the new items.
  • Webdav inventory widget paint errors fixes when manipulating the treeview (add folder/remove/upload/rename).
  • Material count is now read correctly from mesh when its ready. This enables you to set different texture to all submeshes via object edit. Also pushing the correct material count to modrex in rexprimdata.
  • Object Edit widget now sends the edited properties to server with RexPrimData GM. Some fields worked earlier (was broken untill now) but now it syncs everything. Note that everything you see in the prim property editor is not sent via the RexPrimData packet like for instance MediaUrl, but most of the fields are sent. (RexPrimData generic message packet)
  • Random crashes when mumble in-world voice was used.
  • Fixed avatar bone adjustment controls no longer working after choosing a new avatar with the file selector.

Version 0.2.2 (19.5.2010)

Features
  • Included first test version of EC attribute editing (You need to enable the ECEditorModule to try it out). Note! If you want to get your own attributes to display on a ECEditor you need to use AttributeInterface class for every attribute values that your entity component uses.
  • Initial implementation of WorldLogicInterface service to get rid of dependencies to RexLogicModule
  • Mouse hover ray casting to scene
  • EC_Touchable (serializable): visual effect triggered by mouse hover ray casting indicating that the entity has some kind of functionality when clicked i.e. it's touchable.
  • Moved EC_OpenSimPrim out from RexLogicModule to its own static lib.
    • Note: in this move the network sync code was removed from ServerScriptClass property, which was the only prop so far for which editing in obedit/props tab worked previously. Is to be brought back for next release, hopefully syncing all the other props too (requires finishing ObjectUpdate sending)
  • Fetching the GetTexture capability url from simulator. Using this to download inworld textures and meshes via HTTP. Works against both Taiga >=0.1.1 and normal OpenSim >0.6.9-postfixes (i believe, quite a new feature in OS).
  • Webdav inventory back in business with OS agents against Taiga 0.1.2.
  • Webdav avatar export/download/broadcasting for OS agents against Taiga 0.1.2.
  • Capped the UI overlay update to 40 fps. This increases the Naali mainloop speed when there is animations or otherwise constant movement in the UI scene.
  • Login teleport support for classic login and ether. Write region name to start location -input field.
  • Framed widgets now handle window resizing. They keep their position in relation the the window borders and keep themselves in the view. Made by Pavlovski.
  • Prim and mesh texture media url support with refresh rate.
  • 2D MediaURL browser pops up when clicking a object that has a media url set as texture. Manipulating this web view wont affect the rendered texture on the object at this point. Purely for browsing purposes.
  • Handling of ll Text Box dialogs
  • Teleport widget. Shows nearby regions as list and allows manually enter region name that is not listed. Does currently logout-login when arriving to new region.
  • Python API upgrade & cleanup (details in http://groups.google.com/group/realxtend-dev/browse_thread/thread/14448ccd22b01808#)
    • upgrade to circuits 1.3 dev, use circuits return values for naali py event handlers. Event handlers can now just return normally, the previous callback passing hack was removed.
    • autoload.py cleanup: now just need to add the own module name, and reloading and error reporting at load etc. all work
    • a threaded worker test/example in apitests/ , works
  • In-world voice User interface. Visible when logged in to world with mumblevoicemodule. Mumble client installation is not needed anymore for in-world voice.
Bug Fixes
  • Object editing: Fixes to mesh and material/texture assignment py side gui code, is now again tested and should work fully (note: must check if mat/tex assignment is still for meshes only, not yet for prims too)
  • Replace the hack used to prevent duplicate avatar joined notifications with a better implementation
  • Fixed avatar textures resetting when loading a new avatar, editing textures, and then adding/removing attachments to the avatar
  • Bottom left corner chat/video widget now wont steal inworld clicks if there is hidden or transparent widget. This essentially means you get inworld clicks to objects/avatars trough the big proxy that is the comms widget. Unless its history view as its not transparent or hidden when its selected.

Version 0.2.1 (27.4.2010)

Features
  • First version of the integrated Mumble voice functionality (lacks proper UI) requires '--usemumblelibrary' command line argument. Does work only with mumble servers with default mumble port.
  • Working http downloads
    • New Qt-based implementation for http downloads (todo: Coming up: support for getting the base assets url from server CAPS)
  • Localization support
  • Preview for sounds and textures
  • First version of LoadURL packet handler
  • Hovering buttons
  • Chat logging into a file (disabled by default, you can enable it from the InWorldChatModule config file)
  • Experimental entity-component editing and replication through XML serialized format in prims' RexFreeData field
Bug Fixes
  • With dual monitors the windows position got stored wrong into the xml, naali would not start after this was because it was trying to open the main window out of screen.
  • QSettings was reading the bindings file under /data with write+read access even if we were only reading from the file.
  • Added handling of 44-byte ImprovedTerseObjectUpdate packet.
  • Fixed object edit position z-axis spinbox maximum value to 10000 instead of 99.99.
  • Client side .scene loading rotation bug fixed (ui coming for 0.2.2)

Version 0.2.0 (1.4.2010)

Features
  • First version of the new user interface design (including the Ether world and avatar selection tool
  • Mumble voice chat test using a separate Mumble client installation

Version 0.1

  • The first Naali release with basic functions in place.