Global Fishing Watch.

Making fishing activity transparent.

As the world’s first open, free, and accessible fishing monitoring tool, Global Fishing Watch is poised to change the way we manage our fisheries. Working with SkyTruth, Oceana, and Google, we’re making it easier and faster to analyse global fishing effort and visually communicate the findings in a compelling way.

Once upon a time we thought the ocean held an endless supply of fish for us to eat, but today the catch in our nets tells us we can no longer take these hidden treasures for granted. Government policymakers, fisheries managers, academic researchers, NGOs, and concerned citizens must work together to sustain our seas, and Global Fishing Watch puts information about where and when fishing has occurred at their fingertips.

At the heart of Global Fishing Watch is a map that glows with the ebb and flow of nearly 60,000 fishing vessels traversing our oceans. Each dot represents a signal broadcast from one of those vessels and visualising the millions of data points they represent was a challenge that required an innovative use of technology that’s normally associated with computer games.

Tompkins Conservation overcame objections to the creation of Argentina’s first ever Marine Protected Areas (MPAs) by using a video of Global Fishing Watch data. Supporters of the MPAs were able to prove there would be no adverse effect on the country’s fishing industry if they were established.

Thousands of vessels in your pocket.

With nearly 60,000 vessels to track and up to 100,000 data points being rendered at the same time, we knew we’d have to use technology that’s capable of supporting both fast performance and instant user interaction feedback. Skytruth delivered the data as highly efficient binary vector tiles, where points are clustered both in time and spatially. We took this tileset and used it with WebGL, a technology that allows websites to tap into the power of the graphics processing units (GPUs) inside our computers and phones. This makes it possible to display a vast number of vessel points in a highly performant way, particularly on mobile.

Video game tech to the rescue.

WebGL APIs are powerful but very “close to the metal”, so we chose to use an engine called Pixi.js that abstracts away the complexity of WebGL APIs (shaders). Pixi.js is typically used for 2D games, but it works perfectly for Global Fishing Watch. Specifically, the map layers use Pixi's highly optimised ParticlesRenderer, usually used for rendering effects such as smoke and explosions. Pixi.js, along with React and Redux, allowed us to have expressive and maintainable code without sacrificing any performance.

How we used WebGL and Pixi.js for temporal mapping.

Read our blog.

Next project.


World Resources Institute.