Hundreds of unit tests
Logic is isolated in packages behind protocols (mock motion, mock store, deterministic schedulers), which keeps the engine testable without a device.
AI Mochi is a kawaii companion that lives on the iPhone, the Home Screen and the Apple Watch. It reacts to music, noise, weather, motion, battery and time of day, remembers your streaks, ages through life stages, and answers when you talk to it using Apple Intelligence.
A modular Swift 6 codebase: seven local Swift packages hold all logic and rendering, and thin app targets for iPhone, the widget extension and watchOS compose them. No third-party dependencies — Apple SDKs only.
Pure logic with no UI imports: state machine, AnimationScheduler and PersonalityEngine as actors, mood forecasting, life stages and an @Observable MochiEngine orchestrator.
Vector faces drawn with SwiftUI Canvas. Each companion has its own renderer behind a CompanionRendering protocol; expression mappers turn animation frames into animatable face parameters.
Microphone feature extraction, Speech transcription, NaturalLanguage sentiment, Foundation Models replies gated by availability, and AVSpeechSynthesizer voices.
CoreMotion wrappers with pure-logic shake and tilt detectors, and a synthesised sound engine built on an oscillator bank rather than audio files.
StoreKit 2 catalogue, entitlement gatekeeper and a mock engine for previews and tests.
MochiMochiWatchMochiWidgetExtensionMochiDemoNo third-party dependencies — Apple SDKs only.
Stack detected automatically from the repository on 27 Oct 2026.
Logic is isolated in packages behind protocols (mock motion, mock store, deterministic schedulers), which keeps the engine testable without a device.
Faces are vector and parametric, sounds are synthesised — the whole character ships with almost no bitmap or audio assets.
Animations are JSON assets compatible with open-source ESP32 maker projects, so packs can be imported with minimal conversion.
The watchOS app reuses MochiCore and MochiRenderer and stays in sync through WatchConnectivity instead of running its own engine.