26

2nd place - Canadian Engineering Competition 2024

Development of a 3D pathfinding algorithm based on priorities of ressources in a virtual 2D environment through time.

The Canadian Engineering Competition is the final round of competition in the Engineering Competition series. It is a national competition that brings together the top engineering students from across Canada to compete in eight different competitions. The competition is held annually in March and is hosted by a different university each year. Participants represent their university in teams of four and compete in one of the eight categories: Junior Design, Senior Design, Consulting, Debate, Innovative Design, Programming, Re-Engineering, and Parliamentary Debate. In 2024, the competition was hosted by the University of Calgary.

The representatives of each province are decided by the result of the previous rounds, which include at the school level and at the provincial level.

Our team won the 2nd place in the 2024 edition of the Canadian Engineering Competition in the programming category. We participated in an 8 hour programming competition as a team of 4 students from McGill University. Our task was to an algorithm that would find the optimal path for an excavator to extract ressources in a 2D environment over the course of 30 days, given different ressources location on different days and different priorities for these ressources.

Our solution was to view the virtual environment as a 2D environment, with a 3rd dimension represented by time. We then used the A* pathfinding algorithm to find the optimal path for the excavator to extract the ressources. The algorithm was implemented in Python, and a frontend was implemented using Angular to visualize the progress of the excavators through time.

For more information on the competition, checkout the official Competition Case document on GitHub.