News

Posted

Thu Feb 23 2012, 5:05am

By caseorganic

Categories

News

Tagged

Geoloqi Launches Powerful Next-Generation Location-Based Service Platform

Enterprise and Developers Can Now Create Real Time Applications and Services That Meet the Growing Demands of the Mobile Workforce and Consumer

Geoloqi Location-Based Mobility Platform

PORTLAND, OR – February 23, 2012 – Geoloqi, a powerful platform for next-generation location based services, officially launches today along with its language agnostic SDK for iOS and Android, and proprietary API. Geoloqi offers a complete stack of geolocation tools, including geo-fencing, messaging, security and analytics, that empowers the enterprise, government and developers to unlock the full potential of real-time location-based services and easily layer geolocation onto any device or application.

The Geoloqi platform disrupts first generation location services by offering a complete, cross-platform, language, device and carrier agnostic platform for enterprise applications and IP-connected devices. A contextually aware solution, it enables persistent background location tracking, intelligent battery management, and transitions smoothly between location sources such as carrier signals, GPS and Wifi for true real-time tracking. Additionally, Geoloqi provides rich location and dwell-time analytics, giving customers the ability to analyze and take action on location data for the first time. The platform also provides sophisticated security settings with easy opt-in and opt-out features to ensure safety and privacy practices are automatically updated at any time. Enterprises and developers can now easily create solutions for the mobile workforce and consumers with improved productivity, functionality, and logistics for any wireless climate.

An upwards of 50 billion connected devices will be on the market by the year 2020 according to Ericsson, including wireless phones, cars, home appliances, GPS devices, cameras, and myriad other devices for businesses, government and consumers. According to Pyramid Research, the location-based services market is expected to grow to $10 billion by 2015. ABI Research has also projected location analytics to also grow significantly, and estimates it will become a $9 billion market by 2016. The market for next-generation location has barely been tapped.

A Closer Look at the Next-Generation Location Platform: Geoloqi

Below is an in-depth list of the complete features and functionality that Geoloqi’s platform provides via its SDK and server-based solution.

Device/ Language/ Carrier Agnostic:

Geoloqi offers a language agnostic, cross platform SDK with native support for iOS and Android, and is fully portable to Windows and embedded systems. The platform enables customers to easily add location to any device, on any platform, and deliver it through any carrier or system around the world.

Geofencing/ Battery Safe Trigger Zones:

The Geoloqi SDK enables accurate, customizable geofencing, auto-check ins, and automatically manages a device’s battery life while using location, so users can run the app all day without significant battery drain.
Battery-Managed Geofencing from Geoloqi

Hosted Spatial Storage:

Spatial storage allows you to create and store places, messages, and geofences. Create private places, quickly import datasets, search for nearby places and automatically sync relevant data to users. Geoloqi is optimized for use with real-time applications and battery-safe operations.
Location-Based Storage, Context, Points of Interest

Rich dwell-time and location-based analytics:

Geoloqi provides deep, real-time analytics on users and their location data and history and allows customers to create custom reports. It provides rich analytics and visualizations for tracking users, geofences and message conversions, place dwell time, visitor metrics, and more.
Location-Based Analytics for Mobile

Real-Time Location Tracking:

Geoloqi makes it simple to implement full-featured, real-time tracking in and out of doors, with minimal time and effort. Geoloqi offers SDKs for iOS, Android, Javascript, Ruby, PHP and more.
Real-Time Location-Based Tracking

Location-Based Messaging:

Push messages to end users upon arriving, dwelling or leaving a place, as well as based off of time or day or a user’s speed. Messaging works with any carrier and enables notifications for iOS and Android, SMS and Email for all devices.
Location-Based Messaging for Mobile Devices

The Market to Date

To date, there has been an obvious disconnect between what developers, carriers and enterprise companies can offer business-to-business and business-to-consumer mobile products and services. Current location technologies have been pieced together by small vendors with limited functionality or built by in-house teams that do not have core location competency, making it challenging to develop reliable location-based applications and services. Very few companies have been able to take advantage of the possibilities that an advanced geolocation platform can offer. Today, Geoloqi can power truly mobile businesses, products and services with its next-generation location platform. Geoloqi solves all of the pending issues with first generation products like carrier dependence, privacy, development time, battery drain, and language silos.

Executive & Customer Quotes

