Author Photo
By +Scott Knaster, Google Developers Blog Editor

This week we launched Street View images showing what it’s like inside (and outside) the Burj Khalifa in Dubai. We love taking Street View places it’s never been, and now we’ve added two firsts: the first collection in the Arab World, and the first one to feature a skyscraper.

As if it’s not enough to visit the 163rd floor of the world’s tallest building, or ride an elevator traveling at 22 mph, we thought it would be fun to send our Street View camera outside the 73rd floor in a maintenance unit for a breathtaking view of the surrounding cityscape. So don’t miss that view, as long as you’re OK with heights.

We go from high above the Earth to under the sea for news of the world’s first robot carp. A team of scientists in Singapore studied these freshwater fish and designed an autonomous underwater exploration vehicle. They plan to use this robofish to study tight spaces in underwater places, such as pipelines or the lost city of Atlantis. The researchers used cameras to record carp doing their thing, then created a mathematical model of carp movements to trigger actuators in their robot.

Finally, let’s journey beyond even the Burj Khalifa, out into (pretend) space, where the Galileo Shuttlecraft served Captain Kirk and the crew of the U. S. S. Enterprise in the original Star Trek universe. This prop was originally considered too expensive for the production company to build, so Federation personnel had to make their way to and from planets by transporter instead. But the craft was eventually built and appeared midway through the first season, in 1967 (or stardate 2821.5, if you prefer). In the years since then, the ship has deteriorated. But now Star Trek fans and a shipwright are restoring the Galileo to its original glory, to be enjoyed by fans everywhere. Magnifico!

Whether on the surface of the Earth, way down below the ocean, or in space, Fridaygram is always your ticket to fun nerdy stuff. Speaking of space (and Star Trek), it looks like Voyager 1 has still not left the solar system, although it has entered a previously unknown area, far out there. This weekend, go and explore something new on your own!

Author PhotoBy Chukwuemeka Afigbo, Outreach Program Manager, Sub-Saharan Africa

Cross-posted from the Google Africa Blog

Developers play a crucial role in making the Internet relevant for Africans. This is why fostering a vibrant African developer ecosystem is very important to Google. Developers and tech entrepreneurs from across the continent joined thousands of their peers from all over the world to explore the latest tech innovations at Google I/O 2013 in San Francisco. Several of them were members of the Google Developer Groups in countries such as Algeria, Burkina Faso, Egypt, Kenya, Republic of Congo, Togo and Uganda.

Hassan Nsubuga, Lead for GDG Mbale,Uganda with Google SVP Vic Gundotra at Google I/O

Luckily, participation was not limited to those who could make it to San Francisco’s Moscone Center. Developers back home were also able to get in on the action with more than 67 I/O Extended parties hosted by Google Developer Groups and Google Student Ambassadors across the continent where talks were streamed live to an excited audience.

Away from the excitement of I/O ‘13, it has been a busy year for many African developers and tech startups. We added six new apps to our African case studies page:

  • Maji Dashboards and Virtual Kenya from Upande: websites that utilize the power of Google’s Geo tools to make information about Kenya readily accessible for better decision making, development planning, and education.
  • ReadyCash from Parkway Projects: a home grown mobile money service from Nigeria with an app that leverages the power of the Android platform to integrate a unique QR code based payment system.
  • Matatu is an Android version of a local card game from Uganda.
  • ASiM, developed by Olivine Technology, is a real time inventory management solution with an Android client and App Engine backend.
  • Asa: an Android tablet app by Nigeria’s Genii Games that brings the magic of African folktales to children of all ages.
Asa (African Folktales)


Remember AfriNolly – winner of 2011 Android developer competition? The app by Fans Connect Online now has over 2 million downloads across several platforms, with a new Android version support for 11 languages launched in May 2013. The Fans Connect Online team also ran a contest for African short films and created a radio show focused on the African film industry.

Keep an eye on our case studies page to follow the exploits of these and many more developers in Africa, as they continue to innovate with Google APIs and platforms.

Do you feel your app should be featured here? Let us know!

+Chukwuemeka Afigbo is a Program Manager in the Sub-Saharan Africa Outreach Team. He is passionate about making the internet more relevant to Africans. He is also an avid football (soccer) fan.

Posted by +Scott Knaster, Editor

Author Photo
By Fred Sauer, Developer Advocate

Cross-posted from the Google Cloud Platform Blog

On the Google Cloud Platform team we're always looking for ways to make developers' lives easier, so you can focus on building interesting applications instead of worrying about managing infrastructure.

