Making WildTrax: It’s (Not) a Kind of Magic – Behind the Screen

WildTrax is one major piece of software–your one-stop online platform for managing, storing, processing, sharing and discovering biological and environmental sensor data. In other words, WildTrax is a repository for data from autonomous recording units (ARUs), remote cameras, and other wildlife surveying methods from across Canada. In fact, WildTrax currently hosts over 66 million photos and 620,000 audio files for assessment of species present, and other phenomena (e.g., snow cover, noise, etc.). WildTrax has been up and running for over four years, and during this time it has evolved a great deal. Now, with its most recent update, WildTrax does even more, namely vastly improved detection of animals, people, and vehicles in camera trap images. Please check out our upcoming webinar on WildTrax and its updates.

You might be surprised to know that behind this mega-platform is only a small team of eight dedicated individuals. I spoke with WildTrax’s programming team, Mike Packer and Chad Klassen, for a behind-the-screen look at what goes into making this unique platform function on a daily basis. 



Programming WildTrax

Mike Packer is a senior system analyst at the ABMI and has been working on WildTrax since its inception. He is one of its initial architects along with Joan Fang, senior system analyst. Mike’s detail-oriented position focuses on WildTrax’s architecture, design, java-based backend programming, data integrity, and database management. “I do high level architecture and take concepts that people want in non-computer terms and I look at how we would implement it,” explains Mike.

As part of Mike’s role in managing WildTrax’s backend Application Programming Interface (API) and database, he ensures that the database follows necessary rules and is normalized (i.e. when updates are made, it won’t cause problems in the database). He also maintains database performance, security and a disaster recovery strategy.

Chad Klassen has been with the project for over two years and is responsible for the front end of WildTrax. He builds and maintains the public-facing interface where users interact with the web browser. Chad explains that he receives data from Mike and he uses client-based browser code (javascript) to display it on the screen, making sure things work properly. His tools are minimal– a web browser, code editor, and a data repository (like GitHub) which keeps the code together. Chad also consults with Joan about nuanced or complicated issues involving original code. Chad says he is still learning but he is able to use his skills, trial and error and Mike’s support to deal with the high volume of information coming through. “I’d like to know everything, but I am often learning something new.” 

Both Mike and Chad have worked with large departments of developers in the past, where it was easy to ask questions and get advice. “It’s interesting for me to see what you need to do to be independent, figuring things out on your own,”  says Chad. Mike adds “Here, I am responsible for WildTrax database/API work, there is no one to really ask. So, that can be challenging because we’re so small.”


It’s (Not) a Kind of Magic 

There are a lot of things that Mike and Chad do everyday to make WildTrax work. But Chad is adamant that magic definitely is not one of them. Some people consider it magic because they don’t really know what is going on, but it’s not magic, it’s hard work (maybe a little sweat and tears too.)

In terms of the WildTrax process, Mike and Chad receive input from team managers, other team members, and from WildTrax users. In fact, a great deal of what Mike and Chad do is based on user feedback which has mainly been positive. They read all support emails and work directly with the users. Mike and Chad address feedback, note where improvements can be made and how to prevent similar issues in the future.  

“We try to make changes so that they are easily manageable and take a little bit more work off of users’ plates when it comes to managing their images,” says Mike. “You can always improve and it’s important to respond to client feedback. A lot of the clients have really good ideas and you listen to them.”

Once user feedback has been analyzed, Mike and Chad make the necessary adjustments while reviewing interactions on the website and make necessary user interface (UI) and user experience (UX) design decisions. Mike and Chad are responsible for testing and bug fixing as well, which is challenging and an area that they plan to develop in the future. 

While there is a clear delineation between Mike and Chad’s roles, there is also quite a lot of collaboration between the two. They share server administration duties, chat daily and have weekly scrums. Since the front end requires an API to function, Mike needs to send Chad API data with notes on how to interpret the data. Chad and Mike “often go back and forth and say, hey, what do you think of this? It does this, but it should do that,” says Chad. “Communication is always key in any kind of relationship. If you don’t know how to communicate there is probably not much hope for you.”  


Try Not to Break Anything

If there is one motto behind programming WildTrax, it might be ‘try not to break anything’. “It’s very difficult when you upgrade something that exists already,” says Chad. “And doing databases you don’t really get second chances,” adds Mike. “If I make a mistake with a major data update, it would take me three days to recover it, so I need to be very careful.”

For Mike and Chad, the secret sauce to good programming is problem solving and asking the right questions to get to core issues such as, “How do I architect this?”, “What do I need?”, “What database fields will I need?”, and “What information do we need to track?”

