My first hurdle has been encountered, and I now have a decision to make which could alter the entire direction of my Project (if I let it).
Whilst researching Congealing algorithms, I have come across an Objective-C demo (found on the Congealing page) and also an adapted C++ implementation by the same team (hosted on Bitbucket).
Neither of these languages I am familiar with, so I must consider do I either:
1. Implement a Java version of the algorithm
Pro: if done well and tested I could possibly then go on to share with the world
Con: would this take me away from focusing on the final implementation? How long would this take me to implement?
2. Learn a new programming language (although I have briefly looked at C++ before)
Pro: Learning a new language! Wouldn't have to write out a whole new implementation of the Congealing algorithm...
Con: How long would it take me to grasp this new language? Would my final product be as good as it would be in Java?
This is something I will have to ponder on this week . I'll make sure to post about my decision once it has been made and talked over with my peers and supervisor.
Post Edit:
Whilst speaking through my issue with Charles Newey (https://assemblyco.de/), he suggested I looked at calling the Objective C / C++ code from the Java code. This was not something I had come across before, but you can ''wrap'' the code and create the necessary .java files. SWIG seems a popular choice on StackOverflow so I will discuss the viability of all the options with Neil and decide the direction to take.
At the moment using SWIG seems a good fit, however I will continue to research into alternatives (such as this JNA interface)'