“There’s no denying that we now live in an increasingly mobile world. Geolocation has the potential to become an indispensable part of our lives,” said Amber Case, CEO and founder of Geoloqi. “But in order for geolocation to be a valuable service to end users, the technology needs to be invisible yet opted into, private, and secure. There are incredible business opportunities and mobile advancements in markets like retail, security, healthcare, government, to a name a few. We’re inspired by the kinds of applications and services our customers are creating with Geoloqi and to be part of the tools that drive mobile innovation forward.”

“With Geoloqi, we’re able to track our personnel in real-time, anywhere in the world, on any device, ultimately saving lives in the process,” said David Ayres, of TATE, Inc. “For example, men and women working or traveling in high-risk areas will receive an emergency alert if they enter a dangerous area of a city or town. Geoloqi has taken safe geolocation to the next level.”

Going to SXSW Interactive?

SXSW Interactive 2012 - Amber Case KeynoteFounder and CEO Amber Case will be a keynote speaker at SXSW Interactive in March, where she’ll take the stage to discuss more implications of next generation geolocation, and have some exciting giveaways. To learn more about Geoloqi and unleash the power of location today, visit www.geoloqi.com.

About Geoloqi

Geoloqi is a powerful platform for real-time location based services, and makes it simple for enterprise partners, OEMs and mobile developers to quickly add rich geolocation functionality to apps and devices. It provides a complete, real-time toolkit for tracking, messaging, battery management, geofencing, storage and actionable analytics, with a language agnostic SDK and proprietary API. Founded in 2010, Geoloqi is based in Portland, OR and backed by Portland Seed Fund and TIE. For more information on Geoloqi, please visit www.geoloqi.com or follow @geoloqi on Twitter.

Media Contact
Vanessa Camones & Jennifer Lankford
theMIX agency for Geoloqi
[email protected]

Building a Real-Time Location-Based Urban Geofencing Game with Socket.io, Redis, Node.js and Sinatra Synchrony

How we planned, built and tested a truly real-time location-based game with Socket.io, Redis, Node.js, and what we learned along the way.

MapAttack Gameboard on an IPhone 4
Over the past few months, we spent the majority our free time building a real-time game as a test for our location platform, Geoloqi. We built the first prototype of the game at a hackathon over the course of two grueling days. It’s also where Aaron and I met Kyle Drake, who is now part of the Geoloqi team.

We called the game MapAttack! due to its map-based nature. Two teams compete to capture the most points on the gameboard. The gameboard, in this case, is the city streets of the neighborhood the players are in.

MapAttack is a game based on capturing and conquering geofences. For the uninitiated, a geofence is a virtual perimeter for a real-world geographic area. Geofencing is used with GPS tracking devices, notifying a control station when a person or vehicles enters or leaves an area. Traditionally, geofences have been used in heavy industry for tracking fleets of trucks and other moving objects over time.

Instead of tracking trucks, we set each geofence up with a point value that would give players points for entering geofences. The idea was that a virtual map would be set up on top of the real world, and players on red and blue teams would try to capture all of the geofence points in the game before the other team. To capture a point, the phone would have to detect when the player entered the fence, determine the point value of the fence, notify the player that he received the point, turn the geofence the color of the team, and then add the point to the player score and the overall team score.

MapAttack Test Game at the Portland Park Blocks

Why Build a Real-Time Geofencing Game?

The purpose of MapAttack was three-fold. First, we wanted to create a game that allowed people to physically interact with the real world instead of a computer console like a first person shooter or a real-time strategy game. Second, we were inspired by playing a real-life version of Pac-Man called Pacmanhattan, invented by graduate students at the Interactive Telecommunications Program at NYU in 2004. We played it at Portland’s WhereCamp conference in 2008, and we wanted to see if we could make a GPS version of the game, as Pacmanhattan relied entirely on phone calls and physical maps. Finally, we were building the Geoloqi platform at the time and needed a good demo of our streaming socket API.

An Iterative Approach

Taking a game from a static map to real-time, where all of the players could see each other moving on the phone and on the browser was an enormous challenge. In the beginning, the game was full of errors and bugs and required a lot of setup time.

When we tested the game with real players, the web browser tracking player movement was lagging behind the game 10-15 seconds depending on network speed. In addition, all of the players’ phones also had to poll to get updates, which means players would see a delay of 10-15 seconds even for their own position on the map. To make matters worse, some of the slower phones were basically choking on making that many network requests.

