{"adoption": {"forks": 510, "observed_at": "2026-08-28T04:09:22.756759+00:00", "stars": 5595}, "canonical_url": "https://ross.abutalabs.com/products/fawkes", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Fawkes, privacy preserving tool against facial recognition systems. More info at https://sandlab.cs.uchicago.edu/fawkes", "domain": ["privacy", "machine-learning", "image-processing", "security"], "enriched": true, "function": ["image-processing", "machine-learning", "privacy", "cli"], "health_score": 20, "homepage": "https://sandlab.cs.uchicago.edu/fawkes", "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Shawn-Shan/fawkes"], "name": "Shawn-Shan/fawkes", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2023-08-02T16:26:04+00:00", "repo": "Shawn-Shan/fawkes", "stars": 5595, "tags": ["facial-recognition", "adversarial-examples", "cloaking", "face-recognition", "privacy-protection", "gpu"], "topics": ["privacy-protection", "privacy-enhancing-technologies", "face-recognition", "adversarial-machine-learning"], "urls": [], "use_cases": ["cloak my photos against facial recognition", "protect personal images from face recognition models", "add adversarial perturbations to photos before posting online", "prevent unauthorized face identification from scraped images", "research adversarial machine learning defenses against face recognition"], "what_it_is": "Fawkes is a privacy protection tool from University of Chicago researchers that adds imperceptible adversarial perturbations to photos to prevent unauthorized facial recognition models from identifying you. It is distributed as a Python CLI on PyPI with low/mid/high protection modes.", "when_to_avoid": ["you need GPU acceleration out of the box - the packaged binary is CPU-only and GPU requires modifying the source", "you need real-time or fast processing - generation takes about 60 seconds per image on CPU", "you need a guarantee of protection - effectiveness against evolving models is not assured"], "when_to_choose": ["you want to protect personal photos from being used to train or run facial recognition models", "you need a simple CLI to batch-process image directories with cloaking perturbations", "you are studying adversarial ML and privacy-enhancing technologies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fawkes", "repo": "Shawn-Shan/fawkes", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.756759+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:55:29.296850+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0aca9e939bcf27dd86f25812a5a35c3aa70108b62a607ae4272ce8f5828e5b3d", "fetched_at": "2026-08-28T04:09:22.756759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shawn-Shan/fawkes"}, {"content_hash": "b29ce3111279d00ea27b4aa6a491c2137b5da74a9eebabfc995eb1e1f9541ead", "fetched_at": "2026-08-29T08:50:22.807370+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/fawkes/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2299, "days_push": 1127, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}