opensource.google.com

Menu

Lovefield: a powerful Javascript SQL-like database query engine for the web

Monday, November 17, 2014

Today we are announcing the release of a powerful library to be added to the arsenal of every web developer's toolbox. Since WebSQL standardization efforts ceased in 2010, there has been no cross-browser relational database solution for web clients. Existing persistence solutions such as IndexedDB and LocalStorage fall under the category of object-oriented storage and therefore lack traditional relational database features.


Lovefield is finally closing that gap by providing a feature rich database query engine built using IndexedDB as a backend. It provides an intuitive SQL-like declarative syntax such that developers can pick it up with minimal effort. Its declarative form provides immunity to SQL injection attacks, since there is no query parsing involved. The feature list includes:


  • select, insert, update, delete queries.
  • atomicity with intuitive transaction semantics (unlike IndexedDB’s surprising auto-commit behavior).
  • integrity constraint checks (primary key, unique, nullable/not-nullable).
  • aggregators (count, min, max, sum, avg, stddev, distinct)
  • "group by" for select queries.
  • multi-table join
  • easier schema upgrade mechanism than IndexedDB.
  • cross browser support (Chrome, Firefox, IE10).


On the performance front, Lovefield includes a query optimizer which will evaluate different execution plans and finally pick the most promising. We are confident that current performance will satisfy the majority of use cases (less than 50k rows) and we plan to further improve the performance for larger datasets in the near future.


Lovefield’s vision is captured in this specification document and we are working to provide some more exciting features such as foreign keys, cascaded delete/update, self-table join, observers/data-binding, in the near future.


Lovefield is already successfully powering a few Google services, including Google Play Movies Chrome app. With this open source release we are hoping to enable the development of data-rich applications and to attract interest and feedback from developers which will allow us to better understand how to move forward.


By Demetrios Papadopoulos, Chrome team

Google Summer of Code Wrap up: Point Cloud Library

Friday, November 14, 2014

Today’s Google Summer of Code wrap up comes from Federico Tombari at the Point Cloud Library project, a 2D/3D image and point cloud processing framework.

pointcloudlibrary_horz_large_pos.png

For the third year, the Point Cloud Library (PCL) organization has been a participant in Google Summer of Code. We had the opportunity to mentor 12 students who spent the summer developing projects related to 3D computer vision and robotic perception.

This year, I had the pleasure to mentor two students: Manuel Gesto and Jilliam Diaz Barros. Manuel worked on porting a recent algorithm (proposed last year at the ICRA conference by Karphaty et al.) related to object discovery. The idea is that a robot can wander around a room or a building, reconstruct the surrounding environment through Kinect Fusion techniques and then try to extract interesting parts - possibly objects - out of this 3D representation without an explicit training set. Manuel worked well in implementing on his own a segmentation method that was required for the algorithm. Jilliam worked on stereo matching techniques. She implemented two state-of-the-art algorithms, one focused on efficiency and the other on accuracy, which will enrich the stereo module already present in PCL. Also, she validated her work with a comprehensive experimental evaluation using benchmark datasets.

Alex Ichim from our organization worked with Andrei Militaru, a BSc student in Computer Science from Jacobs University in Germany. We looked into efficient representations for head models in the context of face reconstruction using RGB-D devices such as the Microsoft Kinect. In order to counteract the heavy noise and missing data from this kind of camera, we employed the concept of statistical face models (first introduced by Blanz and Vetter at Siggraph ‘99). To demonstrate this, we built an application that uses live data from the camera, registers and integrates it into a point cloud using the Kinect Fusion implementation in PCL; in parallel, another thread uses the data and fits the statistical model to it, yielding a low resolution face model that updates in realtime as more views of the actor are acquired.

Markus Schoeler was another student working with us this year. His project consisted of two sub projects, namely implementing the Locally Convex Connected Patches (LCCP) algorithm and a shape generator. The LCCP algorithm was published on this year’s CVPR conference and aims at segmenting a scene into objects and parts (by tuning parameters, you can "select" the desired level of detail). The shape generator puts special emphasis on giving users full control of how they assign labels in scenes. This makes it possible to easily create annotated data and decide how coarse the segmentation should be.

Federico Tombari, Organization Co-Administrator, Point Cloud Library

Geometry Math Library for C++ Game Developers: MathFu

Thursday, November 13, 2014

(Cross-posted with the Google Developers Blog)

Today we're announcing the 1.0 release of MathFu, a cross-platform geometry math library for C++ game developers.  MathFu is a C++ math library developed primarily for games focused on simplicity and efficiency.


It provides a suite of vector, matrix and quaternion classes to perform basic geometry suitable for game developers.  This functionality can be used to construct geometry for graphics libraries like OpenGL or perform calculations for animation or physics systems.


The library is written in portable C++ with SIMD compiler intrinsics and has been tested on Android, Linux, OS X and Windows.


You can download the latest open source release from our GitHub page.  We invite you to contribute to the project and join our discussion list!


By Stewart Miles, Fun Propulsion Labs at Google*


*Fun Propulsion Labs is a team within Google that's dedicated to advancing gaming on Android and other platforms.


.