Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

* first draft ergocub rome 22 demo

* ergoCubRome22: Wave tested

* ergoCub: update FunyThings including Rome demos

Co-authored-by: Nicogene <>
Co-authored-by: Simone Girardi <>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
April 21, 2021 17:12
December 7, 2022 13:18
December 24, 2021 10:43
October 19, 2021 16:40
November 24, 2021 08:30
January 13, 2022 15:18

Funny Things



funny-things is a repository which contains, among other funny things, a set of modules for easy scripting and execution of non-interactive (pre-programmed) demos. These modules (funnyPostures, iCubBlinker and gaze.lua) are devised to perform a set of actions, including moving, gazing, blinking, face expressions, etc, which can be easily handled through rpc commands. Moreover, these calls can be managed directly through the use of bash (.sh) scripts, which allow easy synchronization, ordering and test of these calls so that they can be predefined for particular demos. Several examples are available in the repo.

Step-by-step guide

  • Clone
  • Compile the project
    • cd into the repo folder (./funny-things)
    • mkdir build
    • ccmake ../
    • make
    • make install
  • Open icubDemoScripts (or icubDemoScriptsSIM to work on the simulator) template, adapt them and save as apps.
  • Open or create a new script file (.sh) and modify or add any commands to suit your demo needs.
  • Set robot environment (start robot or run yarpserver and iCub_SIM on simulator).
  • If they are not running yet, open the emotions and speech applications:
    • Face_Expressions
    • iCubSpeech  * Open the icubDemoScripts (or icubDemoScriptsSIM ) app and launch and connect modules.  * On the terminal, go to the ./funny-things/app/scripts/shells folder.
  • Run any desired command from the command line as ./<scriptname>.sh <command> - eg ./isp-movements welcome.
  • If new functionality is required, the easiest procedure is to copy an existing .sh with another name ( can be a good starting point), and modify it to suit your needs.


Enabling CREATE_FUNNYTHINGSAPP at configure time, it is possible to build the funny-things electron app, that allows to quickly and easily design awesome demos. Here how to install the dependencies:

sudo apt update
sudo apt install -y curl
curl -fsSL | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g npm@latest

And here the funnyThingsApp.AppImage in action:


Moreover, it is possibile to export the demo designed in the .funnythings format(that can be loaded and eventually modified through the app), and .sh format.



This app is just a higher layer for helping the user in designing the interaction with the robot, under the hood each action need that specific excutables are running:

For more info, see: