# Locating a Random Island Using Geometry and CUDA Programming

The process of determining an island's coordinates using geometry and parallel computing.

- **Source:** [Hacker News (news.ycombinator.com)](https://brifing.si/source/13c923cd-6d99-442b-9b8b-1181f4d8cd91)
- **Published:** 2026-08-19
- **Topic:** [Data & AI](https://brifing.si/c/data-ai)
- **Original article:** <https://yassa9.github.io/osint/gralhix-004/>
- **On Brifing:** https://brifing.si/s/51c8942a-3622-49ae-9e59-10e725817494

## Project Goal and Initial Steps

This project aims to identify an island's name, coordinates, and the camera direction from a photo. The developer chose to solve this challenge using math and programming instead of tools like Google Lens. The first step was checking the photo's metadata, but no EXIF or GPS data was found. This indicated the need for more complex methods.

## Geometric Modeling

The photo showed three landmasses. The developer created a geometric model to calculate their relative distances and angles. A GUI was used to record pixel coordinates and compute the triangle's geometry. This step aimed to create a 'fingerprint' for locating the island. A ±20% tolerance band was added for precision.

## Dataset and Filtering

OpenStreetMap's global coastline dataset was used, which is 882 MB in size and uses the WGS84 coordinate system. The developer filtered out landmasses outside the tropics, leaving 141,131. Each landmass's neighbors within 5 km were counted, and those with more than 10 were discarded, as they didn't match the isolated group in the photo.

## Clustering and Triangle Candidates

For each landmass, neighbors within 20 km were found. Those with at least 2 neighbors (3 points total) formed a cluster. Every combination of 3 points in a cluster became a triangle candidate. Large clusters were capped at 60 points, selected via stratified sampling based on size.

## Parallel Computation with CUDA

Each triangle candidate was assigned a CUDA thread. Threads sorted the 3 points by size, identifying the smallest (P0). The other two points (P1 and P2) were determined using a 2D cross product. Each thread computed the triangle's angle and side ratio, comparing it to the 'fingerprint.' Out of 80.7 million candidates, 158,784 passed the filters.

## Results and Performance

The process completed in 204.1 ms using an NVIDIA GeForce RTX 3050 GPU, consuming 5.169 GB of VRAM. Overlapping results from the same physical triangle were merged. This project showcases how geometry and parallel computing can be applied to geographical discovery.

## Sources covering this story

- https://yassa9.github.io/osint/gralhix-004/ — 

---

_Summary written by Brifing from the original reporting. Copyright in the original article belongs to its publisher; read the full piece at the link above._