We also want you to be as productive as possible when you're busy writing code. We provide an SDK which offers access to production APIs, in a way that's compatible with a local development environment.

But sometimes you just want to dip your toes in the water, and the prospect of setting up a local development environment seems daunting. What if you just want to try out some sample code? What if you want to see how the actual production APIs will behave? What if you could share a code snippet with a colleague and your entire environment came along for the ride? What if there was a playground where you could try out APIs, all from within your web browser?

We asked ourselves these same questions and decided to try an experiment: we created a Cloud Playground, a place for you to quickly test production APIs you're interested in using. Note: the Cloud Playground is currently limited to Python 2.7 App Engine apps.

To get you started, we added little green buttons to our getting started documentation, which take you straight to the Cloud Playground where you can edit and run the guestbook sample code as it appears in the documentation.

In addition, the main Cloud Playground page offers easy access to many more samples. There's even an option to clone other open source App Engine Python 2.7 template projects from Github.

How does it work? The Cloud Playground is itself an open source project and consists of two modules:
  • mimic is a regular Python App Engine app, which serves as a development server (similar to the App Engine SDK "dev_appserver"), but which runs in the production App Engine environment, providing you access to the production APIs and environment while still offering a quick and easy way to test out bits of code.
  • bliss is a trivial browser-based code editor which lets you edit code in the mimic virtual file system (backed by the App Engine datastore), providing you with a user interface so you can see what the mimic app can do for you.
We previously blogged about DevTable which also uses mimic to speed up refresh cycles for their App Engine developers.

We look forward to seeing what you're able to build.

Fred Sauer is a Developer Advocate for the Google Cloud Platform and long-standing member of the Google App Engine team. Fred hacks in a number of open source projects for fun and maintains a particular interest in game and web development.

Posted by Scott Knaster, Editor

Author Photo
By Scott Knaster, Google Developers Blog Editor

This week we announced Project Loon, a cool and kind of crazy project that launches Internet-connected balloons and shares their connection with people below on Earth. These are not your typical birthday balloons: they’re 15 meters wide, and they rise to an altitude of 20 km, where winds carry them around the world. Software computes where the balloons should go to provide the best network coverage, and the balloons are then steered and moved as necessary.

Sailing along in the stratosphere is an essential aspect of Project Loon. The stratosphere is far above general air traffic and weather, so Loon balloons don’t have to worry about that. On the other hand, the environment is not friendly, with thin atmosphere and -50°C temperatures. But because the balloons are designed for these conditions, they can survive happily.

Moving further away from Earth, all the way to deep space, astronomers have found 26 new black holes right here in the neighborhood, in the Andromeda galaxy next door. Scientists using the Chandra X-Ray Observatory detected the black holes by observing telltale bursts of X-rays as the black holes ingested the outer atmosphere of ordinary stars. And this is just the start: there are likely thousands more black holes in Andromeda. So if Internet balloons ever make to Andromeda, we now know some places to avoid.

Finally, if you’re looking for something fun to do this weekend, you can spend time with a trio of nifty Chrome Experiment games released over the past couple of weeks: Roll It is a classic boardwalk game with the modern twist of using your mobile device as a controller, Racer builds a race track and soundtrack from several mobile devices put together, and Cube Slam lets you play an old-school arcade game over the Internet with friends (and if you have no friends, you can play against a virtual bear). Have fun!

From distant galaxies to ursine videogame opponents, Fridaygram rolls wide and deep. We cover fun stuff that isn’t always directly related to writing code, just in case you need an end-of-week break. If you’re having too much fun with our trio of games and you want to learn something instead, you can read about how we built each of them: Roll It, Racer, Cube Slam.

Author PhotoBy Ashleigh Rentz, Developer Programs team

Since 2006, we’ve believed in freely licensing our developer documentation. We believe this is best for all of us, both Google and the developer community. We most often rely on the Creative Commons Attribution 3.0 license for documentation and the Apache 2.0 license for code samples.

The freedom to reuse code samples encourages the wider adoption of our APIs and spares you from having to reinvent the wheel when you begin using our products. The freedom to create derivative works from our documentation is beneficial to book authors, bloggers, and even non-English speakers when members of the developer community translate our docs into additional languages. It’s a winning situation for all of us!

