{"adoption": {"forks": 291, "observed_at": "2026-08-28T04:04:40.126527+00:00", "stars": 1418}, "canonical_url": "https://ross.abutalabs.com/products/doom-fire-algorithm", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Playground for the fire effect from DOOM. Really simple algorithm and all experiments are welcome!", "domain": ["graphics", "tutorials", "web-development"], "enriched": true, "function": ["graphics", "simulation", "animation"], "health_score": 59, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["filipedeschamps/doom-fire-algorithm"], "name": "filipedeschamps/doom-fire-algorithm", "platform": ["browser", "cross-platform"], "pushed_at": "2026-01-26T14:29:38+00:00", "repo": "filipedeschamps/doom-fire-algorithm", "stars": 1418, "tags": ["doom-fire-effect", "playground", "pixel-effects", "javascript-experiments", "retro-gaming", "game-development"], "topics": [], "urls": [], "use_cases": ["learn how the doom fire effect algorithm works", "recreate the fire effect from doom in javascript", "experiment with canvas pixel rendering techniques", "find examples of fire particle effects for games", "study webassembly and pixijs rendering demos", "port the doom fire algorithm to embedded devices"], "what_it_is": "A playground of community experiments implementing the classic DOOM fire effect algorithm in JavaScript and other technologies like Canvas, PixiJS, Rust/WASM, and embedded C. It serves as an educational collection of simple pixel-based fire propagation demos.", "when_to_avoid": ["you need a production-ready fire or particle effects engine", "you need a maintained game graphics library with an API", "you need realistic fluid or physics-based fire simulation"], "when_to_choose": ["you want to learn or teach the classic doom fire propagation algorithm", "you want a simple starting point for pixel-based fire effects in the browser", "you want to compare many rendering approaches (tables, canvas, pixijs, wasm, embedded)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/doom-fire-algorithm", "repo": "filipedeschamps/doom-fire-algorithm", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "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:40.126527+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.126527+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:57.314597+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de67002cc67ab8bd102a0fe6d11082d77c3033a22f46980d34498629d1f1a858", "fetched_at": "2026-08-28T04:04:40.126527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/filipedeschamps/doom-fire-algorithm"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 64, "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": 2798, "days_push": 219, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}