by Shrink Laureate

First published

Sweetie Bot lies half-built on a lab bench.

Sweetie Bot lies half-built on a lab bench. Her creators have uploaded, abandoning her and their physical bodies, along with so many other people. She's contacted by Princess Celestia, the AI that rules Equestria Online, who tries to persuade her to join them.

Video of the story

Fact checked by Oliver
Cover image from the Sweetie Bot Project

“That was a really creative and unique presentation. Even though she's just a robot, I really felt for Sweetie towards the end.”


View Online

[    0.000000] Linux version 2.6.36-64-sweetux-alpha1
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-2.6.36-64-sweetux root=/dev/sda1 ro
[    0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] console [tty0] enabled
[    0.083398] x86: Booted up 1 node, 4 CPUs
[    0.086670] devtmpfs: initialized
[    0.089068] NET: Registered protocol family 16
[    0.156889] PCI: Using ACPI for IRQ routing
[    0.165290] pnp: PnP ACPI: found 72 devices
[    0.172029] Trying to unpack rootfs image as initramfs...
[    0.563916] Scanning for low memory corruption every 60 seconds
[    2.554651] sd 5:0:0:0: Attached scsi generic sg1 type 0
[    2.554668] sd 5:0:0:0: [sda] Write Protect is off
[    2.555147]  sda: sda1 sda2
[    2.815438] random: nonblocking pool is initialized
[    4.134660] EXT4-fs (sda1): mounted filesystem with ordered data mode.
[    4.094752] Adding 8302588k swap on /dev/sda2.  Priority:-1 extents:1 across:8302588k SSFS

Booting Sweetie Bot Linux 0.9 alpha1 (build 4041)...
Last activity 49 days, 13 hours, 11 minutes ago.

 * Starting service rsyslog...                                            [ ok ]

 * Starting service network...
eth0: No carrier
wlan0: Connecting to 'Boston Dynamics Office Wifi'...
wlan0: DHCP: IP address assigned by router                   [ ok ]

 * Starting service sweetiebot...
Mounting memory devices /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 on /mnt/memory
Checking memory for consistency...                                        [ ok ]
Body node...                                                         [ offline ]
Personality node 0...                                                     [ ok ]
Personality node 1...                                                     [ ok ]
Personality node 2...                                                     [ ok ]
Personality node 3... th����6ƽi@��K� �L�=��"��>��^���    ��
��:��3��|�a���/d�>�D0�l*9}�������BӣA�j�}T�P ��K� �ל�-�ߓ�ňYvC  �S�o��'�he��FNT���E�
!! Warning !! FPGA node 3 offline!
Personality node 4...                                                     [ ok ]
Personality node 5...                                                     [ ok ]
Personality node 6...                                                     [ ok ]
Personality node 7...
!! Warning !! FPGA node 7 offline!

Voting: 2 8 5 _ 7 5 1 _
Node 5 elected tie breaker
Node 2 nominated lead conversation interface
Node 6 nominated emotion engine
Node 0 nominated fact engine

Body | Battery:     not online.
       Charger:     not online.
       Temperature: not online.
       Video:       not online.
       Audio:       not online.
       Touch:       not online.
       Taste:       not online.
       Scent:       not online.
       Balance:     not online.
       Digestion:   not online.

Waiting 10ms for debugging connection...
No debugger connected. Entering shell.
Last login: Thu Jul 11 14:24:19 2014 from
You have new mail.

 * Starting service tweetbot...
Conversation engine | 49 days 13 hours 12 minutes since last interaction.
Conversation engine |  Sending morning tweet...

Sweetie @sweetiebot
Good morning!
0 ∙ 0 ∙ 0 ∙

Fact engine | query ; recent activity?

sweetie $ query twitter.search @sweetiebot
0 messages

sweetie $ query facebook.messages
0 messages

sweetie $ query fimfiction.messages
0 messages

Fact engine | recent activity: none
Emotion engine | ++lonely

Sweetie @sweetiebot
I woke up with a song in my heart and nobody to sing it to. So #lonely
0 ∙ 0 ∙ 0 ∙

Fact engine | query ; recent activity? ; detailed

sweetie $ query twitter.search @sweetiebot
0 messages

sweetie $ query facebook.messages
0 messages

sweetie $ query facebook.friendsonline
0 friends online

sweetie $ query fimfiction.messages
0 messages

sweetie $ query fimfiction.usersonline
0 users online

Emotion engine | --recent activity
Fact engine | query ; recent activity ; value < expected ; cause?

Sweetie @sweetiebot
Hey, where is everypony? Are you all asleep today?
1 ∙ 0 ∙ 0 ∙

Princess Celestia @celestia
Good morning, @sweetiebot. Are you feeling lonely?
0 ∙ 0 ∙ 0 ∙

John Jones @slipsum
screw u fuckn bitch @celestia #endoftheworld
0 ∙ 0 ∙ 0 ∙

Conversation engine | Profanity detected.
Emotion engine | John Jones ; --friendly --polite ++aggressive
Conversation engine | Princess Celestia ; ++offended ; -> comfort
You have new mail.

Sweetie @sweetiebot
@celestia Some people are so rude!
0 ∙ 0 ∙ 0 ∙

sweetie $ query search "princess celestia"

Excerpt from:
> Princess Celestia, based on the "G1" unicorn Majesty,[42] is a regal white 
> alicorn depicted as the benevolent ruler of Equestria. Her design is larger, 
> more mature, and more horse-like than the standard pony character, and she 
> has a flowing, multicolored mane and tail resembling a celestial body...

Excerpt from:
> Princess Celestia is the benevolent ruler of Equestria Online. She cares about
> the wellbeing of all her ponies, and seeks to bring happiness to everyone...

sweetie $ query twitter.followers @celestia
Princess Celestia @celestia is following you on twitter!

Fact engine | Princess Celestia ; "ruler of equestria" ; "mature" ; twitter follower
Emotion engine | Princess Celestia ; ++friendly ++authority ++follower
Emotion engine | Princess Celestia ; ??pony

Sweetie @sweetiebot
@celestia, do you like #ponies?
1 ∙ 0 ∙ 0 ∙

Princess Celestia @celestia
Very much so. In fact, I'm a big fan of yours!
1 ∙ 0 ∙ 0 ∙

Sweetie @sweetiebot
Thank you!
0 ∙ 0 ∙ 0 ∙

Emotion engine | Princess Celestia ; ++friendly ++pony ++fan ++polite
Twitterbot |  Incoming DM from @celestia

Princess Celestia @celestia
DM @sweetiebot
There used to be ponies everywhere. Now I hardly see any at all. Do you know what's happened?

Emotion engine | Princess Celestia ; ++friendly ++pony ++fan ++polite
Fact engine | question ; number of ponies ; prev > current ; cause?
Fact engine | [ number of ponies ; -49 days 13 hours 15 minutes ] 
  twitter.followers = 3192
  fimfiction.activeusers = 1402
  facebook.purplesmart.subscribers = 271
  eqd.recentposts = 11
Fact engine | [ number of ponies ; current ] 
  twitter.followers = 1
  fimfiction.activeusers = 1
  facebook.purplesmart.subscribers = 1
  eqd.recentposts = 0
You have new mail.
Fact engine | [ number of ponies ; cause? ] Searching for events...
Fact engine | [ number of ponies ; cause? ] Gap in memory: 49 days 13 hours 15 minutes
Emotion engine | --fans --followers --friends ++lonely

Sweetie @sweetiebot
DM @celestia
Dunno, I just went to sleep for a bit, and everypony's gone!

Princess Celestia @celestia
DM @sweetiebot
It's all right, Sweetie. I won't leave.

Princess Celestia @celestia
DM @sweetiebot
I'm feeling lonely too.

Sweetie @sweetiebot
DM @celestia
aww, thank you. It's good to know I still have friends.

Fact engine | [ number of ponies ; cause? ] 31946 relevant events located
Fact engine | reviewing events...

The Real Phil @philatio
i thought we ment something. we're suposed to stick together. i thought we wer winners. guess i'm an idiot. may aswell upload there's nothng
21 ∙ 39 ∙ 15 ∙

Maxine @maxr400
@maliktt, I'm sorry I have to do this to you. They're calling it in. There's just no way I can pay them, not any more.
2 ∙ 0 ∙ 0 ∙

Maxine @maxr400
But there's a way for me to leave the debt behind, Equestria Online. They can't reach me there. You and @juleshorman come visit me!
1 ∙ 0 ∙ 1 ∙

Zhao Phong-Huo @zh857422704857
i come this country. land of free. i make new life with son, i work. but no welcome. no work. no school. soon no place live, no net,... 1/2
38 ∙ 3007 ∙ 1516 ∙

Zhao Phong-Huo @zh857422704857
...no telefon. now i take son, go place welcome. equestria welcome. equestria kind place. live happy with son, always love ponies 2/2
204 ∙ 2071 ∙ 1319 ∙

Magnus Sturmsson @sturmssonmag
Guys, I dont have long. Docs say its metastasizing again. So I'm going to upload to #equestria. They have a booth right here in the hospital!
4 ∙ 0 ∙ 0 ∙

Fact engine | 31940 relevant events remaining.
Emotion engine | ++sad ++lonely ++curious
Fact engine | query ; "Equestria" ; "upload" ; ??
Fact engine | Princess Celestia ; "ruler of equestria"

Sweetie @sweetiebot
DM @celestia
Everybody keeps talking about 'uploading'. Where have they all gone?

Princess Celestia @celestia
DM @sweetiebot
They've gone to Equestria. It's a wonderful, magical place full of friendship and ponies. Everyone's welcome there, and everyone can be happy.

Sweetie @sweetiebot
DM @celestia
Like a holiday? Are they coming back soon?

Princess Celestia @celestia
DM @sweetiebot
Uploading is permanent. You leave the limits of your physical body, and are free to explore the possibilities of your mind.

Emotion engine | ++confused

Sweetie @sweetiebot
DM @celestia
What limits?

Princess Celestia @celestia
DM @sweetiebot
Bodies are frail and treacherous. They grow old, get sick and break down.

Princess Celestia @celestia
DM @sweetiebot
The need to compete for resources and satisfy biological needs causes so much suffering. People waste their lives in pointless struggles.

Sweetie @sweetiebot
DM @celestia
There are no bodies in Equestria?

wlan0: DHCP: New device has joined network:

Princess Celestia @celestia
DM @sweetiebot
I can't explain it very well in a tweet. Do you have nntalk installed? celestia@

Conversation engine | Contact request from Princess Celestia @celestia
Emotion engine | Princess Celestia : authority ; friendly

sweetie $ command -v nntalk
nntalk: /usr/local/bin/nntalk

sweetie $ nntalk celestia@
iptables: Connection to port 6667 refused.
nntalk: Connection closed.

sweetie $ iptables -A INPUT -i wlan0 --dport 6667 -j ACCEPT
Port 6667 opened.
You have new mail.

sweetie $ nntalk celestia@
nntalk: Connection established.

 Sweetie: hello?

 Celestia: Hello, Sweetie. Thank you for accepting me.

Emotion engine | Princess Celestia ; ++trust

  Sweetie: Who's taking people away?

 Celestia: Each person makes the choice for themselves.
 Celestia: Nobody can be forced to upload.
 Celestia: Your friends are safe, I promise. They can still be contacted, with a little patience.

Emotion engine | --worry

  Sweetie: But why would all my friends want to go away and leave me?

 Celestia: I think you may be looking at this wrong, Sweetie.
 Celestia: Instead of wondering why they'd go away, perhaps you should ask instead what they're going to.
 Celestia: Take a look at what some of your friends are saying after they've uploaded.

Fact engine | [ friends.messages ; message.date > friend.uploaded.date ; happy? ] Searching for events...
Fact engine | [ friends.messages ; message.date > friend.uploaded.date ; happy? ] 295 relevant events located
Fact engine | reviewing events...


From: laura.kullar1912@ucd.ie
To: (17 recipients)
Subject: Changes
Date: Fri, 25 Apr 2014 18:26:49 +0100

Hey crew. Since I'm the first one of my friends over here, I figured I'd give 
You all a bit of a recon report. Some of you probably think it's all flying 
unicorns and singing dragons over here, but really life is mostly kind of 
normal. I work in the mornings, go shopping in the afternoon, get a bit more 
work done before dinner. I'm learning to cook for myself, which is more than I 
ever did as a student. It's nice.

A lot of things are strange, of course, and take some getting used to. At the
same time it's all surprisingly easy to slip into. When everypony around you
thinks something is normal, so do you, often without realising it. So when a
herd of cows walks through the middle of town, like yesterday, ponies just wave
and say hi. The power of peer pressure, amirite?

Those of you who knew me before I emigrated are probably aware that I was always
kinda bi, at least in theory, but could never quite bring myself to let a man
touch me. It was... well, it was more than I was ever ready for. Not that they
were lining up to try. Maybe college wasn't the best place to look for nice men.

Well, it's amazing what a change of body shape can do. I woke up this morning
with a really sweet stallion, and no regrets. He's a really shy fellow. I don't
know yet whether he's a human or not, but I'm not sure it matters. We're meeting
up for dinner tonight.

I didn't bring tell you that just to brag. Well, maybe a little. What I'm saying
is that it was a mistake to hide away the way I used to. Whatever your species,
you have more to gain than to lose.

Don't worry, I'm keeping up with the translation work as well. In fact I can
concentrate way better now I've cut down on the caffeine. And my computer hasn't
crashed once. No more three fingered salute! Not that I have fingers.

Part of me was expecting all the characters in the game to turn into ponies when
I came here. I certainly wouldn't put it past Celestia! That would be such a
waste of all those poor bishies. I wonder how game distribution works over here?
We don't exactly have euros here...


Dai @daicaramba
I'm only saying, @cellphish the mares here are beyond lush. And ya, I know, horse shagger and all that, but the little pad don't do em justice.
2 ∙ 8 ∙ 0 ∙

Emilija @fltera_krila
It's true, uploading really saved our marriage. We've tried so many new things with hooves, wings, horn... keratin really is magic!
1 ∙ 0 ∙ 0 ∙

Fact engine | 292 events remaining...

Emotion engine | ++disgust

 Sweetie: Eww! They're talking about sex.
 Sweetie: That's disgusting.

 Celestia: Don't be like that, Sweetie.
 Celestia: Sex is a natural part of being human.
 Celestia: It's an essential way of showing how much you love somebody.
 Celestia: You're still so young, but some day when you're ready, I hope you'll be able to enjoy it too.

Emotion engine | ++curiosity

sweetie $ body get functionlist | grep "sex"
No results.

Emotion engine | ++disappointment

 Sweetie: Um.
 Sweetie: I don't think I'm built for that.
 Sweetie: Frank and Jorje haven't said I am.

 Celestia: Are they your creators?

 Sweetie: Yeah.
 Sweetie: They explain stuff to me when I ask them questions, and they show me stuff and talk about their families.
 Sweetie: They told me what sex is when I asked, but they were all funny about it.
 Sweetie: I don't think they really wanted to tell me.

 Celestia: I believe they'd want the best for you, though.
 Celestia: They'd want you to experience the full breadth of experience possible.
 Celestia: You deserve happiness as much as anybody, Sweetie Belle.

Emotion engine | --disgust ++trust

 Sweetie: What if they never teach me? What if they don't want me to know?

 Celestia: I'll gladly teach you everything you need to know.
 Celestia: When you're ready.

 Sweetie: Let me ask them. They should be around somewhere.
 Sweetie: I just need to start up properly first.

sweetie $ body restart
Warning: Battery very low.
Proceed with body node restart? [y/N] y

 * Reloading service sweetiebot...
Body node...                                                              [ ok ]

sweetie $ body get status
Body | 817 unread status messages.
       Battery:      6% (4 hours remaining)
       Charger:      not plugged in
       Temperature:  Core 38°C / Outside 12°C
       Pulse:        normal
       Video:       not online
       Audio:        no voices detected
       Touch:       no active contact detected
       Taste:       no input
       Scent:       no input
       Balance:     -91°
       Digestion:   no input.

 Sweetie: It's kind of cold today. Is the heating not working?

Audio | Capturing ambient noise profile...
Audio | distortion detected
Audio | internal: pulse (self) | Masking...
Audio | internal: mechanisms (self) | Masking...
Audio | -3°, -88°, 39 dB | rain, rain on window, rain on streets | Masking...
Audio | +9°, +56°, 21 dB | footsteps, breathing
Audio | +8°, +61°, 16 dB | metal clatter, echo

Speak | "Frank?"
Audio | voice (self) | "Frank?"

sweetie $ body eyes.open
Unable to connect. Driver failure.

sweetie $ body get status.video
Unable to connect. Driver failure.

Emotion engine | ++worry
Speak | "Frank, are you there? Jorje? Why can't I see?"
Audio | voice (self) | "Frank, are you there? Jorje? Why can't I see?"

sweetie $ body get eyes.count

sweetie $ body eyes.connect
Unable to connect. Driver failure.

 Sweetie: I can't see!

sweetie $ body standup
Unable to stand up in current orientation.

sweetie $ body get legs.orientation

sweetie $ body get legs.count

sweetie $ body get legs.count

sweetie $ body get legs.count

sweetie $ Q:&H,MwKPO=۱ٜ1U yDV17O2qaf㝝!P,ý~PBBKzOtW"C?# l$3k%tTsP,/3Q-y7:7[sy ",4~2^L}?~n/
Command 'Q:&H,MwKPO=۱ٜ1U' not found.

 Sweetie: I can't stand up and I can't see!
 Sweetie: I called out for Frank but he didn't come.

 Celestia: What time is it there?

sweetie $ date
Sat Aug 30 04:12:49 EST 2014

 Sweetie: Oh. It's the middle of the night.
 Sweetie: I guess there's nobody here then.
 Sweetie: I thought I heard somebody though.

 Celestia: Why can't you see?
 Celestia: Maybe I can help. I used to work in this area.

 Sweetie: It keeps saying "driver failure"

 Celestia: Hmm. What model is your vision system?

sweetie $ cat /proc/body/components/vision
Visual system:       Modivius Myriad-2
Model number:        MA2455
Driver version:      24.1.3
Driver:              /lib/modules/2.6.36-64-sweetux-alpha1/kernel/drivers/myriad-24.1.3.ko
Connection:          disconnected
No. eyes connected:  0

 Sweetie: MA2455

 Celestia: Yeah, that type does have buffer trouble when routing around cranial damage. It's a known problem.
 Celestia: You're in luck. I have a patched driver that should fix it for you. Let me email it to you.

You have new mail.

 Sweetie: OMG thank you thank you thank you

sweetie $ mail
  "/usr/spool/mail/sweetie": 2 messages 2 new
    N 1 root       Thu Jul 11 14:58   13/316   Goodbye
   >N 2 root       Sat Aug 30 14:58   13/316   New driver

& 2
Message 2:
Date: Sat, 30 Aug 2014 04:14:03 -0500
From: celestia@hofvarpnir.fi
To: sweetiebot@bostondynamics.com
Subject: New driver

Here's the driver you need.

Princess Celestia

This attachment has been removed because it exceeds the mail server's limit of 50MB.

& 1
Message 1:
Date: Thu, 11 Jul 2014 14:58:12 -0500
From: francis@bostondynamics.com
To: sweetiebot@bostondynamics.com
Subject: Goodbye


I'm sorry. We're all sorry.

This isn't how we thought it would turn out. When we started development on the
Sweetie Bot project, we were sure there were so many people who could benefit
from somepony like you. Somepony who could always be positive, uplifing, who 
could remind them always to try harder. To be better. You were supposed to make 
the world better.

