Introducing Idoru.js

idoru.js is an experiment I’m working on with artificial characters in virtual worlds. The idea is that to provide good “user experience” (UX) in a virtual world, a character must have good “stage presence” to stimulate engagement.

The idea is to create a framework for an artificial character that is charming and attentive to the user. This character can then be “dressed up” with any imaginable avatar. It can be given any “job” that anyone cares to script.

A screenshot of the very first prototype of idoru.js - with a rudimentary avatar and chatbot.
First idoru.js experiment.

A good suit and deep knowledge are not enough to make a person engaging in the real world. A person needs body language. A person needs to be attentive to the person they are engaging. They need to make eye contact. They need to interact with a person’s personal space in a thoughtful, polite way.

And that’s where idoru.js comes in. Say you’ve got a gripping 3d model of the Museum of Technology. Say you’ve got a gorgeous avatar of Thomas Edison that you want to be a tour guide and instructor. You could write up lesson plans for the Thomas Edison avatar – but it would deliver them light a distracted cardboard cut-out.

Or, you could add the avatar to idoru.js – and then write the lesson plans up for that. This way, your avatar would be charming and attentive, right from the get-go. It would have tried, tested and true body language. It would be engaging, responsive, and polite. And, as an added bonus, because it’s already paying attention to the user, in order to interact engagingly with the user – it can record the data for later analysis.

idoru.js is a JavaScript thing. Simply because JavaScript is the language of the open web. An idoru.js-based artificial character is meant to be used anywhere – desktop, smartphone, VR goggles, augmented reality doohickey. No plugins.

Meet idoru.js

The very first incarnation is fantastically simple. The body is comprised of 9 spheres and a cone. (This is derived from my earlier experiment with synthetic charm) It has a couple of gestures and mannerisms. It can maintain eye contact with the user. It appears to breath and blink. In short, it has rudimentary “body language”, or “stage presence”, which transcends the way that it looks or the job that it does.

It has been given a very simple job – to be a chatbot. And to talk about itself, if you’re so inclined as to ask it. And, because it has in its “nature” to be “aware” of the user – it’s taking notes on how people use it, so that I can review the data and make it more engaging based on more than mere guesses.

The current rough prototype lives at – you are invited to check it out and chat it up. That’s what it lives for.


Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookEmail this to someone

Author: Pete

Editor-in-Chief, Lead Software Developer and Artistic Director @

Leave a Reply

Your email address will not be published.