This is the design of the new virtual pet that I will be creating. Because I am singularly unoriginal, I will be naming this project ‘suya…’, because the object of this pet is to end up having cute platonic cuddles and then drifting off into a beautiful, sound, and comfortable sleep.
The software for the virtual pet will be written in Steel Bank Common LISP.
The main object of this particular project, which I have, again, very little hope of ever completing, is to end up with a little soft toy pet that you can interact with and cuddle.
The over-arching inspiration I had for this toy was my own loneliness and lack of a partner, and I felt like something cute and hug-able would be able to ameliorate or simulate what it would be like to cuddle, say, an IKEA BLÅHAJ soft toy shark that is so popular.
I suppose another motivation for this project is to create a virtual pet that anyone should be able to pick up and understand, despite whether or not they like the object and want to use it.
Creating a soft, plushy toy with some degree of easily-accessible design language should enable me to learn some skills about how to transform complex data structures that are hidden from the user into an overall object that is fun to use and desirable to have around.
Rough Outline of the Toy’s Function
‘suya…’ is going to be something of of chat bot. When you use it, you will still feed it and tend to it, etc, but the internal structure of the pet will not be about having it demand your attention.
It will have the basic commands ‘pause’ and ‘run’/‘contiue’ —where your command ‘run’ will be to leave it be, and it will entertain itself and report cute behaviours periodically.
When you ‘pause’ it, you will have the ability to interact with it, and have it speak to you and play with you.
A stretch goal, mentioned above, would be to get an already existing popular walking/mobile toy and strip its internal circuitry out and replace it with a Raspberry Pi, and have it interact with you through text-to-speech.
I do not think that I will integrate speech recognition into it, I might just have a set of buttons on it, or a remote control, where you’ll be able to cycle through the different play mechanics.
In fact it might be a BLÅHAJ that I embed the Raspberry Pi into, and I’ll put wheels or some sort of counter-weighted motor into it so it could crawl along on the floor, or give haptic feedback to the user in order to trick the user into thinking it was alive.
Previous Toys Upon Which I Can Model ‘suya…’
- The ‘furby’
- The fediverse’s ‘Maplebot17’ (@firstname.lastname@example.org)
- The ‘tickle-me Elmo’
I was originally going to include the now-defunct Anki ‘Cosmo’ toy, but it may be cute, but it is not cuddly. So it has been excluded from this list.
Summary of the Behaviours that this Cuddly Pet Will Exhibit
- ‘suya..’ will utter cute and tender phrases on a periodic basis
- The phrases will be adapted from the popular fediverse bot @email@example.com, because it is the best example of a virtual, small, child-like entity that I can think of. Its disposition is remarkable in that it reinforces and popularises emotionally-sensitive and caring behaviour with those whom it interacts—which at present moment I believe comprise just three people, its would-be parents.
- Cuddling the pet will reinforce and make specific categories of phrases more likely to be uttered.
One of the features I recently discovered about the Furby toy is that petting/cuddling the toy after it produces a randomly-generated utterance will make that specific token utterance more likely to be said again.
I will incorporate this behaviour into ‘suya…’. This is not an attempt to recreate the Furby in Common LISP, but is a very useful behaviour that is possible to lift from the Furby in order to give the impression that the little pet is life-like and has some limited capacity to ‘learn’. Over time, behaviours will become reinforced, and it gives the illusion that the pet has come to develop a limited form of intelligence.
This fediverse account simulates the behaviour of a robotic child-like animal. I am particularly fond of this account because it appears to describe the behaviours of a rather life-like child which is sensitive to other’s emotions, and is quite attentive to the need for its guardians to practice and experience self care.
I believe this particular fediverse account automatically posts short, simple phrases that are stored in list, and are randomly selected for publication on its timeline.
Below are some of my favourite behaviours that this ‘fediverse bot’ displays:
*goes looking for mum* *climbs into mom's lap and sighs happily* *sings a duet with another maplebot* *does jumping jacks* *goes outside to lie down on the grass* *gives mum a kiss* *chirps happily* *picks a tiny book from her bookshelf and sits down to read it* *very carefully brings mum a cup of tea* *kisses mum good morning* > random assortment of emoticon faces *sits on her mom's desk and just thinks for a while* *climbs up on the back of the sofa, rolls down onto the seat, and repeats* *shows off her new hairstyle*
With permission from the creators of this incredible little fediverse bot, I will adapt much of the phrases that this bot publishes online for my own virtual pet.
This very simple toy vibrates and creates sound when it is cuddled or tickled by the user. Perhaps this is a rather redundant thing to explain, but I plan to lift the convincing and attractive tactile feedback that this toy displays and incorporate it into ‘…suya’.
Hugging the toy will represent approval and loving care that the user directs to the toy, and will, as explained above, appear to reinforce certain behaviours that the user finds desirable by increasing the likelihood of the display of those behaviours.
I intend the toy to have a small LCD screen which displays the message its programming has selected, as well as having a speaker to allow the toy to speak to the user.