<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://darbandi.me/feed.xml" rel="self" type="application/atom+xml" /><link href="https://darbandi.me/" rel="alternate" type="text/html" /><updated>2026-07-20T21:05:37+00:00</updated><id>https://darbandi.me/feed.xml</id><title type="html">Nima Darbandi | PhD in Computer Science</title><subtitle>PhD student at the University of Georgia working on AI-driven biomedical systems, computer vision, and genomics for early disease detection and precision medicine.</subtitle><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><entry><title type="html">Recorder Box: A Recording and Footage-Handling Device for video data collection</title><link href="https://darbandi.me/posts/2026/07/dvr-recorder-box-surveillance-platform/" rel="alternate" type="text/html" title="Recorder Box: A Recording and Footage-Handling Device for video data collection" /><published>2026-07-03T00:00:00+00:00</published><updated>2026-07-03T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/07/dvr-recorder-box-surveillance-platform</id><content type="html" xml:base="https://darbandi.me/posts/2026/07/dvr-recorder-box-surveillance-platform/"><![CDATA[<p>I built <strong>Recorder Box</strong> as a heavy-duty recording and storage Device from scratch using linux ffmpeg stream recording package in a waterproof 12”x12” enclosure which comes in handy in Computer Vision projects during data collection phase usable in harsh conditioned environments like animal houses. The goal was not just to capture video, but to make footage easier to manage, monitor, retrieve, analyze and review when multiple DVRs and cameras are involved. A diversity of meshed cameras with different types – analogue or IP cameras – and standardized output video files for further computer vision are supported.</p>

<video controls="" autoplay="" muted="" loop="" playsinline="" style="display:block; width:100%; max-width:920px; height:auto; margin:1rem auto;">
  <source src="/videos/dvr-box.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

<p>This project is implemented on a compact Linux based embeded device that can sit in the field and keep working as a dependable recording hub and can totally replace NVRs and DVR tasks to capture data and record videos. It supports DVR-based setups, standalone IP cameras – with or without NVRs –, and mixed environments where several video sources need to be handled together as a standard source for further analysis for computer vision projects.</p>

<h2 id="why-this-system-is-useful">Why this system is useful</h2>

<p>What makes this box valuable is the way it treats recording as an operational workflow, not just a background task:</p>

<ul>
  <li>It can record from multiple video sources at the same time.</li>
  <li>It keeps footage organized in a well structured format by device and date.</li>
  <li>It makes stored recordings easier to browse, export, and review later.</li>
  <li>It supports remote access to saved footage from another computer on the network.</li>
  <li>It gives operators a clearer view of storage condition and recording status.</li>
</ul>

<p>That matters in real settings in animal farms where video analysis software needs clean reliable video input source for computer vision analysis in real time or offline. Researchers also may need to find footage quickly, hand storage to another team, or continue recording without constant manual attention, which is done easily by this device.</p>

<h2 id="built-for-field-practicality">Built for field practicality</h2>

<p>One of the biggest strengths of this project is that the recordings remain understandable outside the recorder itself. Instead of locking footage into a hard-to-interpret proprietary format, the box keeps files organized in a way that is much easier to work with when footage needs to be reviewed elsewhere, when you detach the drives from the device and connect them to the computer directly.</p>

<p>This makes the system especially useful for:</p>

<ul>
  <li>Offline Video analysis where footage is later reviewed or analyzed on a separate machine.</li>
  <li>Input source format standardization when multi-DVR or mixed-camera are involved,</li>
  <li>sites where storage drives are replaced or full disk drived need to be rotated,</li>
</ul>

<p>The platform also emphasizes operational visibility. The box is meant to help users understand whether recording is healthy, whether storage needs attention, and when drives can be managed more safely. That kind of visibility is important in environments where the recorder may run unattended for long periods.</p>

<h2 id="more-than-a-recorder">More than a recorder</h2>

<p>I see this project as more than a simple DVR companion. It is a footage-handling platform that brings together recording, storage awareness, monitoring, retrieval and video analysis in one place. The result is a system that is easier to trust during everyday use and more practical when something needs to be checked, exported, or handed off.</p>

<p>GitHub repository:
<a href="https://github.com/nimadarbandi/DVR-Recorder/tree/main/linux">nimadarbandi/DVR-Recorder</a></p>

<h2 id="inside-the-box">Inside the box</h2>

<p>The images below show how the Recorder Box looks internally as a compact, practical recording unit.</p>

<div style="display:flex; gap:1rem; align-items:stretch; justify-content:center; flex-wrap:nowrap; margin:1.25rem 0; overflow-x:auto; padding-bottom:0.25rem;">
  <img src="/images/dvr1.jpeg" alt="Inside view of DVR Recorder Box showing hardware layout" style="display:block; width:32%; min-width:220px; height:auto; object-fit:cover; border-radius:16px; border:1px solid rgba(20, 40, 60, 0.12); box-shadow:0 14px 32px rgba(15, 23, 42, 0.14); background:#fff; padding:0.35rem;" />
  <img src="/images/dvr2.jpeg" alt="Inside view of DVR Recorder Box showing internal components" style="display:block; width:32%; min-width:220px; height:auto; object-fit:cover; border-radius:16px; border:1px solid rgba(20, 40, 60, 0.12); box-shadow:0 14px 32px rgba(15, 23, 42, 0.14); background:#fff; padding:0.35rem;" />
  <img src="/images/dvr3.jpeg" alt="Inside view of DVR Recorder Box showing assembled internal structure" style="display:block; width:32%; min-width:220px; height:auto; object-fit:cover; border-radius:16px; border:1px solid rgba(20, 40, 60, 0.12); box-shadow:0 14px 32px rgba(15, 23, 42, 0.14); background:#fff; padding:0.35rem;" />
</div>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="surveillance" /><category term="DVR" /><category term="NVR" /><category term="IP Camera" /><category term="video systems" /><category term="storage management" /><summary type="html"><![CDATA[I built Recorder Box as a heavy-duty recording and storage Device from scratch using linux ffmpeg stream recording package in a waterproof 12”x12” enclosure which comes in handy in Computer Vision projects during data collection phase usable in harsh conditioned environments like animal houses. The goal was not just to capture video, but to make footage easier to manage, monitor, retrieve, analyze and review when multiple DVRs and cameras are involved. A diversity of meshed cameras with different types – analogue or IP cameras – and standardized output video files for further computer vision are supported.]]></summary></entry><entry><title type="html">slidesMerge Update: Config-Driven Parameters, Manual CC Selection, and Better Diagnostics</title><link href="https://darbandi.me/posts/2026/05/slidesmerge-v2-config-update/" rel="alternate" type="text/html" title="slidesMerge Update: Config-Driven Parameters, Manual CC Selection, and Better Diagnostics" /><published>2026-05-02T00:00:00+00:00</published><updated>2026-05-02T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/05/slidesmerge-v2-config-update</id><content type="html" xml:base="https://darbandi.me/posts/2026/05/slidesmerge-v2-config-update/"><![CDATA[<p>I pushed a new version of <strong>slidesMerge</strong> with several practical improvements based on real-world use. The core pipeline (coarse alignment, contour refinement, tiled warping, multi-channel merge) is unchanged. What changed is adding a centralized configuration file, improving edge-case handling in tissue detection, and improving resilience across diverse immunofluorescent slides with selectable image features.</p>

<p>Repository: <a href="https://github.com/nimadarbandi/slidesMerge">nimadarbandi/slidesMerge</a></p>

<h2 id="what-changed">What changed</h2>

<h3 id="1-centralized-parameter-config-via-pipeline_paramsjson">1) Centralized parameter config via <code class="language-plaintext highlighter-rouge">pipeline_params.json</code></h3>

<p>Previously, parameters were set per-script or via long argument lists. Now there is a single <code class="language-plaintext highlighter-rouge">pipeline_params.json</code> file that holds all shared parameters, and each script supports three modes:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">--config</code>: specify the config file location</li>
  <li><code class="language-plaintext highlighter-rouge">--use_config</code>: read only specific keys from the config</li>
  <li><code class="language-plaintext highlighter-rouge">--use_config_all</code>: load all available params from the config</li>
</ul>

<p>This makes it practical to version-control your parameter set, run the same config across a batch of slides, and reproduce an alignment without reconstructing a long CLI call from scratch.</p>

<h3 id="2-per-slide-brightness-thresholds">2) Per-slide brightness thresholds</h3>

<p>The original pipeline used a single brightness threshold to isolate the top bright connected components. That assumption breaks when the two imaging cycles have different exposure or staining intensity profiles.</p>

<p>The new version exposes <code class="language-plaintext highlighter-rouge">--top_percent_fixed</code> and <code class="language-plaintext highlighter-rouge">--top_percent_moving</code> separately, so each slide can be tuned independently. Both are also configurable through <code class="language-plaintext highlighter-rouge">pipeline_params.json</code>.</p>

<h3 id="3-manual-connected-component-selection">3) Manual connected component selection</h3>

<p>When automatic component selection fails — dense debris fields, folded tissue, strong background signal — the pipeline now supports <code class="language-plaintext highlighter-rouge">--cc_select_fixed</code> and <code class="language-plaintext highlighter-rouge">--cc_select_moving</code> to manually specify which connected components to use.</p>

<p>This is a direct response to cases where the top-two-CC heuristic picks the wrong regions. Instead of a failed alignment, users can inspect the CC diagnostic image, identify the correct components, and pass them explicitly.</p>

<h3 id="4-tissue-component-control-via---tissue_k">4) Tissue component control via <code class="language-plaintext highlighter-rouge">--tissue_k</code></h3>

<p>A new <code class="language-plaintext highlighter-rouge">tissue_k</code> parameter controls how many tissue components are considered during the alignment step. This gives more precise control in cases with multiple large tissue regions, complex tissue architecture, or partial tissue loss between cycles.</p>

<h3 id="5-minimum-area-percentage-mode">5) Minimum area percentage mode</h3>

<p>The existing <code class="language-plaintext highlighter-rouge">min_area</code> pixel-count filter has been extended with a percentage-based mode. When working across slides at different resolutions or zoom levels, a fixed pixel threshold can be too aggressive on lower-resolution inputs and too permissive on higher ones. The percentage mode adapts to the actual image dimensions.</p>

<h3 id="6-colored-diagnostic-images-on-selection-failure">6) Colored diagnostic images on selection failure</h3>

<p>When connected component selection fails, the pipeline now outputs a colored diagnostic image that highlights each component. This replaces a silent failure with a visual that shows exactly what the detector found, making it much faster to determine whether the problem is thresholding, area filtering, or something structural in the tissue.</p>

<h3 id="7-arbitrary-channel-count-support">7) Arbitrary channel count support</h3>

<p>The merge step now supports any number of channels, not just the original 14-channel configuration. The channel count is inferred from the input slides rather than hardcoded, which makes the pipeline usable on other imaging protocols without code changes.</p>

<h2 id="what-is-still-the-same">What is still the same</h2>

<p>The four-step pipeline structure is unchanged:</p>

<ol>
  <li>Coarse alignment using bright connected components</li>
  <li>Contour-based rotation and translation refinement</li>
  <li>Tiled full-resolution warping across all channels</li>
  <li>Channel-wise merge into a single OME-TIFF output</li>
</ol>

<p>The workflow is still designed for step-by-step execution with inspection between stages, not single-pass automation. This is intentional: these are multi-gigabyte files where a silent alignment failure wastes significant compute and storage.</p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="microscopy" /><category term="image alignment" /><category term="computational pathology" /><category term="ome-tiff" /><category term="computer vision" /><summary type="html"><![CDATA[I pushed a new version of slidesMerge with several practical improvements based on real-world use. The core pipeline (coarse alignment, contour refinement, tiled warping, multi-channel merge) is unchanged. What changed is adding a centralized configuration file, improving edge-case handling in tissue detection, and improving resilience across diverse immunofluorescent slides with selectable image features.]]></summary></entry><entry><title type="html">Patient Co-Pilot v2: Multi-AI, Apple Health Monitoring, Source-grounded ChatBot</title><link href="https://darbandi.me/posts/2026/04/patient-copilot-v2-release/" rel="alternate" type="text/html" title="Patient Co-Pilot v2: Multi-AI, Apple Health Monitoring, Source-grounded ChatBot" /><published>2026-04-30T00:00:00+00:00</published><updated>2026-04-30T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/04/patient-copilot-v2-release</id><content type="html" xml:base="https://darbandi.me/posts/2026/04/patient-copilot-v2-release/"><![CDATA[<p>I am publishing <strong>Patient Co-Pilot v2 Beta</strong>, a practical update focused on Multi-AI support and Symptom Monitoring. Download link for the Beta version is included.</p>

<p>This version is built for real patient workflows, especially when care is spread across multiple visits, multiple files, and multiple people (patient + family/caregiver). The goal is simple: make the next doctor conversation clearer and better prepared.</p>

<h2 id="what-is-new-in-v2">What is new in v2</h2>

<ul>
  <li>Multi-provider AI support with <strong>OpenAI, Claude, and Gemini</strong>.</li>
  <li>Per-provider API key storage and model selection, including model refresh.</li>
  <li>API key donation request flow with explicit legal consent capture.</li>
  <li>Apple Health wearable integration for patient monitoring workflows.</li>
  <li>Health threshold checks with alert history and attention suggestions.</li>
  <li>Improved source-grounded Report Q&amp;A flow.</li>
  <li>Follow-up question handoff between chat and visit-prep lists.</li>
  <li>Expanded consent and research-share workflows for de-identified summaries.</li>
</ul>

<h2 id="core-patient-workflow-in-v2">Core patient workflow in v2</h2>

<p>Patient Co-Pilot v2 is organized around four app areas:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">Voices</code>: record/import audio, transcribe visits, review transcript, and save follow-up questions.</li>
  <li><code class="language-plaintext highlighter-rouge">Docs</code>: import reports/files, summarize selected files, manage timeline events, and validate transcript metadata.</li>
  <li><code class="language-plaintext highlighter-rouge">Reports</code>: generate a structured patient report, export patient/clinician CSV, and use source-grounded Q&amp;A.</li>
  <li><code class="language-plaintext highlighter-rouge">Home</code>: configure providers/models, manage wearable sync settings, and run backup/restore.</li>
</ul>

<p>This design keeps the path clear from raw inputs to practical next-visit preparation.</p>

<h2 id="why-this-release-matters-in-day-to-day-care">Why this release matters in day-to-day care</h2>

<p>Patient Co-Pilot v2 is especially useful when users need to:</p>

<ul>
  <li>Keep accurate post-visit recall with transcript-backed notes.</li>
  <li>Turn scattered reports into structured summaries before appointments.</li>
  <li>Track symptoms/events with wearable trends for chronic-care follow-up.</li>
  <li>Coordinate with caregivers using shareable patient/clinician outputs.</li>
  <li>Ask questions from personal records instead of generic chatbot context.</li>
</ul>

<h2 id="most-recent-feature-highlights">Most recent feature highlights</h2>

<h3 id="1-multi-ai-support">1) Multi-AI support</h3>

<p>v2 supports OpenAI, Claude, and Gemini in one app, with provider-aware model routing for text-generation tasks. This makes the workflow more flexible and easier to evaluate across model providers.</p>

<h3 id="2-apple-health-monitoring">2) Apple Health monitoring</h3>

<p>v2 adds Apple Health-based monitoring support and lets patients configure metric thresholds, run sync, and review alerts over time. The health panel is designed to support patient awareness and discussion prep, not diagnostic decision-making.</p>

<h3 id="3-stronger-report-chat-and-follow-up-loop">3) Stronger report chat and follow-up loop</h3>

<p>Report Q&amp;A is designed to stay source-grounded to selected patient materials. Suggested questions can be saved directly into the follow-up workflow so patients can carry key questions into the next visit.</p>

<h3 id="4-safer-data-sharing-controls">4) Safer data-sharing controls</h3>

<p>The release includes explicit consent steps for optional de-identified research sharing and an API key donation request workflow with secure request packaging.</p>

<h2 id="practical-implementation-notes-current-beta">Practical implementation notes (current beta)</h2>

<ul>
  <li>The app supports record import + report import workflows in one place, including common document/image formats used by patients.</li>
  <li>Report generation prioritizes reviewed transcript context when available, then falls back to patient documents and events.</li>
  <li>Report Q&amp;A is constrained to selected sources and can hand off useful questions back into follow-up lists.</li>
  <li>Backup and portability are first-class: users can export/import ZIP backups and share patient/clinician CSV outputs.</li>
  <li>Storage posture remains local-first on device, with explicit user-controlled export actions.</li>
</ul>

<h2 id="safety-boundaries">Safety boundaries</h2>

<p>Patient Co-Pilot remains an informational patient companion:</p>

<ul>
  <li>It does not replace clinician diagnosis or treatment planning.</li>
  <li>It emphasizes source-grounded summaries and reviewed inputs.</li>
  <li>It keeps patient education and clinical decision roles clearly separated.</li>
  <li>It is not appropriate for emergency care scenarios.</li>
</ul>

<h2 id="screenshots">Screenshots</h2>

<style>
  .copilot-phone-grid {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 0.5rem;
  }

  .copilot-phone-frame {
    background: linear-gradient(180deg, #0a1f2a 0%, #0a1620 100%);
    border-radius: 28px;
    padding: 10px 10px 8px;
    width: min(31%, 270px);
    min-width: 220px;
    margin: 0;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.32), 0 3px 8px rgba(0, 0, 0, 0.24);
    border: 1px solid rgba(125, 221, 214, 0.25);
  }

  .copilot-phone-notch {
    width: 42%;
    height: 8px;
    border-radius: 999px;
    background: rgba(160, 199, 210, 0.4);
    margin: 0 auto 8px;
  }

  .copilot-phone-frame img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
  }

  .copilot-phone-caption {
    text-align: center;
    font-size: 0.9rem;
    margin-top: 0.35rem;
    color: #7dddd6;
  }

  @media (max-width: 900px) {
    .copilot-phone-frame {
      width: min(100%, 320px);
    }
  }
</style>

<div class="copilot-phone-grid">
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/1.PNG" alt="Patient Co-Pilot v2 screenshot 1" />
    <figcaption class="copilot-phone-caption">Home</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/2.PNG" alt="Patient Co-Pilot v2 screenshot 2" />
    <figcaption class="copilot-phone-caption">Home-Settings</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/3.PNG" alt="Patient Co-Pilot v2 screenshot 3" />
    <figcaption class="copilot-phone-caption">Docs-Import</figcaption>
  </figure>
</div>

<div class="copilot-phone-grid">
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/4.PNG" alt="Patient Co-Pilot v2 screenshot 4" />
    <figcaption class="copilot-phone-caption">Docs-LoadedFiles</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/5.PNG" alt="Patient Co-Pilot v2 screenshot 5" />
    <figcaption class="copilot-phone-caption">Docs-Summarize</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/6.PNG" alt="Patient Co-Pilot v2 screenshot 6" />
    <figcaption class="copilot-phone-caption">Voices-Recorder</figcaption>
  </figure>
</div>

<div class="copilot-phone-grid">
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/7.PNG" alt="Patient Co-Pilot v2 screenshot 7" />
    <figcaption class="copilot-phone-caption">Voices-Transcriber</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/8.PNG" alt="Patient Co-Pilot v2 screenshot 8" />
    <figcaption class="copilot-phone-caption">Reports-PatientReport</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/9.PNG" alt="Patient Co-Pilot v2 screenshot 9" />
    <figcaption class="copilot-phone-caption">Reports-ChatBot</figcaption>
  </figure>
</div>

<p>Project repository (docs, privacy, and terms): <a href="https://github.com/nimadarbandi/CopilotApp/tree/main">nimadarbandi/CopilotApp</a></p>

<p>Public beta (TestFlight): <a href="https://testflight.apple.com/join/pvRks2nM">Join Patient Co-Pilot Beta</a></p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="healthcare ai" /><category term="patient education" /><category term="digital health" /><category term="clinical workflow" /><summary type="html"><![CDATA[I am publishing Patient Co-Pilot v2 Beta, a practical update focused on Multi-AI support and Symptom Monitoring. Download link for the Beta version is included.]]></summary></entry><entry><title type="html">Patient Co-Pilot: Helping Patients Navigate Complex Care with Confidence</title><link href="https://darbandi.me/posts/2026/04/patient-copilot-practical/" rel="alternate" type="text/html" title="Patient Co-Pilot: Helping Patients Navigate Complex Care with Confidence" /><published>2026-04-21T00:00:00+00:00</published><updated>2026-04-21T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/04/patient-copilot-practical</id><content type="html" xml:base="https://darbandi.me/posts/2026/04/patient-copilot-practical/"><![CDATA[<p>I built <strong>Patient Co-Pilot</strong> mobile app to solve a common patient problem: confused with too much medical information, spread across too many places, from too many doctors.</p>

<p>When patients are dealing with multiple visits, reports, and prescriptions, it is hard to track what matters, what changed, and what to ask the doctor next. This app helps patients keep their information together, understand their care plan better, and show up prepared for clinical discussions.</p>

<h2 id="why-this-app-is-useful-in-real-life">Why this app is useful in real life</h2>

<p>Patient Co-Pilot is designed to reduce confusion and make follow-up visits more productive:</p>

<ul>
  <li>Record and transcribe doctor conversations.</li>
  <li>Digest and Keep documents, transcript files, and medication-related notes in one place.</li>
  <li>Build a structured patient summary from selected sources (timeline, mention points, and medication points).</li>
  <li>Turn scattered information into practical follow-up questions for the next visit.</li>
  <li>Support patient education with patient clinical source-restricted Q&amp;A so patients can better understand their condition and care context without scattered chats with AI chat bots.</li>
</ul>

<p>This improves continuity between visits and helps patients extract value from complex clinical data instead of feeling lost in it.</p>

<p>Patient Co-Pilot is especially useful for people managing cancer and other complex diseases, where decisions depend on many reports, specialist opinions, and medication changes over time. It is also useful for patients and families with less experience in public care systems and hospitalization workflows, because it creates a clearer path from “I have many documents” to “I understand where I am, what to ask and what to discuss next.”</p>

<h2 id="safety-and-clinical-boundaries">Safety and clinical boundaries</h2>

<p><img src="/images/patient.png" alt="Patient safety icon" width="42" /></p>

<p>The app is intentionally designed to support the patient without interfering with clinician decision-making:</p>

<ul>
  <li>It does not replace diagnosis, prognosis, or treatment planning.</li>
  <li>It uses review and source controls before downstream AI features.</li>
  <li>It keeps patient-facing and clinician-facing exports separated where needed.</li>
  <li>It focuses on helping patients ask better questions and understand guidance, not giving independent medical directives.</li>
</ul>

<p>In short, it acts as a patient companion for organization and education, while preserving the doctor’s role in clinical judgment.</p>

<h2 id="technical-snapshot">Technical snapshot</h2>

<p>The current implementation is a mobile app built with React Native/Expo, with core workflows for transcript capture, document import, patient-summary generation, and constrained Q&amp;A.</p>

<p>This project is funded by the <strong>POOIA Scholarship Award</strong> in support of my cancer research direction.</p>

<p>GitHub repository: <a href="https://github.com/nimadarbandi/CopilotApp">nimadarbandi/CopilotApp</a></p>

<h2 id="screenshots-from-the-app">Screenshots from the App</h2>

<style>
  .copilot-phone-grid {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 0.5rem;
  }

  .copilot-phone-frame {
    background: linear-gradient(180deg, #0a1f2a 0%, #0a1620 100%);
    border-radius: 28px;
    padding: 10px 10px 8px;
    width: min(31%, 270px);
    min-width: 220px;
    margin: 0;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.32), 0 3px 8px rgba(0, 0, 0, 0.24);
    border: 1px solid rgba(125, 221, 214, 0.25);
  }

  .copilot-phone-notch {
    width: 42%;
    height: 8px;
    border-radius: 999px;
    background: rgba(160, 199, 210, 0.4);
    margin: 0 auto 8px;
  }

  .copilot-phone-frame img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 20px;
  }

  .copilot-phone-caption {
    text-align: center;
    font-size: 0.9rem;
    margin-top: 0.35rem;
    color: #7dddd6;
  }

  @media (max-width: 900px) {
    .copilot-phone-frame {
      width: min(100%, 320px);
    }
  }
</style>

<div class="copilot-phone-grid">
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/recorder.PNG" alt="Patient Co-Pilot recorder screen" />
    <figcaption class="copilot-phone-caption">Recorder</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/upload.PNG" alt="Patient Co-Pilot docs upload screen" />
    <figcaption class="copilot-phone-caption">Docs</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/reports.PNG" alt="Patient Co-Pilot reports screen" />
    <figcaption class="copilot-phone-caption">Reports</figcaption>
  </figure>
</div>

<div class="copilot-phone-grid">
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/summary.PNG" alt="Patient Co-Pilot patient summary screen" />
    <figcaption class="copilot-phone-caption">Patient Summary</figcaption>
  </figure>
    <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/QA.jpg" alt="Patient Co-Pilot report Q and A screen" />
    <figcaption class="copilot-phone-caption">Report Q&amp;A</figcaption>
  </figure>
  <figure class="copilot-phone-frame">
    <div class="copilot-phone-notch"></div>
    <img src="/images/setup.PNG" alt="Patient Co-Pilot setup screen" />
    <figcaption class="copilot-phone-caption">Setup</figcaption>
  </figure>
</div>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="healthcare ai" /><category term="patient education" /><category term="clinical workflow" /><category term="patient tools" /><summary type="html"><![CDATA[I built Patient Co-Pilot mobile app to solve a common patient problem: confused with too much medical information, spread across too many places, from too many doctors.]]></summary></entry><entry><title type="html">Paper Accepted at AIR-RES 2026</title><link href="https://darbandi.me/posts/2026/04/air-res-paper-acceptance/" rel="alternate" type="text/html" title="Paper Accepted at AIR-RES 2026" /><published>2026-04-05T00:00:00+00:00</published><updated>2026-04-05T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/04/air-res-paper-acceptance</id><content type="html" xml:base="https://darbandi.me/posts/2026/04/air-res-paper-acceptance/"><![CDATA[<p>I am pleased to share that our paper has been accepted at the <strong>2026 International Conference on the AI Revolution: Research, Ethics, and Society (AIR-RES 2026)</strong> for both <strong>publication in the proceedings</strong> and <strong>conference presentation</strong>.</p>

<p>Paper details:</p>

<ul>
  <li><strong>Paper ID:</strong> AIR3365</li>
  <li><strong>Title:</strong> <em>Foundation Models as Data Engines: Label-Efficient Learning in Modern Computer Vision</em></li>
  <li><strong>Category:</strong> Regular Research Paper</li>
  <li><strong>Authors:</strong> Mohammad R. (Nima) Darbandi, Mahsa Darbandi, Sara Darbandi, Afsaneh Shams, Soheyla Amirian, Hamid R. Arabnia, Guoming Li, Tianming Liu</li>
</ul>

<p>In this paper, we argue that computer vision is moving from a model-centric workflow to a <strong>supervision-centric Data Engine paradigm</strong>, where foundation models help iteratively curate, label, and verify training data.</p>

<p>The motivation is practical: traditional deep-learning pipelines are heavily constrained by annotation cost and timeline, often dominated by manual labeling. We present a taxonomy that traces the field from manual supervision to increasingly autonomous supervision loops, where AI-assisted verification and self-improving cycles reduce direct human burden.</p>

<p>The paper also analyzes three converging directions:</p>

<ol>
  <li>Automated curation and labeling using models such as SAM, DINO, and CLIP.</li>
  <li>Knowledge agglomeration through distillation from large teacher models into efficient student models.</li>
  <li>Domain-specific vertical adaptation in label-scarce settings such as medical imaging, remote sensing, and cellular biology.</li>
</ol>

<p>Overall, the work outlines a roadmap for scalable, label-efficient visual intelligence systems that can continuously improve through data-engine feedback loops.</p>

<p>Conference:
<a href="https://www.american-cse.org/air-res2026/">AIR-RES 2026 (April 13-15, 2026, Las Vegas, USA)</a></p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="conference" /><category term="paper acceptance" /><category term="computer vision" /><category term="foundation models" /><category term="uga" /><summary type="html"><![CDATA[I am pleased to share that our paper has been accepted at the 2026 International Conference on the AI Revolution: Research, Ethics, and Society (AIR-RES 2026) for both publication in the proceedings and conference presentation.]]></summary></entry><entry><title type="html">ReadingOverlayTool: A Swift macOS Reading Line Overlay for PDFs</title><link href="https://darbandi.me/posts/2026/04/readingoverlaytool-macos-reading-line/" rel="alternate" type="text/html" title="ReadingOverlayTool: A Swift macOS Reading Line Overlay for PDFs" /><published>2026-01-28T00:00:00+00:00</published><updated>2026-01-28T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/04/readingoverlaytool-macos-reading-line</id><content type="html" xml:base="https://darbandi.me/posts/2026/04/readingoverlaytool-macos-reading-line/"><![CDATA[<p>I developed <strong>ReadingOverlayTool</strong> to make long PDF reading sessions on macOS easier and less fatiguing. Super useful for putting less strain on eyes while reading long papers in any room lighting conditions.</p>

<p>The app provides an always-on-top reading overlay that helps keep focus on the current line while dimming the rest of the page.</p>

<p>Core capabilities:</p>

<ul>
  <li>Always-on-top reading line overlay.</li>
  <li>Adjustable divider by dragging in edit mode.</li>
  <li>Opacity and color controls from a lightweight control panel to rest eyes.</li>
  <li>Quick hide/unhide and edit-mode keyboard shortcuts.</li>
</ul>

<p>GitHub repository:
<a href="https://github.com/nimadarbandi/ReadingOverlayTool">nimadarbandi/ReadingOverlayTool</a></p>

<h2 id="demo">Demo</h2>

<video controls="" playsinline="" style="display:block; width:100%; max-width:920px; height:auto; margin:1rem auto;">
  <source src="/images/demo.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="swift" /><category term="macos" /><category term="productivity" /><category term="reading tools" /><summary type="html"><![CDATA[I developed ReadingOverlayTool to make long PDF reading sessions on macOS easier and less fatiguing. Super useful for putting less strain on eyes while reading long papers in any room lighting conditions.]]></summary></entry><entry><title type="html">Honored to Receive the 2026 POOIA Student Scholarship Award for Cancer Research</title><link href="https://darbandi.me/posts/2026/01/pooia-scholarship-cancer-research/" rel="alternate" type="text/html" title="Honored to Receive the 2026 POOIA Student Scholarship Award for Cancer Research" /><published>2026-01-24T00:00:00+00:00</published><updated>2026-01-24T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/01/pooia-scholarship-cancer-research</id><content type="html" xml:base="https://darbandi.me/posts/2026/01/pooia-scholarship-cancer-research/"><![CDATA[<p>I am grateful to share that I earned the <strong>2026 POOIA Student Scholarship Award</strong>.</p>

<p>This support helps me continue spending my research effort on cancer-focused work and on practical tools that can improve care understanding for patients and families.</p>

<p>I sincerely thank the Professional Organization of Iranian Americans (POOIA) for this recognition and support.</p>

<p><img src="/images/Pooia-Award-C.JPG" alt="2026 POOIA Student Scholarship Award certificate" style="display:block; width:100%; max-width:820px; height:auto; margin:1rem auto;" /></p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="scholarship" /><category term="cancer research" /><category term="pooia" /><category term="healthcare ai" /><summary type="html"><![CDATA[I am grateful to share that I earned the 2026 POOIA Student Scholarship Award.]]></summary></entry><entry><title type="html">Started a Graduate Research Assistantship Position in ISP Lab</title><link href="https://darbandi.me/posts/2026/01/research-assistantship-guoming-li/" rel="alternate" type="text/html" title="Started a Graduate Research Assistantship Position in ISP Lab" /><published>2026-01-12T00:00:00+00:00</published><updated>2026-01-12T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/01/research-assistantship-guoming-li</id><content type="html" xml:base="https://darbandi.me/posts/2026/01/research-assistantship-guoming-li/"><![CDATA[<p>I am excited to announce that I have been accepted as a <strong>Research Assistant</strong> in <a href="https://site.caes.uga.edu/isp/"><strong>ISP Lab</strong></a> for a <strong>two-year term</strong>, starting <strong>January 12, 2026 (Spring 2026)</strong>.</p>

<p>This position is an important step in my research path because it connects Computer Vision, Multi-Camera/Multi-Sensor Systems, data science, AI, and animal health in a high-impact applied setting.</p>

<p>My work will focus on building intelligent systems for:</p>

<ul>
  <li>Structured tracking of live-animal data for kinematics monitoring.</li>
  <li>Behavior analysis from integrated records and sensor data.</li>
  <li>Genetic profiling and selection in livestock and poultry populations.</li>
  <li>Early disease detection support by combining phenotype, behavior, and genetic signals.</li>
</ul>

<p>The core value of this work is that better data integration and analysis can improve decision quality in breeding, health monitoring, and precision animal management. These systems can help move from fragmented records toward actionable, evidence-driven insights for both researchers and producers.</p>

<p>I am grateful to <a href="https://ai.uga.edu/directory/people/guoming-li"><strong>Dr. Guoming Li</strong></a> for his mentorship, trust, and the opportunity to contribute toto his lab’s research mission.</p>

<p>This project is supported by funding from <strong>Cobb Company</strong> through the <a href="https://www.cobbgenetics.com/en_US/cri"><strong>Cobb Research Initiative (CRI)</strong></a>.</p>

<p>Reference:</p>

<p><a href="https://site.caes.uga.edu/isp/">Intelligent Systems in Poultry (ISP) Lab</a></p>

<p><a href="https://www.cobbgenetics.com/en_US/cri">Cobb Research Initiative (CRI)</a></p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="research assistantship" /><category term="poultry" /><category term="animal genomics" /><category term="behavior analysis" /><category term="early disease detection" /><summary type="html"><![CDATA[I am excited to announce that I have been accepted as a Research Assistant in ISP Lab for a two-year term, starting January 12, 2026 (Spring 2026).]]></summary></entry><entry><title type="html">slidesMerge: Microscopy Slide Alignment and 14-Channel OME-TIFF Fusion</title><link href="https://darbandi.me/posts/2025/12/slidesmerge-microscopy-pipeline/" rel="alternate" type="text/html" title="slidesMerge: Microscopy Slide Alignment and 14-Channel OME-TIFF Fusion" /><published>2025-12-12T00:00:00+00:00</published><updated>2025-12-12T00:00:00+00:00</updated><id>https://darbandi.me/posts/2025/12/slidesmerge-microscopy-pipeline</id><content type="html" xml:base="https://darbandi.me/posts/2025/12/slidesmerge-microscopy-pipeline/"><![CDATA[<p>I developed <strong>slidesMerge</strong> as a practical pipeline to align two large Aivia microscopy slides (&gt;7 channels each) from different imaging cycles and fuse them into a single <strong>multi-channel OME-TIFF</strong> file.</p>

<p>This project is designed for high-resolution microscopy workflows where preserving spatial consistency across cycles is critical for downstream analysis.</p>

<h2 id="what-the-pipeline-does">What the pipeline does</h2>

<p>The implementation follows a four-step process:</p>

<ol>
  <li>Coarse alignment using two top bright connected components.</li>
  <li>Contour-based refinement of rotation and translation.</li>
  <li>Tiled full-resolution warping of the moving slide across all channels.</li>
  <li>Channel-wise merge into one 14-channel OME-TIFF output.</li>
</ol>

<h2 id="why-this-is-useful">Why this is useful</h2>

<ul>
  <li>Preserves spatial integrity across channels and cycles.</li>
  <li>Avoids unnecessary cropping while aligning large slides.</li>
  <li>Produces debug outputs for visual quality control at each stage.</li>
  <li>Exports outputs compatible with <strong>Aivia</strong> and <strong>QuPath</strong>.</li>
</ul>

<p>This helps reduce manual alignment effort and makes multi-cycle tissue analysis more reproducible and scalable.</p>

<p>For non-technical readers: <strong>slidesMerge</strong> helps researchers line up multiple microscope scans of the same tissue and combine them into one accurate view. This reduces manual work and makes it easier to compare biological signals across imaging cycles.</p>

<p>One key challenge is scale: these slide files are often <strong>multi-gigabyte</strong>, and manual pixel-level alignment is usually not feasible. A common shortcut is to align low-resolution copies, but that can introduce pixel degradation and reduce final alignment accuracy when projected back to full resolution. In my workflow, slidesMerge has been the only approach that consistently delivers this level of full-resolution alignment accuracy while still using modest computational resources through targeted refinement and tiled processing.</p>

<p><img src="/images/Cycle.jpg" alt="slidesMerge imaging cycle visualization" style="display:block; width:100%; max-width:880px; height:auto; margin:1rem auto;" /></p>

<p>Repository:
<a href="https://github.com/nimadarbandi/slidesMerge">nimadarbandi/slidesMerge</a></p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="microscopy" /><category term="image alignment" /><category term="computational pathology" /><category term="ome-tiff" /><category term="computer vision" /><summary type="html"><![CDATA[I developed slidesMerge as a practical pipeline to align two large Aivia microscopy slides (&gt;7 channels each) from different imaging cycles and fuse them into a single multi-channel OME-TIFF file.]]></summary></entry><entry><title type="html">CD73 KO vs WT RNA-seq Analysis with Kallisto and Sleuth</title><link href="https://darbandi.me/posts/2026/04/cd73-ko-vs-wt-rnaseq-analysis/" rel="alternate" type="text/html" title="CD73 KO vs WT RNA-seq Analysis with Kallisto and Sleuth" /><published>2025-12-01T00:00:00+00:00</published><updated>2025-12-01T00:00:00+00:00</updated><id>https://darbandi.me/posts/2026/04/cd73-ko-vs-wt-rnaseq-analysis</id><content type="html" xml:base="https://darbandi.me/posts/2026/04/cd73-ko-vs-wt-rnaseq-analysis/"><![CDATA[<p>I built this project to run a reproducible <strong>RNA-seq comparison between CD73 knockout (KO) and wild-type (WT)</strong> samples using a practical <strong>Kallisto + Sleuth</strong> workflow.</p>

<p>Project repository:
<a href="https://github.com/nimadarbandi/omics/tree/main/Project">omics/Project</a></p>

<p>The work is inspired by the paper:
<strong>Knock-out of CD73 delays the onset of HR-negative breast cancer by reprogramming lipid metabolism and is associated with increased tumor mutational burden</strong>.</p>

<h2 id="why-this-matters">Why this matters</h2>
<p>CD73 has an important role in tumor biology and lipid metabolism. Reproducing this analysis in an independent pipeline helps:</p>
<ul>
  <li>validate published findings</li>
  <li>identify significant transcript-level changes between KO and WT groups</li>
  <li>support downstream pathway and mechanism-focused analysis in cancer research</li>
</ul>

<h2 id="dataset-and-biological-context">Dataset and biological context</h2>
<ul>
  <li>SRA BioProject: <code class="language-plaintext highlighter-rouge">PRJNA933922</code></li>
  <li>Organism/reference used in pipeline: <strong>Mus musculus (GRCm39)</strong></li>
</ul>

<h2 id="what-this-pipeline-does">What this pipeline does</h2>
<ol>
  <li>Download sequencing runs from SRA.</li>
  <li>Convert and compress FASTQ files.</li>
  <li>Build a Kallisto index from Ensembl cDNA reference.</li>
  <li>Run <code class="language-plaintext highlighter-rouge">kallisto quant</code> with bootstrap estimates.</li>
  <li>Run Sleuth likelihood-ratio testing (<code class="language-plaintext highlighter-rouge">~1</code> vs <code class="language-plaintext highlighter-rouge">~condition</code>).</li>
  <li>Export significant transcripts (<code class="language-plaintext highlighter-rouge">qval &lt;= 0.05</code>) and generate result plots.</li>
</ol>

<h2 id="outcome">Outcome</h2>
<p>This project provides a structured and reusable transcriptomics workflow to study CD73-driven expression changes, with direct relevance to HR-negative breast cancer biology and downstream pathway interpretation.</p>]]></content><author><name>Nima Darbandi</name><email>darbandi@uga.edu</email></author><category term="bioinformatics" /><category term="rna-seq" /><category term="breast cancer" /><category term="transcriptomics" /><category term="kallisto" /><category term="sleuth" /><summary type="html"><![CDATA[I built this project to run a reproducible RNA-seq comparison between CD73 knockout (KO) and wild-type (WT) samples using a practical Kallisto + Sleuth workflow.]]></summary></entry></feed>