Hi Cesium team
I was recently came to know about Cesium through a friend and by reading some of the tutorials. I’ve found it nothing less than impressive and so, I wish to contribute to the development process. I also wish to take part in GSOC '15 and do a kickass project for Cesium.
I am in my 3rd year of study, majoring in computer science from IIIT Hyderabad. I am a research student working at the Lab for Spatial Informatics. I am familiar with C/C++, python, javascript and HTML/CSS (Github). I am well acquainted with the concepts of spatial data, CRS, map generalization, spatial databases, querying etc.
I am done with the setup of Cesium. Any tips on how to get started?
Thanks
Ayush Khandelwal
Hi Ayush,
Thanks for the introduction and interest in Cesium. Check out our Ideas List for how to get started. Let us know if you have any specific questions.
Patrick
Thanks for replying Patrick. I checked out the ideas page and one of the projects interest me - Add ability to export CZML from the Entity API.
I am particularly interested in the project involving CZML because it might be related to the work I have done previously. I implemented an algorithm for GML (Geography markup language) compression (Link). GML is an XML encoding for specifying geographic objects and has been declared a standard by OGC. I developed a firefox addon (github) which can compress, decompress and render(as svg) GML files. The addon is written entirely in javascript and involves a lot of XML parsing, javascript geometry object creation and manipulation, writing javascript objects as XML to file, etc. After reading the project description, I could understand that it involves writing Entity objects to a JSON file. Currently I am reading the CZML specification on this page. What should be my plan of action if I wish to work on this project?
Hi Ayush,
Cool projects! Given your past experience you may also be interested in adding new loaders to Cesium for formats like shapefiles and GPX. Matt would also mentor this so I’m sure he will follow up.
Regardless of what project you pursue, the best way to get started is to go through the tutorials and write a simple demo app to get a feel for Cesium.
Patrick
Hi Patrick,
I made a demo app using Sandcastle. Its a file called gmlzRenderer.html in cesium/Apps/Sandcastle/gallery folder(Link). I mentioned previously that I am working on GML compression and so I thought what better than making an app that can render GMLz(compressed GML) using cesium. Its a basic implementation and supports only polygons. GMLz is a work in progress and support for polygons has been added so far. You can download some GMLz files here to try out the app. I’ve attached a screenshot of the app also.
I’d solve some bugs now. Apart from this, I would also like to work on demos pack idea because I love using new JS libraries. Some of the libraries that I’ve worked with such as Angularjs(expert), openLayers(moderate) and Raphaeljs(moderate) will be helpful in this project.
Ayush

Ayush,
Thanks for the update. This looks awesome!
You could tackle a few bugs if you want, but I think it would be more useful for you to do more experiments with the Cesium API and perhaps prototype some ideas of combining it with some of the other JavaScript libraries you like. We don’t have to limit ourselves to the ideas listed for the Demo pack. We’re open to all ideas.
Also, for deploying demos, we usually do not use Sandcastle. Instead we write a separate app that includes Cesium like we do in the Up and Running tutorial. You could then make a separate GitHub repo and deploy it by just pushing to a gh-pages branch like we did with this repo:
https://github.com/AnalyticalGraphicsInc/cesium-google-earth-examples
Patrick
Patrick,
I reworked the app following the tutorial and now it runs as a standalone app. I also created a repository on github named cesium-apps so that I can push all the future apps in that directory itself. The current app is in cesium-apps/gmlzLoader folder(Link). I simply changed the HelloWorld.html page, so now you can run the app by clicking on the Hello World link on the main page (index.html). Sample GMLz files are included in a folder named ‘cesium-gmlz-files’ in cesium-apps/gmlzLoader.
Nice progress, Ayush. That was fast!
Take a closer look at how we organized this repo:
https://github.com/AnalyticalGraphicsInc/cesium-google-earth-examples
See how there is just one directory for Cesium? Then we create several examples that reference Cesiumjs. This is a bit cleaner than what you’ve done so far since it decouples your app and the Cesium source. Once you have it organized, it will help you build new demos faster.
Patrick
Patrick,
The next time I create an application, I’ll make sure to follow the directory structure used in cesium-google-earth-examples. I get the point of having that structure. All the apps can be put into the demos folder. Yes, thanks!
Patrick,
While going through the ideas page for GSOC '13, I saw this project aimed at adding support for GML(Link) and another one which is a follow up aimed at adding support for WFS. Well, I think I’ve found my ideal project! Given my previous experience with GML, I am confident that I will be able to implement a GML loader for Cesium. Should I post this idea on the main GSOC thread - https://groups.google.com/forum/#!topic/cesium-dev/QnOxsA0iwa0 ?
Yes, that would make a great project given your experience. Users have also asked for this before. Do a search on the forum, for example:
https://groups.google.com/forum/#!searchin/cesium-dev/gml/cesium-dev/VLmBu9tbuHc/xlDW5Esks_gJ
Patrick