-
Notifications
You must be signed in to change notification settings - Fork 3.5k
ESA Summer of Code in Space Ideas
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.
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
Temporally Coherent Real-Time Labeling of Dynamic ScenesDynamic Label Placement for Improved Interactive ExplorationK-Means Clustering
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
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 FrameworkThe 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 ApplicationIn 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