Geolocating a random island using geometry and CUDA programming
488 points by yassa9 24 hours ago | 78 comments

NKosmatos 23 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 ;-)
reply
yassa9 23 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 !
reply
jambalaya8 21 hours ago
agree! AWESOME work!
reply
bmurray7jhu 23 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

reply
openasocket 20 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.

reply
4gotunameagain 19 hours ago
Rumour has it that they achieved the first TERCOM using the then revolutionary bit slicing technology.
reply
yassa9 23 hours ago
oh, wow, I didnt know that existed, thank u, sure gonna look into it
reply
zer0x4d 20 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...
reply
yassa9 20 hours ago
omg wow, thats super hard, although cool ,
reply
zer0x4d 19 hours ago
It was cool, very fun 3 years of my life working as a part of that team :)
reply
CamperBob2 13 hours ago
Thanks for your service! Awesome work, I'm envious.
reply
lexlambda 24 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.
reply
GaryNumanVevo 22 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"
reply
yassa9 23 hours ago
yea , heard about them before, but didnt know that whole treasure till I really used it , impressive
reply
dwa3592 22 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
reply
deiptx 20 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".
reply
E-Reverance 10 hours ago
I don't see it, did he delete it?
reply
fhn 18 hours ago
EVERY technology could be used by a police state
reply
esafak 16 hours ago
It is a question of how adversely empowering the technology is.
reply
treyd 13 hours ago
A help with this is the sun is to the left and it seems to be midday, so you could answer the "cardinal direction" question just from the picture with "west ish", which is what it turns out to be.
reply
yassa9 13 hours ago
I tried to use the sun info , but honestly I couldn't at all,

thx for the tip

reply
treyd 9 hours ago
It'd probably be hard to do directly/algorithmically, but the shadows from the trees is what I was looking for visually.
reply
sllabres 19 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

reply
o4c 22 hours ago
Really great article! OP, you did an awesome job breaking down a complex problem into manageable chunks and synthesizing the solution.
reply
yassa9 22 hours ago
thanks, appreciate it
reply
ImJasonH 22 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

reply
yassa9 22 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
reply
phalanxx 23 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.
reply
yassa9 23 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

reply
StilesCrisis 22 hours ago
Just by reading your actual messages it's easy to see that you didn't write the blog post entirely by hand.
reply
yassa9 21 hours ago
ok
reply
StilesCrisis 22 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???)

reply
yassa9 22 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,

reply
voidUpdate 22 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
reply
yassa9 22 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)
reply
StilesCrisis 22 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.
reply
voidUpdate 6 hours ago
It does if you google the make and model to find out the lens parameters (assuming it isn't a fancy camera with interchangeable lenses)
reply
mattpk 15 hours 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.

reply
john_strinlai 14 hours ago
errors = llm, no errors = llm, any word from a list of hundreds = llm, absence of any llm-words = suspiciously like an llm instructed not to use those words, declare no llm was used = llm.

there is no winning. if you post something in 2026 or beyond, someone is going to exclaim "llm!". i feel badly for aspiring bloggers or writers. it's also getting rather annoying that 50% of comments on hn, regardless of the topic they are posted on, are the exact same comment about llms.

reply
yassa9 14 hours ago
really thank u John, I felt disappointed after those comments, someone below said that the pangram is against my text, I doubted myself and even went to online pangram : https://pangramaidetector.org/

spent literally half an hour copying each single section and paragraph (removed the code and Katex) and literally all the results are "0% AI-generated text" or max 15%

reply
yassa9 15 hours ago
haha : "write like a non-native English speaker"

man, Im actually non native speaker xDD

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

reply
bitcurious 23 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.
reply
yassa9 23 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

reply
cecinuga 24 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
reply
yassa9 24 hours ago
thaaank you !! Its my first ever challenge to do, and yea, I really found my passion
reply
mirzap 15 hours ago
Awesome write up! This is now one of my favorite articles on HN.
reply
yassa9 15 hours ago
thaaank u man, I really appreciate ur comment
reply
num42 21 hours ago
Good article! Off-topic, Is Palantir doing the same thing with its internal software to geolocate?
reply
consumer451 14 hours 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://en.wikipedia.org/wiki/Synthetic-aperture_radar

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

reply
pphysch 18 hours ago
Assuming they (and militaries broadly) do this +more, like actually using vision models trained on billions of geolocated landscape photos.
reply
yassa9 21 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
reply
Gooblebrai 15 hours ago
This is beyond impressive. Very good work!
reply
yassa9 15 hours ago
glad u liked it :D
reply
phkahler 17 hours ago
@yassa How long did this take?
reply
yassa9 16 hours 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

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

A million upvotes from me.

reply
yassa9 23 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
reply
ohyoutravel 14 hours ago
Great content too generally. Without the disclaimer I find myself less engaged with the content knowing it could be an LLM hallucination and am ready to eject at any moment.

btw Micronesia is _not_ a country!

reply
OkayPhysicist 14 hours ago
Micronesia is, too, a country. Referring to the Federated States of Micronesia as "Micronesia" is just as legitimate as referring to the USA as "America".
reply
souenzzo 13 hours ago
That's kind of seed finder but in real life
reply
ape4 23 hours ago
What about tides? Would the outline of the island be different based on the time of day.
reply
yassa9 22 hours ago
honestly, I didn't think about it, I just trusted the OSM polygons
reply
hhh 24 hours ago
great blog and great writeup
reply
yassa9 23 hours ago
thannks, really grateful :D
reply
aquafox 20 hours ago
Nice, but Rainbolt would do it in under a minute ;)
reply
yassa9 20 hours ago
haha, I actually agree
reply
naniel 20 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
reply
yassa9 20 hours ago
really glad that you liked it
reply
esafak 17 hours ago
Good job, Yassa. This is how you get a job in the AI age.
reply
yassa9 16 hours ago
haha, I wish , this is my first OSINT challenge to solve tho
reply
piterrro 24 hours ago
really impressive, could that be the way to locate yourself without GPS? assuming we know more/less where we are
reply
yassa9 23 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

reply
hnlb53nrpg 18 hours ago
Not glamorous but it works
reply
jf93ap29sh 21 hours ago
Loved it.
reply
grodes 24 hours ago
impressive
reply
NeoByte 4 hours ago
[flagged]
reply
_alphageek 13 hours ago
[dead]
reply
fenestella 24 hours ago
[dead]
reply
ligarota 20 hours ago
All of this to not use Google images
reply
melozo 20 hours ago
All of this to try and learn something new
reply
hno8a34nwn 22 hours ago
This is the real takeaway
reply