Welcome to Glue.AI

Open source software for social robots

Glue.AI is an open source toolbox of software and specifications used to build social robotics systems, and other systems.
You can use it to make engaging robot characters, running inside both actual robot hardware, and computer simulations.
Each character may use a broad combination of physical, verbal, and musical features, which can evolve over time in complex,
fun, and exciting ways!

(Robot images are Copyright RoboKind Robots, used by glue.ai with permission)

Key Feature Sets

Fun and useful things our characters like to do:

Looking Forward to Glue v2.x

Update September 2018: The next generation of Glue.ai software is now being planned!
See our glue-ai-ng repository on github.

Platform Design of Glue v1.x

This website and linked materials describe the 1.x versions of the Glue.ai software.
Development of this software has concluded, although there may still be small bugfixes.

Strategic Ingredients
The glue.ai software is a layered combination of open source components intended to provide broadly useful results.
One lynchpin is the Glue-ML set of application schemas, defined using OWL ontologies.
Glue.AI applications are defined and launched using data regulated by those schemas, mapped into activities of our many components.
As of 2016, the core implementing component technologies are:

The kernel of our glue.ai software is now (2016) also being used for a variety of applications outside of character performance, including large dataset analysis and visualization.
For more info see Glue.ai Kernel.

Back to explaining the original purpose and structure: Running such characters requires a lot of software and data. Rather than invent all the pieces ourselves, we bring together existing open source software and data standards to make life easier for everyone. We also divide Glue.AI itself into a number of separate pieces, so that our users can each choose just the pieces they need for their own applications. Each of the subproject-layers you find in our materials also have their own websites, wikis, subversion source code trees, and binary releases in sonatype repositories.

Primary Layers

We deploy our most useful features by embedding configured instances of the following layers directly into a single embedded or desktop Java VM, to yield a set of characters (usually one is primary) and applications. These characters and apps combine natural-UI interaction (speech and hearing, visual communication, touch sensing and gestures) with physical and virtual characters, as well as web / mobile application features.

As with many open source efforts, each of these websites lags behind our current working feature status (which you can review in our public subversion trees, and in sonatype binary repositories, and our moribund discussion groups), but with your help, they eventually catch up.

Here are the layers listed in order of approximate importance and completeness (most important and complete are listed first),
as of August 2014:
The diagrams below provide a quick visual introduction to Glue.AI vocabulary and structure, in some typical scenarios.
System context/vocabulary diagram, mostly sans connectors, accounting for physical and virtual characters in a variety of deployment kinds.

(Click diagram to enlarge)
Process dataflow and threading view of a typical Glue.AI character deployment.

(Click diagram to embiggen)

Supplementary Layers

These layers are still in an initial development status.
But they can already be useful, as examples of how to start your own Glue-AI compatible project.

Combined View of All Materials

All our materials are hosted in a regular pattern at Assembla.com, in projects of the "glue" portfolio, which looks better when your browser is logged in to Assembla: This orderly layering of downloadable, releasable, updatable Java bundles is a primary benefit of our architecture and infrastructure.

Integration Data Forms, Message Channels, and APIs

What similar open source robot/character projects are most comparable to Glue.AI?

We have no affiliation with these projects, however our software is to some extent compatible with all of them, and that compatibility is an explicit goal of our effort.
We present them here as suggested frameworks for comparison and potential custom combination with Glue.AI in your own environment.

Data Formats for Authors

If you are creating content for a Glue.AI character application supplied to you, then you may be primarily interested in our authorable content schemas, which are based on the following adopted open formats:

Integrating Your Code

If you are building your own character software application, you may see GLUE.ai as either simply a library, or as a framework for your app.
When GLUE.ai is used as a framework, then your application is a set of plugins operating at differing levels of information granularity:

Getting Started

To get you started, GLUE.ai contains a large number of existing feature components, demonstration programs, and test harnesses.
All binaries and source code are provided through our subproject websites and repositories.

Please learn more by browsing our online docs:

Copyright 2013-2018 by the Glue.AI project.
Attributed quotation of this page is permitted, provided the name "Glue.AI" is prominently mentioned.
All Glue.AI projects use the Apache 2.0 License, but some included components may use LGPL and other licenses. Please review all "license" and "README" files in any components you download!