{"adoption": {"forks": 304, "observed_at": "2026-08-28T04:06:56.941774+00:00", "stars": 2501}, "canonical_url": "https://ross.abutalabs.com/products/inspectrum", "card": {"archived": false, "artifact_type": "application", "description": "Radio signal analyser", "domain": ["embedded-systems", "hardware", "developer-tools"], "enriched": true, "function": ["audio-processing", "data-visualization", "developer-tools"], "health_score": 69, "homepage": null, "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["miek/inspectrum"], "name": "miek/inspectrum", "platform": ["windows", "cross-platform"], "pushed_at": "2025-12-06T15:44:29+00:00", "repo": "miek/inspectrum", "stars": 2501, "tags": ["sdr", "dsp", "spectrogram", "signal-analysis", "radio", "qt", "reverse-engineering", "linux", "macos", "desktop"], "topics": ["sdr", "dsp"], "urls": [], "use_cases": ["analyse SDR captures with a spectrogram", "measure symbol rate of an unknown radio signal", "extract symbols from a recorded transmission", "inspect large IQ recording files", "reverse engineer a wireless protocol from RF captures", "export filtered or demodulated samples from a capture"], "what_it_is": "inspectrum is a desktop tool for analysing captured radio signals, primarily from software-defined radio receivers. It provides a zoomable spectrogram, amplitude/frequency/phase/IQ plots, cursors for measuring symbol rates, and export of filtered or demodulated samples.", "when_to_avoid": ["you need real-time signal monitoring or live demodulation", "you want automated signal decoding rather than manual analysis", "you need a headless or scriptable DSP pipeline"], "when_to_choose": ["you need to visually inspect IQ recordings from SDR receivers", "you want to measure timing, period, or symbol rates of RF signals", "you work with SigMF or common complex sample file formats", "you need to handle very large (100GB+) capture files"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/inspectrum", "repo": "miek/inspectrum", "role": "main", "score": 55}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "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:56.941774+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.941774+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:26:55.689694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5c3223b6b7d1b5639802e803a7db5ae20091e9e63bc89ded4fc3105cd187e8f", "fetched_at": "2026-08-28T04:06:56.941774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/miek/inspectrum"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 100, "rhythm": 28}, "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": 4112, "days_push": 270, "days_rel": 270, "gap_med": null, "n_releases_24m": 1}, "score": 55, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}