Ghostmaxxing A public lab for testing camouflage
Technical explainer

A face becomes a measurement before it becomes a match.

Ghostmaxxing lets you inspect several stages that commercial interfaces often compress into one verdict.

This page follows the current implementation. Historical detection methods and adversarial research appear as context, not as claims about the models running in the Lab.

Primary 2D path

Steps in the face-api comparison pipeline.

ImageA frame from the camera, video, or composite canvas.
DetectionTinyFaceDetector proposes one face box above its score threshold.
Landmarksface-api estimates 68 points used to locate facial structure.
DescriptorThe recognition network produces a vector of 128 values.
ComparisonEuclidean distance to saved baselines becomes a local match state.

Each stage depends on the previous one. If detection returns no face, the current 2D path cannot produce landmarks or a face descriptor. A missing result is therefore different from a descriptor that exists but falls beyond the match threshold.

Stage 01

Detection asks where a face might be.

The current Lab uses face-api's TinyFaceDetector with an input size of 416 and a normal score threshold of 0.5. A bounding box means that the detector found a candidate. It does not establish identity.

For analysis of a modified composite, the implementation may retry a failed detection at 0.1. That relaxed pass can recover diagnostic measurements, but it is more permissive and should not be presented as equivalent evidence.

Historical context: Haar cascades and the high-contrast T-zone are useful for understanding early CV Dazzle tactics. They are not the detector used by the current Lab.

Stage 02

Landmarks estimate structure, not identity.

The 2D path estimates 68 face landmarks. The Face Brush and 2D Ghostyles can use them to place marks around eyes, brows, nose, mouth and the outline of the face. The separate MediaPipe FaceLandmarker supplies 478 normalised landmarks for mesh and UV effects.

These points are model estimates. Pose, occlusion, expression, blur and lighting can move them or make them unstable. When a hidden feature receives an estimated position, that estimate is not direct evidence that the feature was observed.

The Lab 2D points view showing estimated face landmarks
The 2D view exposes the geometry used by face-api and landmark-anchored tools.Observed interface state · deterministic webcam fixture
Stages 03 and 04

Comparing face descriptors.

A face descriptor is a 128-value representation produced from the detected face. The Lab stores a descriptor as a local baseline, then measures the Euclidean distance from a new descriptor to the saved records.

RuleCurrent valueInterpretation
Distance is at or below threshold<= 0.58The nearest saved baseline is classified as a match.
Distance is above threshold> 0.58A descriptor exists, but it is classified outside the current match boundary.
No descriptorNoneThe pipeline did not reach a comparable identity representation.

The distance is not a probability. A result of 0.40 does not mean “40% the same person”, and a result beyond 0.58 does not demonstrate invisibility to other systems.

Parallel experimental path

The 3D label combines two different functions.

MediaPipe FaceLandmarker produces 478 landmarks for geometry. Separately, MediaPipe ImageEmbedder with MobileNetV3 Small produces a general visual embedding. Ghostmaxxing compares those image embeddings with cosine similarity and currently uses 0.85 as its threshold.

This ImageEmbedder is sensitive to global image content, including colour and background. It is not a dedicated ArcFace-style face-recognition descriptor. The documentation therefore calls it an experimental visual embedding, even where the current interface uses the shorter “3D” label.

Do not compare 0.58 and 0.85 directly. Face-api uses distance, where lower is closer. ImageEmbedder uses cosine similarity, where higher is closer.

Testing an intervention

A Ghostyle creates a second image to inspect.

The live detector follows the original camera image so the effect can remain attached to the face. On a slower loop, the Lab draws the Ghostyle onto a composite image and analyses that modified image. Keeping these paths separate makes the overlay responsive while allowing the intervention to affect the measured result.

An experiment can therefore change at several points: the composite detector may stop returning a box, landmarks may shift, the face descriptor may move beyond its threshold, or the two comparison paths may disagree. Record which event occurred.

Security boundary

This is a local experiment, not an authentication system.

  • The Lab tests model behaviour under current conditions. It does not establish performance against a named external deployment.
  • The current comparison is not presentation-attack detection and includes no liveness challenge.
  • A saved baseline is a local experimental reference, not proof of civil identity.
  • One favourable frame does not establish repeatable evasion. Test pose, light, distance, motion and multiple frames.
  • Face templates are sensitive biometric-derived data. Keep them local and do not publish raw descriptors.