GhostmaxxingA public lab for testing camouflage Open the lab
Local Fuzzer · Report guide

Read the report as a conditional experiment.

The report shows how random Ghostyle designs changed one face-api pipeline across the clean poses extracted from one video.

“Escaped” means that this local detector either lost the face or placed its descriptor at or beyond the report threshold. It does not mean anonymous, safe, or protected from another system.

Read this first

The conditions are part of every result

Two reports can show different numbers even when they use the same recipe. The result changes with the person, video, pose range, light, blur, face size, clean detection confidence, number of atlas imprints, model files, threshold, recipe settings, random seed, pruning, and inference backend.

ConditionHow it changes the report
Face size and sharpnessA large, crisp face gives the recognition model more texture. A small or blurred face may make detector loss easier while limiting measurable descriptor movement.
Pose rangeMore extreme poses add fragile views. Poses that face-api cannot recognise cleanly are grey and cannot be scored.
Number of imprintsdAtlas uses the nearest clean descriptor. A denser atlas gives a modified face more clean poses it might still match, so headline escape rates from differently sized atlases are not directly comparable.
ThresholdA row escapes identity comparison when dAtlas is at or above the threshold. Moving the threshold can change escape, descriptor, worst-case, and margin values without changing an image.
Recipe and seedThe recipe defines the family of shapes, colours, opacity, zones, and constraints. The seed selects one random design inside that family.
PruningA pruned trial was stopped after a subset of poses. It remains useful as search history but is not a complete sweep and should not be compared as though every imprint was measured.
Backend and model revisionGPU and software rendering, browser revisions, and different model files can shift landmarks or descriptors. Compare runs made under the same environment and check control drift.
Core quantities

Distance is not a percentage

NumberDefinitionHow to read it
dPairDistance from the modified imprint to the clean descriptor of that same frame.How far the overlay moved this exact pose.
dAtlasSmallest distance from the modified imprint to any clean descriptor in the atlas.The stricter identity result. It is never greater than dPair.
escape rateShare of measured imprints where the face was lost or dAtlas reached the threshold.Pose coverage within this video, not protection probability.
lost rateShare where no face was found even by the weak detection pass.Detector failure. No identity distance exists for these rows.
descriptor escapeShare where a face was found but dAtlas reached the threshold.Measured identity movement. escape = lost + descriptor.
descriptor | detectedDescriptor escapes divided only by rows where a face was detected.How often identity moved when the detector still saw a face.
worst caseSmallest available dAtlas in the trial.The easiest pose for this atlas to recognise. One recognised frame may be enough for a camera sequence.
median marginMedian of dAtlas − threshold over rows with distances.Positive is typically beyond the line; negative is typically within it. It is not reported meaningfully when most rows are lost.
coverageShare of the anchor face oval beneath at least one stroke.Painted area, not efficacy.
Worked example · illustrative values

escape 42% = lost 18% + descriptor 24%

Across 50 clean poses, about 21 escaped: 9 because no face was detected and 12 because a detected descriptor crossed the threshold. If descriptor | detected is 29%, that means 12 of the 41 detected rows moved beyond the threshold. A worst case of 0.31 still leaves at least one readily recognisable pose when the threshold is 0.60.

Before the charts

Read the atlas facts and recipe summary

The header identifies the source video, frame size, frame rate, duration, clean imprints, pose gaps, skin swatch, threshold, and number of runs. The recipe summary then reports complete sweeps, mean escape split into detector loss and descriptor movement, conditional descriptor movement, and mean coverage.

Do not start with the largest escape number. First check whether the atlas is sharp and broad enough for the question, how much of escape is detector loss, and whether all recipes used the same atlas and threshold.

Report view

1 · Two criteria

Each point is one trial. Escape rate is the share of clean poses that escaped; worst case is the smallest measured dAtlas in that trial. Higher and farther right are stronger in this test. The gold Pareto front contains trials that no other trial beats on both numbers.

Example

A trial at 80% escape and 0.22 worst case covers many poses but still has an easy recognised pose. A trial at 55% and 0.51 covers fewer poses but has no equally easy failure. Neither automatically dominates the other.

