Geolocating a random island using geometry and CUDA programming

(yassa9.github.io)

374 points | by yassa9 9 hours ago

30 comments

  • NKosmatos 8 hours ago
    Excellent write up and an enjoyable read! Reminds me of the “good old times” where posts on HN were written by humans and with a specific writing style like yours. You could’ve used a little bit more of geoguessing to narrow down results, or do a brute force visual check on the last hundred or so ;-)
    • yassa9 8 hours ago
      yea, thanks :D , I used a tiny idea from geoguessing, that I banded the search on islands only in latitude between -30 to +30 deg. based on the sky and the tropical vibes in the img , and it worked !
    • jambalaya8 6 hours ago
      agree! AWESOME work!
  • bmurray7jhu 8 hours ago
    For drones and missiles, this technique is known as Terrain Contour Matching. If terrain contour are measured optically, navigation is independent of RF jamming, unlike GNSS.

    https://en.wikipedia.org/wiki/TERCOM

    • openasocket 5 hours ago
      It’s an effective a surprisingly old technique, being used on cruise missiles as early as the 1960s. It actually precedes GPS and satellite navigation by several decades. Im continuously blown away by what engineers were able to do in that era with such limited computing power. Take a look at SAGE, for example.

      Fun fact: the usage of TERCOM in the tomahawk missile actually limited its ability to be used in Operation Desert Storm. Routes had to be planned to go around actual topographical features, instead of hundreds of miles of flat desert.

      • 4gotunameagain 4 hours ago
        Rumour has it that they achieved the first TERCOM using the then revolutionary bit slicing technology.
    • yassa9 8 hours ago
      oh, wow, I didnt know that existed, thank u, sure gonna look into it
  • zer0x4d 5 hours ago
    Super fun! Interestingly, this is how JPL was able to significantly reduce the Mars 2020 landing radius on Mars. Cameras onboard take pictures of the terrain and match that to maps to figure out where the lander is. https://www-robotics.jpl.nasa.gov/what-we-do/flight-projects...
    • yassa9 5 hours ago
      omg wow, thats super hard, although cool ,
      • zer0x4d 4 hours ago
        It was cool, very fun 3 years of my life working as a part of that team :)
  • deiptx 5 hours ago
    I find it highly ironic that his is the second article on the main page right after "avoid building technologies that could be used by a police state".
    • fhn 3 hours ago
      EVERY technology could be used by a police state
      • esafak 1 hour ago
        It is a question of how adversely empowering the technology is.
  • lexlambda 9 hours ago
    OpenStreetMap data really is a godsend for such OSINT purposes. Works much better in populated areas too, with more features like roads, shops, electric lines that can be used to search.
    • GaryNumanVevo 7 hours ago
      Claude / Gemini + OSM Turbo is a crazy you can do natural language queries like "find me a bus stop in germany that's surrounded by more than 5 three story buildings"
    • yassa9 9 hours ago
      yea , heard about them before, but didnt know that whole treasure till I really used it , impressive
  • sllabres 4 hours ago
    People liking this post will probably like this [1] and especially these [2] from the channel. All solved using algorithms and map data.

    [1] https://www.youtube.com/@colsto

    [2] https://www.youtube.com/watch?v=eY-W9gmwxhg https://www.youtube.com/watch?v=nzytWZPyuEw https://www.youtube.com/watch?v=rkmXs_7hELg

  • dwa3592 7 hours ago
    This is awesome. I worked on something similar a few months ago. It is a general purpose navigation system based on TERCOM and dead reckoning - https://github.com/deepanwadhwa/anumaan
  • mattpk 38 minutes ago
    > NOTE: this is a genuine human work, didnt use LLM generation.

    I'm sorry, but I don't believe this. The article reads like LLM text post-edited by an AI prompted to "write like a non-native English speaker, replace you for u, make errors, etc".

    The other pages on your site are cough, "the smoking gun". For instance, your "Suckless, single binary, zero-dependency CUDA/C++ inference engine for NVIDIA's DVLT. Reconstructs 3D scenes from a handful of images (depth + rays + camera pose => point cloud), no python, no torch, no framework." project.

    • yassa9 23 minutes ago
      haha : "write like a non-native English speaker"

      man, Im actually non native speaker xDD

      "replace you for u" ???? what ?!

  • mirzap 1 hour ago
    Awesome write up! This is now one of my favorite articles on HN.
    • yassa9 1 hour ago
      thaaank u man, I really appreciate ur comment
  • Gooblebrai 52 minutes ago
    This is beyond impressive. Very good work!
    • yassa9 48 minutes ago
      glad u liked it :D
  • o4c 7 hours ago
    Really great article! OP, you did an awesome job breaking down a complex problem into manageable chunks and synthesizing the solution.
    • yassa9 7 hours ago
      thanks, appreciate it
  • ImJasonH 7 hours ago
    Excellent read, I loved it.

    Incidentally, the image seems to be the one the resort uses on their website! https://oanresort.wixsite.com/chuuk

    • yassa9 7 hours ago
      thanks, and yea, it should be solved easily by passing the img to google lens, the website is the first result, but I found a fun opportunity to solve it in different way
  • phkahler 2 hours ago
    @yassa How long did this take?
    • yassa9 1 hour ago
      do u mean the whole work ? I spent at first 3 "whole" days in research, trial and error trying different methods and scripts, like for example tried the depth estimation to build upon it, failed many times till I gave up then came back after a week and spent another 4 days till succeeded then the refining, cleaning and organizing of all of that, also structuring and writing the blog, took about another 3 days

      you can say that total is ~10 days of work

  • num42 7 hours ago
    Good article! Off-topic, Is Palantir doing the same thing with its internal software to geolocate?
    • consumer451 5 minutes ago
      I have no idea about that particular company, but wouldn't satellite-based synthetic aperture radar datasets make this "super easy?" I would imagine so.

      https://eos.com/blog/what-is-sar-synthetic-aperture-radar-im...

    • pphysch 3 hours ago
      Assuming they (and militaries broadly) do this +more, like actually using vision models trained on billions of geolocated landscape photos.
    • yassa9 6 hours ago
      thanks ! no idea about Palantir, but in my opinion, this can not be automated , needs much manual work and tons of trial and error
  • bitcurious 8 hours ago
    It’s interesting that most top contenders don’t pass the eyeball halo check, seems like there’s room to optimize that filter in code.
    • yassa9 8 hours ago
      yea, good observation, my guess is its the data more than the filter. OSM coastline polygons are generalized to different degrees depending on who traced them and from what imagery, so the fine shape detail a halo check would key on often is not in the geometry at all.

      I observed that at the end, didnt push on it further though. It already passed and I was super exhausted

  • cecinuga 9 hours ago
    I read all the process, literally awesome, i don't do OSINT (i know only what is this) and i think that's very cool
    • yassa9 9 hours ago
      thaaank you !! Its my first ever challenge to do, and yea, I really found my passion
  • esafak 2 hours ago
    Good job, Yassa. This is how you get a job in the AI age.
    • yassa9 1 hour ago
      haha, I wish , this is my first OSINT challenge to solve tho
  • phalanxx 8 hours ago
    What do you mean by no LLM generation if an LLM did all the coding based on reading through the .py files? Pangram isn't kind to "your" text either.
    • yassa9 8 hours ago
      I meant the blog itself, the writeup, the steps and the walkthrough all by hand , the final code u see is llm refined, of course, I wont publish my messy and spaghetti files with much tests, failures and dead ends, also vizualizations functions to produce that green maps , and faulty versions of them

      but you are right, I should add that

      • StilesCrisis 7 hours ago
        Just by reading your actual messages it's easy to see that you didn't write the blog post entirely by hand.
    • StilesCrisis 8 hours ago
      "No EXIF, no GPS, no camera make or model."

      Yeah, a human definitely wrote this. Nothing fishy here. (Why would the camera make or model matter???)

      • voidUpdate 7 hours ago
        If you know the camera make and model, you might be able to get lens parameters and get better estimates of real world geometry from the image
        • yassa9 7 hours ago
          yea thank u, that's another part, but mainly it would hard although knowing that, because you need to know elevation of the drone or the camera, which is also extremely difficult (I already mentioned that in the blog)
          • StilesCrisis 7 hours ago
            The camera make and model wouldn't tell you the lens parameters. The EXIF would, but that was already covered in the triplet.
      • yassa9 7 hours ago
        ok, if u came with the whole conclusion by only this line, ok , but to answer u, ( I hate to justify myself , but have to ) I started writing the blog after I started solving another challenge from gralhix : https://gralhix.com/list-of-osint-exercises/osint-exercise-0...

        and the part of the solution came from the metadata, the camera model, you can check urself, so when I came back to write the blog, it just came by flow,

  • ape4 8 hours ago
    What about tides? Would the outline of the island be different based on the time of day.
    • yassa9 7 hours ago
      honestly, I didn't think about it, I just trusted the OSM polygons
  • aquafox 5 hours ago
    Nice, but Rainbolt would do it in under a minute ;)
    • yassa9 5 hours ago
      haha, I actually agree
  • hnlb53nrpg 3 hours ago
    Not glamorous but it works
  • naniel 5 hours ago
    this is really cool. fun little problem turned into great write-up, and i love that you included the code snippets. thanks for sharing
    • yassa9 5 hours ago
      really glad that you liked it
  • hhh 9 hours ago
    great blog and great writeup
    • yassa9 9 hours ago
      thannks, really grateful :D
  • jf93ap29sh 6 hours ago
    Loved it.
  • piterrro 9 hours ago
    really impressive, could that be the way to locate yourself without GPS? assuming we know more/less where we are
    • yassa9 9 hours ago
      yea, search about geoguessing on youtube, people like Rainbolt, https://www.youtube.com/@georainbolt

      they literally memorize and get patterns of every possible road, place, map of any area (scanned by google earth), getting exact coordinates from single image, and play competitions and world cup based on that

      they do really nice videos about finding places in old photos people ask for

  • ohyoutravel 9 hours ago
    > NOTE: this is a genuine human work, didnt use LLM generation.

    A million upvotes from me.

    • yassa9 8 hours ago
      haha, thanks :D I was hesitant to whether write it or not, but I really really despise llm generated posts and blogs and im glad someone appreciated it
  • grodes 9 hours ago
    impressive
  • fenestella 9 hours ago
    [dead]
  • ligarota 5 hours ago
    All of this to not use Google images
    • melozo 5 hours ago
      All of this to try and learn something new
  • hno8a34nwn 7 hours ago
    This is the real takeaway