Printscreen Plugin with a Photo Gallery

August 21, 2013

By Dominik Alessandri & Christian Wietlisbach
Hochschule Luzern Technik & Architektur

As part of our bachelor thesis, along with our Kinect module described last month, we developed a printscreen plugin for Open Wonderland. When the plugin is installed on a server, all connected users can choose if screenshots should be saved locally or on the server. If saved on the server, the pictures can be displayed in an automatically updated photo gallery. The update of the picture gallery is made with a shell script which is running as task in the background on the server. We had to implement it this way, as we did not find a way to save directly in the ‘docRoot’ folder in the ‘run’ directory. The shell script uses rsync to keep these two folders in sync.

When a user is connected to a server with the printscreen plugin installed, he can display the controls of the plugin by selecting ‘Window -> Printscreen Folder':

printscreen_display_window

The Printscreen Folder dialog allows the user to choose where to save the images:

printscreen_settings

When pressing the ‘o’ key, a new screenshot will be taken and either saved locally or on the server. The reason why the key binding was done with ‘o’ is very simple: The printscreen key is not forwarded from the client to the module. The capture of the key event is done on a level before the module gets the event. On this higher level, the “Print Screen” key is filtered and the module doesn’t get any event. Instead the message “Key is not allowed” appears. Version 3 of jMonkey will support taking screenshots by default, making it easier to capture the screen.

On the server-side, the screenshots are saved in /.wonderland-server/0.5/run/content/images/screenshot/. This folder should be created by an administrator when installing the plugin.

To run the photogallery, the content of the file ‘lightbox.zip’ needs to be extracted to /.wonderland-server/0.5/run/docRoot/lightbox/. This photo gallery shows all images stored in /.wonderland-server/0.5/run/docRoot/screenshot/. To update the photo gallery, we need a background task which copies the files from /.wonderland-server/0.5/run/content/images/screenshot/ to /.wonderland-server/0.5/run/docRoot/screenshot/. For example, the shell-script ‘copyScreenshot.sh’ can do the job.

An example of this photo gallery can be seen here: http://147.88.213.71:8080/lightbox/

Photo-gallery

You will need the following files to get the printscreen plugin running:


Avatar Control with Microsoft Kinect

August 1, 2013

By Dominik Alessandri & Christian Wietlisbach
Hochschule Luzern Technik & Architektur

As part of our bachelor thesis, we developed a module called ‘kinect-control’. This module lets you control your avatar by using your body doing gestures.

This module mainly runs on the client but necessary information will be transferred from the server to the client as needed. All the user needs to have is a connected Kinect device and the Kinect SDK Beta 2 installed. This means the module is only available for Windows x86/x64 clients. All other requirements will be shipped from server to client when logging in. This makes it easy for interested parties to use.

To set up a Wonderland server to use the kinect-control module, the administrator needs to change two files on the server:

/.wonderland-server/0.5/run/deploy/wonderland-web-front.war/app/win32/
wonderland_native.jar
/.wonderland-server/0.5/run/deploy/wonderland-web-front.war/app/win64/
wonderland_native.jar

These two files must be replaced. The extended files can be downloaded from

http://147.88.213.71:8080/modules/KinectControl/win32/wonderland_native.jar
http://147.88.213.71:8080/modules/KinectControl/win64/wonderland_native.jar

These new files contain the DLL ‘KinectDLL.dll’ which is necessary for the connection between Open Wonderland and the Kinect.

If you are running this module on the client-side, the first thing you need to do is to connect the Kinect device to your Open Wonderland client. This can be done using the kinect-controller dialog. After installing the kinect-control module, in Wonderland, click on ‘Window -> Kinect Controller':

kinect_display_window

The dialog contains two buttons: ‘Start Kinect’ and ‘Stop Kinect':

kinect_settings
If you have a Kinect device connected to your PC, you can click the button ‘Start Kinect’. After a while, your Kinect Device moves to the initial position and the window displays ‘Connection Works':

kinect_settings_connection_works

You can adjust the angle of your Kinect device by sliding the slider to the desired position:

kinect_settings_angle_slider

Now you are ready to move your avatar by using your body. Place yourself in front of the Kinect device and control your avatar as follows:

  • Walk: Just move your legs up and down
  • Turn right: Hold right arm to the right side
  • Turn left: Hold left arm to the left side
  • Fly up: Hold right arm up
  • Fly down: Hold left arm up

