SELFBAUS STAGING - PREVIEW BUILD · NOT INDEXED
SELFBAUSSTAGING
METHODOLOGY

How Selfbaus measures a photo.

Every check runs the same open pipeline: a frame-check gate first, then deterministic pixel and geometry measurements, then a draft technical score. This page documents each step, its units, and its limits. Engine version 0.2.0, report contract selfbaus.analysis/2.

Step 1 - the frame-check gate

Pass or retake, never a bad score

Before anything is scored, the photo must pass independent capture checks. If any fails, Selfbaus reports retake needed with practical guidance and produces no score. A bad input is never graded.

CheckRule (engine 0.2.0)What you are told
Readable imageSingle-frame JPEG or PNG, up to 20 MiB and 24 megapixelsCapture a new JPEG or PNG
One faceExactly one verified face; zero or more than one failsKeep one complete face visible
Face large enoughShorter image edge at least 256 px; face box at least 3% of frame and 64 px on its short side; aspect ratio between 0.5 and 2Keep the complete face clearly visible
SharpLaplacian variance at least 8 (at 256 px long edge)Brace the phone, clean the lens, tap to focus
Not underexposedMean luminance at least 0.12 and shadow clipping at most 70%Move to brighter, even frontal light
Not overexposedMean luminance at most 0.92 and highlight clipping at most 70%Reduce direct light, avoid a bright background
Verifiable poseHead yaw and pitch within 10 degrees, roll within 5 degrees (proposed limits)Camera at eye level, face the lens squarely
Face detection uses a pinned MediaPipe Face Landmarker model (478-point mesh) with detection and presence thresholds of 0.8. Pose limits are proposed and require independent validation; the estimator error on this capture population is uncalibrated.

Step 2 - what is measured

Deterministic measurements, each with units and a scope note

When a complete face is detected, exposure, contrast, sharpness and noise are measured inside the face box; otherwise on the whole frame. No fitted rating models are involved at this step.

MetricMethodUnits
ExposureMean luminance of the histogram, plus shadow and highlight clippingluminance 0-1; clipping percent
ContrastHistogram RMS and 5th-to-95th percentile spread0-1
SharpnessLaplacian variance after bilinear resize to 256 px long edgevariance
NoiseHigh-frequency residual proxy (Immerkær-style high-pass sigma) at up to 1024 px long edgesigma 0-255
Color balanceReported as not measurable - no verified neutral reference is available-
ResolutionMegapixels and minimum dimensionMP; px
Face framingFace-box share of the frame and offset from frame centerpercent; normalized offset
Head poseYaw, pitch, roll from the pinned face modeldegrees
Frame geometryReflection symmetry and facial proportions normalized by iris-center separation (IPD ratios)IPD ratio
Geometry values are single-photo 2D observations: perspective, pose, lens and model error all remain in the number. They describe this frame only and are not attractiveness ratings. Filter status is reported as unknown, because no reliable filter detector has been validated.

Measurement overlay and three ratios

What it shows
Only when a photo passes the frame check, a toggleable overlay draws the mesh points and lines used on your own photo, on the same orientation-corrected pixels the model analyzed. Three ratios are shown: inner-eye gap divided by mean eye width (points 133-362 over 33-133 and 362-263); mouth width over the iris-centre distance (61-291 over 468-473); nasal contour width, a mesh estimate, over the iris-centre distance (129-358 over 468-473).
What it is not
Descriptive and capture-scoped. No norms, percentiles, ideal or score; expression, camera distance and head turn change them. In a small test (2 AI-generated adults, 2 lighting conditions, 9 image transforms each) they moved by up to 5.0%, 2.4% and 4.1% (a 1 degree rotation sometimes triggered a retake instead of ratios); in two AI-edited head-turn images inside the gate the nose ratio moved 2-3%. That is observed spread in a tiny test, not a validated noise limit. Nothing is uploaded or saved.

Step 3 - the photo-quality score

A draft technical composite - indicative, not a verdict

The 0-100 photo-quality score is a draft heuristic composite (rubric/1.0-draft) over the photo leaves only: sharpness, exposure, noise, contrast, color balance, resolution, framing and pose, with fixed draft weights. Leaves that cannot be measured stay empty and the remaining weights are renormalized - unavailable evidence never becomes a number. It is an indicative technical score of that shot, not a rater prediction and not a score of your face.

Category, overall and potential scores, and every per-aspect score, deliberately report not measurable in this build: the presentation and aesthetic detectors they would require are not validated, so the product does not show them.

Recommendations are bound to the technical leaves that fall below 65: light, stability, lens, face size in frame, camera angle. Face size in frame comes from the face box in this photo; Selfbaus does not measure camera distance or light direction. They are practical capture suggestions, not appearance advice.

Reproducibility and honesty limits

Pinned runtime
The analysis runs on-device in a pinned runtime: Pyodide 0.29.3, MediaPipe Tasks Vision 0.10.32, and a face model pinned by SHA-256. Every report carries the engine version and model identity, and the normalized-pixel SHA-256 of the input.
Validated how
Reports are validated against the selfbaus.analysis/2 JSON Schema plus executable semantic rules. Thresholds are heuristic and uncalibrated; validation is fixture-level, not a clinical or population study.
What it is not
No medical, dermatological or psychological assessment. No attractiveness rating or ranking, and no comparison against other people, because no validated model exists for it yet. Track your trend across photos taken in similar conditions, never one shot.
Where it runs
In your browser, on your device. The photo is decoded in memory and never uploaded. See the privacy page for the full boundary.