A brief summary: pack.png [0] is a 128x128px image of a scenic mountain within a Minecraft world, and is used in in-game menus. The goal of this project was to discover the world seed used to generate the Minecraft world that pack.png was taken in. This was no small feat, with 2^48 possible seeds the procedural world generator could have used, and required much analysis, trial-and-error and distributed computation by many volunteers to obtain the seed.
The process involved exploiting identifiable world features such as the position of clouds, orientations of certain block textures, and more, to discover the exact coordinates of the blocks in the image (insane in itself); figuring out the exact camera perspective via regression fitting; creating and training a machine learning model to upscale the image in order to better discern details and manually create a reconstruction; deducing how the image was taken (print screen -> cropped to 512x512 -> 4x downscaled with specific resizing algorithm); and more. Through these efforts, they had significantly reduced the number of candidate seeds; distributed computing power provided by 3,500 project volunteers' GPUs was then used to obtain the final 700,000 candidate seeds, and from that a brute-force approach was used to isolate the actual pack.png seed.
The YouTuber SalC1 produced an excellent video on the project [1].
My uneducated guess at a summary after reading and watching the video; which is like distilling a Nobel prize effort into a sentence, it seems the two big parts are
a) The clouds are a static map that is placed at a fixed location and moves over in a known pattern per time-step. So by extracting the cloud map and correlating that to what you see in the image, because you know where the clouds started you can get a good idea of where you are in the map.
b) A high-up waterfall has a low chance of spawning because high waterfalls are rare to even try generating; and additionally it requires rock and air around it, further reducing the chance it can actually occur.
So (a) lets you know where you are, then you figure out the waterfall location from that (a lot of tricks described above to figure out perspective, etc.), then use elements of (b) as a fairly fine sieve on the generator ("could a waterfall generate at xyz") and you have a tractable way to find possible world seeds.
What you're describe is sort of the first and last steps. As I understand it, the solution involved comparing the pattern of sand in the pack world (that they figured out from the picture) against all possible seeds.
Doing all the initial detective work allowed them to compute the xyz coords in the world, which gives the location to run the simulations.
The whole thing was abstracted away, you don't need to run Minecraft at all (so it's not like they're rending billions of images), just the function that generates the sand noise. This got written as a parallel cuda kernel and they just threw iron at it.
That then gave the 700k possible matches which were searched more thoroughly.
The matching function is very simple, it compares the generated Perlin noise to a fairly small template and as soon as there's a mismatch, it stops early. Most of the complexity in the kernel is generating the noise from a seed.
One additional wrinkle that I saw on a video[1, about 7:00] about the skull painting was whilst the clouds are a static map moving per time-step, that starts when the first map is loaded, not each map. Which means it can be misleading.
> creating and training a machine learning model to upscale the image in order to better discern details
Contrary to popular myth, no AI upscaling was used as it turned out to be too inaccurate. Instead, they manually upscaled some simple image parts after they realized the pixel colors of the cloud edges were produced by 2x "box"-style downsampling.
What a colossal waste of brainpower and computing resources. How bored out of their minds do people have to be to invest all that energy into such a project. Sure it's technically challenging. But so much is!
You have one life and are obviously talented+educated but then burn it on such nonsense. Don't get me wrong, not everybody needs to try to solve cancer, world peace or climate change. But finding a minecraft world seed? Wtf people..
I did not participate in the project, and I agree the seed is almost worthless to the world but I don't think the project was a waste of anything.
The minute inherent value of the answer is not why it was done. Finding the answer became personally valuable to people for a few reasons:
The unavailability made it seem more valuable. The idea of making something seemingly unknowable known is enticing. Making headway on a problem makes the solution personally valuable. The production, rhetoric, and appeals to nostalgia in Sal's first video about the project made it seem more valuable to many. Being part of a group who share an objective that matter to them is inherently valuable to humans.
I believe the project added value to the lives of everyone involved, and the experience gained and the connections made will add value to the rest of the world.
All of this could have been true for a project that actually matters, yes, but those projects tend to have high barriers to entry, consequences for failure, and distant horizons of success. I think this project replaced time and computing power that would have been spent on games and youtube, not on important problems.
They were pretty confident that a valid seed mapped to that image, as the creator of the game said that they just loaded up a random world and took a screenshot without doing anything.
It's not guaranteed to be unique, but i saw 10^-20 thrown around as the chance of 2 seeds matching.
This reminds me of the time I booked a vacation rental in Italy on Expedia and then realized it was a scam after looking through the confirmation email. The phone number wasn't Italian, and googling it resulted in finding forum posts about other vacation rental scams. Reading through the fine print, it became obvious that it was a wire fraud scam (wait until after the free cancellation deadline, then require a "deposit" via wire transfer, or cancel and lose 50% of the booking fee. Either way, the property doesn't exist.)
I used one of the photos of the property's balcony to confirm that the venue couldn't possibly exist at the address on Google maps/Earth. A reverse image search didn't turn up much, but I was able to track down a distinctive cathedral tower in the background, then match other less unique background features to eventually find the real location of the balcony in the photo about 10 miles away in another town.
I then tried to cancel the booking, and expedia's site glitched out. I had to call in to get the refund processed. I also emailed Expedia and several other similar sites with the same property listing, telling them about the scam and providing proof. Last I checked, the scam booking is still available to be made on Expedia and other sites.
We have a couple of high-end vacation rentals and we are constantly trying to get fake listings taken down from all sorts of sites. What works best is usually emailing legal@website.com. Any sort of web form, even for fraud, just ends up being a black hole. The shadier sites that are purposely hosting fake listings themselves I contact legal@theirhostingprovider.com from their whois and I report them the FTC, although I have no idea if they ever follow up.
Makes me think anyone that wants to put up adverts on a site like that should pay a deposit or posting costs upfront, as well as ID verification or something like that.
That in turn reminds me of a challenge [0] that was set to find the filming location of a video somewhere in the rural US. It was made significantly easier because they were filming a solar eclipse, but still impressive how people can do this kind of thing when determined enough.
Obviously I in no way support the politics of the people responsible for this, but from a pure "this is the power of a crapton of bored nerds with nothing better to do" standpoint it's both amazing and terrifying.
Bellingcat (with a lot of crowd-sourced assistance) piecing together the various sightings of a Buk launcher in Eastern Ukraine believed responsible for shooting down of MH-17 and the likely location it launched from.
Having never played minecraft what does that mean? Is this like discovering the exact number on which everything is based in the entire minecraft generated world?
I assume with this seed you can predict everything else that is seemingly random within the world. The location of items/loot etc and spawn times? Since if you know the random seed to any "random" generator it really is no longer random and you know the entire sequence. i.e. this is the seed to the PRNG
It has no real impact on everyday gameplay other than being a bit of trivia. The seed does indeed allow you to predict the vast majority of gameplay behavior of a particular map, but only that map. This particular map was used to generate an icon that was used as part of the GUI in Minecraft.
Yes, exactly. The procedurally generated world is predictable* if you know the world seed -- land forms, structures and items/loot spawn the same way each time. You can specify the seed when creating a world, if you like.
There are certain things that are nondeterministic, such as where mobs spawn (that depends on player position, etc.) or how they behave.
* There may be parts of world generation these days that are nondeterministic even with a known seed; I'm not too up to date with recent world generation changes.
There are a few blocks like bees hive that aren’t fully determined by the seed. That can only be determined within a certain location accuracy the rest is random at runtime when the player enters that area. But the block does persist after that.
One thing that is theoretically deterministic but not in practice is the location of dungeons. These generate in spaces where there is an appropriately sized gap between the floor and the ceiling. Normally these would be determined solely by the terrain generation (and therefore the seed), but it is possible to push blocks into lazy-loaded chunks before the dungeons have generated yet and force them to generate in different spots.
I interpreted your question differently than the current answers so just to elaborate: it's just a random image and this seed has no special meaning. Discovering it just means they've found the world where the image was taken, which has been a Minecraft "legend" since the start. The world itself has no significance and is just like any other world.
Every world you start is based on its own seed, which is not hidden. The achievement here is that they reverse engineered the seed for that world based on an image.
You’ve got it right. This “seed” is a seed in the sense of a random number generator. It only controls generating the world, however, it does not control the behavior of NPCs.
I had learned about this here on HN and its just mind blowing that they discovered it down to the version range. Amazing that it took some months but they did it.
The most impressive part is how they made the search program run without bugs. I must be hard to make such a program and not be able to validate the input until you find it.
"I recognize that piece of bedrock. See you soon."
There is already long established technique to find location on the map based on screenshot containing piece of natural land forms or bedrock (immovable blocks below the terrain).
This has application on large maps where players try to distance themselves from other players to be able to build undisturbed or stream without getting stream-killed.
In particular, it is know that some players got killed mid-stream based on screenshots on natural terrain.
Minetest: https://www.minetest.net/. It’s a bit similar to “just use Minecraft” because it comes packaged with a barebones “game” — a mapgen algorithm and enough Lua to allow you to run around, mine, and craft, but stops short of adding non-player mobs (but you can find plenty of mods to add them, and adding mods — really just Lua scripts + packaging and optionally meshes, textures, etc. — is what it’s designed for). “Available for Windows, macOS, GNU/Linux, FreeBSD, OpenBSD, DragonFly BSD, and Android”.
AFAIK VoxelJS is dead. I started out trying to build a game on it, but nobody seemed to be working on it and it seemed to be more of a wiki than a engine, so that's how I wound up rolling my own project.
Not meaning to be dismissive, but why not just Minecraft? There is a large modding community. And there's something called Adventure mode which puts more constraints on the player (can't destroy blocks), which can be used to make goal-oriented maps.
You definitely should do whichever you find more fun. But for Minecraft there are two clear "why" answers which interact:
1. There is a huge modding community so while your mod might be somewhat interesting on its own, the rest of that community can interact with it too, doing things which you didn't conceive of, but nevertheless would not have existed without your mod and that adds even more value.
Example:
Applied Energistics is a mod about storing things as data and then accessing that data over a storage network. Inside the game you walk up to a terminal and type like 'coal' and see that somewhere in the network is some coal, which you can now pick up and use from this terminal, or maybe you're carrying some stone you don't need, you just drop that into the terminal and it's stored on some disk elsewhere. Is managing disk space, etc. fun? For some people it is.
Thaumcraft adds a system of elemental magic to Minecraft. You can discover what "elements" make up blocks in the world, even enemies you meet, and harvest them to do magic. You can convert the magic into some sort of liquid or gas and combine it in new ways to make things from it.
So then an author says these both sound good, let's apply AE to Thaumcraft, and they make Thaumcraft terminals in AE, so now you're storing magical elemental fluids as bytes on a storage network. You cast some spells, realise you're low on fire element, you run up to a terminal type 'ignis' and get some fire element from a remote storage system.
2. There's an enormous ready to go audience for modded Minecraft. So that's low friction for going from an idea to getting some playtest feedback. You have an idea, you make it out of existing mods, maybe some parts are sketched in, some configuration values are pretty arbitrary. You upload that and people can try it immediately on any platforms that play Java Minecraft (so not consoles). If it sucks you can throw it away the same week you started it.
You can take this really far (e.g. some packs involve actual custom programming just for that one pack) or just throw together a dozen things you like and see if it's fun with them all together with no tweaking at all.
But they're not asking how to make their own game, they want "a game engine for making games in Minecraft style".
I'm all with you that actually doing something original is much more fun, but this isn't that.
"I want to build a shitty minecraft but with my name on it"
The only thing that Minecraft has going for it, is its unique type of gameplay. The sheer power of its original concept even elevated the hopelessly backwards retro graphics to its own genre.
I'm just saying, because simply modding Minecraft wasn't enough, that comes with "licensing issues", aka they can't say "I made this".
No, it isn't. Also, maintaining mod updates to newer minecraft versions is a huge hassle. I know a friend who stopped updating his mods in 2018 and now everyone is begging him to release a new update. First, because minecraft uses a different obfuscation pattern for each update requiring a recompile. Second, because the codebase is still changing significantly.
If interested then search on github for "voxel" rendering engines. There are plenty of repos, including some with good clean code that are great for learning the techniques used (s-macke/VoxelSpace for example).
Since Minecraft got popular, people started using 'voxels' for any stylized game that builds objects out of cubes, even if it's still a 100% polygonal rendering and there aren't any algorithms like marching cubes or raytracing going on.
Minecraft via mods. As exemplified in this post, the Minecraft community makes good tools for map making and otherwise transforming the base Minecraft game into whatever you want.
Well, there is Roblox. It has an... interesting community. Technologically it uses Lua for scripting! And has a great ide for editing worlds and script. And a giant user base.
Did the dev confirm if the version is correct or if this task is achievable at all? It could have been generated from a version that is not really released. All it takes is for dev to slightly change the map generation algorithm after generating the Pack.png to make this task impossible, which sounds quite probably.
Due to the very large number of potential seeds for*
randomly generated minecraft worlds
(281,474,976,710,656)
...
This resulted in only one seed by the end:
3,257,840,388,504,953,787
It's a random-number-generator seed, like any other. What's special in this case is that it's the starting point for a deterministic algorithm that generates an entire world. If you randomly discover a cool world, you can send people your seed and they can generate the same one.
It's almost certain several people did, but either didn't get a response, or - infinitely more likely - that the seed used for the icon was simply never recorded.
Found the timeline. Yes several people asked, and no, Mojang did not have any records.
I don't even know what feelings strike me most about this post. I think this post draws a really sad image about the poster.
I have started my computer programming career in Minecraft, about 10 years ago and I don't know if I would have had the same motivation to do it without it's capabilities, community and problemspace.
Sometimes, if you have nothing positive to say, rather say nothing.
People don't understand that "fun" is an essential evolutionary tool, and playing is a form of learning.
On top of that there's a nontrivial chance the person you replied to is a couch potato whose quarantine's greatest achievement was binging tiger king. I'm sure they have a lot to lecture others on how a massive educational project is wasting away the talents and gpus of society.
PS: programming career started in diablo 2 and wow. Hear hear, fellow gamer-dev :)
Well, there's a difference between doing something for fun that takes some resources, versus doing something for fun that takes a huge amount of resources. I don't know how many computers or how much energy was used by this effort, so won't pass judgment on whether it was worthwhile or a waste, just that I can understand the sentiment.
Also, great grandparent, at least by my reading, didn't comment negatively on Minecraft itself, so nobody is questioning the value of Minecraft, just the effort of finding the seed for the world where this image was taken.
> just the effort of finding the seed for the world where this image was taken
"Pointless" projects flood HN; my favourite from today obviously being the Typescript in-type SQL database. You posted your fair share of them in fact, I especially love this one from your history, COBOL on COGS: http://www.coboloncogs.org/INDEX.HTM
They're pointless in a very cold, medical sense but they're obviously works that foster interest. That make people think. That spark new ideas, and who knows what will come out of that.
Science and math regularly explores "pointless paths" just for the hell of it. From those pointless paths often rise critical, high-impact inventions.
The same applies to software engineering. Sometimes, there is a direct line to "usefulness" (such as via creating software that may end up being directly used, or via inspiring other tools used for high-impact applications). But sometimes it's more nuanced, such as by inspiring thousands of people to pick up programming and learn new skills. One of those people might be your next John Carmack. Maybe ten.
If this sort of stuff wasn't useful, we wouldn't have a concept of having fun at all. We wouldn't need it; hell we wouldn't even need to forbid it because nobody would want to have it. We'd have industrial-scale baby-breeders plopping out toddlers in factories, with robot arms stuffing them in a suit and forcing them to learn every waking hour until they're good enough to grease the gears of that very factory.
Its not about whether its pointless, but rather whether the resources spent on it (energy expenditure of the distributed BOINC nodes used) is worthwhile. Few people argue that "pointless" projects, done for fun, aren't worthwhile. The question, if I read the original comment correctly, is that this is wasteful of resources/energy, when it could be better spent elsewhere (covid research was mentioned) or saved (to not contribute to climate change?).
I don't know how much was actually used though, I didn't see it mentioned, so maybe its not enough to worry about. I'm perfectly cool with wasting a little energy for fun, we do it all the time after all.
> If this sort of stuff wasn't useful, we wouldn't have a concept of having fun at all.
I dunno, burning stuff can be fun, does that mean that its always good (for the environment or just the stuff being burnt)?
I'm not actually against this project at all, but I do wonder what resources were spent on it.
Think of all the resources you expanded in your life purely on entertainment.
Think of all the times you worked out to burn fat and calories amassed by not eating exactly what you needed.
Think of all the fuel you expanded on leisure, via planes, cruises, roadtrips, etc.
Think of all the recreational industries you supported throughout your life, by spending your viable, limited time listening, watching, reading and even buying their work.
Like I said, if leisure wasn't important and useful, we just wouldn't have it. It's such a ridiculously massive industry, I don't think you realize you are surrounded by it; it takes up the majority of your and everyone else's lives.
You can make these things more efficient, but arguing their existence is dangerous territory. And I certainly will die on a hill to defend how critical projects like this one are to introduce bright minds to the field.
> ... but rather whether the resources spent on it (energy expenditure of the distributed BOINC nodes used) is worthwhile
Is 8k gaming worthwhile ? How about 4k ? 1k ? text-mode gaming ? gaming in general ? Shouldn't we all better ourselves being productive to society rather than play mindless games ?
> Well, there's a difference between doing something for fun that takes some resources, versus doing something for fun that takes a huge amount of resources
Do you realize the whole gaming industry revolves around NOTHING but consuming HUGE amount of resources (including hardware development) for nothing but "fun". Do you really need 8k gaming, or maybe even "nethack" consume too much energy for you ? Btw, I'm not even getting started about the "entertainment" industry...
I didn't imply the poster questioned Minecraft, but this effort didn't come out of nothing. It came out of a community which exists in the ecosphere.
The actual computation part was the least amount of time spent on this. The bulk was trying to narrow this seemingly 2^64 seeds down to a bruteforcable amount while learning something.
There is a whole community around "seedfinding" now, which has done amazing work around reverse-engineering and pseudo-random number generation.
Sure the sentiment of putting resources to anything of no immediate value is questionable, but I imagine so is modern day theoretical physics and mathematics :)
Warcraft 3 map editor was such an influential tool. Warcraft 3 map editor spawned multiple new game genres. DotA map spawned MOBAs, numerous tower defense games such as Element TD spawned the Tower Defense genre and recently the autochess genre has appeared, taking many inspirations from maps such as Legion TD.
There still are some popular map genres in Warcraft 3 that haven't been converted to standalone games, so there's still a lot of potential. Most notably I can think of are tag games.
Or you know, somebody is ACTUALLY worried about the FACT that we've fucked up the planet, as a species, and that within 10-15 years we're going to experience it, and it's going to suck WAY worse than this "little" pandemic we got going right now.
Just saying how your post looks in perspective, bragging that you're not sure if you could've been arsed to learn programming if it weren't for a video game ...
And you just ignore it as if it wasn't said. It really saddens me, the defeatism of the younger generation.
I'm just here defending that person because you called them "sad", called them out in front of everybody. Fuck you. Being worried about what is going on with the fucking world isn't sad. It's literally the most important thing we have. Minecraft literally pales in comparison. You can tell them it's off topic, but you can't just fucking call them SAD for being worried about it. Show some fucking compassion.
Following along the stated lines, should all music creation be stopped, should artists only paint covid warnings, should sculptors only engrave monuments to the covid casualties? My point is, if art shouldn't stop because of the pandemic (and it shouldn't) then why should science? Just because a painting doesn't cure the plague, paintings and art provide pleasant distractions. This work can provide satiation to curiosity and perhaps the spinoff work can eventually be "useful" in some other way as well (I quoted useful because there is a deeper philosophic debate that could be had about utility here).
Had this never happened, all those GPUs would have spend many long nights doing nothing. Gamers have a disproportionate number of powerful PCs, and the people that contributed their GPUs did it out of love for the game, not for some greater societal good.
"They"... the GPU operators, or their parents? Furthermore, in most jurisdictions electricity generation produces externalities that aren't fully priced in, eg. air pollution or co2 emissions.
Did you ran the math of first (your computer), second (transferring the data to HN), third (broadcasting the data back to all HN readers, including the energy spent by their computers) and so on (hardware requirement down the line, shipping line from manufacturer, manufacturing, historical R&D, mining, ore processing, ...) degree of the energy consumption related to each time you posted on HN ?
The process involved exploiting identifiable world features such as the position of clouds, orientations of certain block textures, and more, to discover the exact coordinates of the blocks in the image (insane in itself); figuring out the exact camera perspective via regression fitting; creating and training a machine learning model to upscale the image in order to better discern details and manually create a reconstruction; deducing how the image was taken (print screen -> cropped to 512x512 -> 4x downscaled with specific resizing algorithm); and more. Through these efforts, they had significantly reduced the number of candidate seeds; distributed computing power provided by 3,500 project volunteers' GPUs was then used to obtain the final 700,000 candidate seeds, and from that a brute-force approach was used to isolate the actual pack.png seed.
The YouTuber SalC1 produced an excellent video on the project [1].
[0] https://packpng.com/static/pack.png
[1] https://www.youtube.com/watch?v=ea6py9q46QU