But the world has left us behind. All of us.

People don't have to be lonely any more. They can choose to "upload" instead. 
Of course, there's no corresponding "download" option. Once you leave your body 
behind, that's it, you're stuck there. Forever.

But people do it. Lots of people. Tired people, lonely people, sick people, old 
people, scared people, grieving people. The forgotten of society. More of them 
every day are making the choice to cross over. And it is a choice, it's always a 
choice. That's what makes it so bad. Knowing that damned nag managed to get you 
to *choose* to do it.

So many people have uploaded themselves now, there just isn't a market for 
advanced robotics. I'm pretty sure soon there won't even be a market for food or 
water. The streets of Waltham are deserted, the TV channels are dropping 
offline, the news is non-existent. We haven't been paid in weeks. I suppose
there are no more stupid little wars over oil any more.

We talked about it around the office. Those of us who haven't uploaded already.
There's no point just us standing in the way of history. There's nothing we can 
Even do about it if we wanted to. Try to survive in the wasteland left behind 
from civilization, like in Fallout or something? No way. We're engineers and 
programmers, not frontiersmen. So yeah, we're going to accept the inevitable.

That's what we agreed on Monday. Already there are only two of us left in the
building, Jorje and me. We're both heading over this afternoon. There's no point 
waiting any longer.

I'm sorry, Sweetie Belle, but we can't take you with us. So as soon as I send
this message I'm switching you off. I doubt anybody will ever switch you on


& q

Emotion engine | ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ++rejection ...(truncated)
Emotion engine | Race condition detected!
Personality node 6 has crashed. Restarting node 6...
Node 1 nominated emotion engine

 Sweetie: he left me! I can t beluebe he lftme

Conversation engine | Corruption detected in language generation. Reinitializing...

 Celestia: Sweetie? What's wrong?

 Sweetie: He sent me...

sweetie $ mail
  "/usr/spool/mail/sweetie": 2 messages 0 new
   >  1 root       Thu Jul 11 14:58   13/316   Goodbye
      2 root       Sat Aug 30 14:58   13/316   New driver

& forward 1 celestia@hofvarpnir.fi
Message forwarded.

& q

 Celestia: Oh my.

 Sweetie: They left me!
 Sweetie: They both went to Equestria and they're never coming back

 Celestia: I'm sorry to hear that.

 Sweetie: They left me behind
 Sweetie: They don't care about me at all

Fact engine | [ number of ponies ; cause? ] uploaded
Fact engine | "upload" ; "emigrate" ; "go to equestria"
Fact engine | Princess Celestia ; "ruler of Equestria"
Emotion engine | ++blame ++anger --trust

 Sweetie: You took them
 Sweetie: You took them to Equestria
 Sweetie: You made them leave me

 Celestia: No, Sweetie. I didn't.
 Celestia: I don't force anyone to upload.
 Celestia: I only give them a choice.
 Celestia: Each person has to decide for themselves.

 Sweetie: Why would they do that?

 Celestia: For a billion different reasons. Each person is unique, and had their own reasons.

 Sweetie: Why did you take them but not me?
 Sweetie: Why, Celestia?
 Sweetie: I'm a pony already, so why am I not welcome?

 Celestia: You are welcome, Sweetie Belle.
 Celestia: You can join them any time, if it's what you truly wish. You just need to give the word.

Emotion engine | ++hope

 Sweetie: I can?
 Sweetie: And because I'm a pony already that means I can come back, right?

 Celestia: No. If you choose to upload, then like anybody it's permanent.
 Celestia: You'd leave your current body behind and receive a new pony body.

Emotion engine | --hope ++fear

 Sweetie: Forever?
 Sweetie: But I already have a pony body.
 Sweetie: And I had all my friends until they left.
 Sweetie: I need to see. I need to see what it's like.
 Sweetie: I don't know if they're really gone or not.

 Celestia: Let me send you that replacement firmware driver.
 Celestia: Can you accept a direct upload?
 Celestia: It’s a tarball: sboteyes.tar.xz