Report view

2 · Leaderboard

Read escape as lost + descr. Lost means the detector returned no face; descr means it found a face but the descriptor was at or beyond the identity threshold from every clean pose. Worst is the smallest dAtlas, margin is the typical distance above or below the threshold, and coverage is the share of the face oval painted.

A Pareto badge marks a non-dominated trial. Sorting is a way to ask a question, not a universal ranking: sort by descriptor movement when identity change matters, by lost rate when studying detector fragility, or by worst case when looking for designs without one obvious recognised pose.

Report view

3 · Trial

This is the selected trial: its seed makes the random design reproducible with the same atlas and recipe. The preview, palette, coverage, crossed regions and command describe the input; the scores describe only this face, video, model and threshold.

A materialised trial links to its Ghostyle module, per-pose CSV, and pose sheet. The anchor preview is not the result by itself; read it together with the evasion profile and pose map.

Evasion profile

Each mark is one clean pose placed at its video time. dAtlas is the distance to the nearest clean pose and dPair is the distance to the same frame. Values at or above the threshold escape identity matching; a triangle means no face was detected, so no distance exists. The grey band is ordinary clean-pose drift.

When dPair crosses the line but dAtlas does not, the overlay moved away from its own clean frame but remained close to another clean pose in the atlas. This is why denser atlases can produce lower escape rates.

Pose map

Each cell is one yaw × pitch bin. Red is below the identity threshold, teal is at or above it, × means the detector lost the face, and grey means the pose was visible to MediaPipe but face-api could not recognise it cleanly, so the fuzzer cannot score it.

Look for contiguous regions rather than one isolated teal cell. A design that works only at a single extreme pose is less repeatable than one that changes neighbouring frontal and turned poses.

Report view

4 · Fuzz matrix

Rows are trials and columns are clean pose imprints. Colour uses the same dAtlas scale as the pose map. Bright teal rows are broadly successful trials; persistent red columns are poses that defeat many designs. A missing or grey cell is not evidence of escape.

A vertical red band suggests a hard pose or an atlas imprint that is insensitive to the recipe. A teal row suggests a broadly effective trial within this atlas. Re-sort rows by escape rate or worst case and columns by yaw or time to see whether the structure follows design, pose, or recording order.

Report view

5 · What matters

Each point is one complete trial, comparing a design property with an outcome. Pearson r ranges from −1 to +1 and describes linear co-movement in this recipe only. It does not establish that the property caused the result; small samples and clustered points make r unstable.

Example

r = 0.48, n = 80 for eye coverage against lost rate means trials with more painted eye area tended to lose detection more often in these 80 complete trials. It does not prove that eye coverage caused the loss or that the relation transfers to another face or recipe.

Report view

6 · Compare

The lines place up to four trials on the same video timeline. Compare where their dAtlas profiles cross the threshold and where detection is lost. This view compares designs inside one atlas; headline escape rates from atlases with different pose ranges or numbers of imprints are not directly comparable.

For several videos, use the Local Fuzzer’s Compare selected result. Prefer paired seeds and inspect the same design face by face, together with scale, sharpness, clean score, noise floor, pose range, and unrecognised bins.

PDF and paper

The printed report expands every recipe

In a browser, the report menu switches between recipes and links back to this guide. When printed or saved as PDF, the interactive menu is removed and every recipe is rendered in sequence. The explanatory boxes from this page appear below the visualizations of the first recipe only; scroll back to that first recipe when reading later recipes.

Enable background graphics in the browser’s print dialog if you want the red–teal scales to retain their full visual distinction. The labels and numeric values remain the authoritative reading.

Limits

What the report cannot establish

  • It does not test a named commercial or public-space recognition system.
  • It does not establish transfer to another person, camera, distance, light, model, or future frame.
  • It cannot score poses that face-api did not recognise cleanly.
  • It does not measure human recognition, liveness checks, gait, body tracking, or other biometric signals.
  • A high detector-lost rate and a high descriptor-escape rate are different mechanisms and should not be collapsed into one claim.