Recruiting 3.0 in Open Wonderland

July 25, 2012

By Gery Winkler & Michel Denis

Gery Winkler, a visionary business designer based in Munich, has partnered with Michel Denis, an experienced virtual world expert based in South of France, to re-invent the recruiting process.

The Testament role-play

Figure 1- The Testament role-play for immersive recruitment

The war for talent is widely discussed in most developed countries. Multinationals have to find new ways to attract and assess talent globally. While face-to-face role-play activities are used in assessment centers to evaluate soft skills of applicants, social media and VoIP are increasingly common tools for recruiters to interact with candidates remotely.

Some major recruiting challenges today include:

  • Competing for the best brains,
  • The need to reduce costs and improve efficiency,
  • The digital divide between recruiter and applicants, and
  • A war for talent that is going on at an international level.

At the same time there are major technological trends:

  • Social networking for recruiting is being widely adopted,
  • Gamification of processes has begun in HR areas, and
  • Immersive Internet games are played by many people.

ImmerHire (, the French-German start-up, merges virtual world technology with role-playing and storytelling to increase the efficiency and effectiveness of the recruiting process.

With Recruitment 3.0, immersive hiring is now possible. Virtual assessments, collaborative role-plays, and engaging serious games are all accomplished in 3D on an Open Wonderland platform.

Survival on the Moon role-play

Figure 2 – Survival on the Moon role-play (often used by recruiters)

ImmerHire, early movers in the recruiting space, provide customers with the opportunity to evaluate job applicants’ soft skills in an immersive environment. Role-plays and interactive stories help provide a sense of presence in this serious game and thus improve the quality of the assessments.  For example, an “in-tray” exercise helps to assess candidates’ organizational skills. Virtual survival games, such as the one shown in Figure 2, test candidates’ logical thinking skills, and conflict-management role-playing activities such as a “castle under siege” game, test candidates’ negotiation skills. The “Testament” role-playing activity (Figure 1) in which participants have to determine what to do after a wealthy uncle has died, allows candidates to demonstrate their social skills.

ImmerHire on Open Wonderland brings several benefits to corporations, including a more efficient and more effective recruiting processes, as well as early mover advantages. The ImmerHire environment also provides companies with the opportunity to embed their own branding.

Want to know the sales skills of a candidate? Just ask him or her to sell a fridge to an Eskimo … in Wonderland !

Selling a fridge to an Inuit

Figure 3 – Can you sell a fridge to a Wonderland Inuit ?

Wonderland Showcase – iED Boston 2012

July 13, 2012

By Nicole Yankelovich

At that Immersive Education conference in Boston last month, eight Open Wonderland community members from 6 different countries joined me remotely to show off their work. Here’s a brief summary of the worlds and features presented during the showcase. In all cases, the presenters have agreed to leave their spaces running on the community server. If you missed the conference, you can explore the spaces on your own. Simply log on to the community server and use the Placemarks menu to navigate to the different spaces.

WonderBuilders Outpatient Clinic

I began the session by showing one of the simulated medical spaces created by my company WonderBuilders.

WonderBuilders Outpatient Clinic

WonderBuilders Outpatient Clinic

This virtual outpatient clinic is designed for communications skills training. Each of our virtual clinical spaces comes with a soundproof observation room with one-way windows so that instructors and others can observe students during role-playing scenarios. This space also features a non-player character that speaks, a poster with links to different portions of the space, an App Frame for organizing documents, and pop-up questions using a modified version of the Sheet Suite developed jointly by WonderBuilders and the University of Missouri.


Michael Gardner from the University of Essex talked about the +Spaces (pronounced “positive spaces”) EU-funded project aimed at engaging citizens in policy-making. Michael showed excerpts from this role-play video:

To learn more about the use of role playing in the +Spaces project, as well as the Wonderland modules developed as part of this project, see these previous WonderBlog articles or search the blog for articles by “Bernard Horan.”

Entrepreneur Space

Johanna Pirker from Graz University in Austria took us on a tour of the space she created for teaching entrepreneurship.

Entrepreneur Space

Entrepreneur Space from Graz University

This space includes an informal area for students to get to know one another, an area for presentations, and a work area where students, mentors, and instructors can collaborate.


Roland Sassen demonstrated WonderSchool, an on-line school that takes advantage of Wonderland’s ability to run shared applications within the virtual world.


WonderSchool with the Alice programming environment.

Roland demonstrated how he can teach students to use complex software such as the Alice programming environment from within the virtual world. He also demonstrated other dynamic applications running remotely inside a VNC Viewer window.

Seekers School Maze

Chris Derr, head of the Seekers School, talked about using Wonderland in his innovative curriculum to motivate kids who have had difficulty in other school situations.

Seeker School student activities

Seeker School student activities

The students spent the past semester learning how to build Open Wonderland worlds, including making their own 3D models in SketchUp and creating simple animations using Wonderland’s EZScript capability. Among other things, the students created a fun maze, mountain climbing challenges, and a colorful spinning roof.


Ryan Babiuch from the University of Missouri iSocial project showed one of the many learning spaces used as part of their curriculum for remotely teaching social competency skills to students with autism spectrum disorders.


iSocial space used in teaching students with autism.

This curriculum was pilot tested this past semester in two schools. While the data has not yet been fully analyzed, the initial results were extremely positive.


Michel Denis and Gery Winkler from ImmerHire showed the Survival on the Moon space they use to help assess logical thinking skills.

ImmerHire - Assessing Logical Thinking

ImmerHire – Assessing logical thinking in the Survival on the Moon scenario.

The ImmerHire environment is intended to help employers evaluate communication, personal, and social skills of job applicants using a range of virtual role-play activities.

STCC Virtual Campus

Kristy Perry, an English-as-a-second-language (ESL) professor at Springfield Technical Community College, showed one of the spaces she designed on the STCC Virtual Campus.

STCC Virtual Campus - patio

STCC Virtual Campus – patio

This patio space is intended as a venue for small group projects and conversation practice. The STCC Virtual Campus will be deployed for Level 2 ESL students starting in September.

Wonderland Wednesday Projects

Jonathan Kaplan, our Wonderland architect, demonstrated the three Wonderland Wednesday community projects that he has lead. These projects – Telepointers, EZMove, and Subsnapshot Import/Export – were all developed collaboratively on the Open Wonderland community server. In the weekly Wonderland Wednesday meetings, developers worked together using NetBeans and other shared applications.

Telepointer demonstration

Telepointer demonstration

The new Telepointers are considerably more aesthetically appealing than the old telepointers. More importantly, they now work when you have control of a 2D application. For multi-user applications such as the Whiteboard, this is particularly helpful as it allows users to see where everyone else is working.

Be sure to visit the community server to see these spaces and try out the set of Wonderland Wednesday features.

Summary of +Spaces Development in Wonderland

July 10, 2012

By Bernard Horan

One of the goals of the +Spaces project is to prototype three applications in Open Wonderland (OWL) by which citizens can be engaged in policy discussion: polls, debates and role-play simulations. In the earlier blog posts, I focused on the way in which the applications appeared to users and the interaction features they provided. In this blog post, I provide a brief description of the other less visible features of the applications and the way in which, from an architectural standpoint, the applications are implemented in Open Wonderland.

The additional invisible responsibilities of each application are:

  • to receive updates from the +Spaces middleware
  • to communicate user actions to the +Spaces middleware

Each application is implemented as an OWL ‘cell’, packaged in an OWL module. However, there are some additional supporting modules that provide cells and other functionality used by the three applications. I’ll go through each application, beginning with the Polling Booth, and then briefly describe the other functionality before summarising our work.

Polling Booth

The Polling Booth is the simplest of the applications and is implemented as a 2D cell. The client implementation is a 2D Swing application that displays the current users of the Polling Booth, along with metadata describing the poll, and a button by which the user may take the poll. The user interaction of voting in a poll is implemented as a heads-up-display (HUD) component—this is because the activity is private to the user (see Figure 1, below). The description of the poll, such as its title and sequence of questions, is represented as an instance of a Java class that takes the role of a data model, with no behaviour. The Java Poll class is dependent on some other data-model-like classes such as BinaryPollQuestion, and FreeTextAnswer.

Figure 1: +Spaces Polling Booth

The server implementation of the Polling Booth cell acts as a gateway between the client implementation and the +Spaces middleware; thus it has two responsibilities: communication with the client and communication with the +Spaces middleware. The server communication with the client follows the regular OWL architecture, relying on subclasses of App2DCellClientState, App2DCellServerState and CellMessage. However, server communication with the +Spaces middleware follows the example of the connectionsample module that relies on the use of a subclasses of BaseConnection, Message and ResponseMessage and implementations of ServerPlugin and ClientConnectionHandler.

The communication flow is as follows (and is common to all three +Spaces OWL applications):

  • The +Spaces middleware creates a connection to the OWL server, and calls a method on the connection to set the data model of a cell (identified by its cell id) to be an instance of class Poll. The connection sends a message (an instance of a subclass of Message) to the OWL server and waits for a response.
  • On the OWL server, the instance of (an implementation of ClientConnectionHandler) receives the message. It then looks up the instance of CellMO according to the cell id (via the method CellManagerMO.getCell()), casts it to be of the correct class and calls a method to set its poll data model. The CellMO instance, in turn, sends an instance of (a subclass of) CellMessage to its clients, causing the clients to update. Finally, the ClientConnectionHandler returns an instance of (a subclass of) ResponseMessage to indicate if the operation to set the poll was a success.
  • From the client, when the user interacts with the Polling Booth, the answers (and other actions) are sent from the Cell to the CellMO on the server via an instance of (a subclass of) CellMessage. The Polling Booth CellMO then calls a method on the instance of (an implementation of) ClientConnectionHandler to send the user’s actions to the instance of (a subclass of) BaseConnection, where it is received and passed on to the +Spaces middleware via a listener pattern.

Debating Chamber

The Debating Chamber application is also implemented as a cell, taking on two roles: it acts as a container for other elements of the chamber; and it presents a ‘carpet’ to the user on which he or she may express a vote.

Figure 2: +Spaces Debating Chamber

When the CellMO that represents the Debating Chamber is inserted into the world, instances of other subclasses of CellMO are added as its children, as shown above in Figure 2. These are:

  • Two instances of StickyNoteCellMO—these post-its are used to display the ‘statement’ and ‘description’ of the debate.
  • An instance of ModelCellMO—this is used to hold the 3D model of the chamber (the OWL auditorium model).
  • An instance of AudioRecorderCellMO—this is used to produce an audio recording of the debate (it adds the instance of the Debating Chamber CellMO as a listener to be informed when a user terminates a recording).
  • An instance of SharedActionCellMO—this is used to render messages received from other virtual spaces such as Twitter and Facebook (this is based on the twitter viewer module that is in the OWL modules source code repository and rendered as a pigeon on the client).
  • An instance of LinkListCellMO—this is used to render the list of URLs that users may double-click on to open a browser. This cell is part of a new module that is based on the Sticky Note cell: it is rendered similarly, with a list replacing the text area.

The CellMO that represents the Debating Chamber maintains managed references to each of these children (except for the instances of ModelCellMO and AudioRecorderCellMO). For example the Debating Chamber CellMO has a field labelled ‘debateDescriptionCellRef’ which is an instance of ManagedReference<StickyNoteCellMO>. The references are used as follows:

  • When the setDebate() method is called on the Debating Chamber CellMO, it calls the method setText() on each instance of StickyNoteCellMO, with the parameter representing the description or statement, appropriately. It also calls the method setLinks() on the the instance of LinkListCellMO, with a list of links (URL-displayname pairs). The result of these method calls is to update the display of the contents of the cells on the clients.
  • From the client, when the user interacts with the Debating Chamber, the user votes are sent from the Cell to the CellMO on the server via an instance of (a subclass of) CellMessage. From then on, the mechanism follows the same pattern as the Polling Booth.
  • When the +Spaces middleware reports a comment from Twitter or Facebook, it is received as a Message by the implementation of ClientConnectionHandler associated with the Debating Chamber CellMO. This, in turn, calls the method notifySharedMessage() on the Debating Chamber CellMO, which then calls the method addRecord() on the instance of SharedActionCellMO, eventually causing the clients to display the contents of the comment.

In terms of its communication with the +Spaces middleware, the implementation of the Debating Chamber application follows the pattern set by the Polling Booth. That is, it reports user actions and receives comments from other virtual spaces via the OWL server.

Simulation Agora

The ‘Simulation Agora‘ is the name we give to the virtual space that hosts the role-playing simulation. It is the most complex of the applications and is also implemented as a cell, somewhat similar to the Debating Chamber. However, unlike the Debating Chamber it does not provide any direct user interaction features for 3D objects, and instead represents the floor of the agora (rendered as an EU flag) and provides a HUD control panel to a privileged user role by which the stages of the simulation can be managed.

Figure 3: +Spaces Simulation Agora

Figure 3 illustrates some of the elements of the Simulation Agora and the HUD control panel that is accessible to the moderator (or any member of the admin user group).

The HUD control panel is implemented as a Swing tabbed pane. One of the tabs provides the moderator with the means to step forwards and backwards through the stages of a ‘template’ that describes activities of a role-play simulation (more information about the use of role-play templates is provided in an earlier blog posting). Each of the two templates is implemented in Java in the form of a (pseudo) state machine: as the moderator progresses the template from one stage to the next, the state machine calls methods on the CellMO that represents the Simulation Agora to insert and remove child cells and to update the state of those child cells. Without going into too much detail, the sequence of stages of the state machine are as follows:

  1. Meet Participants—this is the starting stage of the simulation
  2. Ice Breaker Vote—this is an optional stage, specified by the policy maker, in which participants may vote on a question related to the policy
  3. Ice Breaker Results—the results of the ice breaker vote are presented
  4. Assign Roles—the moderator assigns the participants to the roles described in the template
  5. Prepare Statements—the participants create a number of statements according to the description of their role (the number of statements is specified by the template)
  6. Read Statements—the participants read out their statements
  7. Mark & Group Statements—the participants and the moderator collaborate to group their statements and to assign votes to statements
  8. Present Results—the participants discuss the results of marking and grouping the statements
  9. Final Vote—if there was an ice-breaker vote, then the participants are given the opportunity to vote again to determine if their views on the policy have changed
  10. End Simulation—the results of the final vote are presented

The children of the cell that represents the Simulation Agora are:

  • An instance of PosterCellMO—this shows the current stage of the simulation by rendering an appropriate image. This cell remains visible at all times.
  • An instance of a simulation carpet cell—this in turn has a child Poster cell that displays the question that the carpet is to be used to answer. The simulation carpet is used to capture the participants’ vote on the ice breaker vote and the final vote. It is added and removed as necessary by the state machine, in response to the moderator’s interaction with the HUD control panel.
  • Two instances of PosterCellMO—to present the results of the ice-breaker vote and final vote. The state machine adds these cells when appropriate and sets their contents to present the results of the preceding votes.
  • A cell that is used by participants to add ‘statements’—this is a cell developed specifically for the project. It is a 2D cell, in which the client implementation is provided by a 2D Swing application that uses an instance of JDesktopPane. The cell is added as a child when the state machine is at the ‘Prepare Statements’ stage.
  • Pairs of cells to represent each user role. Each role is associated with a poster cell describing the role, and next to it a ‘podium’ cell that acts as a place mark. The placemarks are used to enable the participants to jump to a description of their roles. These pairs are added at the ‘Assign Roles’ stage by the state machine.
  • A cell to represent a countdown timer. This is added and removed when necessary by the state machine.
  • A shared action cell, as described in the Debating Chamber application.

The CellMO that represents the Simulation Agora maintains references to the CellIDs of each of these children. For example the Simulation Agora CellMO has a field labelled ‘simulationDescriptionCellID’ which is a reference to the CellID of the instance of PosterCellMO that displays the description of the simulation. The fields are used as follows:

  • When the setSimulation() method is called on the Simulation Agora CellMO, it follows more or less the same pattern as the Debating Chamber, except that it also retrieves the template identifier from the simulation and creates a new instance of the state machine that represents that template.
  • When the moderator steps through the stages of the template, the CellIDs are used to identify the appropriate cells to delete or update, as described in the stages above.
  • From the client, when the user interacts with the Simulation Agora, the user votes and statements are sent from the Cell to the CellMO on the server via an instance of (a subclass of) CellMessage. From then on, the mechanism follows the same pattern as the Polling Booth and Debating Chamber.
  • When the +Spaces middleware reports a comment from Twitter or Facebook, it follows the same pattern as the Debating Chamber.

The other two tabs on the HUD control panel enable the moderator to inform the server when ‘something interesting happens.’ That is, something worth noting by the data analysis service; for example, when a video recording of the session is replayed, viewers are able to jump to appropriate timestamps to view the users’ activities (and listen to their comments). This is implemented using the regular OWL architecture—a message from the Simulation Agora cell to the OWL server which is then forwarded to the +Spaces middleware. All other communication between the +Spaces middleware, the OWL server and the OWL clients is as described in the two applications above.

Other +Spaces Functionality

In addition to the cells that provide the functionality for the Polling Booth, Debating Chamber and Simulation Agora, we also implemented a module with some extra features:

  • A means of reporting user activity to the +Spaces middleware:
    • two users come in range of each other (implemented using a client plugin)
    • a user ‘chats’ (using the text chat)
    • a user is forcibly disconnected
    • a user is forcibly muted
    • a user logs in or logs out
    • a user begins speaking
  • a servlet which provides a means of capturing profile information about a user (which is then forwarded to the +Spaces middleware)


In summary, we have developed 19 OWL modules for the +Spaces project, the following of which have been (or will be) donated to the OWL source code repository:

  • countdown timer
  • office-converter
  • postercontrol
  • tightvnccontrol
  • twitter
  • webcamcontrol
  • webcaster

However, we could not have completed any of the Wonderland aspects of the +Spaces project without the use of many of the existing modules and the wonderful support of the OWL community. So, on behalf of the project, I’d like to express my thanks to all the member of the community.


Get every new post delivered to your Inbox.

Join 54 other followers

%d bloggers like this: