Skip to content


Repository files navigation


A framework for creating socially aware characters. An evolution of the Comme il Faut AI system, which powered the game Prom Week.


ensemble.js, available as part of the latest release, is a standalone JavaScript library that you can include in a web project with an HTML script tag:

<script src="ensemble.js"></script>

Then, in your JavaScript code, you can use the ensemble singleton object to call Ensemble methods.

See the wiki homepage for tutorial links and other resources for getting started.

Ensemble Authoring Tool

It can be difficult and tedious to author Ensemble domains (schema, trigger rules, volition rules, characters, history, and actions) in pure JSON without helper functions. The Ensemble Authoring Tool is a standalone desktop app designed to help authors develop and test their domains.

Screenshot of Ensemble authoring tool

The latest builds can be found on the releases page.


See the Contributing wiki page for information about how to contribute to the project, how to build the library from source, how to build the tool from source, etc.

Get Help

If you are having issues, please let us know by opening an issue (maybe using the “question” tag)! We'd seriously love to hear from you!


The project is licensed under the BSD-4-clause license.