PageSourceSearch

https://hashe037.github.io/

html hashe037.github.io collected 2026-10-03 09:16:53 UTC 31,251 bytes, 695 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4  <!-- Head -->
5  <head>
6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <!-- Metadata, OpenGraph and Schema.org -->
7    
8    <!-- Website verification -->
9    <meta name="google-site-verification" content="ReqWNUpMvQmxhYAQze5Cg1GjRrAn8ISy_jFvMkBXrMg">
10<meta name="msvalidate.01" content="">
11<!-- Avoid warning on Google Chrome
12        Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'interest-cohort'.
13        see https://stackoverflow.com/a/75119417
14    -->
15    <meta http-equiv="Permissions-Policy" content="interest-cohort=()">
16
17    <!-- Standard metadata -->
18    <meta charset="utf-8">
19    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
20    <meta http-equiv="X-UA-Compatible" content="IE=edge">
21    <title></title>
22    <meta name="author" content="Connor  Hashemi">
23    <meta name="description" content="Personal website for Connor Hashemi.">
24    <meta name="keywords" content="connor hashemi, computational imaging, personal website, computational imaging, passive non-line-of-sight imaging, event-based imaging">
25
26
27    <!-- Bootstrap & MDB -->
28    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-DF7Zhf293AJxJNTmh5zhoYYIMs2oXitRfBjY+9L//AY=" crossorigin="anonymous">
29    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/mdb.min.css" integrity="sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" crossorigin="anonymous">
30
31    <!-- Fonts & Icons -->
32    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" integrity="sha256-mUZM63G8m73Mcidfrv5E+Y61y7a12O5mW4ezU3bxqW4=" crossorigin="anonymous">
33    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/academicons.min.css" integrity="sha256-i1+4qU2G2860dGGIOJscdC30s9beBXjFfzjWLjBRsBg=" crossorigin="anonymous">
34    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons">
35
36    <!-- Code Syntax Highlighting -->
37    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jwarby/jekyll-pygments-themes@master/github.css" media="" id="highlight_theme_light">
38
39    <!-- Styles -->
40    
41    <link rel="shortcut icon" href="/assets/img/CH_icon.PNG">
42    
43    <link rel="stylesheet" href="/assets/css/main.css">
44    <link rel="canonical" href="https://hashe037.github.io/">
45    
46    <!-- Dark Mode -->
47    
48    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jwarby/jekyll-pygments-themes@master/native.css" media="none" id="highlight_theme_dark">
49
50    
50<script src="/assets/js/theme.js"></script>
50
51    
51<script src="/assets/js/dark_mode.js"></script>
51
52    
53
54  </head>
55
56  <!-- Body -->
57  <body class="fixed-top-nav ">
58
59    <!-- Header -->
60    <header>
61
62      <!-- Nav Bar -->
63      <nav id="navbar" class="navbar navbar-light navbar-expand-sm fixed-top">
64        <div class="container">
65          
66          <!-- Navbar Toggle -->
67          <button class="navbar-toggler collapsed ml-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
68            <span class="sr-only">Toggle navigation</span>
69            <span class="icon-bar top-bar"></span>
70            <span class="icon-bar middle-bar"></span>
71            <span class="icon-bar bottom-bar"></span>
72          </button>
73
74          <div class="collapse navbar-collapse text-right" id="navbarNav">
75            <ul class="navbar-nav ml-auto flex-nowrap">
76
77              <!-- About -->
78              <li class="nav-item active">
79                <a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>
80              </li>
81              
82
83              <!-- Other pages -->
84              <li class="nav-item ">
85                <a class="nav-link" href="/publications/">publications</a>
86              </li>
87              <li class="nav-item ">
88                <a class="nav-link" href="/projects/">projects</a>
89              </li>
90              <li class="nav-item ">
91                <a class="nav-link" href="/cv/">cv</a>
92              </li>
93
94              <!-- Toogle theme mode -->
95              <li class="toggle-container">
96                <button id="light-toggle" title="Change theme">
97                  <i class="fas fa-moon"></i>
98                  <i class="fas fa-sun"></i>
99                </button>
100              </li>
101            </ul>
102          </div>
103        </div>
104      </nav>
105
106      <!-- Scrolling Progress Bar -->
107      <progress id="progress" value="0">
108        <div class="progress-container">
109          <span class="progress-bar"></span>
110        </div>
111      </progress>
112    </header>
113
114
115    <!-- Content -->
116    <div class="container mt-5">
117      <!-- about.html -->
118      <div class="post">
119        <header class="post-header">
120          <h1 class="post-title">
121           
122          </h1>
123          <p class="desc">About me</p>
124        </header>
125
126        <article>
127          <div class="profile float-right">
128
129              <figure>
130
131  <picture>
132    
133    <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/withdog-480.webp"></source>
134    <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/withdog-800.webp"></source>
135    <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/withdog-1400.webp"></source>
136    
137
138    <!-- Fallback to the original file -->
139    <img src="/assets/img/withdog.jpg" class="img-fluid z-depth-1 rounded" width="auto" height="auto" alt="withdog.jpg" onerror="this.onerror=null; $('.responsive-img-srcset').remove();">
140
141  </picture>
142
143</figure>
144
145          </div>
146
147          <div class="clearfix">
148            <p>I am a Senior Research and Development Researcher at <a href="https://www.kitware.com/" rel="external nofollow noopener" target="_blank">Kitware</a> in computational imaging and computer vision. I obtained my PhD in electrical engineering at the <a href="https://cse.umn.edu/ece" rel="external nofollow noopener" target="_blank">University of Minnesota ECE Department</a> under Dr. James Leger.</p>
149
150<p>My primary research is in the domain of computational imaging, which is the intersection between optics, signal processing, and computer vision. My thesis was focused on creating noiseless and clutterless reconstructions in passive non-line-of-sight (NLOS) imaging using information beyond what is typically used for conventional imaging. At Kitware, my primary work has been in event-based imaging with neuromorphic cameras, specifically for space awareness and star tracking applications. Our Gitlab for these projects is under  <a href="https://gitlab.kitware.com/nest-public" rel="external nofollow noopener" target="_blank">NEST Public</a>. I also have experience developing foundational models in underwater acoustics and developing GenAI pipelines to improve test and evaluation of models through the open-source toolkits <a href="https://github.com/Kitware/pybsm" rel="external nofollow noopener" target="_blank">PyBSM</a> and <a href="https://github.com/Kitware/nrtk" rel="external nofollow noopener" target="_blank">NRTK</a>.</p>
151
152<p>I am open to new opportunities and collaborations, so please feel free to reach me at my email [email protected]</p>
153
154          </div>
155
156          <!-- News -->
157          <h2><a href="/news/" style="color: inherit;">news</a></h2>
158          <div class="news">
159            <div class="table-responsive">
160              <table class="table table-sm table-borderless">
161              
162                <tr>
163                  <th scope="row">Dec 14, 2025</th>
164                  <td>
165                    Presented on “Event-Based Vision for Space Navigation” at the <a href="https://cse.umn.edu/ima" rel="external nofollow noopener" target="_blank">Institute for Mathematics and its Applications (IMA)</a> in the University of Minnesota.
166
167                  </td>
168                </tr>
169                <tr>
170                  <th scope="row">Nov 22, 2025</th>
171                  <td>
172                    Our workshop paper “Quantifying Accuracy of an Event-Based Star Tracker via Earth’s Rotation” was presented at <a href="https://iccv.thecvf.com/" rel="external nofollow noopener" target="_blank">ICCV</a> conference in Hawaii. This work proposes a new way of evaluating event-based star trackers and shows that their overall accuracy is competitive with conventional state-of-the-art.
173
174                  </td>
175                </tr>
176                <tr>
177                  <th scope="row">Aug 21, 2025</th>
178                  <td>
179                    Presented our abstract on “Leveraging Spatiotemporal Event Distributions for Point-Object Tracking” at the Optica Computational Optical Sensing and Imaging (<a href="https://www.optica.org/events/congress/imaging_and_applied_optics_congress/program/computational_optical_sensing_and_imaging/" rel="external nofollow noopener" target="_blank">COSI</a>) conference in Seattle. This helped summarize our group’s work in event-based imaging over the last couple years.
180
181                  </td>
182                </tr>
183                <tr>
184                  <th scope="row">Jun 21, 2025</th>
185                  <td>
186                    Our paper “Centroiding Point-Objects With Event Cameras” won the best paper award at the IEEE International Conference on Computational Photography (<a href="https://iccp2025.iccp-conference.org/" rel="external nofollow noopener" target="_blank">ICCP</a>) conference in Toronto! This continued our event-based star tracking work with a more general point-object tracking algorithm.
187
188                  </td>
189                </tr>
190                <tr>
191                  <th scope="row">May 12, 2025</th>
192                  <td>
193                    Our work titled “EBS-EKF: Accurate and High Frequency Event-based Star Tracking” was presented as a highlight (2.98% of total papers) at <a href="https://cvpr.thecvf.com/Conferences/2025" rel="external nofollow noopener" target="_blank">CVPR 2025</a> in Tennessee! This paper encapsulates our work on neuromorphic star tracking and its advantages over traditional methods and previous state of the art.
194
195                  </td>
196                </tr>
197                <tr>
198                  <th scope="row">Dec 1, 2023</th>
199                  <td>
200                    Started my post-grad career at <a href="https://www.kitware.com/" rel="external nofollow noopener" target="_blank">Kitware</a> as a Senior R&amp;D Researcher on the Computer Vision team in Minneapolis.
201
202                  </td>
203                </tr>
204                <tr>
205                  <th scope="row">Nov 30, 2023</th>
206                  <td>
207                    Presented and successfully defended my PhD defense titled “Low-Signal Passive Non-Line-of-Sight Imaging”!
208
209                  </td>
210                </tr>
211                <tr>
212                  <th scope="row">Aug 16, 2023</th>
213                  <td>
214                    Presented my work on “Blind Unmixing of Passively-Scattered Multispectral Light” at the Optica Computational Optical Sensing and Imaging (<a href="https://www.optica.org/events/congress/imaging_and_applied_optics_congress/program/computational_optical_sensing_and_imaging/" rel="external nofollow noopener" target="_blank">COSI</a>) conference in Boston.
215
216                  </td>
217                </tr>
218                <tr>
219                  <th scope="row">Jul 30, 2023</th>
220                  <td>
221                    Presented and published two of my works at the IEEE International Conference on Computational Photography (<a href="https://iccp2023.iccp-conference.org/" rel="external nofollow noopener" target="_blank">ICCP</a>)conference in Madison, one on “Parallax-Driven Denoising of Passive Non-Line-of-Sight Thermal Imagery” and the other on “Isolating Signals in Passive Non-Line-of-Sight Imaging using Spectral Content” (which was also accepted into the TPAMI Special Issue).
222
223                  </td>
224                </tr>
225                <tr>
226                  <th scope="row">Jun 8, 2023</th>
227                  <td>
228                    Presented a poster on “Removing Unwanted Signals using Spectral Content in Passively-Scattered Light” at the 3M poster session with UMN
229
230                  </td>
231                </tr>
232                <tr>
233                  <th scope="row">Jan 12, 2022</th>
234                  <td>
235                    Just finished my 7-month internship at Amazon in the as an Applied Scientist Intern on the Perfect Order Experience (POE) team! I was in charge of using computer vision and deep learning to detect fradulent marketplace items.
236
237
238                  </td>
239                </tr>
240                <tr>
241                  <th scope="row">Dec 5, 2021</th>
242                  <td>
243                    Amazon workshop paper on “Extracting Robust Representations of Invoice Images for
244Automated Forgery Detection” was presented
245
246                  </td>
247                </tr>
248                <tr>
249                  <th scope="row">Jan 26, 2021</th>
250                  <td>
251                    Was a winner in the the Naval Horizons Challenge.
252
253                  </td>
254                </tr>
255                <tr>
256                  <th scope="row">Aug 20, 2020</th>
257                  <td>
258                    Finished my summer internship with <a href="https://www.blackriversystems.com/" rel="external nofollow noopener" target="_blank">Black River Systems Inc.</a> as a systems engineer intern. I worked on collecting and performing unsupervised clustering of a variety of radio signals found in the field.
259
260                  </td>
261                </tr>
262                <tr>
263                  <th scope="row">Jun 23, 2020</th>
264                  <td>
265                    Oral presentation of “Exploiting the Visible Spectrum to Look Around Corners” at the <a href="https://opg.optica.org/conference.cfm?meetingid=15&amp;yr=2020" rel="external nofollow noopener" target="_blank"> Computational Optical Sensing and Imaging (COSI) </a> conference (if interested please email for paper/video)
266
267                  </td>
268                </tr>
269                <tr>
270                  <th scope="row">Oct 5, 2019</th>
271                  <td>
272                    Poster presentation of “Exploiting Light Field Spectra for Passive NLoS Imaging” at the IMA Workshop for Computational Imaging. <a href="/assets/pdf/imaposter.pdf"> Link to poster. </a>
273
274                  </td>
275                </tr>
276                <tr>
277                  <th scope="row">May 18, 2018</th>
278                  <td>
279                    Started PhD with the CSE Fellowship at the University of Minnesota.
280
281                  </td>
282                </tr>
283              </table>
284            </div>
285          </div>
286
287
288          <!-- Latest posts -->
289          
290
291          <!-- Selected papers -->
292          <h2><a href="/publications/" style="color: inherit;">selected publications</a></h2>
293          <div class="publications">
294            <ol class="bibliography">
295<li>
296<!-- _layouts/bib.html -->
297      <div class="row">
298        <div class="col-sm-2 preview">
299<figure>
300
301  <picture>
302    
303    <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/publication_preview/plenoptic_imag-480.webp"></source>
304    <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/publication_preview/plenoptic_imag-800.webp"></source>
305    <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/publication_preview/plenoptic_imag-1400.webp"></source>
306    
307
308    <!-- Fallback to the original file -->
309    <img src="/assets/img/publication_preview/plenoptic_imag.jpg" class="preview z-depth-1 rounded" width="auto" height="auto" alt="plenoptic_imag.jpg" onerror="this.onerror=null; $('.responsive-img-srcset').remove();">
310
311  </picture>
312
313</figure>
314</div>
315
316        <!-- Entry bib key -->
317        <div id="lin2020passive" class="col-sm-8">
318        <!-- Title -->
319        <div class="title">Passive non-line-of-sight imaging using plenoptic information</div>
320        <!-- Author -->
321        <div class="author">
322        
323
324        Di Lin, <em>Connor Hashemi</em>, and James R Leger</div>
325
326        <!-- Journal/Book title and date -->
327        
328        
329        <div class="periodical">
330          <em>JOSA A</em>, 2020
331        </div>
332        <div class="periodical">
333          
334        </div>
335
336          <!-- Links/Buttons -->
337          <div class="links">
338          </div>
339          
340          <div class="badges">
341            <span class="altmetric-embed" data-hide-no-mentions="true" data-hide-less-than="15" data-badge-type="2" data-badge-popover="right"></span>
342              <span class="__dimensions_badge_embed__" data-pmid="" data-hide-zero-citations="true" data-style="small_rectangle" data-legend="hover-right" style="margin-bottom: 3px;"></span>
343          </div>
344
345          
346        </div>
347      </div>
348</li>
349<li>
350<!-- _layouts/bib.html -->
351      <div class="row">
352        <div class="col-sm-2 preview">
353<figure>
354
355  <picture>
356    
357    <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/publication_preview/isolating_nlos_sigs-480.webp"></source>
358    <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/publication_preview/isolating_nlos_sigs-800.webp"></source>
359    <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/publication_preview/isolating_nlos_sigs-1400.webp"></source>
360    
361
362    <!-- Fallback to the original file -->
363    <img src="/assets/img/publication_preview/isolating_nlos_sigs.png" class="preview z-depth-1 rounded" width="auto" height="auto" alt="isolating_nlos_sigs.png" onerror="this.onerror=null; $('.responsive-img-srcset').remove();">
364
365  </picture>
366
367</figure>
368</div>
369
370        <!-- Entry bib key -->
371        <div id="hashemi2023isolating" class="col-sm-8">
372        <!-- Title -->
373        <div class="title">Isolating Signals in Passive Non-Line-of-Sight Imaging using Spectral Content</div>
374        <!-- Author -->
375        <div class="author">
376        
377
378        <em>Connor Hashemi</em>, Rafael Avelar, and James Leger</div>
379
380        <!-- Journal/Book title and date -->
381        
382        
383        <div class="periodical">
384          <em>IEEE Transactions on Pattern Analysis and Machine Intelligence</em>, 2023
385        </div>
386        <div class="periodical">
387          
388        </div>
389
390          <!-- Links/Buttons -->
391          <div class="links">
392          </div>
393          
394          <div class="badges">
395            <span class="altmetric-embed" data-hide-no-mentions="true" data-hide-less-than="15" data-badge-type="2" data-badge-popover="right"></span>
396              <span class="__dimensions_badge_embed__" data-pmid="" data-hide-zero-citations="true" data-style="small_rectangle" data-legend="hover-right" style="margin-bottom: 3px;"></span>
397          </div>
398
399          
400        </div>
401      </div>
402</li>
403<li>
404<!-- _layouts/bib.html -->
405      <div class="row">
406        <div class="col-sm-2 preview">
407<figure>
408
409  <picture>
410    
411    <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/publication_preview/cvpr_2025-480.webp"></source>
412    <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/publication_preview/cvpr_2025-800.webp"></source>
413    <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/publication_preview/cvpr_2025-1400.webp"></source>
414    
415
416    <!-- Fallback to the original file -->
417    <img src="/assets/img/publication_preview/cvpr_2025.png" class="preview z-depth-1 rounded" width="auto" height="auto" alt="cvpr_2025.png" onerror="this.onerror=null; $('.responsive-img-srcset').remove();">
418
419  </picture>
420
421</figure>
422</div>
423
424        <!-- Entry bib key -->
425        <div id="reed2025ebs" class="col-sm-8">
426        <!-- Title -->
427        <div class="title">EBS-EKF: Accurate and High Frequency Event-based Star Tracking</div>
428        <!-- Author -->
429        <div class="author">
430        
431
432        Albert W Reed, <em>Connor Hashemi</em>, Dennis Melamed, and
433          <span class="more-authors" title="click to view 3 more authors" onclick="
434                var element = $(this);
435                element.attr('title', '');
436                var more_authors_text = element.text() == '3 more authors' ? 'Nitesh Menon, Keigo Hirakawa, Scott McCloskey' : '3 more authors';
437                var cursorPosition = 0;
438                var textAdder = setInterval(function(){
439                  element.text(more_authors_text.substring(0, cursorPosition + 1));
440                  if (++cursorPosition == more_authors_text.length){
441                    clearInterval(textAdder);
442                  }
443              }, '10');
444              ">3 more authors</span>
445</div>
446
447        <!-- Journal/Book title and date -->
448        
449        
450        <div class="periodical">
451          <em>In Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR) (Highlight)</em>, 2025
452        </div>
453        <div class="periodical">
454          
455        </div>
456
457          <!-- Links/Buttons -->
458          <div class="links">
459          </div>
460          
461          <div class="badges">
462            <span class="altmetric-embed" data-hide-no-mentions="true" data-hide-less-than="15" data-badge-type="2" data-badge-popover="right"></span>
463              <span class="__dimensions_badge_embed__" data-pmid="" data-hide-zero-citations="true" data-style="small_rectangle" data-legend="hover-right" style="margin-bottom: 3px;"></span>
464          </div>
465
466          
467        </div>
468      </div>
469</li>
470<li>
471<!-- _layouts/bib.html -->
472      <div class="row">
473        <div class="col-sm-2 preview">
474<figure>
475
476  <picture>
477    
478    <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/publication_preview/iccp_2025-480.webp"></source>
479    <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/publication_preview/iccp_2025-800.webp"></source>
480    <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/publication_preview/iccp_2025-1400.webp"></source>
481    
482
483    <!-- Fallback to the original file -->
484    <img src="/assets/img/publication_preview/iccp_2025.png" class="preview z-depth-1 rounded" width="auto" height="auto" alt="iccp_2025.png" onerror="this.onerror=null; $('.responsive-img-srcset').remove();">
485
486  </picture>
487
488</figure>
489</div>
490
491        <!-- Entry bib key -->
492        <div id="hashemi2025centroiding" class="col-sm-8">
493        <!-- Title -->
494        <div class="title">Centroiding Point-Objects With Event Cameras</div>
495        <!-- Author -->
496        <div class="author">
497        
498
499        <em>Connor Hashemi</em>, Dennis Melamed, Albert W Reed, and
500          <span class="more-authors" title="click to view 3 more authors" onclick="
501                var element = $(this);
502                element.attr('title', '');
503                var more_authors_text = element.text() == '3 more authors' ? 'Nitesh Menon, Keigo Hirakawa, Scott McCloskey' : '3 more authors';
504                var cursorPosition = 0;
505                var textAdder = setInterval(function(){
506                  element.text(more_authors_text.substring(0, cursorPosition + 1));
507                  if (++cursorPosition == more_authors_text.length){
508                    clearInterval(textAdder);
509                  }
510              }, '10');
511              ">3 more authors</span>
512</div>
513
514        <!-- Journal/Book title and date -->
515        
516        
517        <div class="periodical">
518          <em>IEEE Transactions on Pattern Analysis and Machine Intelligence (best paper at ICCP 2025)</em>, 2025
519        </div>
520        <div class="periodical">
521          
522        </div>
523
524          <!-- Links/Buttons -->
525          <div class="links">
526          </div>
527          
528          <div class="badges">
529            <span class="altmetric-embed" data-hide-no-mentions="true" data-hide-less-than="15" data-badge-type="2" data-badge-popover="right"></span>
530              <span class="__dimensions_badge_embed__" data-pmid="" data-hide-zero-citations="true" data-style="small_rectangle" data-legend="hover-right" style="margin-bottom: 3px;"></span>
531          </div>
532
533          
534        </div>
535      </div>
536</li>
537</ol>
538          </div>
539
540
541          <!-- Social -->
542            <div class="social">
543              <div class="contact-icons">
544                <a href="mailto:%63%6F%6E%6E%6F%72.%68%61%73%68%65%6D%69@%6B%69%74%77%61%72%65.%63%6F%6D" title="email"><i class="fas fa-envelope"></i></a>
545            <a href="https://scholar.google.com/citations?user=UrBXI4wAAAAJ" title="Google Scholar" rel="external nofollow noopener" target="_blank"><i class="ai ai-google-scholar"></i></a>
546            <a href="https://github.com/Hashe037" title="GitHub" rel="external nofollow noopener" target="_blank"><i class="fab fa-github"></i></a>
547            <a href="https://www.linkedin.com/in/connor-hashemi" title="LinkedIn" rel="external nofollow noopener" target="_blank"><i class="fab fa-linkedin"></i></a>
548            
549
550              </div>
551
552              <div class="contact-note">
553                Feel free to contact me at [email protected]
554
555              </div>
556
557            </div>
558        </article>
559
560</div>
561
562    </div>
563
564    <!-- Footer -->    
565    <footer class="fixed-bottom">
566      <div class="container mt-0">
567        © Copyright 2025 Connor  Hashemi. Powered by <a href="https://jekyllrb.com/" target="_blank" rel="external nofollow noopener">Jekyll</a> with <a href="https://github.com/alshedivat/al-folio" rel="external nofollow noopener" target="_blank">al-folio</a> theme. Hosted by <a href="https://pages.github.com/" target="_blank" rel="external nofollow noopener">GitHub Pages</a>.
568Last updated: December 03, 2025.
569      </div>
570    </footer>
571
572    <!-- JavaScripts -->
573    <!-- jQuery -->
574  
574<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
574
575
576    <!-- Bootsrap & MDB scripts -->
577  
577<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha256-fgLAgv7fyCGopR/gBNq2iW3ZKIdqIcyshnUULC4vex8=" crossorigin="anonymous"></script>
577
578  
578<script src="https://cdn.jsdelivr.net/npm/[email protected]/js/mdb.min.js" integrity="sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" crossorigin="anonymous"></script>
578
579
580    <!-- Masonry & imagesLoaded -->
581  
581<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/masonry.pkgd.min.js" integrity="sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" crossorigin="anonymous"></script>
581
582  
582<script defer src="https://cdn.jsdelivr.net/npm/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
582
583  
583<script defer src="/assets/js/masonry.js" type="text/javascript"></script>
583
584    
585  <!-- Medium Zoom JS -->
586  
586<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/medium-zoom.min.js" integrity="sha256-7PhEpEWEW0XXQ0k6kQrPKwuoIomz8R8IYyuU1Qew4P8=" crossorigin="anonymous"></script>
586
587  
587<script defer src="/assets/js/zoom.js"></script>
587<!-- Load Common JS -->
588  
588<script defer src="/assets/js/common.js"></script>
588
589  
589<script defer src="/assets/js/copy_code.js" type="text/javascript"></script>
589
590
591    
592  
592<script async src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>
592
593  
593<script async src="https://badge.dimensions.ai/badge.js"></script>
593
594
595    <!-- MathJax -->
596  
596<script type="text/javascript">
597    window.MathJax = {
598      tex: {
599        tags: 'ams'
600      }
601    };
602  </script>
602
603  
603<script defer type="text/javascript" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-mml-chtml.js"></script>
603
604  
604<script defer src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
604
605
606    <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 606-607
606
607<script async src="https://www.googletagmanager.com/gtag/js?id=
607G-QCT9DZE86V
vendor: 12 bytes, line 607
607"></script>
608<script>
609  
vendor: 134 bytes, lines 609-613
609window.dataLayer = window.dataLayer || [];
610  function gtag(){dataLayer.push(arguments);}
611  gtag('js', new Date());
612
613  gtag('config', '
613G-QCT9DZE86V
vendor: 4 bytes, line 613
613');
614</script>
614
615    
616
617<!-- Scrolling Progress Bar -->
618<script type="text/javascript">
619  /*
620   * This JavaScript code has been adapted from the article 
621   * https://css-tricks.com/reading-position-indicator/ authored by Pankaj Parashar, 
622   * published on the website https://css-tricks.com on the 7th of May, 2014.
623   * Couple of changes were made to the original code to make it compatible 
624   * with the `al-foio` theme.
625   */
626  const progressBar = $("#progress");
627  /*
628   * We set up the bar after all elements are done loading.
629   * In some cases, if the images in the page are larger than the intended
630   * size they'll have on the page, they'll be resized via CSS to accomodate
631   * the desired size. This mistake, however, breaks the computations as the
632   * scroll size is computed as soon as the elements finish loading.
633   * To account for this, a minimal delay was introduced before computing the
634   * values.
635   */
636  window.onload = function () {
637    setTimeout(progressBarSetup, 50);
638  };
639  /*
640   * We set up the bar according to the browser.
641   * If the browser supports the progress element we use that.
642   * Otherwise, we resize the bar thru CSS styling
643   */
644  function progressBarSetup() {
645    if ("max" in document.createElement("progress")) {
646      initializeProgressElement();
647      $(document).on("scroll", function() {
648        progressBar.attr({ value: getCurrentScrollPosition() });
649      });
650      $(window).on("resize", initializeProgressElement);
651    } else {
652      resizeProgressBar();
653      $(document).on("scroll", resizeProgressBar);
654      $(window).on("resize", resizeProgressBar);
655    }
656  }
657  /*
658   * The vertical scroll position is the same as the number of pixels that
659   * are hidden from view above the scrollable area. Thus, a value > 0 is
660   * how much the user has scrolled from the top
661   */
662  function getCurrentScrollPosition() {
663    return $(window).scrollTop();
664  }
665
666  function initializeProgressElement() {
667    let navbarHeight = $("#navbar").outerHeight(true);
668    $("body").css({ "padding-top": navbarHeight });
669    $("progress-container").css({ "padding-top": navbarHeight });
670    progressBar.css({ top: navbarHeight });
671    progressBar.attr({
672      max: getDistanceToScroll(),
673      value: getCurrentScrollPosition(),
674    });
675  }
676  /*
677   * The offset between the html document height and the browser viewport
678   * height will be greater than zero if vertical scroll is possible.
679   * This is the distance the user can scroll
680   */
681  function getDistanceToScroll() {
682    return $(document).height() - $(window).height();
683  }
684
685  function resizeProgressBar() {
686    progressBar.css({ width: getWidthPercentage() + "%" });
687  }
688  // The scroll ratio equals the percentage to resize the bar
689  function getWidthPercentage() {
690    return (getCurrentScrollPosition() / getDistanceToScroll()) * 100;
691  }
692</script>
692
693
694  </body>
695</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.