{"adoption": {"forks": 212, "observed_at": "2026-08-28T04:05:51.391623+00:00", "stars": 1899}, "canonical_url": "https://ross.abutalabs.com/products/textpathview", "card": {"archived": false, "artifact_type": "library", "description": "A View with text path animation!", "domain": ["mobile-development", "graphics"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 20, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["totond/TextPathView"], "name": "totond/TextPathView", "platform": [], "pushed_at": "2019-04-14T09:07:52+00:00", "repo": "totond/TextPathView", "stars": 1899, "tags": ["text-path-animation", "custom-view", "android-view", "stroke-animation", "java", "android"], "topics": [], "urls": [], "use_cases": ["animate text being handwritten on screen in an android app", "draw text stroke by stroke with a pen effect", "create intro splash text animations", "animate custom shapes and paths on android", "control text drawing progress with a seekbar"], "what_it_is": "An Android custom View library that converts text into path animations, drawing text stroke by stroke with configurable animation effects. It supports synchronized or asynchronous stroke drawing, custom path calculators, and can also animate arbitrary Path objects.", "when_to_avoid": ["you need cross-platform or Jetpack Compose text animation", "you require general-purpose UI animation beyond text/path drawing", "you need a maintained library with recent updates, as the last release was in 2019"], "when_to_choose": ["you need text handwriting or stroke-drawing animations in an Android app", "you want a simple XML-configurable custom view for path animations", "you need to animate arbitrary Android Path objects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/textpathview", "repo": "totond/TextPathView", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "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:05:51.391623+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:51.391623+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:12:11.826029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "441261113c3b72342edb485afc97dae8f9d890edf9b779f7b18a4e0e792cd60c", "fetched_at": "2026-08-28T04:05:51.391623+00:00", "kind": "readme", "missing": false, "url": "https://github.com/totond/TextPathView"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3157, "days_push": 2698, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}