It is possible to extend the gestures recognized by this module. For this, you need to modify the file ‘gesturesBDA.txt’ located in ‘kinect-control-client.jar’ inside ‘kinect-control.jar’ using the software ‘KinectDTW‘. After this file contains your new gesture, you need to map this gesture to a keyboard-input.

The file ‘keyMapping.txt’ contains the allocations from gestures to keyboard-inputs. It is located on server in /.wonderland-server/0.5/run/content/modules/installed/kinect-control/client/. The structure of the file is as follows:

[Name of gesture]=[isMouse[0/1]];[keyCode1[decimal]];[keyCode2[decimal]];[time[millis]]

Example 1:

@Run=0;16;87;2500
Description:
When gesture @Run is recognized, press key 16 (shift) and 87 (w) 2.5 seconds long.

Example 2:

@Walk=0;87;0;3000
Description:
When gesture @Walk is recognized, press key 87 (w) for 3 seconds long.

For a list of all keycodes you can consult http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes/.

You will need the following files to get the kinect module running:

A video of the running module can be seen on YouTube:


SIPping Wonderland

April 6, 2012

By Bernard Horan

One of the great features of Open Wonderland is its telephony support. In this blog post, I provide a few examples of standard VOIP clients that use SIP to call into an Open Wonderland server. It may seem odd to use an impoverished audio connection to a rich immersive 3d environment, but there are many occasions when users wish to participate in meetings from locations or using devices that are not able to provide the full Open Wonderland experience.

In the video below, I show some examples of how to use two of the many SIP clients to call into an Open Wonderland server. The first of these, Jitsi, is an open-source Java-based client that can be used on a regular desktop/laptop. The second client, 3CX, is available for iPhone (iOS) and Android platforms. The video provides three examples:

  1. Using Jitsi to connect, registrar-less, to an Open Wonderland server running on a local network
  2. Using Jitsi to connect, authenticated, to an Open Wonderland server running on a host on the public internet
  3. Using 3CX installed on an iPad to connect, authenticated, to the same server as in (2). (The settings for the 3CX client are provided at the end of this post.)

These examples augment the existing video that shows how to use a virtual phone to call out via a PBX. There is nothing special about the Open Wonderland installations that I’m using for the demonstrations. The only requirement before producing the examples was to insert a Virtual Phone into the virtual world using the standard ‘Insert Object…’ dialogue. In detail:

  1. The first example uses a source build (rev 4820) of Open Wonderland, with no authentication enabled, running on my home local network.
  2. The second and third examples both use a binary installation (rev 4816) of Open Wonderland, with authentication enabled. The installation is hosted on a public internet-facing server at the University of Essex that has its firewall configured according the the Open Wonderland firewall instructions.

Many thanks to Morris Ford for his guidance on using SIP.

For information about the settings I used to connect the 3CX client, see the figure below.

3cx-Settings


Styled Sticky Notes

September 8, 2011

Matthew Schmidt By Matthew Schmidt
University of Missouri

The iSocial project is pleased to announce our first open source release: Styled Sticky Notes.

Background

Styled Sticky Notes is an idea that was proposed in May of 2010 as a mashup of the poster module and the sticky notes module. The idea was to come up with a way to present styled text and graphics and to allow for text input on a sticky note. Lots of good feedback was generated on the forum from the proposal, and the design was changed significantly. The result of the design changes was a set of sticky note variations that would support display and editing of styled text.

Description

The Wonderland iSocial Styled Sticky Note module expands on the existing sticky note module by adding two new types of sticky notes. The existing sticky note module has sticky notes (simple text boxes where you can write plain text notes) and task sticky notes (which track the status of a to-do item). The new sticky note module provides Styled Sticky Notes (simple text boxes where you can write styled text notes) and Sectioned Sticky Notes (sectioned text boxes where you can write styled text notes in the top portion and plain text notes in the bottom portion).

The Styled Sticky Note has controls for changing the style of text in the note. To change the style of text in the note, click and drag to select the text you wish to style, then select one of the style buttons. See figure below.

Styled Sticky Note Annotated

The Sectioned Sticky Note has controls for changing the style of text in the note only in the top panel. Text in the bottom panel is not able to be styled. To change the style of text in the note, click and drag to select the text you wish to style, then select one of the style buttons.

The intended purpose of Sectioned Sticky Notes is for providing a way for users to respond to queries in-world. A query is entered and styled in the upper panel, and the user provides a response in the lower panel. An example is provided in the figure below.

Sectioned Sticky Note

The iSocial Styled Sticky Note module can be downloaded from the module warehouse. Its source can be downloaded from the unstable module repository.

