Progeny is an AI learning companion built for real kids, real families, and real everyday struggles.
Implementation spec: Bitling Runtime Architecture
Kids are growing up in a world where AI is part of learning whether we like it or not. The question is not "should AI exist in education". The real question is:
- can AI help children feel capable,
- can it support curiosity without pressure,
- can it meet neurodivergent kids where they are instead of forcing them into a rigid mold?
Progeny exists to answer yes.
This is not meant to be another app that drills kids, scores them, and calls it learning. It is meant to be a supportive companion that helps a child keep going, especially when learning gets hard.
- Interest-first learning: start from what the child already loves.
- Regulated persistence over perfect correctness.
- Tiny wins, low pressure, and steady growth.
- Parent visibility without shaming or clinical coldness.
- Neurodivergent-aware support that adapts in real time.
- Children who learn best through interaction, play, and visual companionship.
- Parents who want support tools, not judgment tools.
- Neurodivergent families (Autism/ADHD/AuDHD) who need adaptable pacing and communication.
- Builders/educators who want a local-first, modifiable tutor stack.
For a child:
- "Bitling gets me."
- "I can try again without being pushed too hard."
- "Learning feels like building something together."
For a parent:
- "I can see what helps my child, what stresses them, and what restores them."
- "This supports my child’s growth without turning home into a testing center."
The child/family creates Bitling’s avatar and style in Godot. This gives ownership and emotional buy-in from day one.
The first session is designed as a relationship-building flow, not an assessment. It runs in a short first-contact mode (about 3–5 minutes), prioritizing mystery/play over direct teaching.
- Parent can optionally provide baseline context.
- Parent can enable a same-child warm-up sequence (3 independent short runs) to build comfort.
- Child goes through playful world-building prompts.
- Signals are collected quietly (latency, writing pressure, pauses, retries, etc.).
- The system builds an adaptive baseline from behavior patterns, not labels.
- Session ends with a return hook (for tomorrow) to build anticipation and repeat engagement.
Bitling continuously adapts to the child’s current state. It does not only ask "what topic?" — it asks "what is this child ready for right now, and what keeps them regulated?"
Three cooperating engines run together:
- Interest Engine (motivation and topic anchoring)
- Regulation Engine (overload detection + pacing/sensory shifts)
- Learning Engine (challenge and scaffolding)
Teaching modes:
exploreengageadvancepracticestabilizerepairrecoverrestco_play
So when overload rises, Bitling reduces demand instead of pushing harder.
Lessons are generated live from:
- child interests,
- recent behavior,
- current adaptive state,
- prior struggles and what helped recovery.
The content is dynamic, but internally structured so the app stays reliable.
Bitling is not meant to feel like opening a blank worksheet every time. It keeps a persistent world with places, companions, objects, events, and missions. It also tracks trust stages over time:
safetyfamiliarityrapportcollaborationattachment
This makes sessions feel like "welcome back to our world" rather than "start another task."
The writing pad/tablet server lets kids draw/write in a low-pressure way. It tracks pressure/motor patterns and turns those into support signals. The overlay UI exposes the writing pad URL directly so a Kindle/tablet can join with minimal friction. It also exposes a QR endpoint so tablets can join by scan instead of typing.
This helps detect not just "can they do it," but "what made it harder" and "what helped them recover."
Watching content is optional, but tracked as an attention/comprehension signal. Short post-watch probes (choice/drawing/co-play prompts) help estimate:
- comprehension,
- retention,
- regulation effect,
- whether that kind of media helps this specific child.
- Creator + avatar generation flow
- Onboarding scene in Godot
- Adaptive profile persistence and live updates
- Trust-stage updates and persistent world anchors
- Dynamic lesson generation with adaptive context
- Writing telemetry feeding adaptation
- Optional media session/probe tracking
- Open Brain memory persistence (Postgres + pgvector)
- Kokoro speech with caching and fallback support
- Godot client (
Bitling/) - Python brain (
ai-companion/) - Postgres + pgvector memory
- SearXNG + Firecrawl research pipeline
- Ollama local models
- Kokoro ONNX speech
System packages (Ubuntu/Pop):
sudo apt update
sudo apt install -y \
wget git curl unzip openssl \
python3 python3-venv \
libgl1 libglib2.0-0 \
redis-server \
rustc cargo \
git-lfs espeak-ngPython setup:
python3 -m venv ai-companion/venv
source ai-companion/venv/bin/activate
pip install --upgrade pip
pip install -r ai-companion/requirements.txtNode/PNPM (Firecrawl):
curl -fsSL https://get.pnpm.io/install.sh | sh
export PATH="$HOME/.local/share/pnpm:$PATH"Also required:
- Godot 4.x
- Ollama (
moondream,qwen2.5:0.5b) - PostgreSQL + pgvector
- Redis
- SearXNG
- Firecrawl API
Optional:
- Automatic1111 local SD API
- Piper fallback (
PROGENY_PIPER_MODEL,PROGENY_PIPER_BIN)
Setup:
chmod +x setup_all.sh
./setup_all.shRun:
PROGENY_FORCE_LOCAL=0 ./run_progeny.shRecommended local STT path:
whisper.cpp+ Distil-Whisper Large v3 (or quantized medium/large variant)