Hacker News new | past | comments | ask | show | jobs | submit login
Why Bother with What Three Words? (shkspr.mobi)
948 points by MagicAndi on Mar 28, 2019 | hide | past | web | favorite | 323 comments

The author didn't touch upon what I think is the biggest issue with this. I can be pretty damn sure that 51.50799,-0.12803 is really close to 51.51799,-0.12803 and even closer to 51.50800,-0.12803 just by looking at the numbers because they follow a decimal precision style location system. However, I have no idea if mile.crazy.shade is next to mouth.award.bowl or if they are 1,0000 miles apart.

If anything, they should have designed it such that it follows an IP style system where you get more precise/specific with each period and the words more to the left indicate a larger area and we drill down to other smaller areas with each period. And you could make words in the specific section be similar to things that are near it. For example, it could roughly translate to state.town.subsection within a country. So mouth.award.bowl could be right next to mouth.award.cup because cup and bowl are related.

Regardless, this is a shit system and I can't believe anyone even bothered to create it. Also, I've never heard of it prior to today. Who uses this crap?

Regardless, this is a shit system and I can't believe anyone even bothered to create it. Also, I've never heard of it prior to today. Who uses this crap?

From what I've read, it gets used by nomadic peoples and people where regular postal addresses have not been established. So, for example, parts of Mongolia.

I'm not arguing with you. Just answering your question.

I actually favorited your comment. I think it's very insightful. I have a (useless -- er, unused) Certificate in GIS and still enjoy reading about map stuff.

I remember they pitched Mongolia as a place this would be used, but I fail to see how it actually would be. I haven't been back to Mongolia since this came out, but I would bet good money that no one (besides whatever government entity signed onto (bribed/schmoozed) the project) would use this. English isn't that common among nomads that it would make any sense. Everyone knows the Latin alphabet, but reading and writing is all in Mongolian Cyrillic, so it doesn't even make sense that way.

In the cities (where the large majority of the population lives) in the organized ger districts, there are street names and numbers, so this is really a solution in search of a problem.

Not necessarily. While Ulaanbaatar does have street numbers and such, they're not well-known and are basically never used when giving out directions/advertising. It's more like: The "yellow building to the right side of the big department store". Official addresses also rarely use street names, it's more like: Flat #5, Apartment #2, Microdistrict #4, Sukhbaatar District.

So in reality everyone just uses Post Office Boxes for mail, who often just call you and say mail's arrived and charge 400 tugrug.

That said, no-one I know has even heard about what3words, aside from those who read the initial press release. And I'm from Mongolia.

Hey, weird ask, but I am going to be visiting Mongolia in 3 months with a small group of online pals. Want to be friends? My email is on my profile!

It is localized to other languages, as explained in the article.

One of the complaints in the article is that the different localizations offer uneven quality.

> One of the complaints in the article is that the different localizations offer uneven quality.

And there's no publicly documented way to convert between the localizations. It's not even clear that there's a 1:1 correspondence between the word lists!

It's clear in the article that the lists don't map so you can't even translate between them without going back to W3W and running it through their stuff.

> So, if I want to tell a French speaker where ///mile.crazy.shade is, I have to use ///embouchure.adjuger.saladier

> Loosely translated back as ///mouth.award.bowl an entirely different location!

It's no great surprise that the words don't translate. But what I'm asking is it's possible to infer a word-to-word mapping along the lines of

    English   French
    -------   ------
       mile = embouchure
      crazy = adjuger
      shade = saladier
or if the mapping is weird enough that even that doesn't work.

Just checked that by changing last phrase in Polish, than changing language to English. It doesn't work:

"plomba.rewelacja.oczy" => "exclaim.mainland.engages"

"plomba.rewelacja.fasada" => "dare.lawn.sleepy"

What Three Words has a couple YouTube videos about Mongol Post's usage of W3W addresses:


Thank you. I know you weren't arguing. And it wasn't rhetorical - I really did want to know who uses it because I've never heard of it.

Thanks for the info.

Wouldn't it be a lot better to do the following:

  * Realize that things like 'SSN's are being used as social identifiers and actually just issue them.
  * Allow legal entities to authenticate and update their preferred physical address
    In ONE place (so I NEVER have to update billing addresses again!)
    (maybe even for different kinds of data-packets)
  * Make it possible to mail to someone's identity (as the address), BUT
    you first have to authenticate as a legal entity
    (person or registered organization / business)
    that authentication data is hard coded on to the envelope.
This way if someone is abusively sending things they can be targeted by a class action suit/etc.

I wish we would make it possible in the US to use an email address as an address for purposes of things like having a bank account and pick up things like debit cards in person from any branch of that bank if you are traveling, homeless, whatever.

