Google Summer of Code/2016/Project Ideas

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page lists a number of ideas for potential Google Summer of Code 2016 projects. For ideas from previous years see Category:Google Summer of Code ideas. Also check out Research/Ideas (project ideas related to research or academia), Top Ten Tasks (the main issues OSM developers are concerning themselves with), and existing bugs for more problems to solve.

This page's primary purpose is to help to give potential applicants ideas that they can build on to turn into applications for the program. Members of the community are encouraged to identify ideas for projects here, and whether they would be willing to act as a mentor for a student attempting the project.

Students can base their application on one of these ideas, or on an idea of their own if they prefer (Deadline March 25th! See GSoC timeline)

Processes

If you are thinking of applying for GSoC, please see our Google Summer of Code/Processes page which describes the way that we manage GSoC within OSM, so you know what we expect of students and Mentors.

Project Ideas

This is the list of projects. Please add projects using the GSoC idea template.

3D

Web application for sharing 3D-Models to use in OSM-related 3D-Applications

Suggested By
Summary
3D rendering and modelling gets more and more attention in the OSM ecosystem. However, not everything can and should be modelled in OSM itself, when dedicated 3D modelling applications are a better choice. The student is tasked to write a web application that allows uploading and managing 3D models for buildings and street furniture but also for textures to use in OSM. Ideally the website also features comments, a JS based live view of the models and so on.
Skills
Web-Engineering


Difficulty
Medium
Possible Mentors
Notes
Applicants should note which language and technology they would use, they should also contact the possible mentors before they apply

Recording and Playback of Camera Movement in OSM2World

Suggested By
Summary
The 3D renderer OSM2World can generate realistic 3D sceneries and export them to static images and files for modelling software. It is, however, not yet able to produce movies and real-time animations, e.g. simulating car driving or a low flight through a city. The student is tasked with the extension of OSM2World's GUI with the functionality to record camera movement, a file format to store it, and the ability to playback the movement either in the GUI itself or by exporting it via POV-Ray or OpenGL to a video file.
Skills
Java, optionally POV-Ray experience


Difficulty
Medium
Possible Mentors
Notes
Depending on the student's skills the task can be extended to more complex movements, smooth movements and converters to import GPX files and the like.

SuperTuxKart racetrack generator based on OSM2World

Suggested By
Summary
Several people have toyed with the idea of generating SuperTuxKart racetracks based on real world locations. OpenStreetMap, when combined with a 3D renderer such as OSM2World, can get you a big step towards that goal. However, there is still quite a bit of manual work involved – work that could be automated.
Skills
Advanced programming skills required; Python, JavaScript, Java, 3D modelling (particularly Blender), and SuperTuxKart map creation experience are a big plus


Difficulty
High
Possible Mentors
Notes
This is one of the more difficult tasks due to the number of different technologies and tools involved

Extending the OSM2World rendering features

Suggested By
Summary
OSM2World was recently ported to OpenGL 3.1 and a shader based rendering pipeline. This allows to implement modern graphics features such as reflections, weather effects, noise textures, water, multiple light sources (street lamps) and a lot more. The features may be chosen on interest.
Skills
Advanced programming skills required; Java, OpenGL, GLSL, JOGL


Difficulty
High
Possible Mentors
Notes
Graphics programming can be quite tricky due to the complexity of the graphics stack, so previous knowledge in modern OpenGL is helpful

Public Transport

JOSM Plugin to assist with adding public transport routes

Suggested By
Summary
Adding (all variations) of public transport routes is a tedious process, fixing broken ones even more so. It would be nice to be able to fix 1 and have that fix applied to all others. Or to create a new itinerary based on existing ones. PT buses tend to use 'corridors', as they all serve common series of stops. The other part of this is quality control. Reporting of broken routes with suggestions to mend them, preferably with a graphical overview of the suggestion(s). Reporting of routes that don't serve all the stops they're supposed to, or that make unnecessary detours (maybe because a stop was abolished?).
Skills
Java, routing?


Difficulty
Medium
Possible Mentors
Notes
I already created sort of a prototype in Python, but it would be good to design from the ground up with proper classes for nodes and edges at various levels.
Comments
This is a plugin that needs data coming in from upstream, GTFS or raw data from the operators, which was converted to a set of route relations for all variations containing the stops in the correct order.

Web editor for public transport routes

Suggested By
Summary
To increase a number of PT routes in OSM, we need a simple to use web-based editor. It would need to download stops and route relations, edit tags and relation members, keep nodes connected to ways, know about stop positions and platforms. See this write-up. The criteria for finished work will be a functioning and error-free web editor for stops and route relations. Way editing is not required (though it would be an interesting problem).
Skills
JavaScript (+leaflet, +ajax, +xml processing, +some framework), HTML+CSS, OSM data model


Difficulty
Medium
Possible Mentors
Notes

Mobile

MapCSS styling and improved map data rendering for Vespucci

Suggested By
Summary
Vespucci is the first Android based mobile editor for OSM, initially developed in 2009. Map data styling is currently available by a very adhoc scheme and there has been a long time task https://github.com/MarcusWolschon/osmeditor4android/issues/312 to replace this with a MapCSS based system. Vespucci code ic licensed on Apache 2.0 terms which precludes using the equivalent code from JOSM.

