Computers... wonderful fascinating little devices that simply calculate, crunch numbers that represent formulas and data, and produce results. These great machines that we have created can do amazing things.
In the most basic way, you instruct a computer with a simple formula, and give it simple input data for that formula, and it produces the result, consistently, reliably, and predictably. Scientists are always plugging in the known formulas for the basic foundations of the universe. Using a computer you can predict the interactions of gravity and the heavenly bodies and accurately predict the future motion of the heavenly bodies. You can also plug in the formulas for how the most basic elements interact, electrons, protons, and complete atoms.
Conceivably then, in the future, once could use these known formulas and a terribly fast computer, and emulate how a few thousand atoms interact over time. Why not a few million? Then, billions? The amount doesn't really matter, the sheer number is irrelevant. It's all simply data that the computer is using with simple formulas to calculate results, and using those results to start over again. Already computers are adequately equipped to do this for an inconceivable amount of atoms, and the future brings only faster and bigger computers.
So, then, what stops a scientist from emulating all of the needed atoms for the most basic conditions and elements of life on primordial Earth? Nothing, really, in fact, this might already be possible. So you can fully emulate at the atomic level a simple bacteria or other life form. Why not feed environmental data to this emulated bacteria over a fast timescale, let it evolve. I'm not concerned with the fact that it might take just as long to evolve the bacteria in an emulation as it does in real life, just showing that it's possible, because it's the possibility that's important. Go with this idea then, with a fast computer and enough time, you could emulate life. Is it life? Does it really exist? What if it becomes sentient? We can duplicate the data, save it, delete it, start up another emulation... how does this affect the "life form" that's been created? These are all great questions, but again, not what the point of this digression is.
If you've followed this far, and understand the real possibilities above, then hold on. What, then, stops us from thinking that we aren't currently in an emulation? Yes, this entire universe could be simply the result of an emulation, the result of some object with vast computing power and time, calculating results using very simple formulas on a large data set, that data set being the entire universe. Atom by atom, element by element, all the forces and interactions are calculated successively for the whole universe. You might say "It would take too long", but remember that our perception of "time" is simply that, a perception. It may take the emulating engine a trillion years to proceed just one nanosecond of time in the universe, but we wouldn't know. Since time, and all of reality, is just a perception, then this emulating engine could exist in a reality that we can't perceive, a reality where time and calculation speed is irrelevant.
Consider then, that everything we see, touch, feel, hear, think, and understand, is simply the results of a computer somewhere cranking out numbers. Our entire reality is nothing but successive computations from simple formulas at the sub-atomic level. Take this notion and work with it for awhile... it can lead to some interesting insights, one of which is that this might not be simply theoretical, it might be exactly the case, exactly what's going on. We can not possibly have any understanding of what exists outside of the reality that is being calculated. We can not know that we are in an emulation.
Right? [Added by Sean Heber, co-consiprator of this idea.]