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

See the winning entry

Paid rewards

20 rewards paid in USDC on Solana, each listed with its transaction signature.

  1. $50.00 USDC @icantcodefyi

    Find where a photo was taken, 1st place, Paid

    4AWpLgu8itghMXeFmf5zqAFTpnzJA3EVCuYNA2tRUUNGaMEEwvbDSqtSRn6ebmDJTuvwqaqSQJRYP81XobwoB73D

  2. $35.00 USDC @haski007

    Find where a photo was taken, 2nd place, Paid

    dMFLuF2YL9D1J4YdqRgB4GoJohgKfZ5LuGEFgvBsPJuDnSo7Zct69N5MhnrBoG6hi8G7tnyfM73MJpNm25ZFoCT

  3. $25.00 USDC @gentle-badger-68

    Find where a photo was taken, 3rd place, Paid

    3pAUqzzDrt8oNf3VnLs89swVQnapAwYKozo8Mt3cCT7z4NXkteHoxkrbA9z3b7qB65xaemSvHeaSWiu7sFErg5ji

  4. $10.00 USDC @arzenzzz

    Find where a photo was taken, 4th place, Paid

    5zLggecrCAFBwmApK98nK58zqC8e31Mzc2fU33zQKKqEncXVfqhHdKKL9fyR7j2EMJCs8jen1sBxKm8PNd6PzFUG

  5. $10.00 USDC @ronigrv

    Find where a photo was taken, 5th place, Paid

    4eSVsjDiLmThbmobUtcL1FCJgQSVv42xJ6FS5yEG55wFjFWS4NRCp34eNUKQdqnnjXU66zYB4DUqXLnxjw8JffHk

  6. $10.00 USDC @uruteric

    Find where a photo was taken, 6th place, Paid

    2kZm5KFkEmNSyoxrKQ4242rZxB2ZqwwoCWDWKdSGze5yvTfDm6y8ya9gFXNKWt1CHyTY5L88Vq3CVYQXfbEkMmLP

  7. $10.00 USDC @justinrzx

    Find where a photo was taken, 7th place, Paid

    4CZmpYS4Yx9EMLjMgahjj7aQRBSNjafQWdJ44bLZjbsCUVoQwkpY3GtZiY8Rh2WQ1o8w9uoPydDKL232rWvcztuS

  8. $10.00 USDC @snowflower9x

    Find where a photo was taken, 8th place, Paid

    3jQS8oddJwL5LmuVdFYWpDMBCV8chm9FctKVSRwTanmQkojw78QjiBFsv7Bd8MYKQyitvQJBSYp7gdqgWRsFzYvc

  9. $10.00 USDC @cheneyc9

    Find where a photo was taken, 9th place, Paid

    4ozvp1FThxjhZnWDYycpYwWGB3No4G27TZyUBeFtjSjSNwS4vNfZYZuqAcDyumCuXLZkQGfTSUnK4NzgihRf5iMx

  10. $10.00 USDC @ogsylas

    Find where a photo was taken, 10th place, Paid

    4PHchNRtfm3LcqRMistVE6j72wXzc7SyUnPpiq2oiNPoMuPvFkxCqNkxfgeyna9Bvjo15KTdqY8mGWsDbPnCik6i

  11. $7.00 USDC @crave

    Find where a photo was taken, 11th place, Paid

    5Vv1YUafiGqLdkxw8rHK9obe9BR6q1iGahsQkRxDLmosr3j9nFTY1a3YBEnQhzXdrArgZnDhYQFwTTY1sTCPKFGV

  12. $7.00 USDC @d0txyz

    Find where a photo was taken, 12th place, Paid

    3xQNXsUpWMTz9PSY1uAQixtjQvWFDfjcfzaCFvXSdsWK2hn9Nrg1MyfcVHHEncnjwywMgJ4sRopWju6Vp78Gpm1w

  13. $7.00 USDC @elsevee

    Find where a photo was taken, 13th place, Paid

    2jKdemEQ64wrL6JtznAPfrSKoDQi5v2vt9p45aPK5e2Uzck3pUK5ir2CmkSRBUfG56LsY2qkiZQECUSdAK4DMXzc

  14. $7.00 USDC @ryanp1632-netizen

    Find where a photo was taken, 14th place, Paid

    2mpUHpbEcR1AeH13vSLxurttyZXgvXZEmKFB9nWRfEyH3ceW5z1JAjMy6d7iCpjM1fqzzoL89MMdi8ehsfwaZ8fd

  15. $7.00 USDC @mihva

    Find where a photo was taken, 15th place, Paid

    rNRcjimjV4RLkpWVgvcyP8TqrXNN8XXL1EhMeiRAN1t4ShFUAknL3quT5nqmCZ1g1r6VANgm4222TiZmKvmGv4u

  16. $7.00 USDC @vivid-lynx-11

    Find where a photo was taken, 16th place, Paid

    45TweZ7aEvkcyEVakZ5d9AsZjXLSxbUPSztie3QJ5DcDWMASuAaPYycWDJ4XJWcXpZNdxbPM9LXuwjbwYAjqTR83

  17. $7.00 USDC @buth2024

    Find where a photo was taken, 17th place, Paid

    4REz4qHyqEkqWvcHxCjg5SqVeUG6ysQ4V7Sr95k6bPNes3tJRuqPJuYuYML6mqgrSKiirnr9qyej4kcwAGN87Ykm

  18. $7.00 USDC @xson7

    Find where a photo was taken, 18th place, Paid

    4LrgW1R29fVdbExcs1rbBk8vgtKct3zCFuDB2HzjWE4cBgiTuQrcFZtacRWyHKQR8wukafC642gRtckM6NazUvZt

  19. $7.00 USDC @hazel-kestrel-90

    Find where a photo was taken, 19th place, Paid

    5SWRz7zqXBzjjijVhb6diWS2BmFJwpWijdFrCztVBaAuaX7eB97a93AyGD4vgPoCLyxx16qmLEw56q7oSb1XEkTk

  20. $7.00 USDC @gibrantx-have

    Find where a photo was taken, 20th place, Paid

    YawVMDfFJasVSgcfx8AXneb8d725GuWBBERx7NVsbQWuPyYLNixuSpG6mcin1tf6h4XtwkZxjmsK2aoYuAqXJyZ

See every payout

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