{"adoption": {"forks": 182, "observed_at": "2026-08-28T04:04:25.913895+00:00", "stars": 1339}, "canonical_url": "https://ross.abutalabs.com/products/origamisimulator", "card": {"archived": false, "artifact_type": "application", "description": "Realtime WebGL origami simulator", "domain": ["simulation", "graphics", "education", "web-development"], "enriched": true, "function": ["simulation", "graphics", "data-visualization", "gpu-computing"], "health_score": 52, "homepage": "http://origamisimulator.org/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["amandaghassaei/OrigamiSimulator"], "name": "amandaghassaei/OrigamiSimulator", "platform": ["browser", "cross-platform"], "pushed_at": "2025-11-20T03:34:16+00:00", "repo": "amandaghassaei/OrigamiSimulator", "stars": 1339, "tags": ["origami", "webgl", "physics-simulation", "crease-patterns", "gpu-shaders", "3d-graphics", "computational-geometry", "web-server"], "topics": [], "urls": [], "use_cases": ["simulate how an origami crease pattern folds in real time", "visualize folding of SVG or FOLD crease patterns in the browser", "export folded origami models as STL or OBJ for 3D printing", "explore mountain/valley assignment flips on a crease pattern", "study curved crease folding with ruling-aware triangulation", "teach geometric folding algorithms interactively"], "what_it_is": "A realtime WebGL web application that simulates how any origami crease pattern folds, solving all creases simultaneously via GPU fragment shaders. Users can import SVG or FOLD crease patterns, interactively control fold percentage, and export folded states as FOLD, STL, or OBJ files.", "when_to_avoid": ["you need step-by-step sequential origami folding instructions rather than simultaneous folding", "you need offline native desktop simulation software", "you need general-purpose cloth or soft-body physics simulation beyond origami"], "when_to_choose": ["you need interactive, GPU-accelerated origami simulation in a browser", "you want to import standard FOLD or SVG crease patterns and see them fold", "you need to export folded 3D geometry for fabrication or further modeling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/origamisimulator", "repo": "amandaghassaei/OrigamiSimulator", "role": "main", "score": 56}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "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:25.913895+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.913895+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:43:53.672604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0482638bf6ed4e04e28c1e5510921516f5c1f91d7b0bcd2e30fcc1b18b73b40", "fetched_at": "2026-08-28T04:04:25.913895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amandaghassaei/OrigamiSimulator"}, {"content_hash": "6dc60e2462dc0a7596b1e8a15b87a39e9aaaddeecce04f18871358178ff3ae95", "fetched_at": "2026-08-29T12:03:10.021559+00:00", "kind": "homepage", "missing": false, "url": "http://origamisimulator.org/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3478, "days_push": 286, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 56, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}