{"adoption": {"forks": 62, "observed_at": "2026-08-28T04:03:23.344011+00:00", "stars": 1052}, "canonical_url": "https://ross.abutalabs.com/products/apparatus", "card": {"archived": false, "artifact_type": "application", "description": "A hybrid graphics editor and programming environment for creating interactive diagrams.", "domain": ["web-development", "graphics", "education", "developer-tools", "data-visualization"], "enriched": true, "function": ["graphics", "editor", "gui", "animation", "data-visualization"], "health_score": 20, "homepage": "http://aprt.us/", "language": "CoffeeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["cdglabs/apparatus"], "name": "cdglabs/apparatus", "platform": ["browser"], "pushed_at": "2023-06-30T02:44:35+00:00", "repo": "cdglabs/apparatus", "stars": 1052, "tags": ["interactive-diagrams", "visual-programming", "graphics-editor", "coffeescript", "browser-based", "creative-coding", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["create interactive diagrams without writing boilerplate code", "build explorable explanations of mental models and systems", "make interactive widgets like color pickers, sliders, and bar charts", "teach math and geometry concepts with visual, manipulable diagrams", "prototype interactive graphics directly in the browser", "embed shareable interactive visuals on the web"], "what_it_is": "Apparatus is a hybrid graphics editor and programming environment for creating interactive diagrams, running entirely in the browser. It lets users combine direct manipulation drawing with JavaScript expressions to build interactive visuals in minutes instead of writing procedural code from scratch.", "when_to_avoid": ["you need a full-featured vector graphics editor for static artwork", "you require production-grade stability, as the project is early stage with known bugs", "you need long-term active development, since the project sees only occasional maintenance", "you need to build complex standalone applications rather than diagrams"], "when_to_choose": ["you want to quickly author interactive diagrams with a mix of drawing and code", "you need a browser-based tool with no installation for visual explanation", "you are creating educational or communicative visuals like plots, linkages, or charts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/apparatus", "repo": "cdglabs/apparatus", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "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:03:23.344011+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.344011+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:59:42.534201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25d0f89568286ad902d9786691a8a521bcb71284ac9cd4ef9a53a7e32e0e2985", "fetched_at": "2026-08-28T04:03:23.344011+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdglabs/apparatus"}, {"content_hash": "99eb9f4ce13d6bc10b618879fa4398f111617340ded1ec0a5c3c383849d13be3", "fetched_at": "2026-08-29T13:01:05.492507+00:00", "kind": "homepage", "missing": false, "url": "http://aprt.us/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3999, "days_push": 1160, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}