{"adoption": {"forks": 109, "observed_at": "2026-08-28T04:06:50.696324+00:00", "stars": 2423}, "canonical_url": "https://ross.abutalabs.com/products/tinykaboom", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A brief computer graphics / rendering course", "domain": ["graphics", "education", "tutorials"], "enriched": true, "function": ["graphics"], "health_score": 20, "homepage": "https://github.com/ssloy/tinykaboom/wiki", "language": "C++", "license": null, "license_family": "other", "maturity": "stable", "member_repos": ["ssloy/tinykaboom"], "name": "ssloy/tinykaboom", "platform": ["cpp", "cross-platform", "cli"], "pushed_at": "2023-02-22T02:44:54+00:00", "repo": "ssloy/tinykaboom", "stars": 2423, "tags": ["raytracer", "raytracing", "ray-marching", "rendering", "computer-graphics", "tutorial", "dependency-free", "educational-code", "cmake", "wtfpl-license", "tiny-renderer-series"], "topics": ["graphics", "graphics-programming", "rendering", "shaders", "learning", "fun", "rendering-engine", "c-plus-plus", "3d-graphics", "cpp", "raytracer", "raytracing", "raytracing-engine", "computer-graphics", "tutorial", "3d"], "urls": [], "use_cases": ["learn raytracing from scratch in C++", "find a minimal raytracer example with no dependencies", "computer graphics course lecture material", "understand how ray marching and volume rendering work", "write a software 3D renderer without third-party libraries", "a small codebase to experiment with rendering techniques like environment maps and transparency"], "what_it_is": "A teaching aid for computer graphics lectures that implements a minimal raytracer in about 180 lines of dependency-free C++. It accompanies a wiki article and the author's tinyrenderer/tinyraytracer series, deliberately prioritizing simplicity and legibility over realistic rendering.", "when_to_avoid": ["You need a production-quality or physically realistic renderer for real projects", "You want a feature-complete engine with GPU acceleration, shaders, or asset pipelines", "You are looking for a supported library to embed in an application rather than study"], "when_to_choose": ["You want to learn rendering fundamentals by reading a tiny, self-contained codebase with no libraries", "You need concise educational material for teaching computer graphics", "You want a simple starting point to extend with your own rendering experiments"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tinykaboom", "repo": "ssloy/tinykaboom", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "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:50.696324+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.696324+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:33:00.459223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0829a1618e781100ab3665717781eccc1f1f7de6165bc9455c9bfa1f8b80f114", "fetched_at": "2026-08-28T04:06:50.696324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ssloy/tinykaboom"}, {"content_hash": "1939bea3f84dcbe63a4bd11a8769e3940d6e2e4bad23f56f7ad836d2775cc5a8", "fetched_at": "2026-08-29T10:13:10.512654+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ssloy/tinykaboom/wiki"}], "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": 2775, "days_push": 1288, "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}}