During the intervening years, however, some docs were not explicitly licensed in this manner. We wanted to bring them in line with this practice, so we embarked on a review of all our documentation on this week and made sure they all have a footer displaying the license they’re subject to. The vast majority of our docs are now available under liberal terms that we hope will spur new innovation in the community. In the rare cases where a doc isn’t being freely licensed for some reason, we now clearly display “All rights reserved” so you aren’t left wondering. We’ve also tweaked our internal process for publishing new documentation so that pages yet to be written will display a license footer when they’re released. Here’s to the sharing of knowledge!

Ashleigh Rentz supports the team of technical writers who tirelessly document Google’s developer products. She can often be seen skating down the hallways between meetings.

Posted by Scott Knaster, Editor


By Dan Rubel, Productivity Enhancer, Dart Editor team

Cross-posted from the Chromium Blog

Today's release of the Dart SDK and Editor is the first beta release, and contains performance and productivity improvements across the platform. This latest release helps Dart developers automate code evolution, produce smaller JavaScript code and deploy Dart web apps.

The Editor's analysis engine, responsible for reporting warnings and errors, is completely rewritten and is 20% faster at parsing and analyzing. Now, there’s no need to run all the unit tests just to discover a typo. The Dart Editor watches your back as you type.

In addition, Dart Editor makes it easier for developers to manage an evolving app. Some of the new features include:

  • "Rename Library" refactoring
  • "Convert Method to Getter" and "Convert Getter to Method" refactorings
  • "Import Library" quick fix
  • "Create Class" and "Create part" quick fixes

Code completion has also improved. For example, completion is now camelcase aware. Type iE and Dart Editor finds isEmpty.

Compiling Dart to JavaScript now results in smaller code. For example, some Dart programs that use reflection and HTML can compile to JavaScript that is 3.7x smaller than previous compilation sizes.

Dart VM performance has also improved. Compared against the previous release of Dart, DeltaBlue is 33% faster and Tracer is 40% faster. This release also includes full SIMD acceleration in Dart VM.

Finally, deploying a Dart web app is now easier, with the beta pub deploy command. It creates a directory with your app's code and assets and prepares it for hosting on your favorite web server. You can use this command from Dart Editor or the pub command-line utility.

That's just the highlights - there are more improvements across the platform. You can read the full release notes for more details and changes. You can download the latest version of Dart Editor, including everything you need for Dart development, from We look forward to your feedback!

Written by Dan Rubel, Dart Editor Team

Posted by Scott Knaster, Editor

Author Photo
By Louis Gray, Program Manager, Google Developers Live

One year ago, we took the magic of Google I/O and brought it home with Google Developers Live (+GDL)  - engaging with our developer community all year round, live, from our offices around the world. Nearly 1,000 videos and several million views later, we’ve seen you connect with Googlers and industry experts every day, gaining knowledge, sharing insights, and getting feedback on how to create incredible apps and leverage Google’s tools.

Thanks to the combination of Google+ Hangouts and YouTube Live, you can now see our engineers face to face and gain up to the minute insights on +Android+Google Chrome+Google Cloud Platform, and many more.

But Google Developers Live is not just all Google products, all the time. It’s an interactive platform for innovative applications, design wizards and entrepreneurs. We’ve hosted initiatives like Women Techmakers, Google Top Geek from Mexico City, Android Design In Action and Root Access, and we hear directly from the minds behind applications many of us use every day.

It was on GDL where we saw Google Fellow +Sebastian Thrun introduce a new HTML5 course on Udacity. GDL debuted the Mirror API for +Project Glass. And it was on GDL where we first demonstrated YouTube API v3, went behind the scenes with Santa Tracker, and answered questions on the Blink rendering engine.

And when we returned to I/O last month, it was Google Developers Live with wall-to-wall broadcasts, featuring exceptional guests like Megan Smith of Google[x], Bradley Horowitz of Google+ and Hiroshi Lockheimer and Hugo Barra of Android.

While we love the live interaction, Google Developers Live is more than just live. Our archives make it easy for you to watch on your own schedule - in any order, on any product.

Although GDL is only a year old, we’re now broadcasting from Mountain View, New York, Sydney, Tokyo, Milan, Moscow, Buenos Aires, and many places around the world, to bring you the latest Google tools for developers in your time zone, in your language. And we’ve got a lot more planned. So make sure you don’t miss a show, by subscribing to Google Developers on YouTube and staying tuned to

+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by +Scott Knaster, Editor

Author Picture By Justin Uberti, Chromium team

Cross-posted with the Chromium Blog

