When users rely on your software to do things like make autonomous vehicles safer, deliver life-saving blood via drone, or plan a flight path that lets millions of children follow Santa’s journey around the world, your work demands efficient collaboration and constant innovation.
Cesium, a complete platform for visualizing, analyzing, and streaming 3D geospatial data, started in 2011 as a research and development unit for another company. Originally, they were working on tracking satellites in 3D and in web browsers. Recognizing that this technology had a broad use outside of space and satellites, the team underwent an evolution. Cesium’s commitment to open source and community is what allowed them to launch successfully. This also plays a role in the growth they continue to experience today. Founded as an open source project, the Cesium team understood the value of shareable code—and knew that both visibility and community were critical. Even with a paid offering, “We were always a believer in open source, and Cesium was our first open source project as a company. We wanted to be where everyone else was because open source lives or dies by its community,” said Matt Amato, Platform Lead.
Community access—and platform transparency—made GitHub Team the obvious choice. “We also wanted to be as transparent as possible, which is one of the key reasons that we were able to grow our open source community early on. GitHub was a big piece of that growth, and. it’s shaped the company ever since.” Quickly, Cesium saw their community grow on GitHub. “We got our first outside contributions. Then we also had people on our forum answering other questions. They were interacting with other people who weren’t developers,” said Amato. Now, the forum has over 36,000 posts in its history and the company’s largest project, CesiumJS, is open source.
Open source powers both their community and commercial success. Built on top of the team’s open source code, Cesium’s robust analytics and tools—like Cesium Stories—provide geospatial modeling and data visualizations. With Cesium Stories, users can upload geospatial data and 3D models. Then, Cesium ion, a platform to create and host 3D content in the cloud, will process the data in a way that is ideal for streaming or for use in geospatial presentations.
The company has also partnered with Komatsu, a leading manufacturer and supplier of industrial equipment. Using sensors on Komatsu’s construction equipment combined with data from drones and other sources, Cesium creates 3D virtual construction sites that reflect exactly what’s happening on the ground and construction progress over time.
With such precise location services, code quality and reliability are crucial. GitHub integrates with the continuous integration (CI) tools Cesium already uses—making it possible for Cesium to automatically perform quality tests and update environments. This ensures that releases are always stable.
“We’re standardized on Travis CI for our continuous integration. Almost every branch and every repository we have has Travis CI-enabled,” explained Amato. Originally, the company made CesiumJS available on NPM. After getting one million downloads, they decided to transition their private packages to GitHub and keep open-source packages on NPM. “Cesium also uses GitHub Packages extensively in production,” shared Shehzan Mohammed, Director of Product Management. “By tying directly to our repositories, GitHub Packages gives Cesium an automated, secure path to continuous integration and deployment, testing, and delivering products to our customers and millions of open source users.”
Along with streamlined automation, GitHub’s flexibility allows Cesium to deploy their platform frequently and perform updates as often as they see fit. “We’ve done four or five deployments a day when things are moving along quickly,” said Amato. “This makes it easier to check out in-progress work across our ecosystem because we have several repositories that depend on each other. If one team is working on a new feature that is one GitHub package, we can easily use that package somewhere else, even though it’s not in production yet.”
By tying directly to our repositories, GitHub Packages gives Cesium an automated, secure path to continuous integration and deployment, testing, and delivering products to our customers and millions of open source users.
Once updates are in production, Cesium uses GitHub’s branch protection features to manage releases. “For example, you can’t do a merge unless the branch and master are in sync with each other. You can’t do a merge if the build is failing,” explained Amato. “We’ve had a lot of success using GitHub for content hosting and editing, and then publishing directly.”
Stable releases go beyond just good user experience. As open source, every release is an opportunity for Cesium to demonstrate the quality of their work to other companies. Then, when these companies want to develop an app or an end-to-end solution, Cesium is top of mind.
This same transparency extends to inside the organization as well. Cesium uses GitHub as a repository for user guides and onboarding guides. Beyond that, the use of email is actually discouraged. All documentation and internal communication can be found on GitHub.
As Cesium continues to find new applications for this technology, their commitment to community is still at the forefront. “We’re working on building and helping. We want to make sure that we’re innovating in the right ways with what we’re doing in our specialty here at Cesium,” said COO Bonnie Bogle. That means continuing to rely on contributors and finding solutions that benefit everyone in the community. The company plans to continue working with their community to solve problems and push the entire field forward.
Cesium also sees GitHub as central to their company culture. Without it, Amato says they may not be where they are today. “It’s hard to imagine what our company would be like without GitHub, because it has shaped us from the beginning. All of the things that GitHub provides in concept work, peer review, and centralized communication are important. I feel like if GitHub wasn’t around in 2011, and we went with another solution, we would be in a fundamentally different place.”