A personal hobby eKYC project exploring smile (active) liveness detection — built in both Flutter and as a native iOS demo app, with a face oval overlay, real-time smile confidence scoring, and pass/fail result states.
Screen 1 — Instructions
9:41● ● ●🔋
CancelSmile LivenessX
😊
Smile Liveness Check
We'll verify that you're a real person by asking you to smile naturally in front of the camera.
1
Position your face
Align your face within the oval guide on the camera screen
2
Wait for the prompt
Hold still until the "Please Smile" instruction appears
3
Smile naturally
Give a natural smile — not too wide, not too subtle
Tips for success
Good, even lighting (avoid backlight)
Remove sunglasses or face mask
Hold device steady at eye level
Look directly at the front camera
Start Verification
Screen 2 — Smile Detection (Active)
9:41● ● ●🔋
CancelDetecting…X
😁
Real Person Detection · Smile Active
😊 Please Smile!
Hold your smile for 1 second
Smile Confidence78%
CancelAttempt 1 of 3
Screen 3 — Liveness Passed
9:42● ● ●🔋
XVerification ResultX
✓
Liveness Passed
Real person successfully verified
Detection Results
Liveness Check
✓ Pass
Anti-Spoof
✓ Real
Smile Detected
✓ Confirmed
Face Quality
✓ Good
Smile Confidence Score92.4%
Face Quality Score87.1%
Verification Time2.3 seconds
AlgorithmSmileLiveness v1.0
Attempt1 of 3
Timestamp25 Jun 2026, 09:42
Continue →
Retry Verification
🤖 Flutter (Android & iOS)
🍎 iOS Native (Swift + XCFramework)
🎮 Hobby / Personal Project
Tech Stack
Flutter / Dart
Cross-platform implementation — runs on both Android and iOS from a single codebase
Swift (iOS Native)
Native iOS demo app (EkycDemo) built in Swift, packaged as an XCFramework
Face Oval Overlay
Custom painted oval guide aligned with camera feed for precise face positioning
Smile Confidence Score
Real-time facial landmark analysis to score smile intensity against a threshold