I rarely get any important physical mail these days. But I still run into issues over address problems (ironically, more now that I am back in housing than I ever did while homeless: https://writepay.blogspot.com/2019/02/mailing-address-drama....).

My life is mostly online. I was a military wife for a lot of years and moved around a lot. Lots of people have very physically mobile lives these days.

Yet, we haven't adapted our systems to this reality. We want to tie everyone to a physical address for a long list of things, as if we are plants who can't move from this one location or something.

I don't know what the answer is, but, wow, I sure wish we would come up with better answers than acting like this is still the 1950s and everyone will work for the same company and live in the same house for decades and we can each be found in some particular location all the time.

I wonder if this will be the future of the USPS Online Mailing thing where you get pictures of your mail...

Just register with an email, things are autoscanned and sent to you with a PGP key you provide.

That would be convenient, but it won't happen.

What you will get is a web application you get to sign into to actually get your mail, and you will receive a notification mail in your regular email inbox stating that you have received mail (but not from whom, or what the subject is, because that is privacy sensitive information), so that you know that you should go and get it yourself via the web application.

This is what every digital 'inbox' that isn't email has done thus far. This is in fact exactly what the Dutch government has done with their digital inbox which is intended to replace physical letters from services like the revenue service and municipalities. Thankfully that monstrosity is optional (for now).

The USPS already offers a service that will scan and email the outside of your mail, so you at least can usually see who it is from.

In Australia you can get a PO Box and pay a bit extra to have everything coming there scanned and emailed to you. Obviously wouldn't work for id cards though.

I actually had a virtual mailbox for a while. I don't currently, in part because I am in housing, in part because I'm chronically short of funds.

But maybe I should get one again at some point. Maybe that would help with some of mail/address issues.

Number two sounds like DNS for physical locations.

Wait, you can favorite comments on HN? How?

Click on the timestamp of the comment. It will give you additional options, including "favorite."

Upvotes will privately bookmark things you like. Favorites are public.

I use them occasionally to actually have some hope of finding something again. But if you don't want people to know, then don't use "favorite."

Seems like the obscurity of the W3W approach is part of the strategy, which is to "own" positioning and extract a tax from it.

If you can extrapolate positioning deltas from the coordinates themselves, then you don't need to hit the API as much.

This is why you have space filling curves.


With that you can have a linear ordering of space at each scale. Rounding errors become rounding errors. I remember seeing an implementation of that on npm or some such thing.


Which are great right up until you cross boundaries. IIRC there's a big boundary in Google's S2 that divides Toronto in half.

That’s also a problem when mapping a circle to a straight line. The band Rush sang “you can’t have something for nothing...”

Geohashes are really cool, glad to see them mentioned in this thread. If you aren't familiar, you owe it to yourself to read the second Wikipedia article linked by the parent, it's a neat concept.

Yep. I saw a talk a while back about Uber sharding their caching layer by geohash

See also this http://www.drdobbs.com/database/space-filling-curves-in-geos... (Dr.Dobbs Journal, 1999).

It explains how to easily search for "points no more than X km from Y" in a DB query without having to actually calculate distances.

I wonder if space filling curves are used in the Python GIS stack for radius queries.

Mathematically, I would phrase this by saying that the mapping of physical location to (lat,lon) pair is continuous. Space-filling curves and related things like Google's plus codes are nearly as good, in that (if you squint) they are continuous almost everywhere (everywhere but the boundary of some grid). W3W on the other hand is discontinuous everywhere.

I think the advantage of lat/lon boils down to the fact that everyone knows 79.999 is close to 80.000, even though they look quite different as raw text.

So you have to be careful with the terminology. Space filling curves can be a continuous mapping of the line to the curve itself. However, this does not set up a continuous mapping from the space to the coordinate system, which is also quite important.

A tiny change in your coordinate will mean a tiny change in your physical position, but a tiny change in your physical position will almost always mean a quite large (and basically not predictable without doing an involved calculation) change in your coordinate.

Yeah, let me try to be more precise, though maybe it's worth writing down in a more formal setting because comments are awkward. Say we're looking at the Hilbert curve. I claim that for almost all physical positions, a sufficiently small change in position yields a correspondingly small change in coordinate.

In the purely mathematical sense, this means something like "continuous except at points with at least one rational coordinate".

In the programming sense, where everything must be approximated and you're mapping a 2-d lattice to a 1-d lattice, then it's a bit tricky to formulate, but something like: if you take the maximum distance in 1-d space between a 2-d point and its eight "neighbors", then the probability of this distance being > N should be O(1/sqrt(N)). Concretely,

P(point has an adjacent point whose Hilbert coordinate disagrees past the highest n bits) == P(d > 4^n) < 4*(1/2)^n

I took a 256 square hilbert curve and took random points in it (discarding points where the euclidian distance was > 8).

Here is the plot: https://gist.github.com/justinvanwinkle/22a15bb33536095b05dc...

Notice the Log y axis. I don't you think you could consider this even roughly continuous. This is only even bounded because I only took points within the 256x256 grid, if I let it run over say a 1000x1000 grid the hilbert distances wouldn't plot well even on a log plot.

The second plot I took any random point within euclidian distance 8 from a random first point, and didn't restrict it to stay in the same 256x256 grid. 10k points total. Even at distance 1, you get hilbert distances like:


I'm not sure why that first plot wouldn't be considered continuous. There's a pretty clear positive correlation, which should be more pronounced with a non-log scale y-axis, and more pronounced as you increase the order of the curve.

I'm confused about the second plot; what order is the curve? It seems weird that there are no points between 10^12 and 10^156.

The second graph has a huge jump because the left side of the area I'm taking points from is a boundary between two very distant parts of the curve. In any space filling curve you will be able to find arbitrarily large jumps like this.

The difference would be more pronounced on a non-log scale, except the huge numbers at the top of the range would squish the graph down so you couldn't see what was going on.

The first graph isn't just not continuous, it's not even 1-1. (I'm ignoring the fact that is also discrete so that any formal sense of 'continuity' can't exist. Even if you tried to make it continuous by filling in the gaps it would be impossible.)

Unfortunately I think we're talking past each other and this is not the best format for technical discussion.

Agree with your main issue. https://en.wikipedia.org/wiki/Open_Location_Code solves this quite nicely, and also the OP's issue of W3W being non-free.

The problem with those kind of numbers is that they are easy to get wrong by a couple of digits. Think about how difficult it can be to read a number over the phone.

And guessing distances seems like a pretty unusual thing to do. Especially as latitude/longitude is a terrible system for that anyway. Small distances are very small numbers and hard to think about.

It is possible to make a spelling mistake in what three words, but the mistake will be readily obvious if you know the general location.

I shared your scepticism until I tried the app. The auto-complete is really slick and it just works. For sending coordinates through a human/speech interface it is just going to be more reliable. For ever other problem use another solution.

> Think about how difficult it can be to read a number over the phone.

Same thing is true for words, there are words in my native portuguese that are dificult to tell from each other even in person, imagine by phone. If some one misunderstands a word and it's valid on a combination?

For example (in portuguese), Paca.Tatu.Cotia (Paca.Armadilo.Agouti in english) can be misheard as Maca.Tatu.Quati (Stretcher.Armadilo.Coati in english). What if both combinations are valid, but thousands of km away ?

The NATO alphabet was built to solve nearly exactly this problem. It's quite verbose (by design).

But because they are thousands of km away it is easy for a human to tell which is correct based on context. And the search screen works very well. It autocorrects, gives a distance and a country flag.

I understand the difficulty with speech, but that is true of any verbal communication.

> The problem with those kind of numbers is that they are easy to get wrong by a couple of digits. Think about how difficult it can be to read a number over the phone.

This already presupposes that the parties involved in the communication are using smartphones, so why not send the coordinates over SMS, email or any other available messaging system?

"If anything, they should have designed it such that it follows an IP style system where you get more precise/specific with each period..."

I think it is interesting that you say that, because I see this system as DNS system on top of IP.

So latlong is your IP, and W3W is your human-readable domain name.

Which begs the question: would a better system involve letting people pay to register names that point to latlongs? There is a free tier that are an open-source list of names for the entire globe, but companies could pay to have names like "free.tacos.here" point to their locations.

> So latlong is your IP, and W3W is your human-readable domain name.

No, it's not. It's actually more like the opposite. The domain name system is hierarchical, and W3W is clearly (and I gather, intentionally) not.

IP addresses are also hierarchical, but the mapping of domain names to them is only somewhat systematic.

Really, though, W3W identifiers are most like Tor onion names. Just hashes. Indeed, some have suggested replacing alphanumeric onion names with something like W3W.

For most users, the domain name system is only very nominally hierarchical--every domain name they see is of this form:


Really? My wife is ~70, and not all that technical, but she knows (for example) that "maps.google.com" is a Google URL. And she even knows that "mail.google.com.assholes.io" is not a Google URL.

It's just anecdotal, I know. But I find it hard to imagine that most people don't understand URL hierarchies. I mean, people who use computers commonly organize files in folders.

But maybe that's becoming a lost art, as most new users just have mobile devices.


You've also (inadvertently) pointed out that there's redundancy in written numbers.

Equivalent redundancy with W3W would require remembering spellings rather than a simple rule.

> Also, I've never heard of it prior to today. Who uses this crap?

That is the darkest most evil sentiment to any product manager. It basically says a person cannot form an independent opinion and looks to their neighbor to derive credibility. If enough people think that way new ideas never enter the market. This is the opposite of merit.

In this case it's not looking to your neighbor to derive credibility, it's to derive utility.

I mean, if I buy a hammer, I couldn't care less whether anyone else uses it. Its utility is entirely decoupled from the amount of users. In this case, you're not buying into a hammer, because utility is dependent on the number of users. If "//cat.dog.goose" means nothing to anyone around me, I can't use it to communicate a location to anyone around me.

Maybe it shouldn't just be taken as "the darkest most evil sentiment" but as the general reaction consumers will have to products or services where utility is a function of adoption. With any luck, some few people will insist on using it and kickstart more widespread adoption, but that's just it: luck.

Maybe a good translation would be, "This is crap! And why are we talking about this crap, since most people haven't heard about it and it's crap?!"

That is a good idea, but after thinking about it for a bit I think it would be a very hard thing to create.

Exactly my thoughts. The whole concept is just so insanely useless.

Apparently it's used because of the current limitations of the GPS system, it's still not accurate to 5cm.

Although it's not a limitation of the coordinate system, so improving GPS accuracy to mm level resolution will make GPS coordinates obvious

Oh yea house aren't that small but the vertical distance between the floors and individual apartment in the building is.

Apparently some African country bought into it I think.

>Regardless, this is a shit system and I can't believe anyone even bothered to create it. Also, I've never heard of it prior to today. Who uses this crap?

It's literally a con job designed to create a middleman where one isn't needed. It's the modern libertarian dream.

It's the modern libertarian dream.

There is nothing libertarian about conning people or "creating a middleman where one isn't needed." If you believe that, you have been badly misinformed.

If people use it voluntarily due to marketing, then it appears to be one of the downsides of a free market and liberty of choice working as intended. Individual actors in the market are not always rational or well-informed.

This actually has a usage for emergency services. People call and don't know where they are. This app can let the operator send them a text with a link in that they follow and can communicate very effectively the precise location.


Why not just send them a link that notifies the operator of the exact location, immediately after they click the link and load up their location?

This exact use-case is debunked in article linked.

No, the writer's misunderstanding of that use case is explained in the comments. Emergency services don't have sms/mms service. The W3W service would presumably use SMS to get location. (phone sends lat/long coords via sms, gets 3 word response).

SMS tends to be more reliable than a data connection in areas with a poor connection (remote, or interference).

This is doable right now - having some sort of data-to-emergencyservices gateway does not exist.


Why not just build an SMS gateway for emergency services with GPS coordinates and call it a day? It seems like the important bit is the gateway, not the 3 word response

Yes. That would be awesome. But it doesn't exist. And a third-party/private company doesn't have the ability to do that without govt partnership. What they can do is develop a completely separate system with a sustainable business model and basically demonstrate how it can piggy back on existing emergency systems regardless of the capabilities of said system (ie one doesn't need to know if the 911 system is the "upgraded" version or make that determination during an emergency).

Also, in many cases a phone is not able to use (or has limited use) of data during a phone call. An sms would be able to go through concurrently. Imagine being on a 911 call. They ask you to click the W3W button (built in? Next to other on-call buttons?) and read out the response.

Not a w3w shill - but I think there's a use case for the emergency system that uses sms and it is usable right now and doesn't require any system wide upgrades. The only potential upgrade would be at the OS level just to simplify (button addition).

The ideal would be having the DB of W3w words locally so that it doesn't need the SMS gateway. Or having a completely open system...

Every internet capable device has GPS, iploc, or both. This is just adding an extra step to the process that requires a bunch of button pushes and lip flapping.

Or in other words, if someone on a 911 call has time to open their text message app, click a link, wait for a page to load, find the important text, and read it aloud, then they have time to open their text message app and hit the "send my coordinates" button.

How about creating an app for emergency calls, which will automatically send your location?

Finland has done it, see https://play.google.com/store/apps/details?id=fi.digia.suomi...

W3W suffers horribly from "call for price". You won't catch Google or Amazon making you call and talk to a human being (on GMT time no less) before figuring out if you can afford their service.

I'm preparing my own version, truly open source (though with a premium component), with the following improvements over W3W:

•Length-optimized. If one character sufficiently describes your location, you don't need to tack on extras. A 12-character code with the last two lopped off will be imperceptibly close to the original.

•Precision optimized. Every additional character, no matter the value, will result in a location not identical to the absence of that character.

•Precision-focused. When a location is precise to the nearest 100km, km, m, or µm, the browser tools make that clear.

•Logic-optimized. With pencil and paper, you'll be able to figure out how to go N, E, S, W by X distance by adjusting a particular character.

•Spheroid-optimized. The Mercator projection is often held to be an imperialist distortion of the globe, and that's what traditional latitudes and longitudes use. Half the "namespace" of nearly every coordinate system is biased toward the poles. The distance between 89° N, 10°W, and 89°N, 10°E is 38km, but at 1°N, it's 2226km. My system has a simple and clever way to equally represent the dense equatorial regions and the sparse arctic and antarctic regions, and that equals shorter codes.

Watch this space.

> Half the "namespace" of nearly every coordinate system is biased toward the poles. The distance between 89° N, 10°W, and 89°N, 10°E is 38km, but at 1°N, it's 2226km. My system has a simple and clever way to equally represent the dense equatorial regions and the sparse arctic and antarctic regions, and that equals shorter codes.

The "S2" geometry system (http://s2geometry.io/) is what Google Maps and many other large systems use. It has a small bias towards the poles in terms of some S2 cells being slightly larger than others at the extremes but the bias is pretty minimal.

Another system, Uber's H3 (https://eng.uber.com/h3/), handles this problem in an even better way, although it loses some of the benefits of S2, such as having fine-grained cells no longer exactly fitting into their parent cells. It has other benefits however.

One thing missing from all of these system, including W3W, is that none of them have a height component. If I go to a party in a strange condo and need to call for an ambulance, there is a huge difference between being on the first floor and the fiftieth floor of the same building and W3W does nothing to solve this problem.

The "Z" dimension is something I've been planning on having as part of the system as well.

Since people appreciate height from street level differently than raw altitude, both will be accommodated in my system.

Interesting idea. How do you plan to implement Z and up to what height/depth?

To be fair, W3W is already "spheroid-optimized", in that the named squares are quite close to 10'x10' both at the equator and poles. There are grid "skips" (see one here [1]) every so often to keep all of the squares close to the same size.

[1] https://gis.stackexchange.com/a/195696

Also don't discount the benefit of their distribution of the words. If you're using voice input and trying to get somewhere, the system can guess which of multiple inputs you mean. If you're in Louisville Kentucky you're more likely to be trying to get to "captain.water.water" (a ~90 minute drive from downtown) than "captains.water.water" (located on an island in the North Atlantic). Do you have a mechanism (maybe a check digit?) to help with that?


"captain.water.water" => ~90 minutes from Louisville, Kentucky

"captains.water.water" => island in the North Atlantic

That's crazy. I mean, "..water" should be a contiguous area. With "*.water.water" a contiguous part of it.

The non-proximity of W3W locations with similar identifiers is intentional; it's meant as an easy way to perform error checking. The concept is that you state your location, and if you state it wrong, or the other person gets it wrong, the mistake will be obvious because the small change to the identifier results in a location extremely distant from you.

The system pretty explicitly considers all squares equal, without a hierarchy such as you envision. There are no identifiers for larger agglomerations of individual squares.

(And more specifically, where identifiers are hierarchical, you generally have the larger scope first, not last. URLs are a bizarre exception.)

OK, I see that.

But (and maybe I'm just too cynical) the huge benefit for W3W is that it's much harder to reverse engineer the identifier-assignment code. So only W3W can generate valid identifiers.

The data files you need to store are fairly small. The bigger problem is people who have done their own imple tstion got threatening legal letters.

Minor nitpick: URLs do tend to be used with the larger scope first (i.e. /resource/child/subchild). Domain names are the odd exception.

HTTP paths are not conceptually hierarchical at all; they're opaque strings.

People set them up that way in practice because they prefer thinking that way. Or, I guess, because they want to sort their URLs meaningfully. Does that happen?

That's a fair point. But the fact is that people do tend to set them up as hierarchies.

But maybe you're right that most people don't understand that, given how adversaries exploit stuff like "games.apple.com.foobar.hosting.tw". You wouldn't fall for that if you understood the system.

While they're not conceptually hierarchical, it's not fair to say that they are opaque strings either. "////" is not a valid HTTP 1.1 path, for example, and "" means "/"

This is a feature not a bug.

If one of the words is slightly wrong, then you want it to be obvious.

If the Kentucky emergency operator adds an extra s they will see that it can’t be right. With the contiguous numbering the ambulance would be close, but probably still unable to find you.

See page 23 of the patent: https://patentscope.wipo.int/search/docs2/pct/WO2014170646/p...

OK. But you need the W3W API to do that. Just by looking at two identifiers, without that, you'd have no clue about where they are.

Why? You would lose the ability to disambiguate in the way I described. The words aren't coordinates, they're the result of a hash function.

"The Mercator projection is often held to be an imperialist distortion of the globe, and that's what traditional latitudes and longitudes use." There is a difference between a projected coordinate system (like Mercator) and geographic coordinate systems. In Mercator you use projected Mercator-Meters not Latitude and Longitude. All you need to know for local R² (2D Euclidean) estimates, is that longitudes scale with cos(latitude), that's it. How does your system handle 89°N 0°W, and 89°N, 180°W ? Does it infer 222km or 346km? If it's the latter, it's not spherical as in S².

There is quite a body of research into equal-area hierarchical partitions of Sphere. Adressing there is mostly neither trivial nor intuitive and also not compatible with most raster data formats when it comes to storage.

Discrete Global Grid System (DGGS, Pyxis), HealPIX, H3 as variant of DGGRID, EQ_REGIONS, just to name those I remember.

So I'm watching ;)

What benefit do you have over Plus Codes (https://plus.codes/)? I only learned about them from this thread, but they seem to solve the problem quite well, and there's no premium component.

Plus Codes have little application outside building addressing. If I tell you I'm at 4CFM+JW, come get me, you're going to be pretty helpless, because I didn't include the city.

Want to shift a little to the east? 4CFM+JX works, but 4CFM+JY? Whoops. How about north or south? Maybe there's a way to do that, but I haven't found it yet.

How about upping the precision? The size of the square is maybe 4X the W3W grid cell, but not aware of a way for plus codes to achieve a smaller cell.

I'm not out here to bash everybody else's solutions. They're all pretty good, particularly when you limit them to particular applications. Mine just happens to be a slightly improved approach, and slightly less full of drawbacks than everybody else's.

TL;DR: see [3] for an overview of how plus codes work.


>Plus Codes have little application outside building addressing.

This claim needs some arguing.

>If I tell you I'm at 4CFM+JW, come get me, you're going to be pretty helpless, because I didn't include the city.

So why would you tell me that? Either include the city, or use a longer plus code that includes the city.

Example from the spec[1]:

>>Nairobi Youth Sports Organization and Information Centre in Kibera, Nairobi, has the Open Location Code "6GCRMQPX9G". Using the location of Nairobi, the code can be shortened to "MQPX9G".

>How about upping the precision?

Use longer codes! It's all in the spec[1]. Again, quote:

>>Using a single grid refinement step, we have an 11 digit code that represents a 1/32000° by 1/40000° area (roughly 3.4 by 2.7 meters at the equator).

Now, regarding this:

>Want to shift a little to the east? 4CFM+JX works, but 4CFM+JY?

This is by design; some symbols were omitted to avoid having words in codes (which, as TFA discusses, can be problematic, e.g. some places might not be happy with codes that have EVIL in them).

>Maybe there's a way to do that, but I haven't found it yet.

The spec[1] is open, and it's all in there!

It is not as simple as what you expected, due to the design constraint above. But that is a tradeoff that I think is reasonable. After all, these addresses are going to be punched into a computer anyway.

E.g. play with the addresses here[2].

I'm really excited to see more development in this space, because one size does not fit all. However, it's important to know what existing systems get right too.

(E.g.: English W3W looks like way easier to say on the phone).

Disclaimer: I work for Google/Geo, the opinions expressed here are mine, and not of my employer.




>So why would you tell me that? Either include the city, or use a longer plus code that includes the city.

Or I could just use a system that doesn't have that drawback. Plus codes aren't awful. I just find room for improvement.

> This is by design; some symbols were omitted to avoid having words in codes (which, as TFA discusses, can be problematic, e.g. some places might not be happy with codes that have EVIL in them).

So what you're saying is only an open source project could deal with this level of potential offense. I'll agree with that. People who don't like EVIL could add more precision to make EVILGH.

>Or I could just use a system that doesn't have that drawback.

Which drawback? All systems have the drawback that if you don't say the entire address, you don't get the entire address.

>So what you're saying is only an open source..

I was not talking about that (for that matter, plus codes are free/open source). I was just explaining why you ran into this problem: "4CFM+JX works, but 4CFM+JY?". It wasn't obvious to me why "Y" is not a valid plus-code character either until I read the spec.

> Mine just happens to be a slightly improved approach, and slightly less full of drawbacks than everybody else's.

Honest opinion: it is not. Plus codes is the one that has least drawbacks and most advantages.

I have a real problem with people giving dishonest opinions, so good on you.

But seriously, you haven't seen it yet. Ever read Green Eggs and Ham?

8GC2CMXR+X63 is a global plus code with 3x3m precision.

I'm no expert but regarding your question on precision: afaik the longer the plus code is, the more precise it gets

> My system has a simple and clever way to equally represent the dense equatorial regions and the sparse arctic and antarctic regions, and that equals shorter codes.

> With pencil and paper, you'll be able to figure out how to go N, E, S, W by X distance by adjusting a particular character.

Topologically speaking, I am intrigued :)

You have to call Google for Analytics pricing when you outgrow the free tier. And no, we could not afford it.

But at least they tell you that it starts at $150K/year so you know right off the bat if it's even in your ballpark. A lot of SaaS products completely hide thier pricing entirely. I have zero interest in sitting through some sales-bro's phone pitch before I know if I'm even in the right pricing bracket. Nothing like sitting through an hour long preso only to find out afterwards something is 10x what you were looking to spend.

Do they now? They certainly didn't at the time a few years ago.

I at the time found some prices online searching around but nothing from them.

We were very hopeful we'd get some sort of discount because we're in educational tech, so our income per user is very low, but nope. Free to $100k overnight is insane. We’ve got a guy whose full time job now is basically developing analytics tools for us and it’s a cheaper solution.

Back in the day you you didn't have to pay if you ran a Google Ads campaign. There was no minimum spend. If you ran a monthly AdWords campaign for $1/mo you got free GA no matter what your traffic level was.

The main catch is that GA goes to "sampling mode" once your traffic gets high enough, and I think you have to pay extra to get full datasets.

It is actually a form of "foot in the door" https://en.wikipedia.org/wiki/Foot-in-the-door_technique.

If you see a high pricing on their webpage you might go away immediately. But if you make the effort to calling them, you are already committing yourself and you are more likely to accept a higher price than you would have if it was easily accessible.

Not a marketing person, but there also has to be value in the lowest possible bar to begin participating, and then a higher one later to increase engagement with public price menus. "Call now for sales pitch" is not that: it means secret deals and whatever they can haggle out of you.

Look, even this dinosaur got it right: https://azure.microsoft.com/en-us/pricing/details/api-manage...

You are absolutely right, there is actually a whole panel of different techniques that aim at getting you accept offers you would not accept straight on.

I believe as a consumer it is important to be aware of those different manipulation techniques so you can step back and take a rational decision.

For example in case of call for sale, it should trigger an alarm telling you to walk away. If you have a high interest in the product and want to call anyway, make sure to know what price you are willing to pay BEFORE calling and do not commit to anything during the call.

TBH though:

- You are WAY underestimating modern Microsoft, they may be a dinosaur in that they are a relatively old company but they are definitely still one of the bigger predators around.

- Not every business has the same target audience. Some companies desire "everyone" and will make the barrier as low as possible; some companies will purposely target only those customers with the money and commitment to call a sales team and will not make the effort to support customers who are not worth the attention.

Sounds cool, but W3W solves a few different problems. It's got to sound natural, be easy to recognize by various voice systems, and easy to communicate between people.

"12 character code" might solve the problem from your perspective, but the point is that barcodes and IDs are annoying to read and copy by hand.

I thought this was a wink and a nod to just using standard latitude/longitude. Doesn't lat/long naturally solve each of your bullet points?

•Length-optimized. More digits = more precision, check.

•Precision optimized. Except for adding zeros, check.

•Precision-focused. Sig figs cover this.

•Logic-optimized. Adding or subtracting to lat or long respectively.

•Spheroid-optimized. I believe this applies to latitude and longitude, as well, since there's less surface area for a given coordinate space. Though, maybe it's the reverse, that it's more precise at the poles.

They do speak of characters, which then starts to just sound like https://plus.codes

Does it account for geological drifting? This is probably the most important social issue with these kind of systems.

Not OOTB, but I would imagine that any geocoding system could include a suffix, like "(1987)", to know which dataset to use, so as long as there was a server providing accurate geocoding for a particular point in time.

This is a service-related question, though, not a method-related question. There's no math equation that'll tell you your house is there when it used to be here.

...Which defeats the "simple" in 3-words pitch.

"No, I'm `heartfelt-triple-coma` from 2003, not current. Oh, you're using a Spanish-language phone; I don't know which dataset you use."

The formula might not be elegant, but if you have an exact description of tectonic drift, you can absolutely have a code that refers to a fixed location on its plate, rather than to a point on some imaginary sphere.

GPS coordinates are just one possible solution, there's no reason to consider equivalent encodings of the same values as the only alternatives.

> The formula might not be elegant, but if you have an exact description of tectonic drift, you can absolutely have a code that refers to a fixed location on its plate, rather than to a point on some imaginary sphere.

Sure, but (1) is there a good way to get an exact description of tectonic drift?, And (2) does tectonic drift account for all shifts of surface features (intuitively, it would not necessarily for features not fixed to bedrock, which accounts for a very large share of interesting-to-humans features)?

Geographers already have a system for recording positions relative to continental plates - in Europe that means ETRS89 [1], North American NAD-83 [2], Australian GDA94 and so on.

Of course, getting all software to support multiple datums might be a complicated matter, as 98% of things like online slippy maps and mobile phone geolocation APIs just use WGS84, the familiar datum used by GPS.

[1] https://en.wikipedia.org/wiki/European_Terrestrial_Reference... [2] https://en.wikipedia.org/wiki/North_American_Datum

(1) By measuring the location of a few designated landmarks, it should be possible to extrapolate tectonic-level shifts to all other points on the same plate pretty accurately.

(2) Changes on a smaller scale, e.g. due to a landslide, are probably less surprising when they cause a change in location codes. On the other hand, there might be some houses on a hill somewhere slowly sliding down, where the system doesn't work.

(I also realized that my previous comment can be read as supporting a flat earth theory, especially the part about the sphere being imaginary. I firmly believe that the earth is a bumpy ellipsoid, though.)

> By measuring the location of a few designated landmarks, it should be possible to extrapolate tectonic-level shifts to all other points on the same plate pretty accurately.

I would think you'd need a lot of targets near plate boundaries (where deformation is high for that reason) as well as in known regions of intraplate deformation.

Fully accurately, you'll only be able to get retrospective locations (and probably some interpolation thereof), for pretty much the same reason that I can't actually tell you for sure exactly how many seconds the next decade is going to have. We won't know how many leap seconds it has until it is over, or the standards body commits to including no more. But I can tell you exactly how many seconds there were in 2000-2009 inclusive.

Your first four points basically describe lat/lon. But it is hard for humans to parse long characters/numbers. And it's even more difficult to speak random characters. E.g. "B" "b" "be" "bee" are all spoken the same. That's why we use something like the NATO Phonetic Alphabet.

this is way off topic but try buying Google Marketing Cloud services. you have to fill out a 'talk to sales' form, no one ever calls you back, and if you call/chat with any other type of support they have zero idea who to connect you to.

Google is not exempt from this type of behavior, unfortunately.

You should check out what we're working on at qalocate.bamsaas.com/whitepapers/. Even an improvement on W3W is still going to be rather limited and only address part of the problem. We're trying to provide solutions for the entire space.

> "I'm preparing my own version, truly open source (though with a premium component), with the following improvements over W3W:"

See also:



The thing you are trying to design has probably already been designed.

Would you mind to share a github or its still private wip ?


Contact me: greg at the domain qbix.com

We are currently using geohash and curious why it’s worse than this.

Geohash is easily the best system currently out there.

Worse might be a little harsh, but my system:

•Packs slightly more bits into the string (naturally there's a tradeoff with data fidelity) for shorter strings

•Follows a completely logical alphanumeric distribution (Geohash will skip letters, some for good reason, like o and l, and some for not-so-much, like a)

•Some of the other benefits in the original post are also missing.

You could probably do this with other systems, but the goal is to allow everyday people to be able to pack a short string in a tweet and have everybody else know exactly where they mean.

>You could probably do this with other systems, but the goal is to allow everyday people to be able to pack a short string in a tweet and have everybody else know exactly where they mean.


That's the S2 string for a section of Times Square, NY.

Usefully "89c25855b" is a well-defined, less precise location comprising a larger area. You can go up or down in levels of precision easily and everything can be stored as a single 64-bit integer with lots of extremely useful properties, (e.g. the use of the Hillbert Curve with all of it's benefits, like localization in address space and real space - see http://blog.christianperone.com/2015/08/googles-s2-geometry-...)

If your system adds more benefits than this, I'd love to hear more about it!

Geohash does not provide a one-to-one mapping. Geohashes "u150gxv4" and "u150gxv5" and others, decode to (50.8,4.38).

Also, geohashes of many proximal points are very different (see http://geohash.org/f840p2n2p3 and http://geohash.org/dxfpzryrzq although these locations are 1 meter apart)

Also, while geohashes are great for computer storage, they are not so much for human memory.

So your solution won't result in "coordinates" easily memorized by humans or easily translated to the very vast majority of map implementations?

Not sure how you got that from what I typed.

The fact is the 4 coordinates (two numeric, two with the stupid "N/S/E/W" corresponding with traditional), decimal points, and reverse order from an X,Y coordinate system, are hardly easy to memorize. They're next to impossible to memorize.

What part of pencil and paper didn't come across?

Because, from what you've described, it sounds like your system will look like base64-encoded coordinates. Ie 39.022874, 21.913384 will be IJASDO, which isn't as easy to memorize as W3W.

Not base64, but similar.

I think "IJASDO" would be way easier to memorize than person.guards.gangs (I will definitely give W3W credit for picking unintentioned yet humorous word combos), particularly if English wasn't my first language.

If you disagree with this logic, explain to me why automobiles' license plates should use W3W-style. ("idiot-driver-honk").

Wait, was that first one persons.guards.gangs? persons.guard.gangs? You'd think if you were one off in the dictionary it would still get you where you needed to go, but no.

W3W is a clever product. Mine is also clever, and this industry will never have one-size-fits-all, and that's ok.

W3W has a not-so-clever marketing approach. I doubt plus.codes would have ever seen the light of day if W3W had a more FAANG-style approach to marketing.

Random letters are objectively much harder to memorize. 6 letters is essentially 6 words with one syllable each. W3w approach is only 3 syllables and much quicker to say. You would also have less issues where a pause is required. Like JA vs J ... A to keep this letters from sounding like one.

> I think "IJASDO" would be way easier to memorize than person.guards.gangs

Completely disagree. No way 6 arbitrary letters is easier to remember than 3 arbitrary words.

Perhaps an example would have helped. With numeric coordinates relative orientation is fairly intuitive. It's simple arithmetic. How does your proposed system replicate that?

He's selling snake oil. For being "open" he has no examples. No previous talk of this in his profile.

Of course it has "call for price." Look at their team page. There are over 100 people listed. That is absolutely insane for a product of this simplicity. The VCs are clearly making them burn through cash as fast as possible so they can own everything.

There is another big problem with W3W that Terence doesn’t mention: it isn’t scalar.

From another W3W-criticism blog post (https://mwfrost.com/space-is-scalar.html):

“An addressing system is successful insofar as it enables us to execute the suite of cognitive tasks that constitute navigation. Associating a destination with its location on the earth is only one of these chores.

“If you have a powerful computer in your pocket, and you want to use your brain to remember and then use your voice or a text message to share a geographic location with someone else who also has a powerful pocket computer, what3words has got you covered. If you want to infer how far that location is from another location, or which roads might connect to it, you are out of luck. Building an addressing system is difficult, expensive work specifically because legitimate addresses embed so many levels of hierarchical categories and scalar proportions for us. Remembering coordinate locations is cognitively burdensome, but the signifiers retain some meaning relative to one another. You can tell the search and rescue team that you’ve twisted your ankle at ringleader.kilt.comedians, but as soon as you’ve moved 3 meters east, you’re at since.duplicates.backswing, and the technologically-enhanced mnemonic crutch has exhausted its usefulness. Augmenting one cognitive task in a manner that debilitates the constellation of surrounding faculties is not the right way to apply technology to our problems.”

> You can tell the search and rescue team that you’ve twisted your ankle at ringleader.kilt.comedians, but as soon as you’ve moved 3 meters east, you’re at since.duplicates.backswing, and the technologically-enhanced mnemonic crutch has exhausted its usefulness.

This represents my disappointment as well. When I initially heard of the system, I thought it was hierarchical; the first word describing some larger chunk, the second describing a chunk within that chunk, and the third describing the 10' x 10' block nested at the bottom. That would have been a fairly cool thing; you could easily go for less precision in order to represent a larger space -- your neighborhood, for instance. Instead, it just feels entirely non-intuitive for a system that seems to have been created to offer mnemonic names for spaces.

Perhaps there are technological limitations to the problem that I can't see that prevent a hierarchical solution from being possible or feasible. But I just see little value in an 'addressing' system where one cell's address is totally unrelated to the cells adjoining it.

edit: I've just found w3w's justifications for a non-hierarchical system on their site and they seem weak to me, but who knows, I'm no expert on the matter. -- https://support.what3words.com/hc/en-us/articles/207768985-W...

Our startup offers a geohash phrase that is hierarchical in nature. You can find the docs at: qalocate.bamsaas.com/whitepapers

How does Google's Plus codes fair in comparison with W3W? It's apparently open-source: https://plus.codes/developers

Here's a link to a Wiki page, in the repo for Open Location Code (prior name for Plus Codes), where they compare it against numerous location encoding systems including W3W.


For W3W, they say:

- The codes may be pseudo-randomly generated and so nearby places may have completely different codes.

- It may be possible for multiple people to apply for codes for the same location and for different codes to be generated.

- Making a mistake with a code may simply display somewhere else - for example, on What3Words, "banana rabbit monkey" is a location in Argentina, "banana monkey rabbit" is in Russia.

- [It charges] money either for granting a code, for resolving codes or for allowing users to select their own short code.

- [It does] not work offline and [has] a single provider.

Plus Codes has respective advantages for each of these points, i.e., it's not proprietary; can be encoded/decoded offline; nearby places have similar codes; codes can be made longer for more accuracy; excludes easily confused characters; etc. Overall I found the article makes a convincing case for Plus Codes.

This is my main complaint I can intuitively know, using rules of thumb, if a lat lon is within 100 miles, on this hemisphere, etc.

Is "angry ape alligator" right next door or in Europe? No idea. Which fire station do we relay a call to? I don't know, let's ask w3w servers (during an emergency ... )

To the precision that I want to get someone to help me when I'm trapped in a car, you really only need a few significant digits of lat/lon (.YYYY/.ZZZZ) will get you to within 1 km most of the time. The left-of-decimal numbers are not needed if you are calling local 911, as an increment there shifts by a hundred km.

I don't see the relevance of that complaint. People don't memorize their current lat long to 16 sig figs either. You'd still need a gps device or a paper map without w3w.

I think the point is that ringleader.kilt.comedians and since.duplicated.backswing have no relation at all to each other, and don't communicate to the user their spatial relationship. On the other hand, you could infer that 1234 W Something Rd is nearby 1238 W Something Rd.

EDIT: Also, given a set of lat/long coordinates, regardless of the precision, you could infer their spatial relationship as well.

Yea, in LL, 1 second of arc at the equator is about 101 feet or 31 meters which means it's pretty easy to figure out relative coordinates, particularly N/S. Even UTM/MGRS is better in this respect.

That UTM/MGRS even exits seems to be lost on most pitching W3W.

For great circles the metric ratio is close to 40000km/360. A simple trick would be converting to 400gon first¹, but even using 111 Km per degree is a useful approximation.

So 0.01 decimal degree difference in latitude is always 1.11km or roughly 1km. All you need to remember is your length of 1 degree longitude at given latitude which is the following basic trigonmetric relation:

0.01deg = cos(lat) * 1.11km

Cheap linear approximation will do well here too. In South to North order: So usually factor down to 0.8 to 0.7 (38 to 48 Miles) if you live anywhere in the continental US. For Europe it's 84km in Rome, 72km in Paris, 69 in London, 67 in Berlin and 56km in Stockholm

And for approximating local distances it's simply those metric deltas with pythagoras, no need for Haversine or even non-spherical earth models here.

The most important relation for anyone who is into earth and the metric system, is that it's 10M meters or 10,000 km from pole to equator per original definition. You dont even need to remember the earth radius, since that's also defined by 4x10,000km/2π historically.

¹It's a shame that the metric revolution stopped short of Gradians, when it comes to full metric convenience here.


"you could infer that 1234 W Something Rd is nearby 1238 W Something Rd."

Don't overestimate that. There are nasty exceptions where the street disappears and continues elsewhere without a significant gap in house numbers, especially in cities with a long history.

Don't throw the baby out with the bathwater here. Being able to naively navigate city -> street -> number is incredibly useful, and that it is occasionally broken doesn't make it an undesirable feature.

It's more than occasionally broken, there's billions of people living in spots where it doesn't work.

Billions? You've found navigation by street number to be unreliable in 20+ % of locations?

Either way, it does work for several billion other people.

I haven't personally found it to be the case, but I do know that people in much of the developing world simply don't have/use street addresses like are common in the "West".

Just because you use a system like W3W or even just lat/long for a rural address in a developing country, doesn't really mean you will easily be able to navigate to it. Many rural roads don't have names/numbers and may not even be marked on mapping software. Navigating to these kinds of places takes local knowledge (or at least a GPS, a recent topo map, and careful planning) to get to.

That's why an address consists of more than a street name and a number. It includes town, province/state, postal code, and country. When given two actual complete addresses, it is indeed possible to infer relative distance with reasonable accuracy, exceptions notwithstanding. (And I live near St Paul Minnesota!)

Even granting that your “nasty exceptions” comprise fully half of all complete addresses, that would simply mean that a normal addressing scheme is better than W3W 50% of the time and no worse in all other cases.

I believe the point is that W3W have no relationship between each other - which is probably inherent, as I assume it's a hash of some kind. You can't do anything meaningful with two W3W addresses, even though they may be literally adjacent to each other.

A common feature of most addressing systems is being able to infer relative distance - this is usually true of even street address. (Yes, I am aware this is not always true, and yes, I am aware there are hilarious counter-examples. I don't think that changes the point.)

With lat/long, you don't need GPS, a paper map is surprisingly effective -- and, in what is the point here, with a paper map (or GPS), you don't need a link to What Three Words' servers. There isn't a good use case for a mnemonic for lat/long that loses the latter's spatial-relationship information.

Above all, the weird thing about W3W has always been that if you have the device to do the lookup, you have the device to exchange and store long and not particularly memorable strings of numbers...

If, by w3w you mean gps-capable device. Like a phone. Which can give you those digits. And if connected to the internet to query w3w's database, can send your precise location.

There's also the old country directions method - navigate by Landmarks. If your emergency services operator is familiar with the geography of their area, this becomes much easier. If you are similarly familiar, this can be very quick.

"Timmy fell down the well by the old mine on the edge of town! Good girl, Lassie."

I inherited a property management system where previous developers used what3words for storing location of homes (since reverse geocoding based on address is not reliable in some countries we support).

However, after an internal review we realised that a lot of our UK properties have locations in Asia or the US... It turned out that typos in what3words often result in a valid location on the other side of the world. The most common mistakes we found were plural words instead of singular ones (e.g. "cats" not "cat") or the other way around.

Of course we could have improved the user interface or added some extra validations, but at this point we realised that what3words is more trouble than it's worth, and decided to migrate to storing lat/long directly. That allowed us to avoid a third-party dependency and simplify the code, since we had to cache lat/long anyway in order to plot properties on a map or calculate distances between them.

The behaviour you're describing is actually supposed to be a feature. They call it "Error detection" on https://what3words.com/about, which apparently it's not.

I imagine that a single digit typo in latitude could also result in a valid location on the other side of the world

Sure, but none of the numbers are homophones or even particularly easy to confuse (in English, anyway) when giving a location verbally. W3W marketing claims none of their words are either, but the evidence suggests otherwise...

Latitude errors are also much easier to correct if you incorrectly memorise it but know other information (country/city). But if you find out that arbitrary.word.cat gives you an obviously incorrect location, you've got very little chance of realising that actually it must have been arbitrary.world.cats

This is true, but the structure of the number itself carries a connotation to the reader to pay extra attention to their accuracy.

We expect numbers to be number-like where every little digit is important. We expect words to be word-like where plurals and sometimes even synonyms mean the same or similar things.

But bounds checking is a lot simpler.

...in which we learn that the previous developers hated everyone.

There are plenty of alternatives to W3W, most notably Open Location Codes: https://en.wikipedia.org/wiki/Open_Location_Code

Alternatively, try a W3W parody:


http://www.what3fucks.com (NSFW text)

Out of interest here's a list of alternatives and why they're worse than plus codes: https://github.com/google/open-location-code/wiki/Evaluation...

MGRS and UTM are missing from these comparisons. They're commonly used systems in North America and exist for easier human reasoning and communication about coordinates, so they'd be good to include.

I know a few hams will be thinking of the Maidenhead Locator or IARU grid squares


The emojis one have the nice property that close addresses share some words.

As usual, the parody is strictly superior to the original.

The secret to Weird Al's success.

And the emoji one will work across languages.

Has anyone else tried to look up a location, find the emoji(s) for it and then put the text for it back into the search bar? It seems to not do reverse lookup, making it completely useless as far as I can tell. You can find the emoji(s) for a place, but not a place that corresponds to the emojis.

Maybe that's a feature?


I did think about posting my location for all the world to see, knowing that it wouldn't tell anyone anything at all.

But then I thought "Maybe I just can't figure it out and other people can."

Thus the question. :P

It definitely isn't a feature! We just never got around to putting it in!

I do take pull requests :D

I was going to try to submit a pull request, but it seems someone requested this already:


Reversable #10


asteres opened this issue almost 2 years ago

I don't see a way to lookup an address if I have 3 emoji.

So does the other one.

the pretty landing-page version of Open Location Codes (marketed as Plus Codes): https://plus.codes/

I just noticed these on Google maps for a business location.

Is Plus Codes a Google project or just a partnership?

I looked up my old apartment on what3fucks - "dickhead pollock cheeky gayass" - which is surprisingly fitting

I'd really love to hear the explanation for the "pollock" part ;)

That "ship to" emoji address photo is hilarious.

what3emojis seems a better idea in the way that at least you are not bound by language. You can describe and remember the emojis as you want. As long as you can convey them precisely.

And when has anyone ever had trouble with that? ;-)

> Here's the thing... If the person's phone has a data connection - the web page can just send the geolocation directly back to the emergency services!

No need even for the data connection. Any Android 2.3.7+ or iOS 11.3+ phone will automatically SMS the location when the emergency number is dialled.


There's also a ton of E911 infrastructure already for exactly this problem (USA, your number may vary!). It's not done at the user level and certainly not by a third party.


W3W seems to me like it adds more confusion to finding places than it adds clarity. The word choices involve tenses and plurals, which makes them seem quite east to get wrong from memory. This is exhibited in two of the carousels on their homepage:

* actors.asking.print * manage.mercy.items

Both plural nouns could easily be confused for the singular form, and when I was typing the above, I in fact mixed it up on items.

I think the advantage of lat/long and plus codes is that they are more obscure. They don't make the odd promise of being memorable.

With W3W codes, are we supposed to remember more than one of these? I know the addresses of my parents and a few friends, but rely on mechanical storage for all others. I understand the advantage of having a more universal way of identifying precise locations, but don't see cute password-like names as a helpful solution to that.

Let computers do what computers do well. which is store and quickly serve up inscrutable bits of information.

They should be using something like the EFF's word lists: https://www.eff.org/deeplinks/2016/07/new-wordlists-random-p...

> The word choices involve tenses and plurals, which makes them seem quite east to get wrong from memory. [emphasis added]

A delightful and no doubt unintentional example of a problem very similar to what you're talking about!

I've built an open source alternative, 3geonames.org.

The code is made up of 3 Geonames, with the first Geoname being the most prominent location name in relation to actual geography, for eg: https://3geonames.org/LONDON-ISUKI-LIPNITA .

The 140k Geonames have a phonetic distance of at least 1 from each other. Support for elevation and an app with voice geocoding is coming soon.

A few weeks ago, I hoped 3geonames could become a standard. But it has some painful limitations:

The system picks very unusual names. For example STOCARDA-KRRABA-SIPLA is in Germany, but doesn't use the German name of the city. (For those wondering, Stocarda means Stuttgart in Venetian according to Wikipedia.) That makes it harder to use for locals and can hurt the feelings of people in some regions. Also using cities of other countries can cause controversial codes, especially for young and or small countries.

3geonames has to use a language for each name. This makes it hard for people who don't speak that language to pronounce the words.

The 3geonames website describes the basic principles but there's no detailed description on how to build those codes besides (a somewhat hard to read) Perl script. For example, the documentation does not explain what encoding is used exactly.

A new version will address the issue of local names. It will also solve the problem of crossing national boundaries via the integration of OSM admin{} polygons. And add support for elevation up to +-18000 meters.

The documentation is quite sparse, I agree. I hope to find some time to deal with that also.

Interesting. Tried the middle of Manchester and it gave me a location starting with Leeds: https://3geonames.org/LEEDS-RAGI-USANA

That's because a) Polygons are quite large (over 20k square kilometres) b) Manchester is a long name (I limit geoname length whenever possible), c) Manchester is possibly similar sounding to another big city name.

I had never heard of this until I read the criticism, maybe this is some kind of corollary to the Streisand Effect.

Also, it looks right up there with Swatch Internet Time.

I thought of Swatch Internet Time too ... Swatch Internet Time was pretty silly, although I appreciated it for that.

This other thing seems more opportunistic / financially motivated / kinda scummy too.

I also wonder about the Streisand Effect here, never heard of it until now. This almost seems like standards geek / nerd bait...

The only reason I had heard of it was because my car has it built into the navigation system. So, I can enter a W3W coordinate and my car will appropriately route me.

It's supposedly beneficial when trying to locate a particular person. They can just send you their W3W, the car can read it off the SMS, and automatically provide routing.

I have not used the capability, but explored it when I first got the car since I had never heard of W3W.

I have a hard time believing that W3W isn't an early April Fools joke. I mean, seriously?

And why three words? You only need two, unless you're coding altitude. And damn, you already have two numbers (angles) with arbitrary precision.

And how does one calculate great-circle distances using their silly words?

The 3 words are because 2 words doesn't give you enough bits of enumerated data. The words aren't to be thought of as X,Y,Z, they're just 3 blobs of bits, where each word represents something like a 0-200,000 range or something.

Huh? Maybe not two short words. But clearly, two numbers can be represented by two words.

How many bits do you think it takes to precisely indicate a location on the surface of the earth?

If you are using 2 angles, I guess the place to start is with the circumference of the earth, which is 40 million meters. So to get within a meter, you then need to encode your angle with enough precision to indicate a single one of the 40 million possibilities.

Ummm. That's what latitude and longitude are. Angles. Or equivalently, radians.

And what's magic about one meter? Latitude and longitude can be arbitrarily precise. But whatever. You want 40 million? Well, 360 degrees / 40 million ~ 10^-5. That's easily handled by "43.63872, -116.24135".

Here's why you'd need three words:

- Circumference of earth = 40,075 km

- Granularity needed = 3 meters

- Number of common words in dictionary (generous) = 60,000

- Number of bits needed for single axis = log((40075 km)/(3 meters))/log(2) = 24 bits

- Number of bits needed for two axis = 48 bits

- Number of bits given by a single word = log(60000)/log(2) = 15.8

- Number of words required for two axis = ceil(48/15.8) = 3

Also, keep in mind, 60,000 words is generous; this many words would probably include lots of archaisms. For comparison, 1password uses 18,000 words in its dictionary. You could probably shave off some bits by getting rid of slices from the north/south poles. You might also save space by ignoring parts of the ocean, but then it starts getting non-trivial.

Yes, it seemed you were arguing those two numbers could easily be encoded using existing words.

If you want to make gibberish word like objects it's probably possible.

But what's the point of that?

If they were always the same two (or three) words, fine.

But if there are multiple such encoding systems, any set of three words (foo.bar.baz) is ambiguous. Because it depends on the system being used.

So sure, someone might remember "foo.bar.baz". But "foo.bar.baz" in W3W might be in SF. But in Hanoi by some other system.

And then we get to the need to pay W3W to generate those codes. That's crazy bullshit.

TBF The maidenhead system (which is a worldwide standard) IS, IMO fairly easy to remember.

And because it's pairs are increasing in area, I can state that I live in IO93 and it narrows it to:


or I could give the next 2 characters to narrow it to a 1km x 1km (roughly) area that covers my town, or the 2 letters and 2 numbers that give a small area that pinpoints 2-3 houses on my street.

It's not really any more complex or hard to remember than a standard postal code or zip code.

Now that sounds like a very useful system. It's hierarchical. With arbitrary precision. With ~short, easy to remember (and easy to key/speak on radio) codes. Nice.

Yes, W3W is stupid, but each address is a pointer to lots o bits.

Words in one language are very often ~gibberish words in other languages. And worse, because of false homonyms. And people with heavy accents.

Are you talking about existing English words? I'm not sure there are enough longer words for this to be possible, depending on the range of numbers being encoded.

No, I wasn't.

Sorry, I just don't get the point. Implementing a bunch of proprietary location-encoding schemes is just insane. I do see the profit motive, obviously. But I can only hope that people will avoid using stuff like this.

Maybe if it were totally open-source. And if it were implemented by some recognized international entity. Maybe some part of the UN.

I have always wondered why the Maidenhead Locator System did not catch on outside of Amateur Radio.


It converts geographic positions into short strings of characters, but notably, a truncated string still points to the same location, just less precisely.

For example, the ferry building in San Francisco is CM87TT20, but CM87TT is a larger square that encompasses Treasure Island as well, and CM87 is most of the bay area.

Indeed it seems neat. And you will learn to ignore CM87 the way you (used to) ignore phone area codes.

Although it looks like CM87tt20 only gets you within a km or so, does CM87tt20aa get you down to a building?

Yes. Less than a building, in fact. CM87TT20SV is the front entrance.

First of all, WTW seems like a BS solution in search of a problem that wont go anywhere, anyway. So I don't see a reason not only to bother with them, but even to be bothered by what they do. Even if needed, this is much better: https://plus.codes/

Second, a nit: "Their grid is static, so any tectonic activity means your W3W changes.".

Not "any tectonic activity" but the rare tectonic activity that keeps your house number the same but changes your long/lat.

Third, another nit: "Numbers are fairly universal. Lots of countries use 0-9. English words are not universal. How does W3W deal with this?"

They don't have to? Domain names are not universal either (even when they added unicode after tons of years it has near zero adoption, plus implementation issues in many browsers/client libs. Heck still today Chrome shows the Poopla domain as mere punycode: https://xn--ls8h.la/)

One clarification, as a native german speaker:

>Or ///klartext.bestückt.vermuten - "cleartext stocked suspect"?

That's "suspect" in the sense of "guess" (as a verb), not in the sense of a criminal suspect. (And "stocked" like a store shelf would be)

I'd call this example entirely benign.

W3w was a pretty nice idea and I know some people that have been involved with the company. However, it is indeed not open. It's also VC funded which means that openness is incompatible with making money for them. Which means that most of its potential is lost or off limits unless you are a paying customer. They have a few of those and have had some success doing deals with postal services in countries that lack formal addresses or for use cases where formal addresses are not that useful, like e.g. logistics or big public venues like airports. But the closed nature of this of course holds back most of the interesting use-cases.

For those who don't know, w3w simply encodes locations to 3 words using an algorithm that translates coordinates into what is probably a quad tree path (e.g. geohash) and breaks that into 3 chunks that get mapped to words. The proprietary part is the algorithm and the mapping of words to these chunks (mappings actually since they have them in several languages). Probably you could reverse engineer the algorithm but then you run into the little problem that the mapping is likely copyrighted, some patents may apply, etc.

There are some nice touches to the algorithm like e.g. associating shorter/common words with the most relevant locations so that if you are German speaking, the German version of the algorithm generates short codes inside Germany and longer ones on the other side of the planet.

A couple of issues with w3w: the codes are not hierarchical. So you can't rely on e.g. the first word denoting a bigger location; the second word denoting locations inside that area, etc. Consequently, two almost identical locations will have completely different words associated with them. So you can't at a glance tell where any combination of words is unless you run the algorithm. They are easy to remember but meaningless.

Open location codes and Geohashes are similar except they don't provide easy to remember human readable codes, which is the reason why neither is commonly used by consumers. However, I've always liked geohashes because things with the same prefix are in the same place, which is awesome if you need to build search engines (though more efficient ways of doing that are available). With 7 or 8 letters you get pretty good accuracy with those and the algorithm for encoding and decoding is pretty simple. OLC is similar but stays closer to the degrees/minuts/seconds notion. Also the codes are longer.

> the codes are not hierarchical.

That, in itself, renders them hopelessly confusing.

I mean, imagine a domain name system like that. There'd be no domains and subdomains. Just a bunch of random names.

>(though more efficient ways of doing that are available)

Would you mind expanding on that? This topic piqued my interest because I've recently found myself using Geohashes to lookup nearby objects and I'm wondering if there's something better that I should be doing.

lucene used to have a geohash backed way of doing location search. They since switched to quadtrees that are binary encoded and added adding custom encoders to lucene for supporting this in recent versions.

I actually implemented search using simple geohashes indexed as terms back in the day. It works but this is way better.

This strategy of for-profit companies masquerading as open-source advocates is really common in science as well.

For instance, based on advertising from the ACS (American Chemical Society, the largest scientific organization in the world by membership), you would expect they are advocates of collaboration among chemists. In reality they will sue anyone that tries to store or distribute their standard for chemical identifier numbers (CAS#).

"superficially simple solution to a complex problems" --- Exactly this

While it might initially seem a bit easier to remember words vs numbers, W3W is a non-solution in many ways, many nicely described in the article.

Most critically, the W3W indicators have zero relation to actual geography. Adjacent locations have entirely different quasi-random identifiers -- there is no progressive gradation, and no indication whether two locations are adjacent or on different continents.

It does not scale, and leaves us completely dependent on a data connection and their servers to navigate.

There is also no way to figure it out from known principles. The entire system has many points of failure. With a street address, I can know which way to from seeing a couple of existing addresses; W3W - no way, need a data connection.

With Lat-Long I immediately know what part of the world I'm in, and what direction I need to move to move to get closer to my target. A GPS unit, or a simple compass and map will work great. W3W -- zero clues, and need a data connection to them.

Horrible, non-scalable, non-solution looking for a problem.

Massive marketing attempting to overcome bad technology.

Google Plus is dead. Long live Plus Codes.


On top of those reasons.... It's already a long-ago solved problem:


To be fair, W3W and similar projects have a lot more friendly and memorable addresses than this.

Mostly off topic: I would like a URL shortener that uses a similar system so that instead of giving me small.url/b3DmQ it would be small.url/MouseHatDoor because I will sometimes share a link with my students and there is always one student who can't get it to work because they type it wrong or something. I can send them the link through a course announcement but it is more convenient to put a short url on screen and have them go there.

http://yellkey.com is designed for exactly this use case, and is near-exact clone of the now defunct http://shoutkey.com that was prevalent at our school for this. It provides single-word short URLs that expire after 24 hours, which is fine in practice for any in-person use case.

nice. I have looked for url shorteners but didn't find this one. thanks!

Might it be easier to have a web page that has a chronological or reverse chronological clickable list of links you want to give your students?

Then instead of sending them a shortened link to something, you just put the link on your page and tell them there's a new link for them there.

That would also make it easy for students who want to go back and review older links you sent. Instead of digging through prior announcements to find the right one, they could just go to your links page.

"I can send them the link through a course announcement but it is more convenient to put a short url on screen and have them go there."

I hope you will look at "Oh By Codes":


Standard URL shortening (although with no tracking or cookies or javascript) but you can also shorten non-urls.

There's a normal FAQ on the page, but also an "HN FAQ":


Chrome gave me a NET::ERR_CERT_AUTHORITY_INVALID when attempting to visit https://0x.co/

You should check out our LNS system. You find the docs at http://qalocate.bamsaas.com/whitepapers

The NATO alphabet is worth learning for just these situations.

Probably not. First of all, "bravo tree uppercase delta mike uppercase quebec" isn't as memorable as "mouse hat door". Further, the NATO alphabet works because both the speaker and the listener understand what's coming. If the listener isn't familiar, then the speaker often needs to revert to "s as in sierra, k as in kilo, y as in yankee"—which tends to cause even more confusion as the listener then needs to parse the (intentionally) unusual set of words.

bitly lets you make custom URLs, even if you're not a paid customer. You can make them anything you want, so long as it hasn't been taken already.

I do that if I plan it ahead. However, sometimes it is more of a on the moment thing. Thanks though.

bit.ly generates a random string by default but will let you override it with the wording of your choice (as long as it's available).

I will do that if I plan ahead but often I will generate it on the spot so I don't bother since bit.ly wants you to log in to customize urls.

W3W feels a lot like Swatch .beats [1]. It's not exactly solving a problem the doesn't exist, but I think solution is at least as bad as the problem we started with.

At least .beats had the excuse of being a marketing gimmick, or so I assume. No one really thought millidays-since-midnight-GMT was a reasonable alternative to time-zones or just UTC time, right?

What is the problem that W3W is intended to solve? The idea is that I'll describe a location via W3W coordinates rather than by address (or lat/lon)?

[1] https://en.wikipedia.org/wiki/Swatch_Internet_Time

I work for Esri, a pretty large GIS company. From where I sit, I think W3W's idea could be implemented better in less than a week, and then plugged into existing GIS workflows as needed.

I suspect some large company or consortium like OGC will eventually build something similar using a geographic coordinate system like WGS84 instead of Mercator, and release it as an open database (perhaps with an open API and an open-source reference implementation). At that point W3W would only continue operating because of vendor lock-in to their proprietary named grid cell database.

(Disclaimer: Opinions are my own. I don't speak for my employer.)

I once thought about W3W like a DNS. Registered companies and businesses could purchase a "number plate" e.g. "jakes.superior.plumbing" and then keep that number plate on a subscription basis, much like owning a domain name. If the business moved address, the geographic coordinates could be updated in the back-end so that "jakes.superior.plumbing" always resolved to the correct location. This, I thought, would be a great monetization strategy and beneficial to many businesses. Even for folks who live in e.g. Dubai or rural areas where there there has been no proper addressing strategy from the municipal side, to be able to purchase a "name" of 3 words or whatever, in order to be found easily - would be hugely beneficial. Furthermore, instead of the 3 words being hard-coded to a specific cell on a world-grid, you take the name with you. If you move house, or move business, just change the coordinates and keep the name. I did mention this to W3W management when I spoke with them in past dealings; they brushed the idea off as useless because they didn't have the means or capacity to maintain a changing directory of names/coordinates. Or perhaps they just thought my idea was silly compared to their approach of dividing the world into trillions of cells and giving each cell an identifier.

I am not familiar with this company but I find what they are doing almost as funny as the Indiana Pi Bill . https://en.wikipedia.org/wiki/Indiana_Pi_Bill

I'm trying to understand it, but I can't.

Latitude and longitude can be used without an internet connection if you can get a GPS signal.

If you're a boy scout or doomsday prepper or 1800s explorer who fell through a wormhole, and have a bit of time, you can use the sun, stars and a makeshift compass to get a good ballpark.

It's a system which only requires you and your counterpart to both accept the contract of the coordinate system.

As many others here have pointed out fuzzy.enlarged.testicles doesn't mean anything unless we both have access to W3W, and then the directions which come from me needing to get from hairy.baked.potato to you at fuzzy.enlarged.testicles uses GPS. Because giving someone a print out of all the W3W plots they need to pass through is useless, because those phrases don't mean anything, because the system isn't contiguous or addressable.

It'd be like every house on a street having a different, non-contiguous number, different name and different postal code (134 wallaby 53217 next to 5678 futon 44444). Or for the Londoners, if the postal districts didn't increase as you moved outward.

It's a bad design with too many assumptions.

Or for you mathamatican, it's as if every square on a Cartesian plane had some arbitrary value assigned to it.

All you need is https://what3emojis.com

> If you are unhappy with the emoji you are assigned you can reserve custom emoji markers for your triangle for only a low, lifetime price of $24.99.* Custom emoji can be any length (except three), up to the VARCHAR limit set in our MySQL database.


I love tech startups: Longitude and lattitude have worked fine for centuries (well, ever since clocks became reliable enough, that is!). So let's... disrupt it? ...with something less intuitive? ...and proprietary? Typical VC mentality! Shut these jokers down.

Another blast from the past: the SRI dotgeo initiative, ca. 2000:


They proposed cuteness like this:

Default Brand Name (short for "default cell server brand name"): the special brand name, such as "mercury," "venus," "earth," "moon," "mars," that denotes the default GeoRegistry for a planet. Other cell server brand names always refer to the planet Earth.

There is so much "righteous indignation" in this thread!

I get that this Three Words thing might not be perfect, but a lot of the criticisms in the posting are nonsense. The furthest anything moved in the Japan earthquake was around 2.5 meters. Why act like this is some kind of deal breaker? If you had used latitude and longitude it would still be wrong by 2.5 meters if you didn't update it after the quake.

Some people had an idea, built it out, and everyone here is losing their minds, I don't get it?

2.5 meters is a problem in W3W. The squares are 3mx3m so most things are going to change "location." Combine that with the nonlocality of the W3W encoding and suddenly anything used has a completely different 'address' where with traditional latitude and longitude 2.5 meters doesn't drastically change.

So you just keep using the old address code or words or whatever, I really don't understand why this is a problem. What is going to happen if people come looking for you and you are 2.5 meters to the left of where they show up? Your original geolocation is almost certainly less accurate than 2.5 meters to begin with, no matter how you specify it. Add to that the fact that if it's a physical location with geographical extent, like say a building that is more than 5 feet across, you are arbitrarily picking your location from within all the possible locations that fall inside that building.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact