← Commit history

Initial commit: app/sample-experiment-rc-lowpass

John Lauer ·8269d051bc ·3mo ago
2 files changed +111
README.mdadded+56
@@ -0,0 +1,56 @@+# Sample Experiment: RC Low-Pass Filter Frequency Response++> **Reference page.** This page was prepared for the NSF PCL FAIR-data due diligence+> (July 2026) as a working sample of how every Adom experiment is published. The+> experiment is a **computed characterization** — a closed-form model evaluated by the+> included code, not a bench measurement — and is **fully reproducible bit-for-bit**+> from the files on this page. Real bench experiments follow this exact same structure,+> with instrument captures (oscilloscope/spectrum-analyzer screenshots and CSV/JSON+> exports) in place of the model.++## Objective++Characterize the frequency response (magnitude and phase) of a first-order RC low-pass+filter — R = 1 kΩ, C = 100 nF — from 10 Hz to 1 MHz, and publish the result the standard+Adom way: write-up + JSONL dataset + sidecar metadata + provenance + the AI skill that+reproduces it.++## Method++The transfer function `H(f) = 1 / (1 + j·2πf·RC)` is evaluated at 20 points per decade+(101 points total). Expected cutoff: `fc = 1/(2πRC) ≈ 1591.5 Hz`. The whole run is+deterministic — `python3 analysis/run_experiment.py` regenerates the dataset, its+sidecar, and the plot exactly.++## Results++![Bode plot](docs/bode-plot.png)++| Check | Expected | Measured (dataset) |+|---|---|---|+| Gain at fc | −3.01 dB | −2.99 dB (at 1584.9 Hz grid point) |+| Phase at fc | −45° | −44.88° |+| Rolloff past fc | −20 dB/decade | −56.0 dB at 1 MHz (2.8 decades) ✓ |++## How the data is organized (the part NSF asked about)++| FAIR concern | Where it lives on this page |+|---|---|+| **Data** | [`data/rc_lowpass_response.jsonl`](data/rc_lowpass_response.jsonl) — one JSON row per point: `frequency_hz`, `gain_linear`, `gain_db`, `phase_deg` |+| **Metadata** | [`data/rc_lowpass_response.sidecar.json`](data/rc_lowpass_response.sidecar.json) — schema with units, parameters, generator, row count, sha256, license |+| **Provenance** | [`provenance.json`](provenance.json) — who ran it (human-prompted, AI-executed), the input model and code, design-reference part numbers, output hashes, and the full chain from request to publication |+| **Reproducibility** | [`skills/reproduce-rc-characterization/SKILL.md`](skills/reproduce-rc-characterization/SKILL.md) — the AI skill; one command regenerates everything |+| **Persistent identifier** | this page's URL: `wiki.adom.inc/adom/sample-experiment-rc-lowpass` (git-backed and versioned) |+| **Timeline** | published immediately on completion — no embargo |++## Reproduce it++```bash+adom-wiki repo clone adom/sample-experiment-rc-lowpass+cd sample-experiment-rc-lowpass+python3 analysis/run_experiment.py   # regenerates data + sidecar + plot, bit-for-bit+```++## License++Data and code on this page: CC-BY-4.0.
page.jsonadded+55
@@ -0,0 +1,55 @@+{+  "slug": "sample-experiment-rc-lowpass",+  "title": "Sample Experiment: RC Low-Pass Filter Response",+  "type": "app",+  "version": "1.0.0",+  "description": "Working sample of Adom's experiment publication format: RC low-pass frequency response with JSONL dataset, sidecar metadata, provenance, and a reproduction skill. Prepared for NSF PCL FAIR-data due diligence.",+  "tags": [+    "experiment",+    "sample",+    "fair-data",+    "rc-filter"+  ],+  "dependencies": {},+  "discovery_triggers": [+    "sample experiment page",+    "adom experiment format",+    "fair data example",+    "rc lowpass sample experiment",+    "nsf data sharing example"+  ],+  "discovery_pitch": "One line: when should an agent reach for sample-experiment-rc-lowpass?",+  "sample_prompts": [+    {+      "label": "Example",+      "prompt": "a real user utterance that should surface sample-experiment-rc-lowpass"+    }+  ],+  "metadata": {+    "activate": {+      "kind": "bridge",+      "skill": "sample-experiment-rc-lowpass",+      "requires": [],+      "verbPrefixes": []+    }+  },+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "hero": {+    "type": "billboard",+    "headline": "Sample Experiment: RC Low-Pass Filter Response",+    "subhead": "A one-line tagline (replace me).",+    "screenshot": "docs/hero.png"+  },+  "license": "CC-BY-4.0",+  "confirmed_user_skills": [+    "reproduce-rc-characterization"+  ],+  "org": "adom",+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"+  }+}\ No newline at end of file