Minecraft's “Pack.png” Seed Reversal Methodology
docs.google.com
docs.google.com
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].
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.
Maybe? A very fun project, anyway.
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.
https://github.com/minecrafthome/pack-sand-reversal/blob/309...
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.
It's not guaranteed to be unique, but i saw 10^-20 thrown around as the chance of 2 seeds matching.
That's astonishing!
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..
People don't port DOOM to pregnancy tests and fridges because there's any dire need to play it on those devices
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.
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.
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.
https://www.bellingcat.com/news/uk-and-europe/2015/01/27/is-...
A lot of their investigative work is of this nature.
if you prefer reading instead of watching a video https://packpng.com/
Related but different discovery: how the title screen was found https://youtu.be/GaRurhiK-Lk
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
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.
Video on the topic: https://www.youtube.com/watch?v=9iaU1TvIQqM
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 can pull up the seed at any time after creating a world, and can manually set whatever seed you want when creating a new world.
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.
Can anyone recommend a game engine for making games in Minecraft style?
Preferably something that runs on multiple platforms and has some kind of map editor.
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.
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".
It's definitely limited though.
But thanks for the info!
And marching cubes is actually a method to get rid of voxels, in a sense. You don't use marching cubes if you want that ridged low-res voxel effect.
No and yes. The minecraft engine is polygon-based, and the polygons are just making voxels.
VoxelJS didn't have commits for 5 years now, but it seems to have a bit of tooling.
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
Well that's weird. Are seeds not consecutive?Found the timeline. Yes several people asked, and no, Mojang did not have any records.