GSoC/GCI Archive
Google Summer of Code 2014

Public Laboratory for Open Technology and Science

License: GNU General Public License version 3.0 (GPLv3)

Web Page:

Mailing List:

The Public Laboratory for Open Technology and Science (Public Lab) is a community -- supported by a 501(c)3 non-profit -- which develops and applies open-source tools to environmental exploration and investigation. By democratizing inexpensive and accessible Do-It-Yourself techniques, Public Lab creates a collaborative network of practitioners who actively re-imagine the human relationship with the environment. The core Public Lab program is focused on "civic science" in which we research open source hardware and software tools and methods to generate knowledge and share data about community environmental health. Our goal is to increase the ability of underserved communities to identify, redress, remediate, and create awareness and accountability around environmental concerns. Public Lab achieves this by providing online and offline training, education and support, and by focusing on locally-relevant outcomes that emphasize human capacity and understanding.


  • Automatic Spectrometer Calibration & Macros Module, Offline Version of SWB This project aims at coming up with a mechanism enabling SWB to automatically calibrate the spectrometer(s) of the users & the Macros module which will enable the users to write their own macros to automate their routine works on SWB. The second part of this project is an offline version of SWB. With these features on board, the SWB will be much more user friendly and effective too.
  • Implementing rubbersheeting in Leaflet.js for Mapknitter tool. MapKnitter is a tool used for 'combining a series of these aerial images into a flat, projected map ' which can be browsed in the same way as Google Maps. It is built on old and legacy code for its editing interface using Open Layers which is a complex and heavy library following strict design principles and requires time to develop features on. Porting the interface to Leaflet.js (a light weight library of 33 KB) will make feature addition and editing easy because of its object model.
  • MapKnitter Annotations using Fabric.js The goal of my project is to create a Leaflet plugin using HTML <canvas> elements along with Fabric.js to allow users to annotate Leaflet maps, and then to integrate this plugin into MapKnitter. This feature will improve the quality of maps produced using MapKnitter because users will be able to explain the purpose of their maps as well as construct more complete narratives using their maps.
  • MapKnitter Enhancements. This project aims to bring in some enhancements to make the Knitting experience of MapKnitter more friendly and easier. This project will make two enhancements. 1. Enhancing the upload interface(multiple image upload, multiple knitter image selection and display, drag-drop). 2. Add feature in MapKnitter to auto-knit images as much as possible using relevant EXIF metadata from the images like latitude, longitude, altitude and orientation.
  • Sky Cam Enhancement - GSoC 2014 This project mainly deals in improving sky cam android application in functionality(backend) and design, frontend. The project describes how some features will be improved and integrated with existing features.