The Furhat Library

What is it?

The Furhat Library is a curated collection of additional material available for use with the Furhat platform. It was introduced in the 2.0.0 release, and is being gradually built up, so feel free to check in every now and then to see if anything new has been added!

The Furhat Library consists of:

Skills Library

As of 2.2.0 the skills library is accessible from the web interface of a robot. Library skills are also available to download manually from furhat.io/downloads.

Skill video
MeetFurhat
Experience meeting with a social robot for the first time, and learn about the capabilities of the Furhat Robot.

Available for: all
Requirements: no
Source code: prototype-skill*
AskAScientist
Still your curiosity by asking any fact-based question.

Available for: standard package
Requirements: no
Source code: prototype-skill*
CardGame
Collaborate with the robot and a friend to sort the cards and earn points.

Available for: standard package
Requirements: Touch-screen
Source code: prototype-skill*
ComplimentBot
Free compliments for everyone!

Available for:standard package
Requirements: no
Source code: example-skill
FortuneTeller
Have your fortune told by a mysterious robot.

Available for: standard package
Requirements: Acapela voice WillBadGuy
Source code: example-skill
Singing
not yet available.

Available for: standard package
Requirements: no
Source code: no
-
Quiz
Test your wit with your friends and see who scores the most points.

Available for: standard package
Requirements: no
Source code: example-skill
Setup
Learn how to set up your Furhat Robot for the first time.

Available for: all
Requirements: no
Source code: no
-
OpenAIChatBot
Have a chat with Seinfeld, a personal trainer or Marvin the depressed robot. Open ended chat style conversations powered by the GPT3 language model from OpenAI.

Available for: standard package
Requirements: no
Source code: example-skill
MedicalScreener
Screen yourself for the risk of developing pre-diabetes.

Available for: standard package
Requirements: Touch Screen
Source code: no
JokeBot
Help the robot learn humour. It will learn from your reactions.

Available for: standard package
Requirements: no
Source code: example-skill
SurveySkill
Create survey type interactions from a simple google excel sheet with questions**.

Available for: standard package
Requirements: no
Source code: no
Dog
Who's a good boy? Engage with Lucky the dog and make it more excited, but eventually it will grow tired. A skill for non-verbal (not counting barks) communication!

Available for: standard package
Requirements: Dog mask
Source code: example-skill
-

* Private repository available in the standard and premium package. Reach out to us at tech@furhatrobotics.com for access.
** To avoid question chaos, the excel sheet in this example is read-only, view it here. Reach out to us if you want to get your hands on a version where you can define your own questions!

Skill projects

In our Github you'll find the following repositories

  • Prototype skills
  • Example skills
  • Tutorial

Prototype-skills repository

The prototype skills repository collects skills we have created that can be used as a starting point for creating your own skills on the robot. They are functioning prototypes that can be deployed and used with real users in real environments as is – or downloaded and customised for your own needs.

The repository is not public, but shared with owners of Standard and Premium Furhat Robots. Contact tech@furhatrobotics.com if you would like access.

Example skills repository

The example skills repository collects simple skill examples that you can use to learn about the skill framework or perhaps copy-paste bits and pieces from. The skills are not complete interactions, but rather shorter fragments of what would be a complete skill.

Tutorials repository

The tutorials repository collects various tutorials and technical examples that you can use to learn about the skill framework.

Most of the skills in these repos (and a couple extra) are available to run on Furhat in the Skills Library in the web console of the Robot. To run them on the Virtual Furhat you need to download them from furhat.io and run them manually from the SDK launcher.

Asset Collection

The asset collection is part of the Furhat Library and contains various gestures, functions, intents and entities to complement the furhat-commons when developing a skill. It is in technical terms a library on its own, and meant to be used by skill developers in their projects.

How do I get it?

See changes, documentation and latest available version of the Asset Collection in the changelog.

To use the latest library asset collection you need to add the following to dependencies in the build.gradle file in your skill:

compile 'com.furhatrobotics.assets:StandardLibraryCollection:1.2.0'

Note: This library is not necessarily backward compatible, so be warned that this could allow for updates which are incompatible with older code. We thus strongly recommend setting a specific version and looking at the changelog for updates.

Furhat Library Collection Build Gradle Deps

Note: If you are using an IDE like IntelliJ IDEA, don't forget to push the refresh button in the Gradle tab (top right) to reload all libraries.

Each library is built against a specific version of the furhat-commons, it should work with newer versions of the SDK but it is meant for 2.0.0 or later.

You use the assets the same way you would any resource from furhat-commons. Code completion will assist you to browse the content.

The tutorials repository on Github includes a skill project with example usage of content of the Asset Collection. It explains in details how to use the different libraries.

Furhat Library Collection How To Access

What exactly does it contain?

The collection includes:

  • intents
  • entities
  • gestures
  • functions
  • integration of Google Sheet for externalization
  • skill framework extensions* (to be added)
  • interaction policies (to be added)
  • faces (to be added)

* E.g. a custom DSL (Domain Specific Language) for creating survey interactions using a simple but powerful format.

The content will be continuously updated but below you’ll find a list of the current libraries. Most up to date list of content is found browsing the content from inside IntelliJ.

  • BehaviorLib
  • GesturesLib
  • NluLib
  • UsersLib
  • UtilsLib

When you’ve added the library to your skill you can see documentation on each asset in your IDE, as shown below.

FaceCore enabled in the web interface

Why did you not just include this in furhat-commons?

Every user have different needs, we want to keep furhat-commons lean and use-case agnostic. The library will contain things which are not deemed essential for all our users and all robot interactions.

Furhat-commons also follows a certain release schedule and a strict testing procedure, with the library we can be more flexible in adding experimental assets. For instance a function might be great for some use cases but work sub-par in others, gestures in commons should be carefully reviewed and preferably based on research, whereas those in the library could be more artistically created.

With all that said, assets that start in the library may later make their way into the furhat-commons.

Why are they not included for everyone?

The Library is available to all standard customers. Buying the standard and premium packages is what allows us to spend resources on creating assets and other content for the platform. It also helps us understand there is actual demand for what we create.

Can I contribute to the Library?

Yes! For now you are welcome to send us your code snippet and we can add it to the Furhat Library. In the future there could be a community project on github that you can contribute to. Do you have an idea or suggestion? We are happy to hear about it! Drop us a line in slack or send us an email at tech@furhatrobotics.com.

Changelog

1.2.0 (Released 2023-02-10)

Documentation available here

  • Updated to 2.5.0 commons
  • Restructured call of the utility functions to clearly separate the libraries
  • Added Google Sheet multi-language integration and refactored the non-localized integration
  • Added LED commands in the Utils library
  • Added UsersLib
  • Moved randomHeadMovements to behaviorLib and fixed delay bug
  • Fixed Negative/PrositiveReaction intents in the NluLib

1.1.5 (Released 2022-07-14)

  • Added behaviorLib with single function for smooth character switching

1.1.4 (Released 2022-07-15)

  • patch update

1.1.3 (Released 2022-07-14)

  • updated to use latest 2.4.0 version of platform

1.1.2 (Released 2022-06-16)

  • added tags to UtlisLib Google Sheet Integration
  • added buttons to UtlisLib Google Sheet Integration

1.1.1 (Released 2022-05-18)

  • fixed attend functions

1.1.0 (Released 2022-03-16)

  • refactored GesturesLib
  • added more gestures to GesturesLib
  • added UtlisLib with Google Sheet Integration

1.0.2 (Released 2022-11-15)

  • improvements to AutomaticHeadMovements

1.0.1 (Released 2022-08-27)

  • improvements

1.0.0 (Released 2021-08-26)

  • added GesturesLib
  • added AutomaticHeadMovements
  • added NluLib