Inspiration

For so long, I have seen Computer Scientist students struggle with pathfinding algorithms. We see Pathfinding as an important tool for students to learn how to code complex systems to interpret data, which is essentially the hallmark of coding. Unfortunately, schools do not prepare students to adapt to changes in our data as we are only presented with traditional 2D data with simple systems since creating a complicated path-finding algorithm is complicated and easily prone to logical errors. To help aid students in handling more realistic and ever-changing data seen in the true 3D world, we built this helping implement. As we reach into the future, the importance of software in interacting with the 3D world is constantly expanding from autonomous vehicles and delivery services, and so must the next generation adapt.

What it does

Students can use the simple API we provide to build, test, and visualize their own pathfinding algorithms.

How we built it

We used OpenGL to implement instanced rendering of cubes to represent obstacles, the starting locations, and the ending locations. We then expose the APIs to the students, and they will place rendering code in appropriate places in their algorithm for the best visual experiences. Inputs events and boilerplates are automatically handled by our system.

Challenges we ran into

One of the biggest challenges we faced was that we needed to program the GPU from the CPU side correctly to properly handle the buffers we passed in the draw things correctly. We also had to do a lot of linear algebra for cameras and the transformation of instantiable objects.

Accomplishments that we're proud of

We were able to abstract so many state management code (mouse input, keyboard input, window events, camera, buffers for rendering pipelines, OpenGL context, GLFW calls) and math away and leave our users with an easy-to-understand API.

What we learned

  1. Organize and explain complicated concepts to team members.
  2. The effectiveness of instanced rendering
  3. Efficient way to abstract procedures ## What's next for pathfinding-visualizer-3d We provided documentation for the service and expect students to implement and alter the features provided. We will also expand the complexity of things the program can visualize for closer-to-real-life applications.

Built With

Share this project:

Updates