{"adoption": {"forks": 245, "observed_at": "2026-08-28T04:04:36.469629+00:00", "stars": 1395}, "canonical_url": "https://ross.abutalabs.com/products/bubble-picker", "card": {"archived": true, "artifact_type": "library", "description": "An easy-to-use animation which can be used for content picking for Android", "domain": ["mobile-development", "android-tools"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 10, "homepage": "https://medium.com/@igalata13/how-to-create-a-bubble-selection-animation-on-android-627044da4854#.js8nebsx6", "language": "Kotlin", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["igalata/Bubble-Picker"], "name": "igalata/Bubble-Picker", "platform": [], "pushed_at": "2021-05-01T00:53:17+00:00", "repo": "igalata/Bubble-Picker", "stars": 1395, "tags": ["bubble-picker", "opengl", "content-selection", "kotlin", "android-ui", "android"], "topics": ["android", "animation", "bubble", "picker", "opengl", "kotlin", "java", "selection"], "urls": [], "use_cases": ["pick categories with a fun animated bubble UI", "let users select multiple tags or interests in an Android app", "add a playful selection animation to onboarding screens", "render floating bubble items with gradients and images", "replace a checkbox grid with an animated picker"], "what_it_is": "An Android UI library that renders an animated bubble picker for selecting content items, built with OpenGL. Items float as bubbles that users can tap to select, with customizable gradients, backgrounds, and text.", "when_to_avoid": ["you need a standard, accessible form control rather than a decorative animation", "your project requires an actively maintained library with a declared license", "you are not building for Android"], "when_to_choose": ["you need an eye-catching animated selection UI on Android", "your app targets Android SDK 16+ and uses Kotlin or Java", "you want a ready-made OpenGL-based bubble animation without writing rendering code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bubble-picker", "repo": "igalata/Bubble-Picker", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "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:04:36.469629+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.469629+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:23.416149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e94438ccc8f5e2a9ae3ba08e14b048046c1a5120571ff1436b0a4ccb4825519f", "fetched_at": "2026-08-28T04:04:36.469629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/igalata/Bubble-Picker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3464, "days_push": 1951, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}