{"adoption": {"forks": 650, "observed_at": "2026-08-28T04:06:27.670162+00:00", "stars": 2222}, "canonical_url": "https://ross.abutalabs.com/products/androidopengldemo", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Android OpenGL ES从零开始的Demo", "domain": ["graphics", "android-tools", "tutorials", "education"], "enriched": true, "function": ["graphics", "image-processing", "computer-vision"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["doggycoder/AndroidOpenGLDemo"], "name": "doggycoder/AndroidOpenGLDemo", "platform": ["jvm"], "pushed_at": "2024-03-24T07:07:11+00:00", "repo": "doggycoder/AndroidOpenGLDemo", "stars": 2222, "tags": ["opengl-es", "android", "shaders", "camera-preview", "3d-models", "textures", "filters", "demo-app", "glsl", "mobile"], "topics": [], "urls": [], "use_cases": ["learn OpenGL ES on Android from scratch", "draw basic shapes like triangles and cubes with GLSL shaders", "apply texture mapping and image filters like blur or beauty effects", "preview camera feed with OpenGL and add animations", "load and render 3D models with lighting", "implement FBO, EGL background processing, and VR skybox effects"], "what_it_is": "An Android demo application teaching OpenGL ES 2.0 from scratch, covering basic shape drawing, textures, shaders, camera preview, 3D model loading, lighting, and image effects. It serves as a companion to a blog tutorial series for beginners learning graphics programming on Android.", "when_to_avoid": ["you need a production-ready graphics engine or maintained library", "you want Kotlin, Vulkan, or modern Android graphics APIs", "you need a project with an explicit license for commercial reuse"], "when_to_choose": ["you are a beginner learning OpenGL ES 2.0 on Android with Java", "you want runnable example code covering shapes, textures, camera, and 3D models", "you need reference implementations of common GL effects like blur, filters, and lighting"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/androidopengldemo", "repo": "doggycoder/AndroidOpenGLDemo", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "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:06:27.670162+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.670162+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:45.759167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a6f1e04836c573bab5c8f87958ecd30e3362226b4cec770e910459652b9f6c4", "fetched_at": "2026-08-28T04:06:27.670162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doggycoder/AndroidOpenGLDemo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3611, "days_push": 892, "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}}