gezgin is a simple pathfinding visualizer application

Explore Istanbul's streets visually with gezgin, our pathfinding tool. Made using C++ and raylib, Gezgin helps you see different routes through the city. Easy to use and visually engaging, it's a great way to navigate Istanbul's roads.

gezgin highly inspired by a YouTube video from Navigraphix

features

Istanbul roads visualization

Cross-platform

Overpass API OSM Json parsing

Geospatial indexing

Geospatial standartization and scaling

Dijkstra pathfinding

Adjacency list for data structure

60 FPS 300k node/way rendering (RenderTexture)

usage

gezgin.mp4

build

gezgin is a cross-platform tool, allowing compilation for Linux, Windows, and macOS. To compile gezgin, you'll need CMake, make, raylib, and gcc installed on your system. gezgin also offers automated dependency installation, simplifying the setup process for users.

Create build folder

mkdir build

Navigate to the build folder

cd build

CMake

cmake .. -G " Unix Makefiles "

Compile gezgin

make

Run binary file

./gezgin.exe

afterword

I developed this application before i graduated from university. It might have some structural problem, after all i am a newbie graphic lover. When i started this project, i thought it would be easier. But my inexperience comes from here, it didn't happen that way. Geohash and conversion of latitude and longitude into the Cartesian system are things I've learned.

I used a data structure that effectively holds more than 300k nodes. At first I considered a neighborhood matrix, but when I realized it required 77GB of ram I had to look for other methods.

Generating more than 600k rows in each frame reduced the FPS to 15. I fixed it to 60 fps by drawing the paths in RenderTexture2D. Thanks to the raylib subreddit for this help.

Raylib is really a great tool. I love working with it and will continue to do so.