We knew that there was a better way to build the game, and that we could make it actually work in real-time. We knew that it wouldn’t be a 16 hour task, but one that was a pretty solid undertaking. We were up to the challenge and began working on it on evenings and weekends for the next few months.

Building a More Advanced PacManhattan

Kyle Drake and Aaron Parecki Working on an Early Iteration of MapAttack!Unlike a real-time GPS-based game played on smartphones, PacManhattan relied on players making phone calls to remote operators updating their location on a physical map and then relaying the newest game state back to them.

Our challenge was whether a game similar to PacManhattan could be run entirely automatically through GPS updates from the phones. When we began thinking about this idea, GPS wasn’t readily available in most smartphones. We had to wait almost 3 years for the technology to exist.

Testing the Game

Playing MapAttack! on the StreetWe tested the game with friends at conferences and around Portland along the way. Each time the experience was better, but it wasn’t good enough yet. Although we were making progress, we still didn’t have a real-time experience, and that was what we were aiming for.

When we brought the game down to Stanford University it was functional but still lagging behind. There was still a lot of work to be done.

This post is about the technical challenges we ran into during game development. While we had gained a lot of experience with location-based technologies from working on the Geoloqi app and platform for the last year, MapAttack! posed new challenges we had to overcome.

In early September 2011, we had our final test of the game and we finally achieved our goals of a truly real-time game. It took a lot to get there, and we’d like to share it with you.

Technical Challenges

Map Attack Loading Errors on iPhoneHere is an overview of the problems we had to focus on in order to build the game.

  • Handling the detection of users entering and leaving 200+ geofences concurrently.
  • Handling the volume of location-updates from all the phones in a given game (20 or more users per game).
  • The gameboard itself. We made our own in-house game editor that allowed us to quickly draw geofences on the map and assign them point values. Before we made the game editor, we had to hand code latitude and longitude markers into the database. It was extremely tedious and inefficient.
  • Changing the geofence state based on player movements.
  • Allowing each phone and web browser watching the game to be able to see the movements of players and the geofences changing color in real time. Every phone in the game sends its location to the server, which broadcasts that data to every other phone and browser watching the game.
  • Handling errors and differences in GPS technology on different smart phone models in order to ensure a fair gameplay experience. See below for a comparison of GPS data tracking on an iPhone 3GS vs. an iPhone 4.

Differences in GPS Hardware

GPS signals are known for reflecting off of tall buildings in urban settings. This causes inaccuracy and inconsistency in location data. It is less-pronounced in newer phones, but it greatly shows in older ones.

GPS Comparison in iPhone 3GS vs. 4
Users with 3GS iPhones would miss more points than players with iPhone 4s. Solving that problem required finding urban settings with buildings less than 5 stories high in which to draw the gameboard.

Pre-Streaming API

Before we finished the Geoloqi streaming API and before we started using Node.js and Socket.io, everything was based on polling for new updates. Phones reported their location at 5 second intervals and the browsers would update the game board in 5 second intervals.

Before the streaming API, every time we wanted to get location data from the phones to the server, the process consisted of opening a new connection, sending a bunch of redundant information headers in the request, and then closing the connection. This had to be done in the same way again and again, every five seconds for every phone for the entirety of the game. This resulted in a ton of redundant information and protocol overhead and resulted in a great drain on battery life of the phones as well.

In the worst case scenario, the browsers were lagging behind the game 10-15 seconds depending on network speed. What was worse was that the phones also had to poll to get updates, which means players would see a delay of 10-15 seconds even for their own position on the map. And some of the slower phones were basically choking on making that many network requests.

MapAttack Server and Phone Architecture Diagram

Enter Socket.io, Node.js, Redis, and Sinatra Synchrony

Socket.io

Socket IO: the cross-browser WebSocket for realtime appsSocket.io is a cross-browser web socket implementation allowing us to do real-time data updates on the browser and also supports older browsers. We can use the latest technology without requiring all of our users to update to the newest browsers, thanks to Socket.io falling back to older technologies in older browsers. This allow us to do instant updates across browsers and the phones in the game.

Node.js

Node JS Node.js is Evented I/O for V8 Google’s Javascript implementation for Chrome, implemented with a reactor pattern, that enables for large amounts of asynchronous data traffic.

We use a Node.js server to stream the location data from the phones to the Redis pub/sub channel. It publishes to Redis, and another Node server subscribes to that redis channel. Our Node.js server receives updates from the phones using a custom protocol similar to Google’s Protocol Buffers, which is essentially a very compact binary JSON.