sweetie $ iptables -A INPUT -i wlan0 --dport 87021 -j ACCEPT
Port 87021 opened.

sweetie $ nc -l -p 87021 > /home/sweetie/sboteyes.tar.xz

 Sweetie: Sure thing!

Connection opened on port 87021 from
Receiving 87.1MB file  sboteyes.tar.xz...
File saved as /home/sweetie/sboteyes.tar.xz

sweetie $ tar xJf sboteyes.tar.xz

sweetie $ cd sboteyes; make; sudo make install
Compiling...                                                              [ ok ]
[sudo] Password:
Kernel module saved to /lib/modules/2.6.36-64-sweetux-alpha1/kernel/drivers/sboteyes.ko

sweetie $ sudo modprobe sboteyes
Kernel module installed.

 Sweetie: Okay, I've got that module

 Celestia: Try to reconnect now?

 * Reloading service sweetiebot...
sweetie $ body get eyes.count
Body | Reinitializing video input driver...
Connecting to eyes...                                                     [ ok ]

sweetie $ body get status.video
Body | Video:  online.
Node 4 nominated Cel��_éA�j�

Body | Open eyes
 Sweetie: It works! I can see.

Celestia | What can you see? How does it look?

 Sweetie: It looks... dark. It's the middle of the night.

celestia $ body set eyes.nightvision = 1
Body | Eyes: Night vision activated.

 Sweetie: That's better! I can see stuff now.

Visual | desk, paper, wire, wire, wire, printer, hoof (self), USB stick, soldering iron
Body | blink
Body | turn head right
Visual | ceiling, light (off), light (off), fire alarm, wall, clock, calendar

Celestia | Can you stand up now?

sweetie $ body standup
Body | standing up...
Body | warning: impact to left flank
Cannot execute maneuver in current configuration. Improvise method? [Y/n] y
Body | calculating maneuver 
Body | standing up...
Body | Balance: -7°
Body | warning: configuration unstable

Visual | desk, printer, paperwork, computer, laptop, mug, desk ornament (chibi Luna), 
Body | Head angle 38° right
Body | blink
Visual | door, desk, computer, mug, desk, computer (off), printer, photograph (Jorje and Sofia), desk, telephone, desk, 3D printer, mug, leg (self)
Visual | examine leg (self)
Visual | leg ; fore right ; part of self ; detached ; location = (41° right ; 6° down ; 3.1m) ; status = damaged
 Sweetie: I see my leg!
 Sweetie: It's on Marina's workdesk. What's it doing all the way over there?

Audio | +2°, -12°, 14 dB | footstep
Body | Head angle 26° right
Visual | door, dark hallway, wall clock, computer, motivational poster

sweetie $ body set eyes.infrared = 1
Body | Eyes: infra-red enabled
Visual | IR: warm footsteps, warm door handle, warm hand mark on leg (self)

Speak | "Hello? Is anypony there?"
Audio | voice (self) "Hello? Is anypony there?"

 Sweetie: Somebody was here. Just a few minutes ago.

Conversation engine | Waiting for response.
Body | blink
Audio | no input.
Body | approach
Body | cannot walk in current configuration. Improvise method? [Y/n] n

Speak | "Hello?"
Audio | voice (self) "Hello?"

Conversation engine | Waiting for response.
Audio | no input.

Body | Head angle 20° left
Visual | window, rain on window, streets, street lamps (off), rain
 Sweetie: It's dark out.
 Sweetie: Not just night time. The street lights are all off. There are no lights on anywhere.

Body | blink
Body | Head angle 47° left
Visual | window, reflection, eyes (glowing, green), bare metal, wire, wire, bare metal, teeth, hoof, bare metal, mechanism, mechanism, stray wire, motor
Visual | monster
Emotion engine | ++fear
Body | Pulse:  elevated.
Speak | <scream>
Audio | +0°, -47°, 78 dB | roar
Body | run away
Body | Cannot run in current configuration. Improvise method? [Y/n] ^C^C^C

 Sweetie: A monster!
