Skip to main content

Cesium Summer 2017 Code Sprint

From June 13th to 16th, the Cesium team continued its tradition of the summer code sprint with a trip to Lake Harmony in the Pocono Mountains. With 12 participating Cesium team members and 1 very talented Penn graduate student, this was the team’s largest code sprint to date.

Among the exciting projects the team tackled were: post-processing effects, physically-based rendering, and improvements to our obj2gltf pipeline. Of course, between pull requests, we organized many great team building exercises, including mini golf, arcade night, and one very stressful bomb defusion VR game that we were… okay at. (Sorry for blowing you up, Matt!) All in all, it was another successful example of the Cesium team working hard and playing hard.

Deadly Battles At The Arcade

We made some excellent progress on a lot of issues, but here are a few trip highlights:

Sean decided to revisit a 5-year-old branch to add post-processing effects to Cesium. His changes will add support for post-processing both for final rendered images and on a per-command basis, meaning individual tilesets, models, the globe, etc. can have unique post-processing effects applied to them. Here are a few screenshots showcasing an 8-bit filter, night vision, and high contrast:

Post-Processing Effects

Byumjin Kim is a student at the University of Pennsylvania working towards a masters in Computer Graphics and Gaming Technology. He attended the code sprint with us and did some pretty great work on lens flares in Cesium).

Lens Flare

My fellow intern Mohammed has been working on adding physically-based rendering (PBR) shaders to Cesium. He spent this sprint adding image-based lighting to add realism to the models being rendered, and is continuing to work on getting a good environment map in.

Physically-Based Rendering

Rachel made some robustness improvements to our obj2gltf converter, which now uses mip-mapping by default and she worked on handling N-sided and concave polygons.

In our 3D tiling pipeline, Gary worked on multiprocessing large numbers of textures for massive models, while I worked on adding adaptive subdivision to our tiling algorithm, which to this point has done optimized octree subdivision.

Ottavio, another fellow intern, continued work on moving all of our repositories off of jsHint to esLint. He made a shareable config to allow us to distribute our syntax and style guidelines across repositories, so we can continue to maintain high quality code. Ed also fixed a picking bug. Additional work was done on current projects and internal source code.

In summary, the code sprint was a productive blast. As always, many thanks to AGI and our team lead, Patrick for making this code sprint possible, and special kudos to Tom for flawlessly handling 12 people’s worth of logistics. Last but not least, thanks to our resident chefs Hannah and Matt, without whom we would have surely perished.

Here’s a picture of all of us by our team’s photographer for the week, Gary.

Everybody Say "Cheesium"