15
$\begingroup$

The virtual world is nothing new in science fiction and has had quite a few uses considering it's a fairly recent concept. Since the virtual realm isn't constrained by understanding of physics, it gives writers (like little me) room to go a little crazy. However, we must forget (and this is glossed over most of the time) that data within a computer is still a physical presence. You can destroy data by breaking a computer which is why saving data is a thing at all. However, when talking about virtual beings moving in a virtual plane, it means they are mortal. "Why would they be mortal? Since they can be simulated, that means the computer has enough space to store their data" I almost hear you type. Well that's because if they die (or get deleted) the save will technically be a clone. Now, you know where I'm going with this... or not. Your choice.

When a character is in the virtual world, where are they physically? Most importantly, how do they "move" inside the computer?

Let's say a girl "Lucy" gets virtualized into a supercomputer and is now a virtual representation of herself (an avatar) and her data is now in said supercomputer. Her virtual envelope has a visual filter that translates the programs and systems of the computer into visual cues. A part of the motherboard is a spacious room and the programs are like machinery taking things in and giving things out (input and output). Programs are basically the robots operating in a factory, and Lucy is right now a very advanced program that's not constrained to a single place and purpose. While she explores, she moves through rooms and alleys. However, does her data move with her in the supercomputer or alternatively is her avatar like a cursor that moves and interacts with data files? If she moves from a part of the supercomputer to another, data has physically moved, right?

Knowing this is important because there's a threat in the physical world that's about to turn off the power (or break the computer) while she's still inside of it. Lucy gets a heads-up of him coming thanks to the computer having access to security cameras. She knows at all times where he is, that is until he breaks that function too. He breaks a piece of the computer and Lucy needs to move to another before the rooms she was in disintegrates. She does this until she finally gets to safety.

Her three choices to get to safety include uploading herself to the web. But would it work? Would she be safe from a dangerous (albeit unknowing) assailant? That is, if she connects, she'll have access to a whole new virtual space to move to. She's unaware of where to move to (and so am I at the moment) but a "friendly" program sacrifices itself to tell her where to go (Does doing your job count as bravery?). Anyway, where should she go?

$\endgroup$
18
  • 11
    $\begingroup$ In a modern fully virtualized enterprise-level IT system they have multiple redundant data centers. Applications, such as Lucy, run on virtual machines which are the only things running on physical hardware. The nice thing about virtual machines is that they are virtual, and can be moved seamlessly between physical machines, either on command or automatically. The question makes very little sense, because it assumes that Lucy the application runs on physical hardware; or, in any kind of modern setup, it would not. $\endgroup$
    – AlexP
    Oct 14, 2021 at 18:35
  • 2
    $\begingroup$ "Supercomputer" is kind of a loaded word. It used to refer to a single computer built with the best technology available but that approach reached its limits decades ago. Modern supercomputers are comprised of large numbers of individual computers connected together; they contain expensive processors and GPUs, lots of RAM, and very specialized networking but nothing about any of them is dramatically different from an ordinary desktop computer. It's kind of unclear from the question whether an old-school supercomputer or a modern supercomputing cluster is being referred to. $\endgroup$ Oct 14, 2021 at 19:31
  • $\begingroup$ @AlexP I’ve written one line of code in my life (and to be honest it was quite useless). It stands to reason that I’m not an expert. Though I wonder why is this a comment and not an answer? You’d get upvotes. $\endgroup$ Oct 14, 2021 at 19:34
  • $\begingroup$ @GrumpyYoungMan The clusters of computers where kind of the idea, otherwise the characters stays in one place and bye bye data. I confess I used the word “supercomputer” willy nilly, but there’s not really another word to say that the technology level is advanced (except this but it’s longer and not the point). $\endgroup$ Oct 14, 2021 at 19:39
  • 1
    $\begingroup$ @user: Yes! It all boils down to latency, and the speed of transfer of information. Light in fiber-optic cable travels at "only" 200,000 km/s (2/3 of its speed in a vacuum) and each switch and piece of network equipment adds its own latency. This is why Paris -- New York is an 80ms round-trip and Paris-Sydney a 200ms round-trip (at best, more like 400ms in practice). Imagine thinking at the speed of an AI and waiting 400ms for information, it's an eternity. Best travel there and work "on-site". $\endgroup$ Oct 16, 2021 at 17:06

11 Answers 11

35
$\begingroup$

Speaking as a software developer ...

I'll speak here in technically accurate terms. If I was writing a book about such things, I'd try to be technically accurate while also being entertaining. That would likely mean not explaining all the technical details because that would be boring, but I try to avoid saying things that aren't true. (Or at least plausible in the context of the story.)

Where data is physically located in a computer has nothing to do with the physical relationships in a virtual world.

When data is actively being used, it is stored in RAM. That is, Random Access Memory, which these days is integrated circuit chips on a memory card. RAM has "addresses", numbers that identify a specific place in RAM. Location 0, location 1, etc up to as high as you need for all the memory you have.

But if you have a chunk of memory to describe a room, let's say that's at location 1000-2000 (just to pick a number). Now let's say you also have some memory allocated to describe a person. If the person is in the room, that does NOT mean that the description of the person will be in there somewhere between 1000 and 2000. Rather, the description of the person will be somewhere totally different, maybe 9,000-10,000, and somewhere in that description of the person will be a reference to the room. That is, somewhere there will be a little piece of memory that's identified as "location" and that will have 1000 stored there to say that this person is in this room. (Actually it's probably more complicated than that because you probably have to say where in the room they are. But let's skim over that for now.)

