Google Summer of Code 2015

Google just announced Google Summer of Code 2015. Organization applications open on February 9, 2015. We participated in 2013 and I would like us to participate again.

Let’s use this thread to

  1. brainstorm student project ideas

  2. let mentors volunteer

Then we’ll use the ideas from this thread to create our list of projects like our 2013 list. I would also like to see us set the bar very high for applicants this year.

Please reply with your project ideas and/or to volunteer yourself as a mentor (must be a Cesium committer).

Patrick

Google Summer of Code 2015 applications open on February 9. What student project ideas for Cesium do you have? Here’s a couple to get started:

  • Example/demo pack: create Cesium demos with Raphael, AngularJS, and other popular libraries (like our D3 demo). Also, create Cesium demos with cool datasets like NASA Worldview.
  • Improved build/test infrastructure like, for example, #652.
    Patrick

+1 for “Improved build/test infrastructure like, for example, #652.”

both are very good ideas. Cesium using Knockout got me using Knockout.

Thanks the feedback. I’ve flushed out the ideas and added some new ones:

  • Visualizing Drone Flights in Cesium: We’ll provide an inexpensive Drone like this, and the student will write a series of demos and tutorials for visualizing a Drone flight path (using CZML), pictures taken from the Drone, video, maybe even LiDAR. More info.
  • Example/demo pack: create Cesium demos with Raphael, AngularJS, and other popular libraries (like our D3 demo). Also, create Cesium demos with cool datasets like NASA Worldview.
  • Improved build/test infrastructure: for example, Travis CI (#652) and GitHub backups (#1204).
    Any thoughts? What other student projects would be useful to the Cesium community and interesting for students?

Thanks,

Patrick

For applications in 2013, we encouraged students to try Cesium issues labeled beginner. For 2015, I suggest student applicants either (1) write a demo application using Cesium, or (2) try a beginner issue.

I scrubbed the list of beginner issues. Please add/remove as you see fit: https://github.com/AnalyticalGraphicsInc/cesium/issues?q=is%3Aopen+is%3Aissue+label%3Abeginner

More project ideas for students are also welcome.

Thanks,

Patrick

We started the official Google Summer of Code 2015 page for project ideas:

Google Summer of Code Ideas 2015 · CesiumGS/cesium Wiki · GitHub

Please share your project ideas or availability to mentor by February 2 as the GSoC application period opens on February 9.

Thanks,

Patrick

Last call for project ideas for Google Summer of Code. Here’s what we have so far:

https://github.com/AnalyticalGraphicsInc/cesium/wiki/Google-Summer-of-Code-Ideas-2015

Patrick

Here’s my random ideas that I’ve been meaning to bring up:

Redesign Sandcastle

Cesium Sandcastle is a great application for learning, demoing, and experimenting with Cesium. It’s one major drawback is the lack of responsive design, making it useless on small tablets and mobile. It also looks like a traditional application instead of a sexy web-app. We would also like to remove its dependency on dojo. This project would rewrite Sandcastle to address these issues, most likely by using Bootstrap for responsive layout, introduce data-binding to the application via Knockout, and (since Bootstrap already depends on it), use jQuery if needed in places where dojo may have been using some heavy lifting. The end result is a new Sandcastle which is easier to use, treats mobile as a first-class application, and brings more polish to our demo functionality.

Revamp Documentation Build

This is not a project that involves writing documentation, instead it is about determining whether we want to stay with jsDoc or go with an alternative such as jsDuck or something else. It will also improve how are documentation is built and incorporated into Cesium. For example, if we stay with jsDoc, our current Reference Documentation is pretty ugly and would benefit from a new template that adds a collapsible tree view, separates functionality into modules, does not include the full index on every page, etc… We also want a way to start including non-reference doc, such as our tutorials on the website, into the offline documentation that ships with Cesium. This is already supported by various doc packages, we just need someone to help make use of it and import our current doc into it.

Support for more Standard Geospatial Formats

Add a GPX Data Source and Shape File Data Source so they can be supported directly by Cesium. (Note I specifically left out GML because it is far too big an effort to undertake during GSoC).

I’ll add them to the wiki as well, let me know what people think.

These all sound good.

For Sandcastle, another goal I would consider is ease of going from a Sandcastle example to a standalone app, e.g., export a single HTML that references Cesium.js on a CDN or whatever. Currently, we see users working a bit too hard to turn their Sandcastle code into a standalone app.

Patrick

One more idea for Sandcastle: A while back Scott mentioned being able to encode an entire example in a URL so we wouldn’t have to copy and paste into Sandcastle. I’m not sure how out of hand that would get, but could be awesome.

Patrick

On that note, Sandcastle should also support GitHub gists, (saving back might not be possible, but loading should be easy).

Here’s an idea:

Add support to Cesium for rendering MapBox vector tiles:

https://www.mapbox.com/developers/vector-tiles/

MapBox tiles use an open format, described here:

https://github.com/mapbox/vector-tile-spec

Since these vector tiles are organized into a Web Mercator quadtree, rendering them with QuadtreePrimitive should be a pretty natural fit.

I’d be happy to mentor the right student in this.

Kevin

See #2132 for more on vector tiles.

This could be an OK plugin or maybe core feature if the format gets popular and the implementation is reasonably small.

However, I envision much bigger things for vector tiled in Cesium, e.g., metadata to avoid cracking (MapBox vector tiles are not really built for 3D), pre-triangulated polygons, extrusions, quantization, etc. Actually, I see this bleeding into streaming 3D buildings, e.g., a heterogeneous set of possible nodes, such as vector or 3D models, in an HLOD structure.

Patrick

Right, there are definitely much more exciting, powerful, and complicated things we can do with vector tiles. However, I still think it’s worthwhile to add support for an existing vector tile format (and MapBox has the most popular of the open ones AFAIK), because:

  • We can use existing tilesets and generation tools. We don’t have to worry about the server/processing side right away.

  • Simple vector tile systems should map easily to QuadtreePrimitive. I don’t think the implementation will be difficult, and we shouldn’t need to write a ton of new code.

  • We’ll gain experience with vector tiles. We’ll learn what renderer/primitive/entity features are needed to support them better. We’ll have a better sense of what the “perfect” vector tiling system looks like.

And while I agree that “MapBox vector tiles are not really built for 3D”, the same can be said of everyone’s raster tiles. I don’t think cracking in vector tiles will be worse than what we already get with raster tiles. In fact, I think it will be a lot better, because labels and markers at least won’t be split across tiles. I definitely like your concept of heterogeneous nodes in an HLOD structure.

In any case, my argument here boils down to “it would be interesting and not that hard and we’d learn some things” rather than “this is a clearly compelling feature people need”, so a plugin might be the way to go. It’s up to you if that disqualifies it from GSoC consideration.

Kevin

If you need support for this and it starts off in a plugin, I think it is an OK GSoC project.

If the format becomes an OGC or de facto standard - and the Cesium support is reasonable (given the need for client-side triangulation and I still expect cracks from T-joints, for example, unless we carefully tessellate and re-tessellate along the boundaries as LODs change, which complicate the implementation and use a lot of extra memory) - then it could be move to core.

With that said, I think we will have similar functionality - optimized and tuned for 3D - in core Cesium around the same time that GSoC will end and that Cesium would benefit more from other GSoC projects like, for example, continuous integration.

Patrick

Congrats everyone - Cesium was accepted to Google Summer of Code 2015!

Student applications start on March 16, so it is not too late to share a project idea.

Also, Liquid Galaxy (a panoramic display system) is part of GSoC and is interested in a Cesium project: https://code.google.com/p/liquid-galaxy/wiki/GSoC2015Ideas

Patrick

Congratulations everyone!

I was really sad when you didn’t apply last year. If you are a student wondering whether or not to apply for this organization let me tell you that I’ve participated in two editions of GSoC and the one with Cesium was the most enjoyable experience in every aspect.

Expect another application from me again this year :wink:

segunda-feira, 2 de Março de 2015 às 19:25:56 UTC, Patrick Cozzi escreveu:

Wow - I also just saw that only 137 of 416 applications were selected [1]. Again, congrats to all!

Andre - welcome back!

[1] http://google-opensource.blogspot.com/2015/03/mentoring-organizations-for-google.html

Patrick

hello , i will like to be in your team this year
Regards