What is demo mode?

Starting the demo controlller initialises the Biomimetic Core and puts it in control of the robot. Central components of the core compute multi-sensory maps of salience in the space around MiRo (what is nearby that "matters" to the robot) and compute what to do next ("action selection") based on priority computed from those salience maps. Therefore, to really understand MiRo's behaviour in demo mode, you'll need to look into how mammalian brains work.

If, on the other hand, you just want MiRo to roam around interacting with whatever it comes across, you just have to start the controller. Demo mode is more rewarding, though, if you have a rough idea of what MiRo thinks "matters"—you can then persuade your MiRo to pay attention to you, rather than to passing shiny objects.

MiRo's drivers of salience include motion (as determined using the cameras in the eyes), sounds (picked up and localised by the microphones in the ears), human faces and his[1] favourite toy—a blue ball[2]. You can get MiRo's attention with any of these stimuli, but some will be more effective than others depending on your environment. He also responds to being touched and stroked, but we will leave it to you to determine just how.

MiRo's responses to these stimuli depend on what mood he is in. You can judge MiRo's mood by the colour of the lights under his body shell, by the nature of his vocalisations, and—yes—by the way he responds.

[1] MiRo is not gendered, but when the demo controller is running, we do think of it as being an animal, not just a machine. Our MiRo, then, is a "he"—but yours may be a he, a she, or anything else.

[2] Blue ball not provided—see if you can find something he likes!

Wrangling MiRo

Getting his attention

The basic way to wrangle a MiRo is to make sounds (clap your hands) or move around (wave your hands, or bounce a football in front of him). MiRo will attend to these stimuli by turning his head and, if required, his body.

If he does not seem to be paying attention to you, look where he is looking, and consider what he might be seeing that is more exciting. If the environment you are in is very busy, you might want to disable one or other source of salience using the demo flags (for instance, we often set the flag "Disable attend sounds" in noisy environments for this reason).

Getting him to approach

If a stimulus stays in much the same place for a little while, and MiRo is in a fair mood, he will approach the stimulus. In this way, you can get MiRo to come to you, and even follow you around, by waving something to get his attention, and by calling him over to you.

However, MiRo—like any animal—is easily spooked. If you get in his face, he may look elsewhere for a calmer situation (unless he's really on a high, in which case he may just choose to engage). You may need to learn to embrace unpredictability: remember you are dealing with an animal-like robot and that comes with challenges.

Dealing with danger

MiRo will try to avoid cliff edges, but his cliff detectors are not sophisticated enough to be right every time, so you should supervise him if he is operating near cliffs. A table-top, then, may corral MiRo, but not safely—if you want to try corralling him safely, use a white floor surface with a wide black surround, and adjust the cliff sensor sensitivity to match the inks you have chosen.

You can adjust the cliff sensor sensitivity using the MiRoapp Controller page.
If MiRo appears to be unwilling to move forward, look at the FAQ Why does my robot just keep going round in circles?

Shifting mood

Immediately after starting the demo, MiRo is in a neutral mood. His lights will pulse white, and he will be vocalising pleasantly. In this neutral mood he may choose to approach if a stimulus is strong enough, but he may equally choose to stay exactly where he is.

Various things will affect MiRo's mood, either positively or negatively. These include the time of day, being kept awake, being hit on the nose, exciting—or unpleasant—sounds. We leave it as an exercise for the reader to determine exactly what makes him happy and what makes him sad.

If MiRo is in a particularly good mood, his lights will be pulsing green, and he will be driven to approach stimuli that he notices. In a particularly bad mood, MiRo's lights will pulse red, and he will tend to run away from things rather than approach them. The character of MiRo's vocalisations will also vary with his mood. Meanwhile, MiRo's breathing rate—and, hence, vocalisation frequency—will vary with his arousal; in a very aroused state, you may even be able to hear MiRo breathing in and out in time with the pulsing of his light arrays.

Human interaction

MiRo is a social robot, and his mood is particularly strongly driven by human interaction. He likes any contact on the touch sensors arrayed over the top of his head, and will respond accordingly. Stroking his back is good too, but don't stroke him the wrong way—he doesn't like that at all. He doesn't mind being picked up, but will get a bit shirty (not to mention he might be damaged) if you drop him, so it's best to keep physical abuse to a minimum.

Falling asleep

After a period of activity, MiRo will become tired and fall asleep. His lights will glow orange as he snoozes, and pulse more slowly in line with his slowed breathing. Only a brief sleep is needed to refresh MiRo, and he will wake up again rather snappily when he's feeling stronger. After waking, you should find him in fairly neutral mood, having largely forgotten whatever you did to him last time he was awake.


Depending on the demonstration environment, some of MiRo's behaviour may be undesirable. This is what the Demo Flags, accessible through the MiRoapp, are for.