Skip to content

Architecture

tripl edited this page Oct 10, 2026 · 4 revisions

Architecture in brief

Full version: docs/ARCHITECTURE.md.

  • Pepper runs a thin bridge (Python 2.7, NAOqi 2.5) that exposes its hardware as bounded endpoints and enforces every safety limit itself: sonar guard, emergency stop, no motion while resting, microphone muted while it speaks.
  • The host thinks, in four layers that run at different speeds:
    1. Reflexes (milliseconds, no model): "stop", "be quiet", eye-colour state, fillers.
    2. Perception (continuous): speech-to-text (Nemotron), people detection, and fast local judgements on a Creative AI Hub GPU (is this meant for Pepper? which action to start? is someone waving?), all failing open when the GPU is unreachable.
    3. World model: our own record of who and what is around, shared by every part.
    4. Mind: one conversational model (Claude) that talks and acts. Only the mind speaks.
  • Memory (0.6.0, docs/MEMORY.md) has two tiers that share one vocabulary:
    • working memory: the world model, with Pepper's pose, people including those out of view, voice direction, scene notes and a timeline;
    • long-term memory: people who agreed to be remembered, facts and session episodes, with "forget me". Everything enters through one function, readers are pure views, and no model is called when memory is read.
  • A slow reflection loop for initiative: a first slice in 0.7.0, off by default. It reads working memory and hands a short "[Initiative]" turn to the mind, which may say one thing or nothing; there is still one voice.

Rules: safety lives lowest; nothing waits for a model that does not have to; one voice; state lives in our code, not in a model; camera frames stay in memory at runtime.

Clone this wiki locally