FORERUNNER // CHARACTER ENGINE · API PREVIEW

DES PERSONNAGES ET DES MONDES VIVANTS,DANS VOTRE JEU.

Une seule API pour des personnages IA qui se souviennent, parlent et restent fidèles à eux-mêmes — et pour les mondes qu'ils habitent. La pile même qui propulse Mirari, ouverte à votre jeu, votre application ou votre agent.

001INCARNÉ

IL VOIT CE QUE VOIT LE JOUEUR.

Ouvrez un flux de perception et transmettez la vue du joueur au personnage. Il observe le jeu en temps réel, puis parle, réagit et agit en fonction de ce qui se trouve réellement devant lui — pas un scénario, un témoin.

SDK
wss · /v1/characters/:id/perceive
C#
// stream the player's view → the character sees the game
var eyes = fr.Characters.Perceive("char_8f2", fps: 4);
// push the camera's render target each frame
void Update() => eyes.Send(playerCamera.Capture());
eyes.OnReaction += r => {
// r.Sees "a dragon landing on the keep wall"
// r.Says "Get down — to the wall, now!"
npc.Perform(r); // r.Act "point", r.Emotion "alarm"
};
Live NPC

DANS VOTRE MONDE

UN PERSONNAGE QUI VIT DANS LE JEU.

Intégrez-en un à votre monde : il se souvient du joueur, lui répond de sa propre voix et reste fidèle à lui-même — quête après quête.

DÉVELOPPER OU INTÉGRER

UNE API CONTRE LA STACK À ASSEMBLER.

Chaque équipe chiffre le même montage maison : GPT pour le cerveau, ElevenLabs pour la voix, mem0 pour la mémoire — plus la glue pour en faire un seul personnage. Voici le calcul.

< 300ms

jusqu’au premier son

GPT → ElevenLabs : allers-retours en ~1.2–2 s

1API

et non trois fournisseurs

remplace GPT + ElevenLabs + mem0 + la glue

0

base vectorielle à gérer

mémoire gérée — ça fonctionne, point

GPT + ElevenLabs + mem0

la stack maison
  • Délai jusqu’au premier son~1.2–2 s
  • Perception en temps réelAucune voie réelle
  • MémoireBase vectorielle + récupération à gérer
  • Fournisseurs à raccorder3 + votre code de glue
  • Reste dans le personnagePrompts cousus entre les API
  • Consentement vocalÀ votre charge

Mirari

une seule API
  • Délai jusqu’au premier son< 300 ms
  • Perception en temps réelNative — elle voit le jeu
  • MémoireGérée — ça fonctionne
  • Fournisseurs à raccorder1
  • Reste dans le personnageUn seul modèle, toujours
  • Consentement vocalVoice ID Registry, intégré

Le premier son Mirari est mesuré sur notre stack ; les chiffres maison représentent un aller-retour en flux GPT → ElevenLabs → mem0. Méthodologie complète sur demande.

002DÉMARRAGE RAPIDE

OPÉRATIONNEL EN TROIS APPELS.

Un aperçu illustratif de l'API REST. Les structures peuvent évoluer avant la disponibilité générale — vous recevrez la spécification à jour avec votre clé.

01

S'authentifier

Renseignez votre clé API et pointez vers l'URL de base. Chaque appel est à un bearer token de distance.

install + auth
C#
// Unity — add the Forerunner UPM package, then:
using Forerunner;
var fr = new ForerunnerClient("fk_live_8f2a…");
bool ok = await fr.HealthAsync();
Debug.Log(ok); // True
02

Créer un personnage

Donnez-lui un nom, un persona et une voix. Il vous revient doté d'une mémoire persistante, prêt à parler.

Créer un personnage avec mémoire + voix
C#
var rin = await fr.Characters.CreateAsync(new CharacterSpec {
Name = "Rin",
Persona = "Sharp-tongued, loyal, bilingual scout.",
Voice = "mirari:rin",
Memory = MemoryMode.Persistent,
});
Debug.Log(rin.Id); // "char_8f2"
03

Envoyer un message

Diffusez une réponse fidèle au personnage — texte et audio — pendant que sa mémoire se met à jour d'elle-même. Voilà toute la boucle.

Diffuser une réponse, fidèle au personnage, avec audio
C#
// stream a reply, in character, with audio
await foreach (var ev in fr.Characters.Chat("char_8f2", new ChatRequest {
Session = "player_42",
Say = "I'm back.",
})) {
if (ev.Text != null) subtitle.Append(ev.Text);
if (ev.Audio != null) audioSource.Stream(ev.Audio); // ~280ms first byte
}
04

Mettre à jour la mémoire et l'état

Consignez ce qui vient de se passer — une trahison, un cadeau, une mort — et appliquez un correctif à l'état du jeu ou aux faits du joueur. Le personnage s'en souviendra à la prochaine session, sans qu'on l'y invite.

événement de jeu → mémoire + état
C#
// write what just happened — recalled next session, unprompted
await fr.Characters.RememberAsync("char_8f2", new MemoryEvent {
Event = "Player spared the bandit chief.",
Weight = 0.8f,
Tags = new[] { "mercy", "quest:bandits" },
});
// patch game state + player facts
await fr.Characters.PatchStateAsync("char_8f2", new {
trust = +2,
location = "Riverwood",
knows = new { player_name = "Dovah" },
});

MONDES VIVANTS

DÉCRIVEZ-LE. LE NARRATEUR LE GARDE VIVANT.

Composez une distribution et décrivez le monde en langage clair. Une IA superviseure — le narrateur — bâtit le graphe social à partir de vos mots, puis remodèle chaque lien au fil des événements. Aucune carte de relations à câbler, aucune branche à scripter.

describe the world
ts
// Describe the world in plain English — the narrator does the wiring.
const world = await fr.worlds.create({
cast: ["Rin", "Tsuki", "Mochi", "Vex", "Kit", "Sable"],
premise: `Rin trusts Kit, but both are rivals with Vex.
Tsuki mentors Mochi, who owes Sable a life debt.`,
});
// From here an overseeing AI runs the world: it reads each event and
// reshapes every bond, mood, and stake on its own — no graph wiring,
// no branch scripts.
world.on("event", world.narrate);
drag to orbit · hover a character
live

Le narrateur pilote tout le graphe en direct — vous dites simplement ce qu’est le monde.

FRR // •• · LIVE
BÊTA PRIVÉE

OBTENEZ UN ACCÈS ANTICIPÉ.

Nous intégrons les studios et les créateurs par vagues. Dites-nous ce que vous concevez et nous vous fournirons une clé.

DEMANDER UN ACCÈS

Sans carte bancaire. Invitations progressives. La documentation complète arrive sur api.forerunner.ai.