Combines intermittent face and voice observations into a label, source and optional confidence for your companion. Old or undated readings from the optional sensors cannot lead; a posted summary without a time counts from when it arrives.
Cameras and mics give you intermittent observations of the person; they do not establish what someone feels. The core combines usable observations into a label, source and optional confidence. A separate categorical helper supplies coarse arousal/valence lookup values for your integration; the blend has no fused axes.
The gate reports open for usable fresh feature posts, shadow for usable fresh sensor readings, and watching or blocked when no reading is usable. One usable lane is enough. Old samples cannot name the dominant emotion. Feature posts remove raw-media field keys before retaining summaries; optional sensors write temporary WAVs and serve camera images on a local port.
The fusion core has zero npm dependencies and uses the endpoints you configure; defaults are local. Optional sensors download models, and Groq transcription uploads utterances only if a GROQ_API_KEY is set, in sensors/.env or anywhere in your environment. Optional Python sensors are included. The fictional no-sensor example shows posted summaries, the gate opening and raw-field redaction without activating a webcam or microphone.
No webcam needed: run the fictional feature example to see the returned label, source, confidence and gate.
Default posted-feature window is five minutes; expired lanes are excluded when polled or updated. Timestamp-free posts use receipt time; delayed captures must include a capture stamp.
Optional voice sensors save utterances in temporary WAV files and attempt cleanup through the bridge; files may remain. The webcam serves its camera image at local port 8103. Loopback is the default, not authentication. Groq transcription uploads audio only if a GROQ_API_KEY is set, in sensors/.env or anywhere in your environment. Read the kit's DOCS/privacy.md before enabling sensors.
You don't have to be a coder — but you will need a coding agent to do the setup with you: Claude Code or Codex. Every kit ships an agent-ready AGENT-START-HERE.md you hand straight to it.
Node.js 18+ for the fusion core — no npm install. The included Python face + voice sensors are optional (a webcam/mic path); the core runs fine on posted features without them. Installs on top of the Starter House.
SinAndSarah-emotion-pipeline/ src/ emotion-feed.mjs sensevoice.mjs server.mjs index.mjs config.mjs sensors/ (optional) emotion2vec-server.py webcam-emotion.py voice-listener.py voice-emotion-bridge.py START-VOICE-EMOTION.bat START-WEBCAM-EMOTION.bat requirements.txt example/ poll-sensors.mjs post-features.mjs tests/ honesty.test.mjs rest.test.mjs DOCS/ method.md privacy.md install.bat install.ps1 install.sh verify.mjs config.json start.bat start.command .env.template package.json AGENT-START-HERE.md BUYER-START-HERE.md PRODUCT-MAP.md README.md GUIDE.md GUIDE.pdf CHANGELOG.md MIGRATION.md LICENSE.txt
One-time purchase, lifetime updates. Checkout is Stripe — secure card payment, then an instant download plus your link by email.
Buy Emotion Pipeline — $24All sales final. It's source — the second it downloads, it's yours to keep, fork, and run forever. We literally can't un-hand you the keys, so there are no refunds.