The Cesium team is delighted to be a part of your Christmas traditions with the NORAD Tracks Santa ® program! Built on the CesiumJS open-source 3D mapping library, the Santa Tracker gives everyone a look at Santa’s Christmas Eve journey, as children around the world nestle snug in their beds while visions of sugar-plums dance in their heads.
So, how does the Santa Tracker work? Read more about the various pieces that come together to create this interactive application.
CesiumJS is an engine for creating interactive virtual 3D maps. The technology used to create the app works very similarly to modern video games. This virtual Earth is composed of several pieces: a map of the stars, lighting from the sun, satellite imagery of the land and sea, and a 3D representation of terrain features. We then add a model of Santa Claus and update his position as we get updates from NORAD’s network of Santa-tracking sensors.
The star map makes up the backdrop for the Earth. The images were generated by NASA based on their Tycho and Hipparcos star catalogs. To display the stars around the Earth, we generated a “cube map” comprised of six images.
These six images make up the six faces of a cube.
The images fit together seamlessly to create a “sky box.” The Earth sits inside of the sky box, and as a result we see a seamless starry background in every direction.
Placing the Earth inside of the sky box creates the background of stars.
CesiumJS was founded with roots in the aerospace industry, so accuracy and precision were given top priority from day one. We calculate the position of the sun based on the current time, and this allows us to do things like draw shadows and highlights based on the sun’s actual position. Both the sun and the star map move as time passes to give us the full picture of Earth’s position in space.
The sun and the sun’s reflection in the ocean move with time.
The Grand Canyon in CesiumJS.
The Santa Tracker app uses Bing Maps imagery. To create imagery like this, satellites collect millions of pictures of the Earth. The pictures are processed to weed out ones with a lot of cloud cover, and to color correct so all of the pictures match. These pictures are stitched together to create a seamless imagery layer.
Landsat 8 collects images of the entire Earth every 16 days. Image courtesy of NASA.
However, we can’t load millions of pictures at once in our application. To get around this, we use a level of detail technique and only request images based on what the user is looking at. Each level of detail is made up of more images at a higher resolution. The lowest level of detail is made up of two or four low resolution pictures: one or two for the western hemisphere and one or two for the eastern hemisphere. Each image is divided into 4 sections and replaced by higher resolution images to create the next level of detail.
An example of level of detail quadrants.
As you zoom in, the next level loads and replaces one of the lower resolution images with four higher resolution ones. This allows the user to see the whole globe when zoomed out and fine details when zoomed in close to the ground.
New levels of detail load as we zoom in.
Terrain is represented as a 3D mesh of triangles. Terrain elevation data is collected in a variety of ways, including radio radar sensors on satellites and laser lidar sensors on drones. This terrain was generated from a variety of elevation datasets made publicly available by city and government agencies, including the United States Geological Survey and NASA.
The underling terrain triangle mesh.
Santa’s sleigh and his flying reindeer.
An artist starts with a drawing, then uses the modeling program to create the shape of Santa and his reindeer. Like terrain, 3D models are represented as a mesh of triangles.
A peek at the 26,762 triangles that make up this model.
The artist paints the mesh with textures and colors to add details like the reindeer fur and the shiny red sleigh.
The colors are saved as a flat image that wraps around the triangle mesh.
Finally, the artist creates animations to make certain parts of the model move.
The artist positions the reindeer legs to make him gallop.
As Santa is packing up his sleigh, we eagerly await updates on his location from NORAD’s Santa-tracking sensors. CesiumJS is time-dynamic, which means we can update Santa’s position in real-time. Throughout Christmas Eve day, the Santa Tracker app listens for updates on Santa’s location and moves the Santa model to that position on our virtual Earth.
The app also listens for notifications of new videos captured by NORAD’s strategically placed “Santa Cam” cameras and adds a video camera icon to the Earth at these locations. Clicking these icons brings up a panel so all the Santa trackers out there can watch.
Rudolph leads the way for Santa and his sleigh.
Visit the NORAD Tracks Santa website today to play games and find activities to get you and the little Santa trackers in the Christmas spirit. New games are released each day of December.
The 3D Santa Tracker goes live on December 24 once the countdown reaches zero!