Create a 3D navigational mesh for pathfinding/finding

Avg Bid (USD)
Project Budget (USD)
$3000 - $5000

Project Description:
I am currently leveraging Recast + Detour to enable 2D navigation in a game world. I now need a solution for navigation/pathfinding in a 3D world.

I'm looking for a developer that has the expertise to take input geometry (normals/indices/vertices) and create an algorithm/solution that can get from (x1, y1, z1) to (x2, y2, z2) through flying in this same world.

Input Geometry:
• You can download a sample continent here: [url removed, login to view] (991MB) An example file is here: [url removed, login to view]
• Each file in the above archive represents a tile of size [url removed, login to view] x [url removed, login to view] x Z (Z is variable, you can calculate this)
• The entire continent is within the range: (-17066.66656, -17066.66656, Z) to (17066.66656, 17066.66656, Z)

1. Console application to: Convert geometry into navigational mesh files (the output file will match the name of the input, but with a different extension)
a. A settings header file must exist to allow easy changing of parameters (such as a walkable slope angle, etc...)
2. Console application to: Read in a continent (mesh files created by your first solution) in a thread safe fashion, store the information in memory and calculate a path between 2 points
a. It is very important that the calculating from A to B is thread-safe. After your work is complete, I will use a client/server model with multiple threads to handle calculations from A to B.
b. It needs to be fast, calculating a route needs to happen in less than 50ms
c. See the attached document (CaclulateRoute.docx) for more detailed requirements on the CalculateRoute function, there are more

You can design the solution, but I assume your mesh files would be a data structure storing information on what is traversable/flyable, potentially by storing flood fills, etc… Then you will know what areas are flyable vs. not flyable due to things like trees, mountains, buildings, water, etc…

Note: I'm not the expert here, at all, that's why I'm trying to find someone :) So I'm open to whatever solution you think would work.

I just need an end state where I can load in the nav mesh files created from the input geometry and get a path from A to B (using something like A*).

I'm using [url removed, login to view] for 2D pathing right now, feel free to leverage this an adapt if you’d like. Here is an example of what it returns (for 2D pathing): [url removed, login to view]

I can provide the 2D solution as a starting point, but the mesh generation is a combination of objective-C and C++, and requires you to own a mac to run it (as I created a GUI).

Summary of Requirements:
• Written in C++ (to be compiled on unix, do not use windows specific code)
• 2 Console applications
o 1 to create mesh files
o 1 to calculate A to B by reading in the above mesh files (thread safe) in less than 50ms

Skills required:
Algorithm, C++ Programming, Mathematics, OpenGL
Additional Files: CalculateRoute.docx
About the employer:
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.

$ 4000
in 40 days
Hire bchandra1955
$ 3666
in 99 days
Hire TDA91
$ 5000
in 25 days
$ 3000
in 30 days
$ 3000
in 15 days
$ 4500
in 25 days
Hire rbmgsoftware
$ 4000
in 30 days
Hire mobitelco
$ 4500
in 30 days
$ 4500
in 40 days
$ 5000
in 30 days