PageSourceSearch

https://ollinlangle.com/projects/

html ollinlangle.com collected 2026-09-29 10:53:30 UTC 40,214 bytes, 193 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.14.6"/><meta data-react-helmet="true" name="description" content="Research Projects &amp; Visualizations"/><meta data-react-helmet="true" name="keywords" content="complex-systems, urban-science, economics, mobility, computational-social-science"/><meta data-react-helmet="true" property="og:title" content="Projects"/><meta data-react-helmet="true" property="og:description" content="Research Projects &amp; Visualizations"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:url" content="https://ollinlangle.com/projects"/><meta data-react-helmet="true" property="og:image" content="https://ollinlangle.com/og-image.png"/><meta data-react-helmet="true" property="og:image:alt" content="Projects"/><meta data-react-helmet="true" property="og:locale" content="en_us"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:creator" content="Ollin D. Langle-Chimal"/><meta data-react-helmet="true" name="twitter:title" content="Projects"/><meta data-react-helmet="true" name="twitter:description" content="Research Projects &amp; Visualizations"/><meta data-react-helmet="true" name="twitter:image" content="https://ollinlangle.com/og-image.png"/><title data-react-helmet="true">Projects | Ollin D. Langle-Chimal</title><link data-react-helmet="true" rel="canonical" href="https://ollinlangle.com/projects"/><link data-react-helmet="true" rel="alternate" hrefLang="en-us" href="https://ollinlangle.com/projects"/><link data-react-helmet="true" rel="alternate" hrefLang="es-mx" href="https://ollinlangle.com/es-mx/projects"/><link data-react-helmet="true" rel="alternate" hrefLang="x-default" href="https://ollinlangle.com/projects"/><link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><style data-styled="" data-styled-version="6.1.19">@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Jost:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');/*!sc*/
2@import url('https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css');/*!sc*/
3*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}/*!sc*/
4:root{--color-bg:#0A0E27;--color-bg-secondary:#1A1F3A;--color-text:#E8E9ED;--color-text-secondary:#A0A8C5;--color-surface:#151B35;--color-border:#2A3250;--color-primary:#FF6B35;--color-secondary:#004E89;--color-accent:#F7931E;--color-bg-rgb:10,14,39;}/*!sc*/
5[data-theme='light']{--color-bg:#FFFFFF;--color-bg-secondary:#F5F7FA;--color-text:#1A1A1A;--color-text-secondary:#6B7280;--color-surface:#FAFBFC;--color-border:#E5E7EB;--color-bg-rgb:255,255,255;}/*!sc*/
6html{font-size:16px;scroll-behavior:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;}/*!sc*/
7body{margin:0;padding:0;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);overflow-x:hidden;transition:background-color 0.3s cubic-bezier(0.4, 0.0, 0.2, 1),color 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
8h1,h2,h3,h4,h5,h6{font-family:"Jost","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;line-height:1.25;color:var(--color-text);margin:0;}/*!sc*/
9h1{font-size:3.75rem;letter-spacing:-0.025em;}/*!sc*/
10@media (max-width:768px){h1{font-size:2.25rem;}}/*!sc*/
11h2{font-size:2.25rem;}/*!sc*/
12@media (max-width:768px){h2{font-size:1.875rem;}}/*!sc*/
13h3{font-size:1.875rem;}/*!sc*/
14@media (max-width:768px){h3{font-size:1.5rem;}}/*!sc*/
15h4{font-size:1.5rem;}/*!sc*/
16h5{font-size:1.25rem;}/*!sc*/
17h6{font-size:1.125rem;}/*!sc*/
18p{margin:0 0 1rem 0;line-height:1.625;color:var(--color-text);}/*!sc*/
19a{color:#FF6B35;text-decoration:none;transition:color 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);cursor:pointer;}/*!sc*/
20a:hover{color:#F7931E;}/*!sc*/
21a:focus-visible{outline:2px solid #FF6B35;outline-offset:2px;border-radius:2px;}/*!sc*/
22ul,ol{margin:0 0 1rem 0;padding-left:1.5rem;}/*!sc*/
23li{margin-bottom:0.5rem;line-height:1.625;}/*!sc*/
24code,pre{font-family:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;}/*!sc*/
25code{background-color:var(--color-surface);padding:0.125rem 0.375rem;border-radius:0.125rem;font-size:0.875em;color:#F7931E;}/*!sc*/
26pre{background-color:var(--color-surface);padding:1rem;border-radius:0.375rem;overflow-x:auto;margin-bottom:1rem;border:1px solid var(--color-border);}/*!sc*/
27pre code{background-color:transparent;padding:0;border-radius:0;color:var(--color-text);}/*!sc*/
28blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid #FF6B35;background-color:var(--color-surface);border-radius:0.375rem;font-style:italic;color:var(--color-text-secondary);}/*!sc*/
29blockquote p:last-child{margin-bottom:0;}
29/*!sc*/
30img{max-width:100%;height:auto;display:block;}/*!sc*/
31hr{border:0;height:1px;background-color:var(--color-border);margin:2rem 0;}/*!sc*/
32table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;}/*!sc*/
33th,td{padding:0.75rem;text-align:left;border-bottom:1px solid var(--color-border);}/*!sc*/
34th{font-weight:600;background-color:var(--color-surface);}/*!sc*/
35input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit;}/*!sc*/
36button{cursor:pointer;border:none;background:none;padding:0;color:inherit;}/*!sc*/
37::selection{background-color:#FF6B35;color:#0A0E27;}/*!sc*/
38::-moz-selection{background-color:#FF6B35;color:#0A0E27;}/*!sc*/
39::-webkit-scrollbar{width:12px;height:12px;}/*!sc*/
40::-webkit-scrollbar-track{background:var(--color-bg);}/*!sc*/
41::-webkit-scrollbar-thumb{background:#FF6B35;border-radius:9999px;border:3px solid var(--color-bg);}/*!sc*/
42::-webkit-scrollbar-thumb:hover{background:#F7931E;}/*!sc*/
43*{scrollbar-width:thin;scrollbar-color:#FF6B35 var(--color-bg);}/*!sc*/
44.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}/*!sc*/
45*:focus-visible{outline:2px solid #FF6B35;outline-offset:2px;}/*!sc*/
46*:focus:not(:focus-visible){outline:none;}/*!sc*/
47@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}}/*!sc*/
48@media print{body{background-color:white;color:black;}a{text-decoration:underline;}nav,aside,footer{display:none;}}/*!sc*/
49data-styled.g1[id="sc-global-cBdPHX1"]{content:"sc-global-cBdPHX1,"}/*!sc*/
50.jrpXdn{position:fixed;top:0;left:0;right:0;z-index:1100;background-color:transparent;backdrop-filter:none;border-bottom:1px solid transparent;transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
51data-styled.g2[id="Header__HeaderWrapper-sc-17836s2-0"]{content:"jrpXdn,"}/*!sc*/
52.gynvdj{max-width:1280px;margin:0 auto;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;}/*!sc*/
53data-styled.g3[id="Header__Nav-sc-17836s2-1"]{content:"gynvdj,"}/*!sc*/
54.iYuVWU{font-family:"Jost","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-0.025em;transition:color 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
55.iYuVWU:hover{color:#FF6B35;}/*!sc*/
56data-styled.g4[id="Header__Logo-sc-17836s2-2"]{content:"iYuVWU,"}/*!sc*/
57.hvvEFe{display:flex;align-items:center;gap:1.5rem;}/*!sc*/
58@media (max-width:768px){.hvvEFe{display:none;position:fixed;top:70px;left:0;right:0;background-color:var(--color-surface);flex-direction:column;padding:1.5rem;border-bottom:1px solid var(--color-border);backdrop-filter:blur(12px);}}/*!sc*/
59data-styled.g5[id="Header__NavLinks-sc-17836s2-3"]{content:"hvvEFe,"}/*!sc*/
60.dWMbER{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;font-weight:500;color:var(--color-text);position:relative;transition:color 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
61.dWMbER::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background-color:#FF6B35;transform:scaleX(0);transition:transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
62.dWMbER:hover{color:#FF6B35;}/*!sc*/
63.dWMbER:hover::after{transform:scaleX(1);}/*!sc*/
64.dWMbER.active{color:#FF6B35;}/*!sc*/
65.dWMbER.active::after{transform:scaleX(1);}/*!sc*/
66data-styled.g6[id="Header__NavLink-sc-17836s2-4"]{content:"dWMbER,"}/*!sc*/
67.eVRumG{display:flex;gap:0.5rem;}/*!sc*/
68data-styled.g7[id="Header__LanguageSwitcher-sc-17836s2-5"]{content:"eVRumG,"}/*!sc*/
69.eWLAbV{font-family:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;font-size:0.875rem;font-weight:500;color:#FF6B35;padding:0.5rem 0.75rem;border:1px solid #FF6B35;border-radius:0.375rem;background-color:rgba(255, 107, 53, 0.1);cursor:pointer;transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);text-transform:uppercase;}/*!sc*/
70.eWLAbV:hover{color:#FF6B35;border-color:#FF6B35;background-color:rgba(255,107,53,0.1);}/*!sc*/
71.dklIUD{font-family:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;font-size:0.875rem;font-weight:500;color:var(--color-text-secondary);padding:0.5rem 0.75rem;border:1px solid var(--color-border);border-radius:0.375rem;background-color:transparent;cursor:pointer;transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);text-transform:uppercase;}/*!sc*/
72.dklIUD:hover{color:#FF6B35;border-color:#FF6B35;background-color:rgba(255,107,53,0.1);}/*!sc*/
73data-styled.g8[id="Header__LangButton-sc-17836s2-6"]{content:"eWLAbV,dklIUD,"}/*!sc*/
74.fFMim{display:none;flex-direction:column;gap:4px;background:transparent;border:none;cursor:pointer;padding:0.5rem;}/*!sc*/
75@media (max-width:768px){.fFMim{display:flex;}}/*!sc*/
76.fFMim span{width:24px;height:2px;background-color:var(--color-text);transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
77.fFMim span:nth-child(1){transform:none;}/*!sc*/
78.fFMim span:nth-child(2){opacity:1;}/*!sc*/
79.fFMim span:nth-child(3){transform:none;}/*!sc*/
80data-styled.g9[id="Header__MobileMenuButton-sc-17836s2-7"]{content:"fFMim,"}/*!sc*/
81.kHVmag{background:transparent;border:1px solid var(--color-border);border-radius:9999px;width:40px;height:40px;
81display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);font-size:1.25rem;transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);margin-left:1rem;}/*!sc*/
82.kHVmag:hover{border-color:#FF6B35;color:#FF6B35;background:rgba(255,107,53,0.1);}/*!sc*/
83@media (max-width:768px){.kHVmag{margin-left:0;}}/*!sc*/
84data-styled.g10[id="Header__ThemeToggle-sc-17836s2-8"]{content:"kHVmag,"}/*!sc*/
85.cPFteU{display:flex;align-items:center;gap:1rem;}/*!sc*/
86data-styled.g11[id="Header__DesktopActions-sc-17836s2-9"]{content:"cPFteU,"}/*!sc*/
87.hZgUt{display:flex;align-items:center;gap:0.75rem;}/*!sc*/
88@media (min-width:768px){.hZgUt{display:none;}}/*!sc*/
89data-styled.g12[id="Header__MobileActions-sc-17836s2-10"]{content:"hZgUt,"}/*!sc*/
90.bULOHN{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding:3rem 1.5rem;margin-top:5rem;}/*!sc*/
91data-styled.g13[id="Footer__FooterWrapper-sc-jaeqzk-0"]{content:"bULOHN,"}/*!sc*/
92.iQowSC{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;}/*!sc*/
93@media (max-width:768px){.iQowSC{grid-template-columns:1fr;}}/*!sc*/
94data-styled.g14[id="Footer__FooterContent-sc-jaeqzk-1"]{content:"iQowSC,"}/*!sc*/
95.hzRrLe{display:flex;flex-direction:column;gap:1rem;}/*!sc*/
96data-styled.g15[id="Footer__FooterSection-sc-jaeqzk-2"]{content:"hzRrLe,"}/*!sc*/
97.jMqLUe{font-family:"Jost","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.125rem;font-weight:600;color:var(--color-text);margin-bottom:0.5rem;}/*!sc*/
98data-styled.g16[id="Footer__FooterTitle-sc-jaeqzk-3"]{content:"jMqLUe,"}/*!sc*/
99.jlxgqc{font-size:0.875rem;color:var(--color-text-secondary);line-height:1.625;margin:0;}/*!sc*/
100data-styled.g17[id="Footer__FooterText-sc-jaeqzk-4"]{content:"jlxgqc,"}/*!sc*/
101.gvYEeR{display:flex;gap:1rem;flex-wrap:wrap;}/*!sc*/
102data-styled.g18[id="Footer__SocialLinks-sc-jaeqzk-5"]{content:"gvYEeR,"}/*!sc*/
103.cVFpvx{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--color-text-secondary);transition:all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);}/*!sc*/
104.cVFpvx:hover{color:#FF6B35;transform:translateY(-2px);}/*!sc*/
105.cVFpvx::before{content:'';width:20px;height:20px;background-color:currentColor;mask-size:contain;mask-repeat:no-repeat;mask-position:center;}/*!sc*/
106data-styled.g19[id="Footer__SocialLink-sc-jaeqzk-6"]{content:"cVFpvx,"}/*!sc*/
107.dmOyhI::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");}/*!sc*/
108data-styled.g20[id="Footer__GitHubLink-sc-jaeqzk-7"]{content:"dmOyhI,"}/*!sc*/
109.jAVeyI::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z'/%3E%3C/svg%3E");}/*!sc*/
110data-styled.g21[id="Footer__LinkedInLink-sc-jaeqzk-8"]{content:"jAVeyI,"}/*!sc*/
111.hiEvCn::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 0l11 6v8.5c0 5.25-3.25 10.2-11 13.5-7.75-3.3-11-8.25-11-13.5v-8.5l11-6zm0 2.18l-9 4.91v7.41c0 4.09 2.59 8.05 9 10.9 6.41-2.85 9-6.81 9-10.9v-7.41l-9-4.91zm1 10.32v5.5h-2v-5.5h-3l4-4 4 4h-3z'/%3E%3C/svg%3E");}/*!sc*/
112data-styled.g22[id="Footer__ScholarLink-sc-jaeqzk-9"]{content:"hiEvCn,"}/*!sc*/
113.gyOWIP::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M0 3v18h24v-18h-24zm6.623 7.929l-4.623 5.712v-9.458l4.623 3.746zm-4.141-5.929h19.035l-9.517 7.713-9.518-7.713zm5.694 7.188l3.824 3.099 3.83-3.104 5.612 6.817h-18.779l5.513-6.812zm9.208-1.264l4.616-3.741v9.348l-4.616-5.607z'/%3E%3C/svg%3E");}/*!sc*/
114data-styled.g23[id="Footer__EmailLink-sc-jaeqzk-10"]{content:"gyOWIP,"}/*!sc*/
115.fFDhGG{text-align:center;padding-top:2rem;margin-top:2rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:0.875rem;}/*!sc*/
116data-styled.g24[id="Footer__Copyright-sc-jaeqzk-11"]{content:"fFDhGG,"}/*!sc*/
117.ghjyuh{min-height:100vh;display:flex;flex-direction:column;}/*!sc*/
118data-styled.g25[id="Layout__MainWrapper-sc-147ozt3-0"]{content:"ghjyuh,"}/*!sc*/
119.cZWiyp{flex:1;margin-top:70px;}/*!sc*/
120data-styled.g26[id="Layout__MainContent-sc-147ozt3-1"]{content:"cZWiyp,"}/*!sc*/
121.fJRVYp{min-height:40vh;display:flex;flex-direction:column;justify-content:center;padding:5rem 1.5rem;background:linear-gradient( 135deg,var(--color-bg) 0%,var(--color-surface) 100% );position:relative;overflow:hidden;}/*!sc*/
122.fJRVYp::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;
122background:radial-gradient( circle at 30% 50%,rgba(255,107,53,0.15) 0%,transparent 60% );pointer-events:none;}/*!sc*/
123data-styled.g60[id="projects__ProjectsHero-sc-1m2r3ln-0"]{content:"fJRVYp,"}/*!sc*/
124.lejdUI{max-width:1024px;margin:0 auto;position:relative;z-index:1;text-align:center;}/*!sc*/
125data-styled.g61[id="projects__HeroContent-sc-1m2r3ln-1"]{content:"lejdUI,"}/*!sc*/
126.hFaXzq{font-size:3.75rem;margin-bottom:1rem;background:linear-gradient( 135deg,#FF6B35 0%,#F7931E 100% );-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}/*!sc*/
127@media (max-width:768px){.hFaXzq{font-size:2.25rem;}}/*!sc*/
128data-styled.g62[id="projects__Title-sc-1m2r3ln-2"]{content:"hFaXzq,"}/*!sc*/
129.gPdNmL{font-size:1.25rem;color:var(--color-text-secondary);max-width:700px;margin:0 auto;line-height:1.625;}/*!sc*/
130data-styled.g63[id="projects__Subtitle-sc-1m2r3ln-3"]{content:"gPdNmL,"}/*!sc*/
131.dgtErz{max-width:1280px;margin:0 auto;padding:4rem 1.5rem;}/*!sc*/
132data-styled.g64[id="projects__ProjectsSection-sc-1m2r3ln-4"]{content:"dgtErz,"}/*!sc*/
133.bmgTMN{margin-bottom:4rem;}/*!sc*/
134data-styled.g65[id="projects__CategorySection-sc-1m2r3ln-5"]{content:"bmgTMN,"}/*!sc*/
135.kZhWWj{font-size:2.25rem;margin-bottom:2rem;color:var(--color-text);display:flex;align-items:center;gap:1rem;}/*!sc*/
136.kZhWWj::after{content:'';flex:1;height:2px;background:linear-gradient( 90deg,#FF6B35 0%,transparent 100% );}/*!sc*/
137data-styled.g66[id="projects__CategoryTitle-sc-1m2r3ln-6"]{content:"kZhWWj,"}/*!sc*/
138.djSfLI{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;}/*!sc*/
139@media (max-width:640px){.djSfLI{grid-template-columns:1fr;}}/*!sc*/
140data-styled.g67[id="projects__ProjectGrid-sc-1m2r3ln-7"]{content:"djSfLI,"}/*!sc*/
141.jvnZEi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0.75rem;padding:0;transition:all 0.3s ease;text-decoration:none;display:flex;flex-direction:column;overflow:hidden;}/*!sc*/
142.jvnZEi:hover{transform:translateY(-4px);border-color:#FF6B35;}/*!sc*/
143data-styled.g68[id="projects__ProjectCard-sc-1m2r3ln-8"]{content:"jvnZEi,"}/*!sc*/
144.doXPcP{width:100%;aspect-ratio:1/1;background:url(/assets/images/workreach/v2/card_workreach.jpg) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
145.doXPcP::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
146.hndyNE{width:100%;aspect-ratio:1/1;background:url(/assets/images/utopias/card_utopias.jpg) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
147.hndyNE::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
148.jMPynv{width:100%;aspect-ratio:1/1;background:url(/assets/images/publication_preview/map_gini_bar.gif) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
149.jMPynv::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
150.eEhXWQ{width:100%;aspect-ratio:1/1;background:url(/assets/images/bike_figure.png) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
151.eEhXWQ::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
152.hAhaWH{width:100%;aspect-ratio:1/1;background:url(/assets/images/fractals/lsystem.gif) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
153.hAhaWH::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
154.ibdilH{width:100%;aspect-ratio:1/1;background:url(/assets/images/asylum/dynamic_map.gif) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
155.ibdilH::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
156.dxyfYD{width:100%;aspect-ratio:1/1;background:url(/assets/images/unmet/spatial_trends.png) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
157.dxyfYD::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
158.glscsW{width:100%;aspect-ratio:1/1;background:url(/assets/images/covidSIS/opinion_cycle_2.gif) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
159.glscsW::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
160.eVwCsh{width:100%;aspect-ratio:1/1;background:url(/assets/images/CA/2site.gif) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:1;position:relative;overflow:hidden;}/*!sc*/
161.eVwCsh::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg, transparent 0%, rgba(var(--color-bg-rgb), 0.7) 100%);}/*!sc*/
162.cSqptM{width:100%;aspect-ratio:1/1;background:linear-gradient(
163      135deg,
164      rgba(255, 107, 53, 0.1) 0%,
165      rgba(0, 78, 137, 0.1) 100%
166    );display:flex;align-items:center;justify-content:center;font-size:3.75rem;color:#FF6B35;opacity:0.3;position:relative;overflow:hidden;}/*!sc*/
167.cSqptM::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:none;}/*!sc*/
168data-styled.g69[id="projects__ProjectImage-sc-1m2r3ln-9"]{content:"doXPcP,hndyNE,jMPynv,eEhXWQ,hAhaWH,ibdilH,dxyfYD,glscsW,eVwCsh,cSqptM,"}/*!sc*/
169.cwIbCY{padding:1.5rem;display:flex;flex-direction:column;gap:0.75rem;flex-grow:1;}/*!sc*/
170data-styled.g70[id="projects__ProjectInfo-sc-1m2r3ln-10"]{content:"cwIbCY,"}/*!sc*/
171.jiWOwf{display:inline-block;padding:0.25rem 0.75rem;background:rgba(255,107,53,0.1);border-radius:9999px;font-size:0.75rem;color:#FF6B35;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;align-self:flex-start;}/*!sc*/
172data-styled.g71[id="projects__ProjectCategory-sc-1m2r3ln-11"]{content:"jiWOwf,"}/*!sc*/
173.fyrhRF{font-size:1.5rem;color:var(--color-text);margin:0;}/*!sc*/
174data-styled.g72[id="projects__ProjectTitle-sc-1m2r3ln-12"]{content:"fyrhRF,"}/*!sc*/
175.kOOHqI{color:var(--color-text-secondary);line-height:1.625;flex-grow:1;}/*!sc*/
176data-styled.g73[id="projects__ProjectDescription-sc-1m2r3ln-13"]{content:"kOOHqI,"}/*!sc*/
177</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript>
177<script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script>
177<link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="dns-prefetch" href="https://www.googletagmanager.com"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="Layout__MainWrapper-sc-147ozt3-0 ghjyuh"><header class="Header__HeaderWrapper-sc-17836s2-0 jrpXdn"><nav class="Header__Nav-sc-17836s2-1 gynvdj"><a class="Header__Logo-sc-17836s2-2 iYuVWU" href="/">Ollin D. Langle-Chimal</a><div class="Header__NavLinks-sc-17836s2-3 hvvEFe"><a aria-current="page" class="Header__NavLink-sc-17836s2-4 dWMbER active" href="/projects/">Projects</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/publications/">Publications</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/blog/">Blog</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/teaching/">Teaching</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/people/">People</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/books/">Books</a><a class="Header__NavLink-sc-17836s2-4 dWMbER" href="/cv/">CV</a><div class="Header__LanguageSwitcher-sc-17836s2-5 eVRumG"><button aria-label="Switch to English" class="Header__LangButton-sc-17836s2-6 eWLAbV">EN</button><button aria-label="Cambiar a Español" class="Header__LangButton-sc-17836s2-6 dklIUD">ES</button></div></div><div class="Header__DesktopActions-sc-17836s2-9 cPFteU"><button aria-label="Switch to light mode" class="Header__ThemeToggle-sc-17836s2-8 kHVmag">☀️</button></div><div class="Header__MobileActions-sc-17836s2-10 hZgUt"><button aria-label="Switch to light mode" class="Header__ThemeToggle-sc-17836s2-8 kHVmag">☀️</button><button aria-label="Toggle mobile menu" class="Header__MobileMenuButton-sc-17836s2-7 fFMim"><span></span><span></span><span></span></button></div></nav></header><main class="Layout__MainContent-sc-147ozt3-1 cZWiyp"><section class="projects__ProjectsHero-sc-1m2r3ln-0 fJRVYp"><div class="projects__HeroContent-sc-1m2r3ln-1 lejdUI"><h1 class="projects__Title-sc-1m2r3ln-2 hFaXzq">Projects</h1><p class="projects__Subtitle-sc-1m2r3ln-3 gPdNmL">Research Projects &amp; Visualizations</p></div></section><section class="projects__ProjectsSection-sc-1m2r3ln-4 dgtErz"><div class="projects__CategorySection-sc-1m2r3ln-5 bmgTMN"><h2 class="projects__CategoryTitle-sc-1m2r3ln-6 kZhWWj">Research</h2><div class="projects__ProjectGrid-sc-1m2r3ln-7 djSfLI"><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/workreach/"><div imageSrc="/assets/images/workreach/v2/card_workreach.jpg" class="projects__ProjectImage-sc-1m2r3ln-9 doXPcP"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">WorkReach: How Far Do We Go for a Better Job?</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">A model to understand why people work where they work, how far they are willing to travel for a better job, and how that changes between Mexico City, Rio de Janeiro, Los Angeles, and the Bay Area.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/utopias/"><div imageSrc="/assets/images/utopias/card_utopias.jpg" class="projects__ProjectImage-sc-1m2r3ln-9 hndyNE"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Who Reaches the UTOPÍAS? Third Places and Mobility in Iztapalapa</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">We used mobility data from cell phones to understand who visits the 13 UTOPÍAS in Iztapalapa, where they come from, and what transit, services, and violence have to do with it.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/socioeconomic_disparities_covid/"><div imageSrc="/assets/images/publication_preview/map_gini_bar.gif" class="projects__ProjectImage-sc-1m2r3ln-9 jMPynv"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span>
177<h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Who Could Stay Home? Mobility and Inequality During COVID-19</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">We used data from 281 million phones in six countries to see who could stay home, who left the city, and who stopped going to work during the pandemic.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/earthquake/"><div imageSrc="/assets/images/bike_figure.png" class="projects__ProjectImage-sc-1m2r3ln-9 eEhXWQ"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">19S - Mexico&#x27;s Resilience in an Earthquake Event</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">A study of Mexico City&#x27;s resilience after the September 19, 2017 earthquake using mobility and social media data.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/fractals/"><div imageSrc="/assets/images/fractals/lsystem.gif" class="projects__ProjectImage-sc-1m2r3ln-9 hAhaWH"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Fractals from random walkers</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Using L-systems and Diffusion-Limited Aggregation to create fractals.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/asylum_seekers/"><div imageSrc="/assets/images/asylum/dynamic_map.gif" class="projects__ProjectImage-sc-1m2r3ln-9 ibdilH"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Analysis of a Temporal Asylum Seekers Network</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Using temporal networks to analyze asylum seekers petitions between countries from 2000 to 2017.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/ebola/"><div imageSrc="/assets/images/unmet/spatial_trends.png" class="projects__ProjectImage-sc-1m2r3ln-9 dxyfYD"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Listening to Communities During the Ebola Crisis</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">How unmet needs shaped behaviors during the 2014-2015 Ebola outbreak in Sierra Leone.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/distanciamiento/"><div imageSrc="/assets/images/covidSIS/opinion_cycle_2.gif" class="projects__ProjectImage-sc-1m2r3ln-9 glscsW"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Social Distancing and Self-Isolation in Times of COVID-19</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Using a SIS model to simulate the effect of social distancing and self-isolation in the spreading of COVID-19.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/ca/"><div imageSrc="/assets/images/CA/2site.gif" class="projects__ProjectImage-sc-1m2r3ln-9 eVwCsh"></div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Research</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">A Cellular Automata Sznajd Model</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Using a Sznajd model to simulate opinion dynamics in a 2D lattice and the effect of bots.</p></div></a></div></div><div class="projects__CategorySection-sc-1m2r3ln-5 bmgTMN"><h2 class="projects__CategoryTitle-sc-1m2r3ln-6 kZhWWj">Explorations</h2><div class="projects__ProjectGrid-sc-1m2r3ln-7 djSfLI"><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/project_3/"><div class="projects__ProjectImage-sc-1m2r3ln-9 cSqptM">3</div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Explorations</span>
177<h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Voting patterns in the Mexican Senate</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">A network representation of the voting patterns of the Mexican Senate in the LXII and LXIII legislatures between 2012 and 2017.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/project_2/"><div class="projects__ProjectImage-sc-1m2r3ln-9 cSqptM">3</div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Explorations</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Scraping the Mexican Senate</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Using Julia to scrape useful information from the Mexican Senate&#x27;s website.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/coalitions/"><div class="projects__ProjectImage-sc-1m2r3ln-9 cSqptM">3</div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Explorations</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Mexican Senate Coalitions</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">Coalitions in the Mexican Senate from a complex networks point of view.</p></div></a><a class="projects__ProjectCard-sc-1m2r3ln-8 jvnZEi" href="/projects/bot_emmett/"><div class="projects__ProjectImage-sc-1m2r3ln-9 cSqptM">3</div><div class="projects__ProjectInfo-sc-1m2r3ln-10 cwIbCY"><span class="projects__ProjectCategory-sc-1m2r3ln-11 jiWOwf">Explorations</span><h3 class="projects__ProjectTitle-sc-1m2r3ln-12 fyrhRF">Bot Emmett Brown</h3><p class="projects__ProjectDescription-sc-1m2r3ln-13 kOOHqI">A Twitter bot that generates text according to the Doc&#x27;s dialogues in the 3 Back to the Future movies.</p></div></a></div></div></section></main><footer class="Footer__FooterWrapper-sc-jaeqzk-0 bULOHN"><div class="Footer__FooterContent-sc-jaeqzk-1 iQowSC"><div class="Footer__FooterSection-sc-jaeqzk-2 hzRrLe"><h3 class="Footer__FooterTitle-sc-jaeqzk-3 jMqLUe">About</h3><p class="Footer__FooterText-sc-jaeqzk-4 jlxgqc">Complex Systems Researcher specializing in urban mobility, computational social science, and statistical physics.</p></div><div class="Footer__FooterSection-sc-jaeqzk-2 hzRrLe"><h3 class="Footer__FooterTitle-sc-jaeqzk-3 jMqLUe">Connect</h3><div class="Footer__SocialLinks-sc-jaeqzk-5 gvYEeR"><a href="https://github.com/ollin18" target="_blank" rel="noopener noreferrer" aria-label="GitHub" class="Footer__SocialLink-sc-jaeqzk-6 Footer__GitHubLink-sc-jaeqzk-7 cVFpvx dmOyhI">GitHub</a><a href="https://www.linkedin.com/in/ollin18" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" class="Footer__SocialLink-sc-jaeqzk-6 Footer__LinkedInLink-sc-jaeqzk-8 cVFpvx jAVeyI">LinkedIn</a><a href="https://scholar.google.com/citations?user=L1QJLFoAAAAJ&amp;hl" target="_blank" rel="noopener noreferrer" aria-label="Google Scholar" class="Footer__SocialLink-sc-jaeqzk-6 Footer__ScholarLink-sc-jaeqzk-9 cVFpvx hiEvCn">Scholar</a><a href="mailto:[email protected]" aria-label="Email" class="Footer__SocialLink-sc-jaeqzk-6 Footer__EmailLink-sc-jaeqzk-10 cVFpvx gyOWIP">Email</a></div></div><div class="Footer__FooterSection-sc-jaeqzk-2 hzRrLe"><h3 class="Footer__FooterTitle-sc-jaeqzk-3 jMqLUe">Site</h3><p class="Footer__FooterText-sc-jaeqzk-4 jlxgqc">Built with Gatsby, React, and styled-components. Powered by GSAP for scroll animations.</p></div></div><div class="Footer__Copyright-sc-jaeqzk-11 fFDhGG">© <!-- -->2026<!-- --> Ollin D. Langle-Chimal. <!-- -->All rights reserved.<br/>Generated by Ollin</div></footer></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div>
vendor: 66 bytes, line 177
177<script async="" src="https://www.googletagmanager.com/gtag/js?id=
177G-9FS4V8SGLR
vendor: 11 bytes, line 177
177"></script>
177<script>
178      
179      function gaOptout(){document.cookie=disableStr+'=true; expires=Thu, 31 Dec 2099 23:59:59 UTC;path=/',window[disableStr]=!0}var gaProperty='G-9FS4V8SGLR',disableStr='ga-disable-'+gaProperty;document.cookie.indexOf(disableStr+'=true')>-1&&(window[disableStr]=!0);
180      if(!(navigator.doNotTrack == "1" || window.doNotTrack == "1")) {
181        
vendor: 152 bytes, lines 181-185
181window.dataLayer = window.dataLayer || [];
182        function gtag(){dataLayer.push(arguments);}
183        gtag('js', new Date());
184
185        gtag('config', '
185G-9FS4V8SGLR
vendor: 75 bytes, lines 185-186
185', {"anonymize_ip":true,"cookie_expires":0,"send_page_view":false});
186      
186}
187      </script>
187<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/projects/";/*]]>*/</script>
187<!-- slice-start id="_gatsby-scripts-1" -->
188          
188<script
189            id="gatsby-chunk-mapping"
190          >
191            window.___chunkMapping="{\"app\":[\"/app-778ff437768c1f551c1a.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-f337ef602b06ee964200.js\"],\"component---src-pages-blog-jsx\":[\"/component---src-pages-blog-jsx-20759427d2695e7f55ed.js\"],\"component---src-pages-books-jsx\":[\"/component---src-pages-books-jsx-48898111d2b608c0ad1d.js\"],\"component---src-pages-cv-jsx\":[\"/component---src-pages-cv-jsx-b79eec696a2b3512b569.js\"],\"component---src-pages-index-jsx\":[\"/component---src-pages-index-jsx-01f4dd51ca7a402bfeb0.js\"],\"component---src-pages-page-2-js\":[\"/component---src-pages-page-2-js-77e179c82fc1d05bd2cd.js\"],\"component---src-pages-people-jsx\":[\"/component---src-pages-people-jsx-256e40202b9c9ff85b41.js\"],\"component---src-pages-projects-jsx\":[\"/component---src-pages-projects-jsx-d4ca39b38575b4e224f5.js\"],\"component---src-pages-publications-jsx\":[\"/component---src-pages-publications-jsx-b5196e599b390235b5f5.js\"],\"component---src-pages-teaching-jsx\":[\"/component---src-pages-teaching-jsx-6551f218c762ae82bf4e.js\"],\"component---src-pages-using-ssr-js\":[\"/component---src-pages-using-ssr-js-96362a78fd84d7080f7f.js\"],\"component---src-pages-using-typescript-tsx\":[\"/component---src-pages-using-typescript-tsx-5bcf42512638b022a421.js\"],\"component---src-templates-blog-post-jsx\":[\"/component---src-templates-blog-post-jsx-8975796e2e28586ff5ee.js\"],\"component---src-templates-book-review-jsx\":[\"/component---src-templates-book-review-jsx-f973f2e45b2fcf27fe83.js\"],\"component---src-templates-project-detail-jsx\":[\"/component---src-templates-project-detail-jsx-5c9e02e9e9a20a88272b.js\"]}";
192          </script>
192
193        
193<script>window.___webpackCompilationHash="2f32b7108bf6cf892f8b";</script>
193<script src="/webpack-runtime-c29fd5025c212eda7512.js" async></script>
193<script src="/framework-a98cd6097609b685b73f.js" async></script>
193<script src="/94726e6d-823c10e1ea9abde67a2e.js" async></script>
193<script src="/app-778ff437768c1f551c1a.js" async></script>
193<!-- slice-end id="_gatsby-scripts-1" --></body></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.