When a browser wants to start streaming data, it connects to the Socket.io server and that server then subscribes to the Redis pub/sub channel. The Socket.io server sends that data via Websockets to the browser, falling back to Flash or long-polling if Websockets is not available.

In essence, Socket.io allows us to use Websockets, which are completely new, but also allows this to work on older browsers thanks to the fallback tricks.

Redis

Redis: an open source, advanced key-value store. Redis is an open source, advanced key-value store that has support for message queues using something called publish/subscribe, or pub/sub (not to be confused with PubSubHubbub).

From the higher level what this lets us do is handle the difficulty of sending data to all of the phones in the game and the browser in real-time. Every phone in the game sends its location to the server, which broadcasts that data to every other phone and browser watching the game.

One of the interesting things about the publish/subscribe system is that with a traditional system you have to maintain connections and iterate through each in order to pass data through them. The alternative would be that if you had 10,000 users you’d have to iterate through an array of 10,000 connections, which would be very slow and prone to locking up on socket problems.

Pubsub Action

Using Redis pub/sub is like starting a radio station. Once it is turned on, people (in this case, browsers) can just listen in. This allows us to do real-time data updates to clients (browsers and phones) at a massive scale.

Sinatra Synchrony

Sinatra Synchrony for Ruby by Kyle DrakeSinatra::Synchrony is a small extension for Sinatra that dramatically improves the concurrency of Sinatra web applications. Powered by EventMachine and EM-Synchrony, it increases the number of clients your application can serve per process when you have a lot of traffic and slow IO calls (like HTTP calls to external APIs). Because it uses Fibers internally to handle blocking IO, no callback gymnastics are required! This means we can just develop as if we were writing a normal Sinatra web application.

Sinatra::Synchrony allows us to do asynchronous programming (ala Node.js), except that it wraps the callbacks in Fibers (which are basically co-routines in Ruby). This allows you to do synchronous programming while taking advantage of asynchronous code. Aside from being easier to program this way, it also allows us to switch to a different concurrency/parallelism strategy if we need to. Kyle Drake developed Sinatra Synchrony specifically for MapAttack. Drake’s work became popular after he made a presentation on Sinatra::Synchrony at PDX Ruby.

The MapAttack Game Server

Finally, there is the MapAttack Game Server. In this case the Game Server is a simple database that takes care of storing the player point data that is displayed on the map and on the phones as players grab points in real-time.

International Testing

MapAttack! International Game Test in Sweden
We felt good enough about the game last week to take it on its first international test in Sweden. It passed with flying colors, although there were issues with not having enough time during the coffee break to finish the game.

Augmented Event and MapAttack in Sweden
Thanks to Michaela of Augmented Event Sweden who helped us run the game remotely, and Sony Ericsson who donated 10 Android phones for players to use for the game. We learned that the game runs better as part of a conference session or longer break time session. While the technology is solid, we’re still learning about the human element of the game. It takes about 10 minutes to download and get into groups before heading out the door to grab points at the same time. The game isn’t as fun when there’s only 20 minutes available to both set up and play it!

What We Learned

We learned that, while difficult, it is completely possible to create a truly real-time gaming experience with geofences and location-based technology. We didn’t know if it was possible when we started, and didn’t think too much as to how difficult it might be.
MapAttack Game at Stanford University
The whole thing was a very iterative process fueled by feedback and help and struggles, but also this lingering feeling that we were doing something that was important in some way. We keep going because playing the game felt awesome and exciting. It felt almost like being a kid again. We knew that as long as we had fun playing the game, we knew we were moving in the right direction.

Source Code

We made the source code for MapAttack available for download. You can download or fork the source code for MapAttack here. If you build anything interesting with it, please let us know!

Upcoming Games

We’ll be bringing MapAttack! to WhereCamp Portland on October 7-9, 2011. We’ll give an overview of the technology there as well. If you plan to be in the area, please join us!

Host Your Own Game

Get in touch if you’d like to host your own game. We’re working on making the game freely accessible to more than just us, and if you’re interested it will likely motivate us to work on that aspect of the technology.

Feedback

Have you tried to make your own real-time location-based game? If so, how did it go? What did you struggle with? What did you learn? I’d love to hear your thoughts. We have a great respect for game makers, as what looks like something very simple is often very difficult and invisible under the surface.