Cube Slam is a Chrome Experiment built with WebRTC, an open web technology that lets you communicate in real-time in the browser (and in this case, play an old-school arcade game with your friends) without downloading and installing any plug-ins. In this post, we wanted to explain a bit about how Cube Slam works.

Cube Slam uses getUserMedia to access your webcam and microphone (with your permission, of course), RTCPeerConnection to stream your video to a friend, and RTCDataChannel to transfer the bits that keep the gameplay in sync. If you and your friend are behind firewalls, RTCPeerConnection uses a TURN relay server (hosted on Google Compute Engine) to make the connection. When there are no firewalls in the way, however, the entire game happens directly peer-to-peer, reducing latency for players and server costs for developers.

CubeSlame Game Over screen

Cube Slam is the first large-scale application to use RTCDataChannel, which provides an API similar to WebSocket, but sends the data over the RTCPeerConnection peer-to-peer link. RTCDataChannel sends data securely, and supports an "unreliable" mode for cases where you want high performance but don't care about every single packet making it across the network. In cases like games where low delay often matters more than perfect delivery, this ensures that a single stray packet doesn't slow down the whole app.

RTCDataChannel only supports unreliable mode in desktop Chrome today. We're working on implementing the latest WebRTC spec, where we'll use the standard SCTP protocol to support reliable mode. WebRTC will also be available on Chrome for Android later this year, and you can try it now by flipping “Enable WebRTC Android” in chrome://flags. Several browsers are currently working on implementing WebRTC, and we’re looking forward to the day when you can have a Cube Slam face-off against your friends on any browser and any device.

To learn more about the tech in Cube Slam, you can check out our technology page and source code. Disable the shields! Destroy the screen! Have fun!

Justin Uberti is one of the co-creators of the WebRTC initiative, and leads the WebRTC engineering team at Google. Previously, Justin helped create Google+ Hangouts.

Posted by Ashleigh Rentz, Editor Emerita

Author Picture By Pete LePage, Chromium team

Cross-posted with the Chromium Blog

You may have seen our recent demo of Racer at Google I/O, and wondered how it was made. So today we wanted to share some of the web technologies that made this Chrome Experiment “street-legal” in a couple of months. Racer was built to show what’s possible on today’s mobile devices using an entirely in-browser experience. The goal was to create a touch-enabled experience that plays out across multiple screens (and speakers). Because it was built for the web, it doesn’t matter if you have a phone or a tablet running Android or iOS, everyone can jump right in and play.
Racer required two things: speedy pings and a consistent experience across screens. We delivered our minimal 2D vector drawings to each device’s HTML5 Canvas using the Paper.js vector library. Paper.js can handle the path math for our custom race track shapes without getting lapped. To eke out all the frame rate possible on such a large array of devices we rendered the cars as image sprites on a DOM layer above the Canvas, while positioning and rotating them using CSS3’s transform: matrix().

Racer’s sound experience is shared across multiple devices using the Web Audio API (available in latest iOS and Android M28 beta). Each device plays one slice of Giorgio Moroder’s symphony of sound—requiring five devices at once to hear his full composition. A constant ping from the server helps synchronize all device speakers allowing them to bump to one solid beat. Not only is the soundtrack divided across devices, it also reacts to each driver’s movements in real time—the accelerating, coasting, careening, and colliding rebalances the presence of every instrument.

To sync your phones or tablets, we use WebSockets, which enables rapid two-way communication between devices via a central server. WebSocket technology is just the start of what multi-device apps of the future might use. We’re looking forward to when WebRTC data channels—the next generation of speedy Web communication—is supported in the stable channel of Chrome for mobile. Then we’ll be able to deliver experiences like Racer with even lower ping times and without bouncing messages via a central server. Racer’s backend was built on the Google Cloud Platform using the same structure and web tools as another recent Chrome Experiment, Roll It.

To get an even more detailed peek under the hood, we just published two new case studies on our HTML5 Rocks site. Our friends at Plan8 wrote one about the sound engineering and Active Theory wrote one about the front-end build. You can also join the team at Active Theory for a Google Developers Live event this Thursday, June 13, 2013 at 3pm GMT for an in depth discussion.

Pete LePage is a Developer Advocate on the Google Chrome team and helps developers create great web applications and mobile web experiences.

Posted by Ashleigh Rentz, Editor Emerita

Author Picture By Felipe Hoffa, Cloud Platform team

Google BigQuery is designed to make it easy to analyze large amounts of data quickly. Today we announced several updates that give BigQuery the ability to handle arbitrarily large result sets, use window functions for advanced analytics, and cache query results. You are also getting new UI features, larger interactive quotas, and a new convenient tiered pricing scheme. In this post we'll dig further into the technical details of these new features.

