This hangout app will display a simple WebGL room and place an avatar for each participant in the room.
The location/orientation of each participant is synced via the shared state of the hangout, so that everyone can see where the others are. There's also some basic collision checking.
You can simply start using the app in a Google+™ Hangout by clicking on this button. After you have used the app once you will find it in the App/Extension Picker under recent apps.
Note: You will need a browser that is capable of WebGL and the WebAudioAPI to be able to use all the features. Your best bet is to use the Chrome/Chromium browser.
Once the app is loaded you have the following controls (you might have to click somewhere inside the 3D window first to enable keyboard controls):
- W/A/S/D - Move arround
- Cursor keys - Look around
- Space - Jump
- C - Duck
- E - Wave
- R - Turn your head
- T - Make a full turn
You also have some controls to customize the look of your avatar and some more (mostly debugging related) controls:
- Music - This will start the currently selected song from the list. Music is not yet synced between the participants. So far every participant can choose when to start/stop/change the music. This will be changed in a future release. Also the checkbox and the radio buttons for each song will only be enabled, after the song has been loaded completely.
- 3rd person view - Places the camera behind your own avatar
- Smooth transitions - Instead of just setting the position/orientation of the other participants on each update, this will interpolate between the positions.
- No collisions - In case you get stuck with another participant you can use this flag to get free.
- Debug Mode - This will display the contents of the stared state.
- Fast updates - Currently the API is limited to 1 shared state update/second, using this flag you can try 30 updates/second for a short time until the API cancels the request. When you remove the flag again, the status updates will start working normally again after a short timeout. I'm hoping for the API to allow faster updates at some point so I'm using this flag to see if it's working already :)
Here's a demo video demonstrating all the current features.
If you have questions/suggestions/problems or want to stay updated on changes you can contact me on Google+ either personally or via one of my pages.
This app is still in development and not all features might be available at all times. Also from time to time the app might not be working at all for you.
LicensesCopyright 2011-2012 Gerwin Sturm, FoldedSoft e.U.
Keyboard handler & a lot of suggestions for better code - Copyright 2011 Björn Brauer
Android model - Copyright 2011 Dan Mousavi
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (c) 2010-2012 three.js Authors. All rights reserved.
Copyright 2009 Charles J. Cliffe. All rights reserved.
GNU Lesser General Public License 3
Google+ is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
This site is not affiliated with, sponsored by, or endorsed by Google Inc.
Programming by Gerwin Sturm, FoldedSoft e.U.