We hope that the community finds these extensions to the sticky note module useful. Please feel free to provide feature requests and bug reports on the Wonderland forums.


Google 3D Warehouse Integration

August 19, 2011
Alexios Akrimpai
 
 
 
By Alexios Akrimpai
University of Essex, UK
 

Hi everyone, my name is Alexios, and I am (was) a member of Frontrunners project for Open Wonderland (OWL) at Essex University under the supervision of John Pisokas.

My project was to develop a module for OWL that will help virtual world designers to quickly and conveniently browse 3D objects from Google Warehouse (GW) and manipulate them in the ‘world’.

The functionality of the module includes:

1.      Easy search and page navigation within the Wonderland client.

2.      Download and install 3D objects in Collada format (Google SketchUp not yet supported)

3.      Save and browse 3D models locally

4.      Model details available on selection

5.      Search history

The internal design of the module is very simple. GW provides an RSS feed that is used inside the module to search for the models and all their info (e.g. author, description, download url, and etc.). Once this info is available, the software displays it in a nice format for the user, and allows easy manipulation (e.g. download, install) of the models.

The only major drawback of the module at the moment is that Google SketchUp models are not yet supported. This may change in the near future, when I, or someone else, may develop a ‘SketchUp to Collada’ independent (light) converter, or support to the SketchUp format directly from OWL.

The source code of the module is available in a github repository called Google-Warehouse-Explorer as well as in the Wonderland unstable module directory. I am pretty sure that the module contains a few small bugs that I missed. Also, I am planning some improvements for the next version. Please do not hesitate to let me know of any errors found, any improvements, and/or additional futures that you think will make it more useful and user friendly.


Next Wonderland Wednesday Project

May 31, 2011

It happened without any fanfare, but the Wonderland Wednesday “Subsnapshot” project has been completed!

Test of subsnapshot "export" command

Test of subsnapshot "export" command.

As soon as the module is added to the Module Warehouse, I’ll post more details on how to use the new feature. In the mean time, please join us for tomorrow’s Wonderland Wednesday session to help decide on the next group project:

Wonderland Wednesday New Project Idea Session

Even if you are not a developer, we would value your input in terms of ranking the many great ideas that are currently under consideration. In last week’s meeting, we started the process of reviewing possible project ideas. Using Bob Potter’s Card Wall application, we started reviewing and annotating potential project ideas.

Annotating and organizing project ideas on a card wall.

Annotating and organizing project ideas on a card wall.

You can see these ideas in text format on the Community Wiki.  In tomorrow’s session, we will finishing going through the ideas with the goal of prioritizing them and hopefully deciding on one to pursue.


Wonderland a twitter

July 28, 2010

Continuing with the theme of increased internet integration as outlined in my last blog post, I’m pleased to announce the addition of a Twitter Viewer module to the Wonderland Module Warehouse.

It uses Twitter4J–a Java library for the Twitter API, and relies on the existing Twitter search operators. It requires no authentication, and can be installed and used by any user logged in to Wonderland. The user is able to enter a search query and the resulting tweets are added to the virtual world in two ways: firstly in a list widget displayed in the heads up display; and secondly as animated bubbles floating up from a 3D model of a pigeon.

Here’s a brief video of the Twitter Viewer in use.

As mentioned in the video, the query is performed every 30 seconds and will continue executing even if no user is logged in to the world. All the results of the query are presented in the list widget next time a user logs in. The list widget (actually a table widget) will hold a maximum of 99 tweets, after which it discards old tweets.

The module is now in the Module Warehouse and the source code in the Positive Spaces SVN repository. If you take a look at the source, you’ll see that this module includes three features of Wonderland:

  • Animation of tweets, using the Trident animation framework
  • Connection from the Wonderland server to an external service provider, in this case Twitter, via the use of the Darkstar service layer
  • A periodic task to execute a query, retrieve the results and forward to clients.

In my last blog posting, the instructions for checking out the source code were cropped. Here they are in full: inside a terminal window, execute each of the following command as one line (when prompted, use ‘anonymous’ as the username and a blank password):

% cd ~/src/trunk
% svn checkout http://gforge.grid.ece.ntua.gr/svn/spacespublic/trunk/
UEssex/wonderland-modules +spaces-modules

This will create a directory called +spaces-modules that is a sibling to the wonderlandand wonderland-modules directories.


Follow

Get every new post delivered to your Inbox.

Join 56 other followers

%d bloggers like this: