diff --git a/notebooks/WET/WET-003/WET-003-ComCam.ipynb b/notebooks/WET/WET-003/WET-003-ComCam.ipynb
new file mode 100644
index 0000000..f8dbddf
--- /dev/null
+++ b/notebooks/WET/WET-003/WET-003-ComCam.ipynb
@@ -0,0 +1,247 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "fc2ad8f9-90c0-4b72-9cb5-b9b29eac8678",
+ "metadata": {},
+ "source": [
+ "# WET-003: Donut Vignetting Test\n",
+ "\n",
+ "Owner: **Bryce Kalmbach**
\n",
+ "Last Verified to Run: **2025-02-28**
\n",
+ "Software Version:\n",
+ " - `ts_wep`: **14.0.0** \n",
+ " - `lsst_distrib`: **w_2025_09**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a5e0fbcf",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:30:50.009860Z",
+ "iopub.status.busy": "2025-03-07T00:30:50.009562Z",
+ "iopub.status.idle": "2025-03-07T00:30:50.011732Z",
+ "shell.execute_reply": "2025-03-07T00:30:50.011451Z",
+ "shell.execute_reply.started": "2025-03-07T00:30:50.009846Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Times Square Parameters\n",
+ "collection_name = 'u/brycek/aosBaseline_tie'\n",
+ "detector = 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1dc7ca3a-b9f6-484c-9670-8534617bac0b",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:30:52.700602Z",
+ "iopub.status.busy": "2025-03-07T00:30:52.700211Z",
+ "iopub.status.idle": "2025-03-07T00:30:52.703168Z",
+ "shell.execute_reply": "2025-03-07T00:30:52.702860Z",
+ "shell.execute_reply.started": "2025-03-07T00:30:52.700586Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "from matplotlib import pyplot as plt\n",
+ "from lsst.daf.butler import Butler\n",
+ "%matplotlib inline"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a5dde02a-da5c-45b6-9a53-4945cfc5d82b",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:30:52.929083Z",
+ "iopub.status.busy": "2025-03-07T00:30:52.928715Z",
+ "iopub.status.idle": "2025-03-07T00:30:53.063086Z",
+ "shell.execute_reply": "2025-03-07T00:30:53.062606Z",
+ "shell.execute_reply.started": "2025-03-07T00:30:52.929070Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "butler = Butler('/repo/main')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3857a4e3-ac08-45de-8b5f-2f5683d7e4fd",
+ "metadata": {},
+ "source": [
+ "## TIE"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "0596b008-4095-4e84-85df-ea38f4d8d83d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:30:59.316088Z",
+ "iopub.status.busy": "2025-03-07T00:30:59.315602Z",
+ "iopub.status.idle": "2025-03-07T00:30:59.655039Z",
+ "shell.execute_reply": "2025-03-07T00:30:59.654604Z",
+ "shell.execute_reply.started": "2025-03-07T00:30:59.316072Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "aos_visit_tables_raw = butler.query_datasets('aggregateAOSVisitTableRaw', collections=collection_name)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a19ec612-0491-426e-8c39-dc28ec8e8982",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:30:59.655857Z",
+ "iopub.status.busy": "2025-03-07T00:30:59.655723Z",
+ "iopub.status.idle": "2025-03-07T00:31:00.505425Z",
+ "shell.execute_reply": "2025-03-07T00:31:00.505018Z",
+ "shell.execute_reply.started": "2025-03-07T00:30:59.655844Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "well_sampled_data_ids = []\n",
+ "for raw_table_ref in aos_visit_tables_raw[:50]:\n",
+ " raw_table = butler.get(raw_table_ref)\n",
+ " names, counts = np.unique(raw_table['detector'], return_counts=True)\n",
+ " if np.min(counts) >= 10:\n",
+ " well_sampled_data_ids.append(raw_table_ref.dataId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a79250c7-9a6d-41be-a254-be10f07f40fc",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:31:00.506232Z",
+ "iopub.status.busy": "2025-03-07T00:31:00.506101Z",
+ "iopub.status.idle": "2025-03-07T00:31:00.508887Z",
+ "shell.execute_reply": "2025-03-07T00:31:00.508575Z",
+ "shell.execute_reply.started": "2025-03-07T00:31:00.506220Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "len(well_sampled_data_ids)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e49e5a5a-fbf8-43ba-8a76-7cea0cad3b13",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:31:00.509388Z",
+ "iopub.status.busy": "2025-03-07T00:31:00.509266Z",
+ "iopub.status.idle": "2025-03-07T00:31:00.582154Z",
+ "shell.execute_reply": "2025-03-07T00:31:00.581796Z",
+ "shell.execute_reply.started": "2025-03-07T00:31:00.509376Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "raw_table = butler.get('aggregateAOSVisitTableRaw', dataId=well_sampled_data_ids[0], collections=collection_name)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "414287bd-a086-4fe0-a472-0124ca8a6119",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:31:00.787562Z",
+ "iopub.status.busy": "2025-03-07T00:31:00.787287Z",
+ "iopub.status.idle": "2025-03-07T00:31:00.793072Z",
+ "shell.execute_reply": "2025-03-07T00:31:00.792738Z",
+ "shell.execute_reply.started": "2025-03-07T00:31:00.787546Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "raw_table[:3]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "bd4130e1-c6b7-4a0c-b546-3dfd8e086eb0",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:31:01.390181Z",
+ "iopub.status.busy": "2025-03-07T00:31:01.389731Z",
+ "iopub.status.idle": "2025-03-07T00:31:01.479010Z",
+ "shell.execute_reply": "2025-03-07T00:31:01.478651Z",
+ "shell.execute_reply.started": "2025-03-07T00:31:01.390164Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "plt.scatter(raw_table['thx_CCS_intra'], raw_table['thy_CCS_intra'], c=raw_table['zk_CCS'][:,5])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "02714b61-cb35-4ab7-aa40-65aacb6c24f3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-03-07T00:36:10.085238Z",
+ "iopub.status.busy": "2025-03-07T00:36:10.084914Z",
+ "iopub.status.idle": "2025-03-07T00:36:12.938393Z",
+ "shell.execute_reply": "2025-03-07T00:36:12.937945Z",
+ "shell.execute_reply.started": "2025-03-07T00:36:10.085221Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "dataId = {**well_sampled_data_ids[0].to_simple().dataId, \"detector\": 4}\n",
+ "dataId['exposure'] = dataId['visit']\n",
+ "plt.imshow(butler.get('postISRCCD', dataId=dataId, collections=collection_name).image.array, vmax=2000)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d24c3ef5-c34b-4190-9db3-9a8c64259138",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "LSST",
+ "language": "python",
+ "name": "lsst"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/notebooks/WET/WET-003/WET-003-ComCam.yaml b/notebooks/WET/WET-003/WET-003-ComCam.yaml
new file mode 100644
index 0000000..56257c6
--- /dev/null
+++ b/notebooks/WET/WET-003/WET-003-ComCam.yaml
@@ -0,0 +1,17 @@
+title: "WET-003-ComCam: Donut Vignetting Tests"
+description: Validate the wavefront estimation using experimental vignetted donuts.
+authors:
+ - name: Bryce Kalmbach
+ slack: brycek
+tags:
+ - comcam
+ - WET
+parameters:
+ collection_name:
+ type: string
+ description: Butler collection.
+ default: "u/brycek/aosBaseline_tie"
+ detector:
+ type: integer
+ description: Detector number.
+ default: 0
\ No newline at end of file