Cientos de tests unitarios
La lógica vive en packages detrás de protocolos (movimiento simulado, tienda simulada, schedulers deterministas), así el motor se prueba sin dispositivo.
AI Mochi es un compañero kawaii que vive en el iPhone, en la pantalla de inicio y en el Apple Watch. Reacciona a la música, al ruido, al tiempo, al movimiento, a la batería y a la hora del día, recuerda tus rachas, crece por etapas de vida y te contesta cuando le hablas gracias a Apple Intelligence.
Código modular en Swift 6: siete Swift packages locales contienen toda la lógica y el render, y unos targets finos para iPhone, la extensión de widgets y watchOS los componen. Sin dependencias de terceros, solo SDKs de Apple.
Lógica pura sin imports de UI: máquina de estados, AnimationScheduler y PersonalityEngine como actors, previsión de ánimo, etapas de vida y un orquestador MochiEngine @Observable.
Caras vectoriales dibujadas con SwiftUI Canvas. Cada compañero tiene su renderer detrás del protocolo CompanionRendering; los expression mappers convierten frames de animación en parámetros animables de la cara.
Extracción de características del micrófono, transcripción con Speech, sentimiento con NaturalLanguage, respuestas con Foundation Models según disponibilidad y voces con AVSpeechSynthesizer.
Wrappers de CoreMotion con detectores de agitado e inclinación en lógica pura, y un motor de sonido sintetizado con un banco de osciladores en lugar de archivos de audio.
Catálogo de StoreKit 2, control de derechos de compra y un motor simulado para previews y tests.
MochiMochiWatchMochiWidgetExtensionMochiDemoSin dependencias de terceros: solo SDKs de Apple.
Stack detectado automáticamente del repositorio el 27 oct 2026.
La lógica vive en packages detrás de protocolos (movimiento simulado, tienda simulada, schedulers deterministas), así el motor se prueba sin dispositivo.
Las caras son vectoriales y paramétricas y los sonidos se sintetizan: el personaje se distribuye casi sin bitmaps ni audios.
Las animaciones son JSON compatibles con proyectos maker de ESP32 open source, así que los packs se importan casi sin conversión.
La app de watchOS reutiliza MochiCore y MochiRenderer y se sincroniza con WatchConnectivity en vez de ejecutar su propio motor.