Android specific knowledge is not required. To profit most from the change the rendering system may have to be improved (it currently uses Canvas) however migrating to OpenGL is not part of this project (I would be open to considering such a project).

Vespucci has already once been the subject of a sucessful GSOC project and the contribution continues to be in use, it is expected that this will be the case for this year too.
Skills
Java, JavaCC, OpenStreetMap


Difficulty
Medium
Possible Mentors
Notes

Geocoding

OpenAddresses for Nominatim

Suggested By
Summary
Nominatim is the geo search engine that powers the search box on the main osm.org site. While OSM is an excellent source for geocoding, it still lacks house number data in many parts of the world. There are now multiple projects that collect house number data from freely available sources, for example OpenAddresses or BANO. Nominatim already makes use of the free Tiger data to improve address search in the US. It would be great if other free sources could be used in a similar way. The goal of this project would be to define a common import format for house number data, write a converter for OpenAddress data and an importer for Nominatim. For more information how to get started see User:Lonvia/GSoC_2016_Nominatim_Projects
Skills
PHP or Python, SQL(Postgresql, Postgis)


Difficulty
High
Possible Mentors
Notes

Address localisation for Nominatim

Suggested By
Summary
Nominatim is the geo search engine that powers the search box on the main osm.org site. Nominatim needs to be able to provide search functions for the entire planet over rapidly changing data. To that end it uses a simple one-size-fits-all approach to compute the address of a place. While the result is usable most of the time, it does not always correspond to the address format that people are used to. The goal of this project is to improve the handling of addresses on a country-base. In the first part of the project, you should implement better address output based on [1] and extend the API to allow users to chose their preferred output format. The goal of the second part is to research how the data preprocessing can be improved to yield better address results without loosing the current flexibility to keep up-to-date with the OSM database. For more information how to get started see User:Lonvia/GSoC_2016_Nominatim_Projects
Skills
PHP, SQL(Postgresql, Postgis)


Difficulty
High
Possible Mentors
Notes

Miscellaneous

Add POI webapp

Suggested By
Summary
There are some organizations and small local businesses who want to be on OSM. But it could be complicated for non osmies to add them self correctly. Notes are not sufficient, because they don't give any hints for local business what information is sufficient. And it's common situation when such notes-authors add only a name, or someting like "Hotel Virginia" or "Superstore". If we have a form with common branches of amenities and shops, with commonly used additional tags, we could significantly improve quality of inputed data. Still such contributors are not experienced, and we want a kind of moderation queue, where experienced osm mappers could add such form-filled data into osm in one or two click.
Skills
JavaScript, OAuth. Any kind of backend technology for CRUD app.


Difficulty
Medium
Possible Mentors
Notes
Or enhance http://onosm.org/ Now there is no category-specific tags, and inverse geocoding.
Comments
More details are here GSOC_Add_Poi_Webapp

Enhance QGIS OSM import

Suggested By
Summary
This project affects two organisations, QGIS and OSM but primary organisation for that project is QGIS. Project details are here: https://hub.qgis.org/wiki/quantum-gis/Google_Summer_of_Code_2016
Skills
QT (beginer), SQLite (beginer), OSM (intermediate), QGIS API (intermediate)


Difficulty
High
Possible Mentors
Notes

Visual Lane Editor for iD

Suggested By
Summary
The iD Editor is OpenStreetMap's easy to use map editor built using HTML and D3.js and supported by all modern browsers. Knowing the number and type of travel lanes, and the number and type of turning lanes for a given highway segment can be valuable information for downstream consumers of OpenStreetMap data. Currently there is no easy way for beginner users to view and contribute this information while editing highways in iD. Therefore we would like to build a visual lane editor field that would appear in the iD sidebar while editing highway segments. The visual lane editor field must fit within a 350px or smaller responsive SVG surface, and should display the number and type of lanes using universally understood symbols, and should allow novice users to add or remove lanes and adjust the types of lanes (e.g. travel forward/reverse, turn left/right/through, and common conditional lanes like "bus" or "HOV"). This field must also be able to parse existing lane tags, and must generate and apply new lane tags as the user performs their edits.
Skills
HTML, CSS, SVG, JavaScript, D3.js, OpenStreetMap, familiarity with iD


Difficulty
High
Possible Mentors
Notes

CycleStreets projects

Various CycleStreets projects

Suggested By
Summary
CycleStreets have a range of GSOC 2016 projects which may be of interest, listed at http://www.cyclestreets.net/developers/projects/ but other ideas are welcome.

CycleStreets is a not-for-profit social enterprise based in Cambridge, UK, and is one of the earliest high-profile users of OpenStreetMap data. They do a lot of cycle routing and cycling advocacy projects - see blog, and their API is used in a variety of third-party systems, mostly in the UK. You can read about their (paid) intern last year: http://www.cyclestreets.net/blog/2015/07/

CycleStreets has contributed over many years to the OSM community in a variety of ways, e.g. mapping guides, data fixing and OSM training for various Local Authorities and companies, speaking at conferences to raise awareness of OSM, and the England Cycling Data project, supporting academic projects, etc.. Projects and ideas that motivate increases in volume and quantity of cycling data quality in OSM are also particularly welcome.
Skills
Various projects covering: HTML, CSS, Android, iOS, Ruby on Rails, PostgreSQL


Difficulty
Medium
Possible Mentors
Martin from CycleStreets will mentor.
Notes