Large results

BigQuery is able to process terabytes of data, but until today BigQuery could only output up to 128 MB of compressed data per query. Many of you asked for more and from now on BigQuery will be able to output results as large as the largest tables our customers have ever had.
To get this benefit, you should enable the new "--allow_large_results" flag when issuing a query job, and specify a destination table. All results will be saved to the new specified table (or appended, if the table exists). In the updated web UI these options can be found under the new "Enable Options" menu.
With this feature, you can run big transformations on your tables, plus get big subsets of data to further analyze from the new table.

Analytic functions

BigQuery's power is in the ability to interactively run aggregate queries over terabytes of data, but sometimes counts and averages are not enough. That's why BigQuery also lets you calculate quantiles, variance and standard deviation, as well as other advanced functions.
To make BigQuery even more powerful, today we are adding support for window functions (also known as "analytical functions") for ranking, percentiles, and relative row navigation. These new functions give you different ways to rank results, explore distributions and percentiles, and traverse results without the need for a self join.
To introduce these functions with an advanced example, let's use the dataset we collected from the Data Sensing Lab at Google I/O. With the percentile_cont() function it's easy to get the median temperature over each room:
SELECT percentile_cont(0.5) OVER (PARTITION BY room ORDER BY data) AS median, room
FROM [io_sensor_data.moscone_io13]
WHERE sensortype='temperature'
In this example, each original data row shows the median temperature for each room. To visualize it better, it's a good idea to group all results by room with an outer query:
SELECT MAX(median) AS median, room FROM (
  SELECT percentile_cont(0.5) OVER (PARTITION BY room ORDER BY data) AS median, room
  FROM [io_sensor_data.moscone_io13]
  WHERE sensortype='temperature'
We can add an additional outer query, to rank the rooms according to which one had the coldest median temperature. We'll use one of the new ranking window functions, dense_rank():
SELECT DENSE_RANK() OVER (ORDER BY median) rank, median, room FROM (
  SELECT MAX(median) AS median, room FROM (
    SELECT percentile_cont(0.5) OVER (PARTITION BY room ORDER BY data) AS median, room
    FROM [io_sensor_data.moscone_io13]
    WHERE sensortype='temperature'
  GROUP BY room
We've updated the documentation with descriptions and examples for each of the new window functions. Note that they require the OVER() clause, with an optional PARTITION BY and sometimes required ORDER BY arguments. ORDER BY tells the window function what criteria to use to rank items, while PARTITION BY allows you to define multiple groups to be analyzed independently of each other.
The window functions don't work with the big GROUP EACH BY and JOIN EACH BY operators, but they do work with the traditional GROUP BY and JOIN BY. As a reminder, we announced GROUP EACH BY and JOIN EACH BY last March, to allow large join and group operations.

Query caching

BigQuery now remembers values that you've previously computed, saving you time and the cost of recalculating the query. To maintain privacy, queries are cached on a per-user basis. Cached results are only returned for tables that haven't changed since the last query, or for queries that are not dependent on non-deterministic parameters (such as the current time). Reading cached results is free, but each query still counts against the max number of queries per day quota. Query results are kept cached for 24 hours, on a best effort basis. You can disable query caching with the new flag --use_cache in bq, or "useQueryCache" in the API. This feature is also accessible with the new query options on the BigQuery Web UI.

BigQuery Web UI: Query validator, cost estimator, and abandonment

The BigQuery UI gets even better: You'll get instant information while writing a query if its syntax is valid. If the syntax is not valid, you'll know where the error is. If the syntax is valid, the UI will inform you how much the query would cost to run. This feature is also available with the bq tool and API, using the --dry_run flag.
An additional improvement: When running queries on the UI, previously you had to wait until its completion before starting another one. Now you have the option to abandon it, to start working on the next iteration of the query without waiting for the abandoned one.

Pricing updates

Starting in July, BigQuery pricing becomes more affordable for everyone: Data storage costs are going from $0.12/GB/month to $0.08/GB/month. And if you are a high-volume user, you'll soon be able to opt-in for tiered query pricing, for even better value.

Bigger quota

To support larger workloads we're doubling interactive query quotas for all users, from 200GB + 1 concurrent query, to 400 GB of concurrent queries + 2 additional queries of unlimited size.
These updates make BigQuery a faster, smarter, and even more affordable solution for ad hoc analysis of extremely large datasets. We expect they'll help to scale your projects, and we hope you'll share your use cases with us on Google+.

The BigQuery UI features a collection of public datasets for you to use when trying out these new features. To get started, visit our sign-up page and Quick Start guide. You should take a look at our API docs, and ask questions about BigQuery development on Stack Overflow. Finally, don't forget to give us feedback and join the discussion on our Cloud Platform Developers Google+ page.

Felipe Hoffa has recently joined the Cloud Platform team. He'd love to see the world's data accessible for everyone in BigQuery.

Posted by Ashleigh Rentz, Editor Emerita

Author PhotoBy Piotr Stanczyk, Tech Lead

In March we announced that CalDAV, an open standard for accessing calendar data across the web, would become a partner-only API because it appeared that almost all the API usage was driven by a few large developers. Since that announcement, we received many requests for access to CalDAV, giving us a better understanding of developers’ use cases and causing us to revisit that decision. In response to those requests, we are keeping the CalDAV API public. And in the spirit of openness, today we’re also making CardDAV – an open standard for accessing contact information across the web – available to everyone for the first time.

Both of these APIs are getting other updates as well:
In addition, the CalDAV API now has a new endpoint:

Piotr Stanczyk is the Tech Lead of the Google Calendar APIs group. His current focus is to provide next generation Calendar APIs which make developers’ lives easier. He also participates in CalConnect consortium.

Posted by Scott Knaster, Editor

Author PictureBy Patrick Copeland,

Cross-posted with the Blog

On June 1st and 2nd, thousands of developers from across the U.S. came together at nearly 100 different locations to participate in the first ever National Day of Civic Hacking. Using public data recently released by the government on topics like crime, health and the environment, developers built new applications that help address social challenges.

At the Googleplex in Mountain View, we hosted nearly 100 developers, statisticians, data scientists, and designers, who stayed long into the night hacking together prototypes that show how data on health and the environment can be used to enrich lives. Fusion Tables and Google App Engine were used to prototype, and groups relied on BigQuery as a workhorse to crunch the biggest datasets. Participants used Google+ Hangouts to connect with hackathons in other states and collaborated with Google Apps and platforms.

Here are a few highlights from the hackathon that stood out as useful, visually stunning, and informative ways to use public data:
  • Eat Healthy for Less, the winner of our Mountain View hackathon, is a mobile web application that uses the Consumer Pricing Index to suggest healthy recipes that can be made on a budget.
  • Data+, a reimagining of how we access data, can make exploring public datasets more intuitive and easily understandable for everyone.
  • is a web experience and Android app that shows you toxic sites and landfills nearby that you might not know about so that you can take civic action against toxic waste.
Many of the ideas have great potential, and we are encouraging participants to continue their work. We hope that the National Day of Civic Hacking will be a catalyst for innovation in this space, and encourage you to keep track of our tools for civic developers at

Congratulations and thanks to everyone who participated!

Patrick Copeland is director of engineering at, where he works to build systems that leverage Google's reach to help people around the world.

Posted by Scott Knaster, Editor

Author Photo By Pete LePage, Developer Advocate and Boardwalk King

Cross-posted from the Chromium Blog

Last week we launched Roll It, a Chrome Experiment that links phones to computers and gets people out of their chairs and swinging. We wanted to share how we built a physical game experience with no dedicated hardware. It requires just the web, your computer and a phone.

Here’s a look at the APIs and browser-based features we used to create it.

Roll It is a three-dimensional (3D) experience, from the swing of your phone’s accelerometer right up to the virtual models rendered on your computer’s HTML5 Canvas. On the phone side, we hooked into browser events like DeviceOrientation and DeviceMotion to detect the speed and direction of a swing. On the computer side we rendered our scene using Three.js and plugged in Physijs to add physics to the ball and environment.

To sync the phone to the computer we employed WebSockets which enable rapid two-way communication between devices via a central server.

For extra stability we built our backend on Google Cloud Platform:
We couldn’t have brought this experiment to life without a great team. The theme for Roll It was composed by Mr. Tim Healey. Legwork Studio developed the interfaces and game environment, and teamed up with Mode Set for the development.

To dig deeper into the technology behind Roll It, check out the HTML5 Rocks Case Study, or join the team for a Google Developers Live event this Friday, June 7, 2013 at 5pm GMT for an in-depth discussion.

Pete LePage is a Developer Advocate on the Google Chrome team and helps developers create great web applications and mobile web experiences.

Posted by Scott Knaster, Editor