Cheers, and thanks for reading! You can follow @geoloqi on Twitter, or contact us at @playmapattack or http://mapattack.org if you’d like to schedule a game!

Posted

Wed Aug 31 2011, 2:14pm

By caseorganic

Categories

News

Tagged

Norway’s Hyper Interaktiv Uses Geoloqi for iPhone to Track Balloon Flight 17 km in the Air!

Hyper Interaktiv Team Preparing Balloon Launch

When we heard from Hyper Interaktiv’s Atle Mo (@atlemo) that he had tracked a balloon with Geoloqi and wanted to export the data to Google Earth, Geoloqi co-founder Aaron Parecki whipped a quick KML export feature for the team.

The team was able to track the Balloon’s flight from the ground on the Geoloqi website and were able to use the trail to find the after it came back down to Earth. They also generated a bunch of images of the balloon’s flight using the Geoloqi data.

The Hyper Interactive team launched a high-altitude balloon on August 25th from Oslo, Norway at the Hyper.no office. The balloon was launched in celebration of Hyper’s 10th anniversary. The balloon went up to 17 kilometers in the air before exploding and then floating down to Earth to land in a tree.

Tracking the Balloon with Geoloqi

Balloon's Flight Path as Recorded by Geoloqi

The team used an iPhone 4 with Geoloqi to track the flight and a Hero GoPro HD camera to videotape the flight.

The highest altitude reached was 17,97 km and the travel distance was around 120 km. The team used the Geoloqi website to track the balloon once it touched down!

Google Earth View

Balloon's Flight Path in Google Earth
Atle Mo used Geoloqi’s KML export to view the flight data in Google Earth.

Video of the Flight:

Their video shows the full flight of the balloon. You can see it rise up to 17 km before slowly falling and landing in a tree.

Norwegian publication Dagbladet.no also covered the story if you’d like to learn more about the flight and the team! Also check out Hyper Interaktiv!

Posted

Mon Jul 18 2011, 3:15pm

By caseorganic

Categories

API
News

Geoloqi Developer Site is Live!

We just released a developer site for the Geoloqi API, allowing you to create powerful location-based applications on the Geoloqi Platform. The platform is free for development, and you pay for only the API calls that are used in production. If you’d like to use Geoloqi for larger purposes, feel free to contact us.

Geoloqi Developer Site

Why use the Geoloqi platform? It’s ideal for development teams and entrepreneurs who want to build real-time location sharing or geofencing features into new or existing applications. You can can use the Geoloqi platform to monitor user locations and send messages based on activity, build location-aware applications that work on top of popular APIs such as Foursquare, Twitter and Facebook, and send messages to users when they are near a location at a certain time of day, or are travelling at a certain speed.

The platform includes a Geofencing API, location tracking API and a location-based messaging system. Full documentation and an API console are available on the developer site at https://developers.geoloqi.com/

About Geoloqi

Geoloqi is a private, real-time mobile and web platform for securely sharing location data, with features such as alerts based on proximity, and sharing real-time GPS maps with friends. The platform enables users to share real-time location information, allowing them to communicate where they have been, where they are, and where they will be. The Geoloqi platform makes it easy for companies to build powerful location-based applications. Geoloqi closed $350,000 in seed investment to build a platform and applications for location-aware applications this July.

Posted

Mon May 16 2011, 10:10am

By caseorganic

Categories

News

Tagged

Geoloqi-powered flashmob game takes grand prize at Amped Hackathon in Seattle!

This weekend a Geoloqi-powered flashmob game won the Amped Hack Day competition in Seattle, Washington. The competition was put on as an appendix to Seattle’s WebDirections conference.


WeFigured is a RealTime geo location based team game with a twist on Social Rewards. Sponsors create patterns with spots that need to be filled. Once users fill the spots, they get rewarded!

Why Should you go figure?

Players

  • Make visiting places fun.
  • Discover new venues, bars, restaurants, museums and more.
  • Get Rewarded to go out.
  • Have a cause ? Create a custom pattern and get people to fill the spots

Sponsors

  • Get discovered
  • Promote your venue and event
  • Join the revolution – help people express themselves as patterns on the map
  • Offer exclusive deals

Each team member won a Bluetooth headset and a Motorola smartphone (useful for development). The entire app was built in a few hours, and the presentation included a live demo of the end of the game.

The app was built by Aaron Parecki, Gaurav Maken, Alex Kamotsky and Kirill Zubovsky. Zubovsky has a longer post on the hackathon experience here.