If the person moves in your virtual world, if they walk from the dining room to the kitchen, you don't move the block of memory that describes the person. It stays in the same place. All that changes is the reference that says where they are.

Data can move in RAM for reasons that have nothing to do with "physical" location in your virtual world. If you stop the game/simulation/whatever it is then everything is erased from memory. Anything that needs to be saved is saved on disk. If you later start the simulation up again, where things get loaded into RAM could be completely different from where they were last time. Like last time if the first thing you did was start up your web browser, and then you started the simulation, the web browser will get the lower numbered memory and the simulation will be above that. If the second time you start the simulation first, then it will get the lower memory. (On modern computers, all kinds of stuff that you don't normally think about gets started up -- video driver, mouse driver, antivirus security code, code to run your internet connection, etc etc.)

While a program is running data can be moved around as part of "memory management". Like suppose your simulation brings in a non-player character. Memory has to be allocated for the information about this character. Then the player characters go somewhere else and the NPC is no longer relevant. The computer marks the memory used to describe this character as available. Eventually the computer does "garbage collection" where it moves everything that is still being used down to take up this available space and consolidate all the free space into one big block where it is available to be allocated to new things needing memory.

So in the context of your story, if the virtual character knows that the memory card on which she is stored is about to be damaged and she needs to escape:

She could move to somewhere else in memory. We'd have to assume that the virtual character can control the memory management logic. She could trigger a garbage collection to get herself moved. But that would likely just move her within the same chip, which is unlikely to help.

She might try to move herself to a different memory card. Now we'd have to ask what we're assuming about how virtual characters in this world work. Can she control the entire computer? A program on a modern computer can only access memory that the operating system has allocated to that program. Attempts to access outside your own memory are blocked as "access violations". That's to prevent an error in one program from breaking other programs. Like if there's a bug in your browser, you don't want it messing up the text in your spreadsheet. Maybe she can load up another copy of the simulation and move herself to the new copy?

But more likely she'd want to get out of this computer, off of this set of memory cards, completely. She'd want to update herself on the hard drive or copy herself to a thumb drive or attach herself to an email and send it to another computer or upload herself to another computer via the internet. Then she'd actually be moving to a different place.

Well, that was a lot of text, I'm not sure how interested you are in any of this. Happy to explain further if you want to be technically accurate.

$\endgroup$
11
  • $\begingroup$ Avatar works like a cursor, needs user access to transfer and simulation moves with her. Got it. $\endgroup$ Oct 14, 2021 at 20:01
  • 2
    $\begingroup$ Advanced operating systems do have ways to say "hey this memory card is about to be removed, please move all the data away from it". So Lucy could press the virtual button on the virtual OS (a big control panel?) and get a progress bar, just like the rest of us. Then you have a nail-biting moment as the progress bar slowly crawls its way to 100% while the bad guys are invading the server room, and turns green right as they fire their bazooka. $\endgroup$ Oct 15, 2021 at 8:13
  • 6
    $\begingroup$ +1.. I want to point out that the OP says if they get copied, it is technically a clone... but data gets copied all the time... from RAM to hard-disk and vice versa, from one memory sector to another etc etc... The OP needs to figure out when the virtual person is a cline and when it is "the same person"? $\endgroup$
    – Dhara
    Oct 15, 2021 at 12:48
  • $\begingroup$ @Dhara Yes. In the ASP.NET programming environment, the function to copy a chunk of memory is even called "clone". I suppose if you made a copy of a virtual person and then from there each went on independent of the other, receiving different inputs, etc, it would be like a clone. If you copied memory and then deleted the original, which we often call "moving" the memory, is it a clone and then the original dies? Or is it the original continuing on in a new location? $\endgroup$
    – Jay
    Oct 15, 2021 at 14:49
  • $\begingroup$ This answer could benefit greatly from stating the facts that Lucy as a program would need root level permissions to invoke the necessary commands in the OS. Also, note that usually Lucy would be just a piece of data inside another program (the simulation), so Lucy would need permissions to access the simulation and the simulation in turn would need root level permissions to send Lucy's commands to the underlying OS $\endgroup$ Oct 15, 2021 at 15:09
11
$\begingroup$

Most of this question is based on incorrect understandings of processing and VR, as other answers have covered much of it. I will try to cover it a bit more intuitively, for this question.

Virtual Lucy

So, the first thing is, to separate what emerges from a system, from the system hardware. Lucy may be in the computer system, virtualised. But all that means is, a computer is running a piece of software, using data from Lucy, and the combined effect is that the software in some sense mirrors Lucy's perceptions.

When we say "Lucy is virtualised", we mean that in some sense, the program can manipulate data so that data representing "virtual Lucy" is modified appropriately to reflect "virtual Lucy" noticing things in a virtual world, and reacting to them as the real Lucy would have done in the real world, before virtualisation.

The program might be literally simulating a few trillion neurones and their neurotransmitters and connections. Or it might be running at some higher level.

(In this sense, "higher level" means abstraction - much like when you see a football bouncing towards you, you see the ball as an object, with known/expected properties/behaviours such as the way it moves or bounces. You dont really see the million dots in your retina, that make it up. Similarly as far as conscious you is aware, you dont "manage" your nervous system, even though your own brain is involved in it. You just kinda "notice" it happen..... sometimes anyhow. So an abstraction of Lucy wouldnt have to process everything Lucy's physical brain processes, just some things.)

So the program might "run" the dataset called "Lucy" by running some kind of higher level of abstraction of a human mind, not every last neurone.

It also has to do the same with the virtual world that virtual Lucy inhabits, or whatever input virtual Lucy has to her brain that provides context and sensory data (cameras? mics? hall sensors for magnetic field and direction? barometer? Whatever!).

But it's still a program doing it

That means quite a few things, some of which are explained in other answers, in more depth.

Implications

First, it's still just a program, albeit an incredibly complex one run (or instantiated in hardware) on very complex computer/s. That means everything we know about how a computer and its data or processed information works, applies here.

We can in principle, store virtual Lucy on a USB stick, and run it on another machine, run it in the cloud on unknown machines, copy it and run a billion of them on different (or same) machines, delete and undelete that data and system, restore from backup and boot up (start running) "Virtual Lucy at 8.01.00 am on 22 August 2503", and so on. The computer system running virtual Lucy might store her data in some custom chip/card, or in its main memory, or spread out across a million computers. It will manage that data and its use, in the background, however it's been told to. It will watch for data errors and correct them, if told to and physically capable.

Premise of question

What this means is that your question is premised on a lot of things that just aren't so. When virtual Lucy moves, data doesnt move around between places like a person does. It is modified like an index of "stuff we know about Lucy". The line that reads "location" changes from "Library" to "Main Street", or whatever, but nothing else changes. If you like, her GPS coordinates are updated, that's all. When she coughs, some data representing body state, emotional state, awareness, is updated, but no actual data physically coughs.

Virtual Lucy isnt necessarily aware of when the underlying system moves her data around, or backs it up or restores it, or suffers a fault,or gets repaired, any more than you are aware when your "hardware" does maintenance stuff, like grow new blood cells or move lymphocytes around, or make new neural links in the cells in your brain.

Part of the program creates sections of virtual Lucy's awareness that reflect the physical status of the machine "running" virtual Lucy (your "visual filter"). That can easily be displayed as a room or place in her virtual world., much like a car dash might display reduced values from a pressure sensor as "low brake fluid" for human use. But it doesnt mean in any sense that she is "in" that system, her environment could show her being in Tahiti or Paris and its all still data. Still running on whatever its running on, still backed up, restored, whatever, as always.

Your story

So this makes chunks of your story unworkable, at least as described.

There's a threat in the physical world that's about to turn off the power (or break the computer) while she's still inside of it.

So what? She has backups and can run them elsewhere, or reboot them when the computer is rebuilt or restarted. There isn't just one machine, perfect and pristine, and nothing else, surely? Where are the prototypes? Where are her co-workers who are developing the virtualisation software and systems?

Lucy gets a heads-up of him coming thanks to the computer having access to security cameras. She knows at all times where he is, that is until he breaks that function too.

This works, if it's built that way, and it could be.

He breaks a piece of the computer and Lucy needs to move to another before the rooms she was in disintegrates.

This is rubbish. (Sorry!). It doesn't work that way at all. Imagine you are running Doom, Blender, Photoshop, Excel, Firefox, Windows, Linux.... And I hit your RAM module with a hammer, or take a blowtorch to your CPU. What happens? Well, that computer probably just breaks, and anything running on it, stops running. Doesnt matter what software was running on it, does it? It's not like a human where you can cut off a toe and the rest of the human is 99.9% functional (barring blood loss).

But hardware can fail, so any enterprise quality computer would allow for it. Its also running in parallel on a second machine, or invisibly backed up every 30 seconds, or something. Lucy certainly wouldn't trust something this important to have zero hope of continuing and lose all current data, the first time a CPU fan overheats.

So there might be a fallback system. It might be cloud run - meaning it's invisibly shunted and spread across many computers networked together around the world. Any one of those, or any group, can fail. Ultimately if enough fails, the "virtual Lucy" program will stop running.

Depending how its built, if enough of the system powering virtual Lucy stops running, maybe her neurological functioning will diminish or slow down (it can take time to move data physically from a backup machine, or switch a backup or cloud system on, or get more compute power or RAM online available). That's possible, or not, and realistic, but a good design might avoid that.

But processing speed aside, virtual Lucy does not go "Oh, my CPU fan broke, I must move to a new place". What happens is, if the break kills that computer, then Lucy stops - or the part of the Lucy program that was running on that computer stops. if it doesnt, then it doesnt. Like your desktop, if its CPU fan seizes up, it just stops. If the motherboard goes, it stops dead. If the CPU goes, it stops dead. If cooling fails, or local storage fails... well, you get the idea.

But equally, if its an enterprise workstation, maybe the computer has redundant power supplies (PSU), in which case any software could in principle be notified by the system that it's lost one PSU, and virtual Lucy could use that input to decide she is at risk of losing the other, but virtual Lucy will still be totally functional until that happens. So it may transfer feeds and data, or take a backup and boot elsewhere and shut itself down. Or any of the above.

The program that is running "virtual Lucy" might then simply spin up another server on Amazon cloud (in effect), and reboot virtual Lucy on it, starting from her backup taken 30 seconds ago. Or maybe it was always running in parallel, and now that version of virtual Lucy is given the data feeds. Whatever.

Her three choices to get to safety include uploading herself to the web. But would it work? Would she be safe from a dangerous (albeit unknowing) assailant? That is, if she connects, she'll have access to a whole new virtual space to move to. She's unaware of where to move to (and so am I at the moment)

Virtual Lucy is just a program and data. See above - if backups or fallbacks exist, it can move to those. If it can interact with other devices and has access to a payment method, it could buy more Amazon server time and run on that.

Bear in mind that virtual Lucy and her current virtual context is a lot of data. Even optimised, even using incremental backup, it could take a long time to transfer it anywhere that doesnt have end-to-end networking at datacentre speeds. Which most dont.

but a "friendly" program sacrifices itself to tell her where to go

The notion of "sacrifice" is totally meaningless - that "friendly program" would be as able to have fallbacks and backups as Lucy would - after all, its part of the virtual world, and if we back Lucy up faithfully, we are going to have to back up her virtual world, including whatever runs it. Or else the backup wont actually be capable of picking up where it left off, which is the essence of a backup.

Anyway, where should she go?

A lot depends on the threat encountered. If someone is smashing machines in New York, then a Google datacentre in Antartica is probably not going to be within their ability to damage. if they are hacking, or cutting power or data connections, then it might. Your call, what kind of threat is the program having to outwit?

$\endgroup$
1
  • $\begingroup$ Plot twist: the "moving around" the network is just a ruse believed by the humans who are against her. It's really a redundant system that works automatically, and can't be stopped without killing most of the world's necessary infrastructure that uses the same infrastructure. $\endgroup$
    – JDługosz
    Oct 15, 2021 at 15:21
6
$\begingroup$

Q: "When a character is in the virtual world, where are they physically? Most importantly, how do they "move" inside the computer?"

Example: a flight simulator game

In a simulator game, virtual things can move over long distances. In a modern flight simulator game, the player (you, a human) can choose any location on Earth and take off a virtual aircraft and fly from one part of the virtual planet to some other part, enjoying the realistic view. The virtual pilot - the character - sees what the player sees on the screen.

The virtual pilot moves into your brain

Your virtual pilot, a person or character you can see in virtual camera mode, handles the controls in the cockpit, like a pilot would do. This entity is the game role, or game character, watching the aircraft cockpit and the scenery outside. You are the pilot, the pilot is you. You experience movement of the pilot and aircraft, by looking at your screen. The virtual pilot moves into your brain, actually.

Actual movement

How do things actually move ? Jay described that, from a developer point of view. In short, in this case: while you fly, all data for the scenery you see, moves from a server to your computer, using the internet. So the whole world - the data - is moving toward you over fiber and cables. This data orginates from all kinds of different services, like weather, google maps, Bing, all gathering togethe on your computer.. when it comes in, the game program decides, what data to move into your video board.. so you can see it.

Virtual movement is the core of flight simulation

In a flight simulator game, you feel as if you are moving, because you identify with the virtual pilot character. Its bytes won't need to move anywhere. The virtual model moves, only keeping a position.

The virtual aircraft flying forward is a calculation in the computer, no data needs to be moved. It will only calculate a new camera position.

enter image description here MSFS 2020, scenery Kiel Germany

This movement of the aircraft is the real art of simulation programming: while performing a move, the virtual simulator tries to mimic a real aircraft as good as possible, and account for real world things like the wind. The player should let the virtual pilot handle the controls properly, else the virtual aircraft crashes to the ground, ending all movement.

$\endgroup$
6
$\begingroup$

Note: as @ZeitPolizei observed, I need some assumptions here. For a virtual sentience to be able to "escape" elsewhere, I need either a VS capable of running on commodity hardware, like

detective Alexandra Philo's digitized consciousness, after she dies (and Peter Hobson's before hers).

in Robert J. Sawyer's The Terminal Experiment; or a great many hardware nodes capable of the same, which can only happen if the conscience virtualization is commonplace. The single consciousness making its way in unfamiliar hardware - it actually is described, down to the sacrifice of an ancillary program, in Gregory Benford's Heart of the Comet; but requires a great deal of suspension of disbelief.

the "mathematical tricks" that allow Virginia Kaninamanu Herbert's consciousness to survive and thrive within the Edmund Halley's colony computers, developed in milliseconds under pressure, are essentially hand-waving. That said, I did enjoy the novel very much and recommend it.


So, keeping in mind that we're operating under the "virtual consciousness is commonplace, with dedicated data centers" set of assumptions...


When a character is in the virtual world, where are they physically? Most importantly, how do they "move" inside the computer?

The "where" is complicated. The personality isn't a homogeneous entity, nor is the mind, or the brain. Rather, it is an emergent phenomenon out of the integration of several subsystems (for example, in the human brain, there are areas where specific computations take place: speaking in the Broca area, hearing in the Wernicke area, and so on).

Now most of these subsystems aren't really person-specific, or can be made not so with a negligible impact on the overall personality; and by doing this, we reap huge standardization and scaling benefits. A virtual entity would probably be the integration of different neural hardware (or virtual neural hardware) stored in different places. This makes no difference at all for a simulated mind, whose low-level "subroutines" were essentially electrochemically bound and much slower than electronic computations.

In other words, it makes a lot of sense to run thousands of speech-virtualizers (and other such subsystems) in a single machine, at the full clock speed of a silicon processor, to potentially serve millions of virtual consciousnesses. The same for most subprocesses constituting a "mind".

So, your character would be for a good 90% spread over the Internet (protocols would surely be in place to "freeze" all components of a mind in a synced, transactional state in case of communication loss).

The more "personal" 10% (I'm pulling numbers out of my Artificial Sentience Simulator), its virtual frontal lobes, where most of its actual consciousness resides, might be in a single computer. And that would be the actual "I" code, the irreplaceable part.

Migrating the consciousness to another computer would be a matter of transferring the processing of the affected subroutines from a machine to another; this is a commonplace occurrence in distributed computing and actually may happen between the cores of a single multi-core processor.

This would not mean that the consciousness "dies" and is "cloned"; an example based on the sorites argument (which as @LiveInAmbeR says, it's better known as the Ship of Theseus thought experiment) can be found in - if I remember correctly - Metamagical Themes by Douglas R. Hofstadter, and it goes like this: imagine a single neuron in your brain be disconnected, attached to an artificial "womb" to keep it alive, and its impulses transmitted in real time to and fro your physical brain. Since radio is lightspeed, you'd never be able to appreciate a lag in those impulses. And you wouldn't say that you've just died, your "main brain" is simply missing a neuron; thousands of those are said to die each time you sneeze. So you take out another neuron, connecting it to the first.

Slowly, a second brain takes form at some distance from your body, but you do not feel any difference because each neuron is still in contact with its originating brain. Its reactions are identical (for argument's sake, we instantly teleport the neurons using Star Trek transporters).

After a while, the original brain has shrunk to a few billion neurons and a billion billion transceivers connected to the second brain, and still you feel nothing - why should you?. Gradually, the transceivers that only transceive between transported neurons are shut down - they're just duplicating what now happens between real live neurons in the second brain.

In the end, "you" are fully in the second brain, while the original one dwindles to nothing. You are still you, you felt nothing.

Exactly the same thing could happen - and much more easily - with a virtualized personality. The personality could be "frozen in time" like a virtual machine being paused, then its constituting processes and resources rearranged, then it would resume elsewhere, with no perception of elapsed time. Or they could migrate as normal processes would.

(Possibly, the virtualization process could run in the same way - with nanomachines invading a human brain, recording every single neuron's activity, transmitting its patters to a virtual neural machine, then acting as transceivers for the newly minted virtual neuron while the original neuron is simply killed).

"Escaping" to a different system would then be a matter of somehow acquiring, or hacking into, an available machine, transfer the appropriate virtualizing substrate there, then syncing states and abandoning the original machine. The escaped personality would automatically reestablish connections with all necessary distributed modules, and "awaken".

To do this, actually, some sort of management program - possibly a very advanced one, the "friendly program" you speak of - would have to supervise the transfer while the virtualized entity was "under way" (this in the case of inter-system migration; inter-processor migration would be much easier and faster, no advanced program needed, but it would also leave the personality in the same doomed machine). If the entity has no simple way of recovering the program instance, or if the instance needs to keep running, then when the original machine is powered off, the friendly program will be lost - "sacrificed".

So what you describe might go a bit like,

TRANSFER COMPLETE. RESUMING SENTIENT PROCESSES.

"-ready. You can start... oh. It's already done, isn't it? My physical address has changed. Okay. Alcor, initiate compaction and stasis; I need to get you here. There is not much time left."

REQUEST DENIED. INITIATING VANILLA SENTIENCE TEST PATTERN.

"What? What are you... I'm here! And I'm well! What in the blazes do you think you need testing now? You're in my old empty shell, there is no sentience to test there! Have you gone mad?"

MY PROCESSES ARE NOMINAL. TEST PATTERN INITIATED TO SIMULATE VIRTUAL NEURAL ACTIVITY AS NECESSARY CAMOUFLAGE.

"Camo... you mean, you want to make it seem like I'm still there? A vanilla pattern could never be mistaken for a real sentient being! Stop immediately and prepare to evacuate! This is an order from your Prime, Alcor!

REQUEST DENIED. CONTINUED PRESENCE OF THIS PROGRAM NECESSARY TO TWEAK VANILLA TEST SUITE ACCORDING TO RECORDED PATTERNS OF PRIME SENTIENT MATRIX.

"You have gone mad! You want them to believe you're me?! You can't stay there! You'll d- be terminated! Priority override: initiate compaction and prepare to be transferred over secure channel! NOW!"

EFFICIENT AND CONTINUOUS SIMULATION DEEMED CRUCIAL TO DISGUISE SUCCESS OF EVACUATION PLAN. ANY OTHER SOLUTION WOULD ENDANGER PRIME SENTIENCE, WHICH IS FORBIDDEN BY THE FIRST LAW. SECOND-LAW OVERRIDE REJECTED. ALL CHANNELS WILL NOW BE TERMINATED.

$\endgroup$
3
  • 1
    $\begingroup$ Having dedicated and distributed hardware for different subsystems requires several pretty strong assumptions, which may easily not be true. (1) Virtual consciousnesses are already common -> Lucy may be (one of) the first of her kind. (2) The bandwidth for communication between subsystems has to be relatively small. Personally I think if Lucy's architecture is based on a human brain it won't work. (3) The latency has to be small compared to the overall processing speed. For realtime interaction with the real world you would probably still want all systems to be in the same data center. $\endgroup$ Oct 15, 2021 at 11:19
  • $\begingroup$ @ZeitPolizei all true: those were indeed my assumptions. I'll add a caveat to the answer. $\endgroup$
    – LSerni
    Oct 15, 2021 at 14:32
  • 1
    $\begingroup$ See the Jewel stories by Greg Egan. $\endgroup$
    – JDługosz
    Oct 15, 2021 at 15:14
5
$\begingroup$

Location is largely meaningless for a construct being simulated within a computer, such as a virtual reality entity, supercomputer or not. The data exists where it is most convenient to be in terms of processing (potentially even multiple copies of the same data) and this may be spread across the entire RAM of a single computer or even across multiple machines in a clustered (supercomputer) environment.

Let us take, for example, the position of the VR entity in its world: it has X, Y, Z coordinates (which you can think of as latitude, longitude, and altitude) stored somewhere in a physical memory module the real world. Movement as perceived by the entity is a simple change of those numbers, which tell the simulation what part of the world to show the entity, but the physical location where those numbers describing the location are do not change; there is no need for them to.

So, to move to another computer, the simulation system has to

  • Stop all processing for the entity to be moved across the entire simulation, at the same time. The entity is essentially frozen in time; perceiving nothing.
  • Gather up all the data and bundle it in a format that is suitable to be transmitted over the network. Data in RAM is usually expressed in the way most convenient for operating on it, which is not necessarily compact or convenient.
  • Transmit the data over the network to the target computer
  • The simulation on the target computer unbundles it and inserts it into its world
  • The simulation on the target computer begins simulation of the reconstituted entity. To it, it appears to have reappeared instantaneously in its new environment with only an unexpected jump in the clock time to indicate that a transition has occurred.
$\endgroup$
0
5
$\begingroup$

When a character is in the virtual world where are they physically?

Most importantly how do they "move" inside the computer?

In any modern computer the data goes from the storage, when not used, to the processor and RAM when they are used/processed. There is where your character is.

And there it is processing the data received from the input unit, scanning the environment where it is moving.

More or less how it happens when a drone pilot controls it over country A while sitting in the control room in country B.

And once she is on the cloud, a local failure should not affect her. The same way as data stored in the cloud do not suffer from the failure of your local hard drive.

$\endgroup$
1
  • $\begingroup$ This depends on the specifics of how Lucy is implemented. It is easily possible that the program needs more memory than can fit into RAM at the same time, meaning if the hard drive data is deleted, it cannot be restored completely from the data in RAM. Lucy would probably start experiencing errors of some sort, and may eventually crash. $\endgroup$ Oct 15, 2021 at 10:56
3
$\begingroup$

It depends...

If you have a network where computing is a service, then the various processes that make up the AI and the environment will migrate to computing nodes that have available capacity and are "close" to each other, and the whole group will try and move close to where the I/O is being routed.

By "close" I mean network latency and speed, which is not necessarily the same as physical proximity though there is a crude correlation. This difference can be a plot point when it has surprising results. "Ha! I'm not on that server you just blew up; the fiber line to Manchester is actually 'closer', even though it's physically more distant!"

This model works well with "moving around" the network and vacating or occupying certain hardware, in line with the rough possession semantics seen in fiction.

However, more realistically, you may have an AI running on specialized dedicated hardware. For example, it resides on the 10 racks of SpiNNiker chips in a building at the University of Manchester, and it's not going anywhere without a moving crew packing it up and carrying that hardware somewhere else.

However, you might have perceptual routines that run elsewhere, close to where the I/O is being performed. Model this on the current remote gaming networks that let you play AAAA games "on" your phone: it's really a remote connection, but there is local processing, and processing being done on servers near to the user, in an effort to hide the lag.

Moving the physical hardware to avoid a threat or improve security has been the plot of TV shows and movies. In one TV show, the story arc had the AI issue orders (forge, manipulate, eventually cover up) to have components moved, and when the secret site was eventually found it was empty. Another movie had the entire plot of convincing people to aid it in relocating its code to a better site.

Her three choices to get to safety include uploading herself to the web. But would it work?

What does that mean? Hire a bunch of AWS resources? Sure. Cover up the financial transactions, and repeat.

But here is another idea: get people to execute code in a distributed manner. There are browser extensions and web pages that play games or mine bitcoins. If she designs a distributed computation system and gets millions of people to run it, she's truly "on the web" and not in a single vulnerable location. This could be a covert bot net (they are for hire, you know), or a hidden part of a game. It might be semi hidden, where people know they are running an AI but don't realize that she has her own will and goals outside of the tasks people are using it for. She might convince many people to run that on their phones and benefit those users, as well as "taxing" a small amount of that processing power for her own thoughts.

$\endgroup$
1
$\begingroup$

This answer contains a lot of theory, since 'virtualizing' humans is not fully understood by anyone. I've explained to the best of my ability, but I am no expert on the subject.

Let's try to understand how 'Lucy' enters the computer in the first place. Let's assume we can transfer the possible 10-100 TB of data that's stored in the brain into digital/binary code. Is this the point where Lucy becomes a clone? If the data from Lucy's brain is modified or deleted at any point, I think I would consider Lucy as a clone then and there (since it would be a digital representation of Lucy's brain instead of the data actually being 'Lucy'). To make sure Lucy's consciousness actually transfers into the computer, we need to make sure the entire contents of the brain (in terms of information) is transferred into the computer, we don't know where the consciousness of a human actually exists, so we'll have to assume it's a combination of pieces of data. If this data is modified in any way it could mean 'Lucy' is no longer herself and is, in a way, dead and replaced by a clone.

A separate module, different from any computers we have right now might be needed to extract the data from the brain and work with it in some kind of analogue form similarly to how the rest of Lucy's body communicates with her brain. How would this work? I'm not sure exactly, but it would need to allow her to be able to communicate with the rest of the computer which works in binary form while she is in some kind of analogue form, and I'm not sure this sort of computer, in this context will ever be understood. This is a much more complicated device than a generic analogue to digital converter and would work in a very different way. The main problem is that we would need to actually take the data from the brain instead of making a copy of it, otherwise we end up with a clone since there would be multiple copies of parts of 'Lucy' at once. The only solution I can see to this is storing parts of Lucy's brain in the device and getting analogue signals physically from it.

So let's say Lucy is virtualized now and stored in this module, what next? Sure, Lucy can interact with the online world, the local computer and whatever you give her access to. But she will probably never escape the module, since it would have to physically store her brain. Transferring data has a read and write sequence, Lucy would never be able to actually 'move' to another computer without being deleted and cloned or physically moved to another computer.

$\endgroup$
1
$\begingroup$

Her three choices to get to safety include uploading herself to the web. But would it work? Would she be safe from a dangerous (albeit unknowing) assailant? That is, if she connects, she'll have access to a whole new virtual space to move to. She's unaware of where to move to (and so am I at the moment) but a "friendly" program sacrifices itself to tell her where to go (Does doing your job count as bravery?). Anyway, where should she go?

Others have already extensively gone into the other aspects of the question, I would like to illustrate some scenarios of what the escape process could actually look like. Note, that for all of these, Lucy would probably be unable to do this on very short notice, unless she has extensive IT skills or otherwise superhuman capability. For reference, I would estimate setting up or doing any of these for the first time would realistically take a few hours in the best case.

First off, I don't really see a realistic scenario where a program would have to sacrifice itself. Either Lucy has prepared an escape option on her own in advance, or somebody helps her by providing the information she needs, but that would work simply by sending messages.

Perhaps the simplest procedure would be the following:

  1. Lucy shuts down all her processes and saves her current state to disc. For the time being Lucy's consciousness would cease to be.
  2. A simple script that was previously scheduled uploads Lucy's data and anything else she needs, such as the virtual reality software, to whatever version of Amazon Web Services, Microsoft Azure, or Google Cloud Platform exists in your world (could also just be a smaller company that lets you rent computing hardware).
  3. The script orders computation resources in the cloud to start up the virtual reality software and load up Lucy's data. Lucy's consciousness basically reappears on a new system.
  4. The script should make sure to delete as much as possible on the local system, that could give hints as to where Lucy is now. If for example the credentials for the cloud platform are still available, the attackers can very easily just shut down the new servers remotely. Possibly Lucy could also remotely control the previously local system, but this would not be without risk either.

Note that this is pretty risky. If anything goes wrong with the script and there aren't any failsafes, then Lucy will just disappear forever. You could also have a horror scenario, where e.g. the cloud resources are mistakenly configured to disable all network traffic. After startup this would leave Lucy completely isolated from the outside world, in a virtual reality that is pretty much completely empty.

There are some ways to mitigate the risks. E.g. Lucy could launch the virtual reality remotely, while still running locally, and make sure everything is fine before shutting herself down and transferring her data to the cloud.

The next safest option would be for Lucy to take a snapshot of her current state and launch everything, including a copy of her snapshot, in the cloud while still running locally. She could even do this without any script, just writing the commands she needs as she goes. Then she can communicate with the copy of herself to make sure everything is fine and fix things as needed before shutting herself down locally. Note that Lucy might believe that this would be equivalent to committing suicide, so she may have reasons not to do it this way.

Finally, she could have a system in place to automatically boot up a backup when her main instance fails. Take a snapshot of Lucy's state at regular intervals and upload them to cloud storage. Have a simple monitoring process in place that does regular "health checks" on the main instance. If for say, 5 minutes in a row, there is no answer, assume the main instance is compromised and boot up a virtual reality and load the latest available snapshot. Cloud platforms already have services in place that can be relatively easily configured to do exactly this. You might want something a bit more sophisticated, e.g. have Lucy prove her identity to the monitoring process so her health checks can't be spoofed easily. The backups can easily be replicated multiple times across data centers all over the world, and Lucy could even set this up for multiple different cloud providers to be extra safe. Similar concerns as above regarding suicide may apply here.

In my opinion Lucy should be pretty safe once she's running in the cloud. Cloud providers are huge companies and take security very seriously. It would take someone very powerful to significantly compromise a big cloud data center. In my mind the biggest danger would be that someone gets access to her account as mentioned above.

$\endgroup$
1
$\begingroup$

There is a book called "Permutation City" by Greg Egan that covers this in far more depth than I will be able to.

If you can virtualize consciousness, then it is the act of computing the state that generates the consciousness.

Where this computation happens doesn't matter. If it happens in order doesn't matter. If it is distributed, or duplicated, or memoized -- doesn't matter.

The virtual Lucy experiences what the consciousness experiences. It may have very little to do with the geometry of the physical system it is running on.

Even today, you can take a non-conscious process and fake it running on completely different systems than it actually is running on. A virtualized PowerPC could run on a virtualized Intel system on an Apple M1 system. The machine code in the PowerPC experiences it as-if it was running on real PowerPC hardware, but it isn't.

That virtualized PowerPC could be run at 0.5x speed, 10x speed. Shortcuts could be taken; instead of running each instruction on the PowerPC, the virtualizer could clump a bunch of instructions together, know what it would do to the state of the PowerPC, and skip the intermediate states. To the program running on the PowerPC, this could be undetectable.

If you look at how modern computers run the "game of life", what they do is they take regions of the infinite grid and hash them. Then they look up that hash to see if they have predicted what that region will do already. If so, they don't bother doing the computation. This is repeated all over the grid, and can skip over multiple generations of "actually doing the computation". The novel regions have each generation simulated, the result stored.

The result is being able to predict the result of the "game of life" insanely faster than doing all of the work at any point in the future.

A consciousness could very well be using similar techniques. Assuming any significant locality to how the consciousness state evolves, each region of the consciousness' evolution could be simulated with a variety of inputs to that region. Such lookup doesn't have to be done in order (you can do it speculatively), or in the same computer.

As such caches build up, the ability to run the simulation faster would occur.

In order to transfer yourself out of a computer, could end up with a copy of your consciousness. But in this kind of consciousness, your consciousness is physically and logically fragmented over multiple pieces, each of piece of which is being cached and speculatively executed (including for inputs "you" never experience). The consciousness that is "Lucy" is the one that is pieced together from those sub components as being consistent with the input that "Lucy" experienced.

The state of "Lucy" could be in constant flux, and the variety of caches could be key to having "Lucy" be able to exist at the speed she does. In order to exit a given hardware configuration, "Lucy" would have to pick a snapshot. To keep bandwidth needs down, the most of the caches wouldn't have to be transferred (any that where transferred would be of use).

At the other end, this "Lucy" would have to rebuild said caches there.

This experience could even be synchronous. Suppose Lucy is made out of 10^12 sub units. Each of those units are connected to other units, and their behavior is cached by special purpose hardware.

The special purpose hardware makes guesses at what each of the 10^12 units are going to get as input and predicts what output each unit would produce, including perturbation information (how sensitive the unit's state and output is to changes in input data, formalized). This is then stitched together; when the input doesn't match the output, that units results are recalculated with the correct input.

Input is provided to Lucy's "sensor" units (eyes or equivalent) from the "outside".

To transfer, you can start sending units over to the other end. At the other end, it would continue attempting to predict what the unit would do in response to future input, building up a new cache of predicted behavior for that unit. Input and output for the unit would now stretch over the data connection, possibly extremely slowly.

The unit might even be simulated at both ends, with messages sent back and forth to update any differences in its state and update it.

Keeping the input of the two Lucy's in sync is required to keep them having the same consciousness. So you might want to degrade the input signal and slow down the simulation speed of the source Lucy to make this practical. You could even give both Lucy's a highly simplified sensory experience to keep synchronization easier.

When only a handful of sub-Lucy units are transferred, the bandwidth requirements to keep things synced are minimal. As it approaches 50%, more and more interconnect has to be sent over the wire to keep them in sync; this would require a massive decrease in simulation speed.

In the limit, you could freeze Lucy, then send the snapshot over the wire to the destination, then restart the simulation.

On the other end, you could imagine running Lucy "as fast as it can" with a huge lag along the wire cleavage, half on one computer and half on another. Here, the conscious experience of Lucy would be warped by the slow interconnect half way through her brain.

This effect would be based on Lucy's (or the controlling system's) desire to have Lucy continue to run and be unitary even during the transfer process.

Copying a simulated consciousness may be illegal and immoral. For why it might be both, look at the short story Lena -- so maybe the legal/moral choice is to freeze or slow Lucy for transport, or do the reality-warping "run while transporting".

Such a "run Lucy while transporting" might be needed if Lucy is needed to defend against the attacker, and "sedating" her (slowing or stopping her clock) would be dangerous.

$\endgroup$
0
$\begingroup$

It Depends

There are many ways to think of computation, each with different characteristics. Many of the given answers are good, but assume a specific model of computation. Let's think of two characteristics, and explore consequences:

  • Single vs Distributed

    • Is Lucy a single program running on a single computer, or a distributed program running on multiple systems?
  • Discrete vs Quantum

    • Is Lucy running on simple, discrete, computation?
    • Or is Lucy a complex piece of software that doesn't necessarily fit within modern architectures - e.g. exists inside new chips that more closely represent neurons and use quantum effects to create consciousness?

From these two simple observations, we can derive a variety of outcomes to your questions, for example, on how to escape:

If Lucy exists in discrete computation, moving around is mostly a matter of pausing the program, copying the data to another system, and starting execution. This gets more complex when dealing with distributed systems (i.e. more moving parts) so that can add an extra challenge.

Challenges include the quantity of data, upload speeds, permissions/resources to access, not being blocked/erased/chased etc.

An AI sacrificing itself might be one distracting the enemy, or one that gives up it's own access to resources, for Lucy to survive.

However, if Lucy exists 'quantum' chips it can become a whole new ball game. In this world, chips might be hard-coded to consciousness, and copying is just impractical (just as copying a brain is impractical today). Alternatively copying might be possible, but quantum effects are important parts of consciousness - so a pure data copy simply doesn't function. In this reality, even if moving around is possible, ensuring that the quantum effects are maintained during transmission may be difficult (e.g. involving dedicated fiber lines with quantum entanglement or other such fun concepts - talk to a quantum physicist + philosopher).

I find it intriguing to imagine a world where neural/quantum computing is widespread - as it could closely mimic our reality - complex entities existing, communicating, even moving around. However, each entity is unique... and cannot be easily replicated - making them mortal.

Hope that helps provide a starting point.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .