Meta Stella App v273.0.0.21 Facial Recognition Analysis
Meta Stella App Contains Dormant Facial Recognition Pipeline
Analysis of the Stella companion app (version 273.0.0.21, package com.facebook.stella) for Meta's smart glasses reveals a fully assembled, functional, but dormant on-device facial recognition stack. While the system is not active for ordinary users on stock accounts, the complete machinery for detecting, fingerprinting, and identifying individuals is present in the build.
On-Device Biometric Model Stack
The app ships with three specific ExecuTorch (.pte) models delivered via Meta's NMLML asset-delivery system. These models enable the full pipeline from raw image to biometric fingerprint:
| Asset Name | File | Size | Function |
|---|---|---|---|
android_facerec_scrfd |
SCRFD.pte |
3.4 MB | Face detection in images |
android_facerec_kps_aligner |
KPSAligner.pte |
117 KB | Face cropping and alignment |
android_facerec_sface |
SFace.pte |
96 MB | Generation of 2048-dimension biometric embeddings |
These models are based on open-source architectures, including SCRFD (InsightFace) and SFace. Notably, Meta's SFace implementation is larger (96 MB) and produces a higher-dimension output (2048) than the standard public reference.
Vector-Similarity Index and Storage Schema
The recognition system utilizes a local SQLite database located at /data/user/0/com.facebook.stella/files/rldrive/person_profiles/objects.db. This database uses the sqlite-vec extension (vec0) to perform cosine-similarity searches against biometric fingerprints.
Database Schema
persontable: Storesnodeid,name,uri, and ablob.facetable: MapsmediaPathto apersonUri.face_mediaPath_vecvirtual table: Stores the 2048-float biometric fingerprints using a cosine distance metric, matching the output of the on-device SFace model.
Handling of Unrecognized Faces
When the pipeline encounters a face that does not match the local index, it writes the data to /data/user/0/com.facebook.stella/files/NameTagsPending/. This directory stores two files per unrecognized face:
- A
.jpgfile containing the cropped and aligned face image. - An
.embfile containing the 2048-number SFace fingerprint (8,192 bytes, L2-normalized float32).
This mechanism allows for the storage of biometric records that can be retroactively identified if a label is provided later.
User Interface and Notification Surface
The app includes a fully wired Android notification channel named nametags_recognition. When a match is found, the system triggers a high-importance notification with the title "Person recognized" and the body "Recognized [Name]".
UI Components
- Deep Linking: Notifications include a
contentIntentthat deep-links tofb-viewapp://name_tags?face_id=<face_id>, intended to open a person-profile screen. - Connections Widget: The APK contains a "Connections" card with text encouraging users to "Remember the people you met and make new connections."
Despite these components, the target profile screen is absent from the navigation graph in version 273, and the "Connections" card is not visible to unenrolled users on stock accounts.
Community Perspectives and Privacy Concerns
Technical discussion regarding these findings highlights significant privacy and legal concerns, particularly regarding biometric data collection without explicit consent.
"I fail to see how nonstop recording of every interaction with people in everyday life will pass muster in a two-party consent state."
Other contributors noted the potential for legal challenges under the Biometric Information Privacy Act (BIPA) in Illinois and the general creepiness of a system that could potentially identify strangers in real-time. Some users suggested that such a capability is an engineering investment that does not ship by accident, regardless of whether it is currently enabled in production.