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
- 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)
gezgin.mp4
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
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.