Hacker News
Can you build a recognizable World Map in under 500 bytes?
chriscjcj
|next
[-]
_,--', _._.--._____
.--.--';_'-.', ";_ _.,-'
.'--'. _.' {`'-;_ .-.>.'
'-:_ ) / `' '=.
) > {_/, /~)
snd |/ `^ .'
murderfs
|root
|parent
|next
[-]
Retr0id
|root
|parent
[-]
Weighs in at 379 bytes (or 378 if you trim the newline). Obviously it is font-dependent, but it works on my machine!
Edit: golfed a bit further, but unsure how reliable it'll be with different fonts: https://retr0.id/stuff/worldgolf2.html
chriscjcj
|root
|parent
|next
|previous
[-]
https://asciiart.website/artist.php?artist_id=121
https://asciiart.website/preservation/poster.php?person_id=1...
simonw
|next
|previous
[-]
fetch('data:;base64,1ZpLsgIxCEXnrM...==').then(
r => r.body.pipeThrough(new DecompressionStream('deflate-raw'))
).then(
s => new Response(s).text()
).then(
t => b.innerHTML = '<pre style=font-size:.65vw>' + t
)
BretonForearm
|next
|previous
[-]
What was asked of Claude? The article is very sparse on this.
AaronAPU
|next
|previous
[-]
I’m asking here instead of asking an LLM because that’s what humans used to do and it was pleasant.
wizzwizz4
|root
|parent
|next
[-]
convolvatron
|root
|parent
|previous
[-]
I too would be interested in approximations or heuristics if anyone has any
gus_massa
|next
|previous
[-]
Also, can this be done with png? Most consecutive lines are very similar, so I'd expect the algebraic pass to be very useful.
TacticalCoder
|root
|parent
[-]
Africa and Europe are connected through Spain.
There's no Suez channel.
There are plenty of approximation: it's the whole point of the thing... You only get 1013 bytes (or, well, 500 bytes in the question asked).
1e1a
|next
|previous
[-]
magicalhippo
|next
|previous
[-]
cwmoore
|next
|previous
[-]
Makes me think a project-and-rasterize pipeline, sampling a simplified world water boundary map under a variety of projection parameters should give you a range of bitmaps, and then it is up to whoever to decide if the detail lost in all of this renders it incompatible with the world as they know it.
The site below takes detailed map files and removes significant detail for practical purposes:
userbinator
|next
|previous
[-]
ksymph
|next
|previous
[-]
snailmailman
|next
|previous
[-]
I used https://squoosh.app to make a pretty good one. Mostly just a resize and then OxiPNG for compression. Managed a 124x62 black/white image. OP has a resolution of 195x53, so I had very similar, but slightly worse i think? mostly a different aspect ratio + map projection i think.
playing with Squoosh.app is very fun, and you can very easily see how the jump from 500b to 1-2kb turns a map from "awful" to "very good" with the right settings.
Analemma_
|next
|previous
[-]
Analemma_
|root
|parent
[-]
gus_massa
|root
|parent
|next
[-]
Can the it also split Africa/Arabia/Eurasia?
Who/how decided which islands to keep and which to erase?
If you want to save a few characters, you can replace `length(v)` with the actual number.
Analemma_
|root
|parent
[-]
gus_massa
|root
|parent
[-]
Have you tried with Bezier curves? Your images show a lot of pointy parts, like Southeast Asia and that usually needs a lot of high frequencies in the Fourier representation, so I think something piecewise may be better. (Perhaps a polygon is better.)
netsharc
|next
|previous
[-]
roshin
|next
|previous
[-]
im3w1l
|next
|previous
[-]
Then it's a matter of picking a suitable way to encode numbers into bits.
I came up with groups of four bits. If the high bit is not set that is the number, if it is set then read an additional group of four bits, and interpret as a biased 7 bit number. This came out to 400 bytes not including decompressor.
urbnspacecowboy
|root
|parent
[-]
The galaxy brain move would be to always arbitrarily start with one character, replace the two special numbers with a single "don't output any characters, just swap" number, and then... congratulations, you just reinvented CompuServe RLE!
http://fileformats.archiveteam.org/index.php?title=CompuServ...
throwrioawfo
|next
|previous
[-]
27183
|previous
[-]
:
You're welcome.