Tag Archives: google

Multi user avatar chat based flash website for Incident 09

I was very inspired by the Red Interactive agency’s website which allowed the website visitors to talk to each other in realtime with an option to customize their avatars. So I wanted to use my skills and create something similar for my college website. The initial idea came up with was to model the entire college campus in 3D and allow the user to navigate around the campus along with them being able to go through the event details. I had also thought of having interactive elements in the 3D map which shows a miniaturized version of the cultural fest happening inside the 3D space. But as I was the only person who was working on it and also considering the average internet bandwidth available around that time in India, I decided not to plug in very heavy graphics onto the website. I started off by designing the main building of my college using Google sketch up and rendering it with a photorealistic plugin called vRay. The initial results were very impressive. With the crude rendering of the image, I started working on Flash CS3. Till then, I had only worked on Swishmax, which was a stripped down version of Flash. But Flash CS3 didnt prove too difficult given the fact that I never had to use much of drawing and keyframing tools present in flash and had to use only the actionscript features.
I started off testing the feasibiity with just a small ball as an avatar whose position can be moved through the keyboard arrows. The position of this ball was broadcasted using raw XML sockets to a PHP based server listening on port 8080. And every flash client connected to this PHP server received the coordinates of this ball. After doing a real run on NITK network, the concept proved successful. After this, I went on download some human characters for Poser 5 and exported frames which show the human characters to be walking. The simplicity of Poser in working with human models proved to be a blessing as I had the still frames oif the animation ready within a few days. Then these frames were imported onto Flash and separate swf files which showed the human model to be walking were kept separately and then imported onto the main flash movie and placed in front of the 3D background map.
After this, multiple human characters and multiple 3D background were done using the same method and all integrated into the main movie using some actionscript and the final movie was ready. A quick demo to some of my friends showed that the website would become an instant hit.
Along with the main flash site, I had to set up a way to add text content onto the website using a simple HTML admin page.
The final website was hosted on the local NITK student server and a WAN port 80 was mapped to LAN port 8080 on the local server so that no firewall can intrude in the communication between the client and the server. The final result was a major success and was one of the best websites made for a cultural fest in India.

Some stats :

15000 visitors out of which 10000 are absolute unique visitors, 22000 pageviews, 15 GB data transferred, 800 event registrations on the website

Later on , some additional features were integrated into the site like :

  • ALICE chat bot to give standard replies to questions asked during chat
  • Integration of phpbb login with the flash website so that user logged in on phpbb forum is logged in the flash site also
  • Integration of google SMS channels to send out bulk SMS, moderation of chat messages using Google talk
  • Some interesting things in the backend : (which you probably wouldnt know even if you used the website)
    The chat avatar character was assigned based on the IP. If the IP address was in the range for girls hostel , a female character was assigned, If it was from the boys hostel block, a male character was given. Otherwise it was totally random.
    The ALICE chat bot was trained to answer hundreds of questions like “What is Incident”, “When is Incident” etc and would respond to commands like shut up, keep quiet etc. It would also detect when someone would try to use abusive words and then ask them to kindly restrain from repeating it.
    Someone or the other person would always stay online to moderate the chat messages being broadcast and ban users who spread hatred on the group chat.
    To aid in modelling the 3D maps, I had to go around the campus clicking photographs on my phone from different angles for different buildings and then model them on sketchup. There were plans to model every building , but the plan never worked out due to lack of time.

    Some technical details :
    The flash client in the browser connects to the PHP based socket server running on port 80 on the NITK student server and communicates using raw XML sockets. The PHP server separated the users into different rooms(based on the map chosen) and forwarded the messages in realtime.  Running it on port 80 ensured that firewall intrusion was minimal. A chat bot (based on ALICE chat bot) was integrated into the map. Moderators could see the activity of any room by adding a jabber user ([email protected]) to their google talk list. The text content on the website was managed using a simple CMS like page.

    Click to view the demo of my work
    VN:F [1.9.22_1171]
    Rating: 8.8/10 (16 votes cast)

    (to be done)

    Incoming search terms:

    How to display your accurate google latitude location address with the public badge map in your blog

    Google latitude is a great way to share your current GPS location with everyone. You can put up the google location badge on your blog and let the world know your exact geographical location.
    But the latitude badge does not provide the exact address of your current location in terms of the area names but shows the exact location on the map. Google latitude badge shows only city level address along with the map. So I decided to write my own small PHP script to print out the exact address instead of an approximate one which is shown by default. You could use this code coupled with XMPP integration to show it as you google talk status message (a tutorial and script for this..sometime later)

    Basically, instead of displaying “<City name>,<country>”,  this script will display “<Road name>, <areaname>,<cityname>,<country>”
    Continue reading “How to display your accurate google latitude location address with the public badge map in your blog” »

    Incoming search terms:

    My Current Location

    Update as of 17 June 2011 : I have changed my phone from Nokia E71 to iPhone 4 and I found a better way to display my location. In Nokia Symbian Phones, the Google maps app itself included a feature to auto update in the background, but the battery drain was considerably high . Also , whenever I reboot my phone, I forget to enable tracking after bootup. Now in iPhone 4 in addition to the google latitude app, you could use Apple’s implementation of mobileme.com find my iphone tracking service right from iOS. I found this really cool script sometime back called playnice (PHP script run as a cronjob). This script will manually initiate a mobileme.com “find my iphone” request which will fetch my iphone’s current location instantly and use the data to update my google latitude location. This way, the battery drain is negligible because there is no background app running on my phone tracking my location, instead … my server initiates a location update request at a frequency which I specify and this request reaches my iPhone more or less consuming data as much as a PUSH notification only . This way I am always getting tracked even if I reboot my phone and there is no need of any app to be running in the background. Also there is no location history in mobileme.com, but with playnice, my server maintains a complete geo co-ordinates history in a text file, which will help me better track my phone , in case it gets lost.

    My location data is automatically fetched using Google Latitude Location API. The Google maps app on my phone broadcasts my location automatically and thus you can see my current location on this page

    The iframe displayed below uses google location API to fetch the address of my current location. You should head on to this post to read a tutorial on adding this to your own blog.



    The mapme.at widget here shows all the locations I have visited in the last 1 week and can pull the data from both Google latitude and Foursquare servers. Pretty cool widget if you switch between foursquare and google latitude/maps on your phone very frequently.

    Incoming search terms:

    Flash iPhone widget (with sourcecode) for subscribing to Google SMS channels

    This widget will enable your site visitors to subscribe to you google sms channel just by entering their mobile number. An invite is sent to their mobile phone automatically.

    Please wait till the widget loads

    Get Adobe Flash player

    The php curl script will automate a user login to google sms channel Continue reading “Flash iPhone widget (with sourcecode) for subscribing to Google SMS channels” »

    Incoming search terms: