Skip to content

ESA Summer of Code in Space Ideas

Ed Mackey edited this page Nov 27, 2013 · 9 revisions

Cesium is an open-source JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses HTML5 and WebGL for hardware-accelerated graphics. Our code has shipped to 10's of millions of people in the same day. We have a culture of writing clean, peer-reviewed, tested code. Our developers are experts in their fields; they write books, create open standards, and present at international conferences. We look forward to helping you grow your skills and ship beautiful code that has wide impact.

Student Proposals

The student application period for SOCIS 2013 is from June 30 - August 4 (11am UTC).

View the complete SOCIS program timeline to review all of the program's deadlines.

Technologies and Tools We Use

(We don't expect you to know all of them).

HTML5, CSS3, JavaScript, WebGL, SVG, Git, Ant, Eclipse, Chrome, Firefox, Android

Project Ideas

## ~~Declutter for Map Labels~~


Image from Temporally Coherent Real-Time Labeling of Dynamic Scenes

A classic problem when drawing 2D or 3D maps is the overlap of nearby text labels, resulting in a cluttered display and illegible labels. We will design and implement an efficient real-time algorithm to declutter map labels, avoiding or minimizing overlap.

This is an NP-hard problem, and therefore we will solve it heuristically in an attempt to minimize the amount we move each label and maintain temporal aesthetics. We will also explore creating hierarchies of labels using k-means and/or knowledge of hierarchical label relationships, e.g., street - city - county - state.

The algorithm needs to be very efficient; it must run in JavaScript and work for 100s of dynamic labels or 1000s of static labels.

References

Skills: Algorithm design, strong math, code and algorithm optimization, JavaScript, git

Level: Advanced

Mentor: Dan Bagnell - dbagnell@agi.com

Backup Mentor: Patrick Cozzi - pjcozzi@siggraph

## Particle System
Images from [Particle Systems - A Technique for Modeling a Class of Fuzzy Objects](https://www.lri.fr/~mbl/ENS/IG2/devoir2/files/docs/fuzzyParticles.pdf).

Particles systems are used for visualizing "fuzzy objects" such as smoke, fire, explosion, sparks, clouds, dust, snow, rain, flowing water, etc. Initially, we are are interested in smoke trails.

This project will add support for modeling systems of particles to Cesium. View the Particle System Details on the wiki for an implementation abstract and additional resource references.

Skills: Algorithm design, strong math and physics, code and algorithm optimization, WebGL, JavaScript, git

Level: Advanced

Mentor: Dan Bagnell - dbagnell@agi.com

Backup Mentor: Patrick Cozzi - pjcozzi@siggraph.

## Ozone Widget Framework

The Ozone Widget Framework (OWF) is an open-source platform that allows users to build web applications using a wide variety of widgets that can communicate via a common API. This project would integrate a new Cesium widget with Ozone.

See the existing mailing list discussion.

Skills: JavaScript, HTML5, git

Level: Intermediate

Mentor: Matt Amato - matt.amato@gmail.com

Backup Mentor: Scott Hunter - scott.k.hunter@gmail.com

## Orbit Tuner Application

In this project, we will create a Cesium application that allows users to manipulate the different parameters that define a satellite's orbit. Users will be able to change the values of different orbital elements, such as eccentricity and inclination, and immediately be able to observe their effects on a satellite's path.

Skills: JavaScript, HTML5, git

Level: Novice

Mentor: TBD

Backup Mentor: Richard Page - rpage@agi.com