Mike, a self-declared “sometimes perfectionist”, says that when you are designing software like WildTrax, simplicity and being straightforward is crucial. However, Chad notes that the effort behind the scenes can be  underestimated: “People assume that something is super simple because it is simple to use, but that’s because we designed it that way.”  Although simple to use, WildTrax hosts a very high volume of data  (it has uploaded point counts from more than 100,000 locations across Canada collated from multiple partner data sources by the Boreal Avian Modeling Project in cooperation with the ABMI’s Bioacoustic Unit) and requires many pieces to make it work smoothly.


Making Bats and Grouses Easier to “See”

Bat photo: Jordi Segers

Ruffed Grouse (Bonasa umbellus), photo: Meagan Butler

Dynamic ARUs is an area of WildTrax that Mike is proud of and thinks deserves more attention. Mike developed the architecture to dynamically generate spectrograms based on their frequencies in response to requests to support bats on WildTrax. Dynamic ARUs can detect sightings that even humans cannot detect, which translates to more accurate data. This is a major improvement over the past static format where users could only “see” up to 12,000 Khz. Currently, users are able to isolate the part of the audio spectrogram that interests them and “scan it out”—this will instantly send it to the server and redisplay the spectrogram based on the selected parameters. Think of it as fine-tuning the spectrogram to find your species of interest.”

An example of a dynamic spectrogram display on WildTrax.

Mike explains further, “A bat frequency may have been set from 0-60,000 Khz but the hearing range is approximately 20,000 Khz. So, you can’t actually hear most of the frequency but you can see from the spectrogram that it is a bat. This is all generated dynamically, pulling off the server in realtime and generating the first minute so that people can start working. And then behind the scenes it generates the rest of it.”  

Another species that’s become easier to detect is the Ruffed Grouse, whose brown feathers make it a difficult species to detect by eye. This bird makes a “thump, thump, thump” sound that the ARUs capture. The dynamic spectrograms on WildTrax then display the data/recordings that come off the ARU. Mike says the tool is always in development and could even be applied to other species such as whales, not currently on the platform.

Updates & MegaDetectors

With every WildTrax update comes new features and a more complicated backend. “It’s like building up a pyramid: to add another foot, it’s exponential,” says Mike. However, incorporating the most recent addition of Megadetector version 5 is something both Mike and Chad feel is a major milestone for WildTrax. Megadetector is an open source Microsoft model that automatically detects organisms and objects moving through camera images.  Chad explains “It will detect humans and animals and then it will draw a box around it and tag it.”

Mike and Chad admit that Megadetector was tricky to get going, but that was mainly due to how many independent components are required to all work together. Chad had to determine how to integrate Microsoft’s code with WildTrax’s software along with issues of deployment, upscaling, where to use it and what was necessary to make it work. In this case, Mike and Chad needed graphics cards and the support of virtual machines from Amazon Web Services (AWS). Following the process of research and development, architecture and UI/UX design, Chad figured out how to display the detections (i.e., bounding boxes) to users.

An example of Microsoft’s Megadetector in use on WildTrax.

 

 

 

 

 

 

 

 

 

 

On the Horizon

Mike, Chad and the rest of the WildTrax team are already hard at work on further updates. This includes implementing a new design for the WildTrax website that will divide public information and resources from data processing, making it easier and faster to navigate around the site. The Data Discover portal is also being revamped to increase its speed and processing power. Other potential future areas of growth will include working with AI for ARUs.


The Best Part

For Chad, the best part of working on WildTrax is “getting his fingers dirty” with troubleshooting, experimenting and research and development. “It’s just another form of problem solving…when I don’t need to problem solve, that’s when I stop enjoying it.” For Mike, the fact that people find WildTrax useful along with his genuine interest in ecology makes his work worthwhile. “I think (WildTrax) helps users do their jobs better, and it’s just fun working on software that uses AI, pictures and audio recordings of animals.”



A big thank you to all the members of the WildTrax team:

Corrina Copp (ABMI Information Centre Director ), Erin Bayne (ABMI Science Centre Co-Director, Bioacoustic Unit Director, steering committee member for the Boreal Avian Modelling Project and a Professor in the Department of Biological Sciences at the University of Alberta), Chad Klassen (Software Programmer), Alex MacPhail (Senior Acoustic Coordinator), Mike Packer (Senior System Analyst), Cassie Stevenson (Senior Wildlife Camera Coordinator), Sydney Toni (Knowledge Translation Specialist), and Monica Kohler (ABMI Operations Centre Director).