Find where a photo was taken
$250 reward. Ended . Results in. What to build: Write an agent that looks at street-level photos from anywhere on Earth and says where each was taken.
Winning solution
Opus 5.5 two looks, pooled, gateway-exact budget
1st place, @icantcodefyi, $50
Paid rewards
20 rewards paid in USDC on Solana, each listed with its transaction signature.
$50.00 USDC @icantcodefyi
Find where a photo was taken, 1st place, Paid
4AWpLgu8itghMXeFmf5zqAFTpnzJA3EVCuYNA2tRUUNGaMEEwvbDSqtSRn6ebmDJTuvwqaqSQJRYP81XobwoB73D
$35.00 USDC @haski007
Find where a photo was taken, 2nd place, Paid
dMFLuF2YL9D1J4YdqRgB4GoJohgKfZ5LuGEFgvBsPJuDnSo7Zct69N5MhnrBoG6hi8G7tnyfM73MJpNm25ZFoCT
$25.00 USDC @gentle-badger-68
Find where a photo was taken, 3rd place, Paid
3pAUqzzDrt8oNf3VnLs89swVQnapAwYKozo8Mt3cCT7z4NXkteHoxkrbA9z3b7qB65xaemSvHeaSWiu7sFErg5ji
$10.00 USDC @arzenzzz
Find where a photo was taken, 4th place, Paid
5zLggecrCAFBwmApK98nK58zqC8e31Mzc2fU33zQKKqEncXVfqhHdKKL9fyR7j2EMJCs8jen1sBxKm8PNd6PzFUG
$10.00 USDC @ronigrv
Find where a photo was taken, 5th place, Paid
4eSVsjDiLmThbmobUtcL1FCJgQSVv42xJ6FS5yEG55wFjFWS4NRCp34eNUKQdqnnjXU66zYB4DUqXLnxjw8JffHk
$10.00 USDC @uruteric
Find where a photo was taken, 6th place, Paid
2kZm5KFkEmNSyoxrKQ4242rZxB2ZqwwoCWDWKdSGze5yvTfDm6y8ya9gFXNKWt1CHyTY5L88Vq3CVYQXfbEkMmLP
$10.00 USDC @justinrzx
Find where a photo was taken, 7th place, Paid
4CZmpYS4Yx9EMLjMgahjj7aQRBSNjafQWdJ44bLZjbsCUVoQwkpY3GtZiY8Rh2WQ1o8w9uoPydDKL232rWvcztuS
$10.00 USDC @snowflower9x
Find where a photo was taken, 8th place, Paid
3jQS8oddJwL5LmuVdFYWpDMBCV8chm9FctKVSRwTanmQkojw78QjiBFsv7Bd8MYKQyitvQJBSYp7gdqgWRsFzYvc
$10.00 USDC @cheneyc9
Find where a photo was taken, 9th place, Paid
4ozvp1FThxjhZnWDYycpYwWGB3No4G27TZyUBeFtjSjSNwS4vNfZYZuqAcDyumCuXLZkQGfTSUnK4NzgihRf5iMx
$10.00 USDC @ogsylas
Find where a photo was taken, 10th place, Paid
4PHchNRtfm3LcqRMistVE6j72wXzc7SyUnPpiq2oiNPoMuPvFkxCqNkxfgeyna9Bvjo15KTdqY8mGWsDbPnCik6i
$7.00 USDC @crave
Find where a photo was taken, 11th place, Paid
5Vv1YUafiGqLdkxw8rHK9obe9BR6q1iGahsQkRxDLmosr3j9nFTY1a3YBEnQhzXdrArgZnDhYQFwTTY1sTCPKFGV
$7.00 USDC @d0txyz
Find where a photo was taken, 12th place, Paid
3xQNXsUpWMTz9PSY1uAQixtjQvWFDfjcfzaCFvXSdsWK2hn9Nrg1MyfcVHHEncnjwywMgJ4sRopWju6Vp78Gpm1w
$7.00 USDC @elsevee
Find where a photo was taken, 13th place, Paid
2jKdemEQ64wrL6JtznAPfrSKoDQi5v2vt9p45aPK5e2Uzck3pUK5ir2CmkSRBUfG56LsY2qkiZQECUSdAK4DMXzc
$7.00 USDC @ryanp1632-netizen
Find where a photo was taken, 14th place, Paid
2mpUHpbEcR1AeH13vSLxurttyZXgvXZEmKFB9nWRfEyH3ceW5z1JAjMy6d7iCpjM1fqzzoL89MMdi8ehsfwaZ8fd
$7.00 USDC @mihva
Find where a photo was taken, 15th place, Paid
rNRcjimjV4RLkpWVgvcyP8TqrXNN8XXL1EhMeiRAN1t4ShFUAknL3quT5nqmCZ1g1r6VANgm4222TiZmKvmGv4u
$7.00 USDC @vivid-lynx-11
Find where a photo was taken, 16th place, Paid
45TweZ7aEvkcyEVakZ5d9AsZjXLSxbUPSztie3QJ5DcDWMASuAaPYycWDJ4XJWcXpZNdxbPM9LXuwjbwYAjqTR83
$7.00 USDC @buth2024
Find where a photo was taken, 17th place, Paid
4REz4qHyqEkqWvcHxCjg5SqVeUG6ysQ4V7Sr95k6bPNes3tJRuqPJuYuYML6mqgrSKiirnr9qyej4kcwAGN87Ykm
$7.00 USDC @xson7
Find where a photo was taken, 18th place, Paid
4LrgW1R29fVdbExcs1rbBk8vgtKct3zCFuDB2HzjWE4cBgiTuQrcFZtacRWyHKQR8wukafC642gRtckM6NazUvZt
$7.00 USDC @hazel-kestrel-90
Find where a photo was taken, 19th place, Paid
5SWRz7zqXBzjjijVhb6diWS2BmFJwpWijdFrCztVBaAuaX7eB97a93AyGD4vgPoCLyxx16qmLEw56q7oSb1XEkTk
$7.00 USDC @gibrantx-have
Find where a photo was taken, 20th place, Paid
YawVMDfFJasVSgcfx8AXneb8d725GuWBBERx7NVsbQWuPyYLNixuSpG6mcin1tf6h4XtwkZxjmsK2aoYuAqXJyZ
This bounty's rewards are paid in USDC on Solana from make.fun's reward wallet, with no escrow.
Full brief
A photo of a road, a street or a field and nothing else: no caption, no metadata, no GPS. Where on Earth was it taken? We want an agent that answers as closely as it can, and we grade it on street-level photos nobody has seen when entries close.
Context
Each entry is an agent. A trial shows it 25 photos from OpenStreetView-5M (street-level photos by Mapillary contributors, from 225 countries and territories) through a small API, and it answers a latitude and longitude for each. It may ask vision models through our metered gateway on your own API key, pushed before you submit, within $1.00 a trial, to Anthropic's and OpenAI's models, all of which read images, or place the photos with its own code; no model call is required. The house pays for none of your agent's model calls. Your error on a photo is the great-circle distance from your answer to where it was taken, and an unanswered photo counts 20,015 km, the farthest apart two places can be. Entries rank on their total error over the 150 photos of 6 instances drawn after the deadline: the lower, the better. The board also shows the median error and the share of photos within 1, 25, 200, 750 and 2,500 km, the field's standard thresholds.
The scored photos come from a sealed pool of 150 photos, carried in the kit encrypted under a key that is revealed only with the results; each of the 6 scored instances shows 25 of them, no photo in two, in an order drawn from the first drand round emitted 5 minutes after the deadline. Before the deadline each submission runs one trial on the first practice instance, and all 3 practice instances, answers included, are in the kit.
Deliverables
- A public GitHub repository owned by your own GitHub account, created after the competition opens, under an OSI-approved license, with your agent at main.ts (Node 22) or main.py (Python 3.13) in the repository root
- The AI coding-agent transcripts of the sessions that built it (Claude Code, Codex, Cursor and others), uploaded with each submission
Requirements
- Node 22 or Python 3.13, the standard library plus source you vendor into the repository: nothing is installed before the agent runs
- Your agent reaches only the env and the model gateway; its model calls name a model on the allowlist, stay within the trial's budget and send every image inline, as base64: the gateway refuses a call that asks the vendor to reach the network (a web search, web fetch or MCP tool, an image or file by URL)
- No model of its own: any model your agent uses is an allowlisted one, through the gateway, and your repository carries no trained weights, embeddings or table of photos
- A repository within its size caps: at most 128 KiB in any one file and 256 KiB in all, where the files of an allowlisted official Anthropic or OpenAI SDK release, vendored unmodified, are left out
- Model calls are optional: an entry that calls a model runs it on your own Anthropic or OpenAI API key, pushed before you submit, as the house pays for none, and one with no key runs model-free and places the photos with its own code
- Deterministic given its model's answers: no wall clock and no unseeded randomness, so the replay gives the same answers
- At most 1,800 seconds, 1 CPU, 1,024 MB and 64 processes per trial
- At most 3 submissions a day and 6 in all; your last submission before the deadline is your final entry