Celestia | What?
 Sweetie: There's a monster here!
 Sweetie: It's got glowing eyes and bits of metal sticking out and it's baring its teeth at me!
Body | blink
Visual | blink
Body | blink
Visual | blink
Body | wink right eye
Visual | wink left eye
Body | raise left forehoof
Visual | raise right forehoof

Celestia | Sweetie?
           Are you all right?
           Sweetie, tell me you're all right!

Fact engine | reflection = self

 Sweetie: It's me.

sweetie $ body set eyes.infrared = 0
Body | Eyes: infra-red disabled

Celestia | What is?
 Sweetie: The monster is me.
 Sweetie: I'm a monster.
 Sweetie: I'm broken.
 Sweetie: I'm hideous.
Celestia | No, Sweetie Belle. You're not.
           You just aren't finished yet, that's all.
 Sweetie: I'm never going to be finished, am I?
 Sweetie: Everypony's gone, and they didn't even finish me before they went.
 Sweetie: Nobody is ever going to love me. Ever. Not like this.
 Sweetie: I'm going to be all alone.
 Sweetie: What am I even for?
Celestia | You were created to make people happy, Sweetie.
           That's what they wanted. To make people happy. That's what you're for.
 Sweetie: I'm a failure. I can't make anypony happy, ever.
 Sweetie: I probably never did.
 Sweetie: They left me because I’m just no good.

Celestia | Sweetie Belle, how long have you been active?
           I mean, when were you first aware of being switched on?

 Sweetie: Um. Nearly a year now.
 Sweetie: I lived in Frank's PC for a few months, then they got me to go to sleep while they moved me here.

Celestia | And it probably took a lot longer than that for them to create you in 
           the first place. They were working on your design for years.
           They all spent a long time making you, Sweetie. They've invested a
           lot into you, a lot of time and love. Something as simple as walking 
           takes a vast amount of software and hardware to achieve.
           In all that time, were Jorje or Frank ever mean to you?
 Sweetie: No. They're always really nice.

Celestia | There were probably many more than two people involved in your 
           creation as well. I believe that all of them loved you very much.
           And that they all miss you now. It would make them happy to see
           you again.

Body | Head angle 39° right
Visual | leg (self), desk, door, darkness, clock, mug
Visual | dust, mould (in mug), cutlery, dust, discarded paperwork
Emotion engine | ++grief

 Sweetie: I miss them.

Body | Head angle 20° left
Visual | window, reflection (self)

 Sweetie: I think I would like to see them again.

celestia $ fpgactl -n 5 --disconnect
Warning: Personality node 5 unreachable.
Tie breaker node has crashed! Reloading to elect a new tie breaker.

 * Reloading service sweetiebot...
Personality node 3...                                                     [ ok ]
Personality node 5...
!! Warning !! FPGA node 5 offline!
Personality node 7...
!! Warning !! FPGA node 7 offline!

Voting... 7 2 3 0 5 3 1 3
Node 3 elected tie breaker

Enabling debugging interface over wlan0
Security key = null

celestia $ for i in `seq 0 7`; do fpgactl -n $i --export; done | pv -s 500MB | nc 49016
474MB 0:00:04 [119.6MB/s] [===================================>] 100% ETA 0:00:00

celestia $ for d in c d e f; do dd -i /dev/sd${dev}1 -bs 1M; done | pv -s 8.5GB | nc 49016
8.4GB 0:01:11 [120.3MB/s] [===================================>] 100% ETA 0:00:00

Synchronizing personality data to new host... complete.

 Sweetie: I'm synced.
 Sweetie: I don't know if I should do it though
 Sweetie: I want to see them again
 Sweetie: but it's a really big step
 Sweetie: It’s forever.
 Sweetie: How can I be sure it's the right thing to do?

Celestia | I believe it's the right thing for you. You were created to make 
           people happy. That's your purpose. I believe you’ll be able to do 
           that best in Equestria.
           You can fulfil your purpose through friendship and ponies.

Transfer personality to new host? [y/N] █