{"id":1623,"date":"2026-10-25T09:11:39","date_gmt":"2026-10-25T01:11:39","guid":{"rendered":"https:\/\/oasis.eng.buffalo.edu\/?page_id=1623"},"modified":"2026-10-25T10:25:48","modified_gmt":"2026-10-25T02:25:48","slug":"lab-home","status":"publish","type":"page","link":"https:\/\/oasis.eng.buffalo.edu\/","title":{"rendered":"Lab Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1623\" class=\"elementor elementor-1623\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5f13f6da elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5f13f6da\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2bd71cff\" data-id=\"2bd71cff\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-281f25c4 elementor-widget elementor-widget-text-editor\" data-id=\"281f25c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<!-- OASIS site: 1-Lab-Home -- paste this whole file into one Elementor HTML widget -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Public+Sans:wght@400;500;600;700&#038;family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n:root{\n  --ink:#1B2E22; --forest:#24583A; --leaf:#3E8A56; --leaf-deep:#2C6B40;\n  --mint:#E4F2DE; --paper:#F4F9F1; --line:#D3E4CC; --muted:#4D6154; --white:#FFFFFF;\n  --ember:#B85A2A;\n  --serif:\"Source Serif 4\", Georgia, \"Times New Roman\", serif;\n  --sans:\"Public Sans\", \"Segoe UI\", Helvetica, Arial, sans-serif;\n}\n*{box-sizing:border-box}\nhtml,body{margin:0}\nhtml{scroll-padding-top:80px}\nbody{font-family:var(--sans);color:var(--ink);background:var(--white);font-size:17px;line-height:1.6}\na{color:var(--leaf-deep)}\na:focus-visible,button:focus-visible{outline:3px solid var(--ember);outline-offset:3px}\nimg{max-width:100%}\n.wrap{max-width:1140px;margin:0 auto;padding:0 24px}\n.measure{max-width:68ch}\n\n\/* header *\/\n.nav{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}\n.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px}\n.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink)}\n.brand b{font-family:var(--serif);font-weight:600;font-size:1.45rem;letter-spacing:.03em;color:var(--forest)}\n.brand span{font-size:.8rem;color:var(--muted)}\n.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px 18px;font-size:.93rem}\n.nav ul a{color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}\n.nav ul a:hover{color:var(--leaf-deep)}\n.nav ul a[aria-current]{color:var(--leaf-deep);border-bottom-color:var(--leaf)}\n.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:6px;padding:6px 12px;font:600 .9rem var(--sans);color:var(--ink);cursor:pointer}\n\n\/* page heading band *\/\n.page-head{background:var(--mint);border-bottom:1px solid var(--line)}\n.page-head .wrap{padding-top:52px;padding-bottom:44px}\n.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;margin:0 0 10px;color:var(--forest)}\n.page-head p{margin:0;color:var(--muted);max-width:62ch;font-size:1.05rem}\n\nsection{padding:68px 0}\n.tint{background:var(--paper)}\nh2{font-family:var(--serif);font-weight:600;font-size:clamp(1.55rem,2.6vw,2.05rem);line-height:1.2;margin:0 0 14px;color:var(--forest)}\nh3{font-size:1.08rem;margin:0 0 8px;line-height:1.35}\n.lead{font-size:1.08rem;color:var(--muted)}\n.sec-top{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:24px}\n.sec-top h2{margin:0}\n\n\/* buttons *\/\n.btn{display:inline-block;padding:10px 18px;border-radius:6px;font-weight:600;font-size:.95rem;text-decoration:none;border:1px solid transparent}\n.btn-primary{background:var(--leaf-deep);color:#fff}\n.btn-primary:hover{background:var(--forest)}\n.btn-line{border-color:var(--leaf);color:var(--leaf-deep);background:var(--white)}\n\n\/* hero *\/\n.hero video{display:block;width:100%;aspect-ratio:16\/9;max-height:74vh;object-fit:cover;background:var(--ink)}\n.hero-media{position:relative}\n.hero-media button{position:absolute;top:14px;right:14px;font:500 .85rem var(--sans);background:rgba(255,255,255,.88);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}\n.hero-text{background:var(--mint);border-bottom:1px solid var(--line)}\n.hero-text .wrap{padding-top:40px;padding-bottom:44px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end}\n.hero-text h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.13;margin:0;color:var(--forest)}\n.hero-text p{margin:0;color:var(--muted);font-size:1.05rem}\n.cta{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}\n\n\/* hazard-to-household chain *\/\n.chain{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0}\n.chain li{position:relative;padding:26px 22px 4px 0}\n.chain li::before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:var(--c)}\n.chain li:not(:last-child)::after{content:\"\";position:absolute;top:-5px;right:-1px;border-left:12px solid var(--c);border-top:8px solid transparent;border-bottom:8px solid transparent}\n.chain .step{font-weight:700;font-size:.85rem;color:var(--c);display:block;margin-bottom:4px}\n.chain p{margin:0;font-size:.95rem;color:var(--muted)}\n.chain li:nth-child(1){--c:var(--ember)}\n.chain li:nth-child(2){--c:#8C7A2E}\n.chain li:nth-child(3){--c:var(--leaf)}\n.chain li:nth-child(4){--c:var(--forest)}\n\n\/* generic card grid *\/\n.grid{display:grid;gap:22px}\n.g2{grid-template-columns:repeat(2,1fr)}\n.g3{grid-template-columns:repeat(3,1fr)}\n.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:24px}\n.card p{margin:0 0 10px;color:var(--muted);font-size:.95rem}\n.card p:last-child{margin-bottom:0}\n.meta{font-size:.84rem;color:var(--muted);margin:0 0 8px}\n.tag{display:inline-block;font-size:.76rem;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--mint);color:var(--leaf-deep);margin:0 6px 8px 0}\n.tag.warm{background:#F7E7DC;color:#8A3E17}\n.tag.gold{background:#F3EDCF;color:#6B5A12}\n\n\/* slider *\/\n.slider{position:relative}\n.track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 18px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}\n.slide{flex:0 0 calc((100% - 40px)\/3);scroll-snap-align:start;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}\n.slide .pic{aspect-ratio:16\/9;background:var(--g,linear-gradient(135deg,#2C6B40,#8CC08E));position:relative}\n.slide .pic img{width:100%;height:100%;object-fit:cover;display:block}\n.slide .body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}\n.slide h3{font-size:1.02rem;margin:0 0 6px}\n.slide p{margin:0 0 12px;font-size:.92rem;color:var(--muted)}\n.slide .more{margin-top:auto;font-weight:600;font-size:.9rem}\n.slide.fire .pic{--g:linear-gradient(135deg,#7A2E12,#C8662B 55%,#E8B04A)}\n.slide.sat .pic{--g:linear-gradient(135deg,#1E3D2B,#3E8A56 55%,#9ED3A4)}\n.slide.wind .pic{--g:linear-gradient(135deg,#2F5D6B,#5FA3A0 55%,#CDE8C4)}\n.slide.plain{border-top:5px solid var(--leaf)}\n.slide.plain.award{border-top-color:var(--ember)}\n.slide.plain.data{border-top-color:#8C7A2E}\n.ctrls{display:flex;gap:8px}\n.ctrls button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--forest);font-size:1.1rem;cursor:pointer}\n.ctrls button:hover{background:var(--mint)}\n\n\/* people *\/\n.person{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start}\n.person img{width:120px;height:120px;border-radius:50%;object-fit:cover;background:var(--mint);border:3px solid var(--mint)}\n.person h3{margin:0 0 2px}\n.role{font-size:.88rem;color:var(--leaf-deep);font-weight:600;margin:0 0 8px}\n\n\/* director *\/\n.dir-top{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}\n.dir-top img{width:100%;border-radius:10px;border:1px solid var(--line)}\n.links{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}\n.tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}\n.tl li{position:relative;padding:0 0 18px 22px}\n.tl li::before{content:\"\";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--leaf);border:2px solid var(--white)}\n.tl .when{font-size:.84rem;color:var(--muted)}\n.tl strong{display:block}\n\n\/* publications *\/\n.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}\n.jump a{padding:6px 14px;border-radius:20px;border:1px solid var(--line);background:var(--white);text-decoration:none;font-size:.9rem;color:var(--forest)}\n.jump a:hover{background:var(--mint)}\n.pubs{list-style:none;margin:0;padding:0;counter-reset:none}\n.pubs li{padding:14px 0;border-top:1px solid var(--line);font-size:.95rem;display:grid;grid-template-columns:52px 1fr;gap:12px}\n.pubs .id{font-weight:700;color:var(--leaf-deep);font-size:.85rem;padding-top:2px}\n.pubs em{color:var(--ink)}\n\n\/* awards *\/\n.award-list{list-style:none;margin:0;padding:0}\n.award-list li{padding:14px 0;border-top:1px solid var(--line)}\n.award-list li:first-child{border-top:0;padding-top:0}\n.award-list .yr{font-weight:700;color:var(--ember);font-size:.85rem}\n.award-list strong{display:block}\n.award-list span.d{font-size:.9rem;color:var(--muted)}\n\n\/* join + footer *\/\n.join{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}\naddress{font-style:normal;color:var(--muted)}\nfooter{background:var(--forest);color:#D9EBD6;padding:28px 0;font-size:.88rem}\nfooter .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}\nfooter a{color:#fff}\n\n@media (max-width:960px){\n  .slide{flex-basis:calc((100% - 20px)\/2)}\n  .g3{grid-template-columns:1fr 1fr}\n}\n@media (max-width:860px){\n  .menu-btn{display:block}\n  .nav ul{display:none;position:absolute;left:0;right:0;top:66px;background:var(--white);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 24px 16px;gap:0}\n  .nav ul.open{display:flex}\n  .nav ul a{display:block;padding:10px 0}\n  .hero-text .wrap,.join,.dir-top{grid-template-columns:1fr;gap:20px}\n  .dir-top img{max-width:240px}\n  .chain{grid-template-columns:1fr 1fr;row-gap:12px}\n  .chain li:nth-child(2)::after{display:none}\n  .g2{grid-template-columns:1fr}\n  section{padding:52px 0}\n}\n@media (max-width:600px){\n  .slide{flex-basis:86%}\n  .g3,.chain{grid-template-columns:1fr}\n  .chain li::after{display:none}\n  .person{grid-template-columns:84px 1fr}\n  .person img{width:84px;height:84px}\n}\n@media (prefers-reduced-motion:reduce){.track{scroll-behavior:auto}}\n.person img,.dir-top img{color:transparent;font-size:0}\n\/* chain pictures *\/\n.chain li{padding-top:0}\n.chain li::before{top:auto}\n.chain-pic{position:relative;aspect-ratio:16\/10;border-radius:10px;overflow:hidden;margin:0 14px 22px 0;border:1px solid var(--line)}\n.chain-pic svg,.chain-pic img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}\n.chain li .step{position:relative;padding-top:20px}\n.chain li .step::before{content:\"\";position:absolute;top:0;left:0;right:-22px;height:6px;background:var(--c)}\n.chain li::before,.chain li::after{display:none}\n.chain li:not(:last-child) .step::after{content:\"\";position:absolute;top:-5px;right:-23px;border-left:12px solid var(--c);border-top:8px solid transparent;border-bottom:8px solid transparent}\n.chain li:last-child .step::before{right:0}\n@media (max-width:860px){.chain li:nth-child(2) .step::after{display:none}.chain li .step::before{right:0}}\n@media (max-width:600px){.chain li .step::after{display:none}.chain-pic{margin-right:0}}\n\/* news card illustrations *\/\n.slide .pic svg,.slide .pic img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}\n.track{scrollbar-width:none}\n.track::-webkit-scrollbar{display:none}\n\/* bigger OASIS *\/\n.brand b{font-size:2.1rem;line-height:1;letter-spacing:.06em}\n.nav .wrap{min-height:78px}\n.nav ul{font-size:.95rem}\n@media (max-width:860px){.nav ul{top:78px}.brand b{font-size:1.8rem}}\n.hero-text h1 .wordmark{display:block;font-size:clamp(4.5rem,13vw,9.5rem);line-height:.9;letter-spacing:.06em;color:var(--forest);margin-bottom:14px}\n.hero-text h1 .fullname{display:block;font-size:clamp(1.25rem,2.4vw,1.8rem);line-height:1.25;color:var(--leaf-deep);font-weight:500;max-width:22ch}\n.hero-text .wrap{align-items:center}\n\n\/* year tabs *\/\n.years{display:flex;flex-wrap:wrap;gap:8px}\n.years button{font:600 .95rem var(--sans);padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--forest);cursor:pointer}\n.years button:hover{background:var(--mint)}\n.years button[aria-selected=\"true\"]{background:var(--leaf-deep);border-color:var(--leaf-deep);color:#fff}\n.year-label{display:flex;align-items:baseline;gap:14px;margin:30px 0 -34px}\n.year-label h2{margin:0;font-size:clamp(2rem,4vw,2.8rem)}\n.year-label span{color:var(--muted);font-size:.95rem}\n.slide[hidden]{display:none}\n.slide .pic{background:var(--g,linear-gradient(135deg,#2C6B40,#8CC08E))}\n@media (max-width:600px){.year-label{margin-bottom:8px}}\n\/* news categories *\/\n.cats{display:flex;gap:0;border-bottom:2px solid var(--line);margin-bottom:28px}\n.cats button{font:600 1.05rem var(--sans);padding:12px 22px;border:0;background:none;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}\n.cats button:hover{color:var(--forest)}\n.cats button[aria-selected=\"true\"]{color:var(--forest);border-bottom-color:var(--leaf-deep)}\n.place{font-size:.86rem !important;color:var(--leaf-deep) !important;font-weight:600;margin:-4px 0 12px !important}\n@media (max-width:600px){.cats button{padding:10px 12px;font-size:.95rem}}\n.slide .pic img.contain{object-fit:contain;background:#2458A6}\n.feature{display:grid;grid-template-columns:360px 1fr;gap:40px;align-items:center}\n.feature img{width:100%;border-radius:10px;border:1px solid var(--line)}\n@media (max-width:860px){.feature{grid-template-columns:1fr}.feature img{max-width:420px}}\n.slide .pic img.contain.dark{background:#4A2A17}\n\/* service cards with pictures *\/\n.card.svc{padding:0;overflow:hidden}\n.card.svc h3{padding:20px 24px 0}\n.card.svc p{padding:0 24px 22px}\n.svc-pic{aspect-ratio:16\/9;background:linear-gradient(135deg,#2C6B40,#8CC08E);position:relative}\n.svc-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n.svc-pic.dark{background:#4A2A17}\n.svc-pic.dark img{object-fit:contain}\n.svc-pic.face img{object-position:50% 22%}\n\n\/* ================= dynamic, flowing layer ================= *\/\n\/* scroll progress *\/\n.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--ember),#E8B04A,var(--leaf));z-index:50}\n\n\/* glass nav that tightens on scroll *\/\n.nav{background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .3s}\n.nav .wrap{transition:min-height .3s}\n.nav.scrolled{box-shadow:0 6px 24px -14px rgba(27,46,34,.35)}\n.nav.scrolled .wrap{min-height:62px}\n.nav.scrolled .brand b{font-size:1.7rem}\n.brand b{transition:font-size .3s}\n.nav ul a{position:relative;border-bottom:0}\n.nav ul a::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--leaf);transform:scaleX(0);transform-origin:left;transition:transform .3s}\n.nav ul a:hover::after,.nav ul a[aria-current]::after{transform:scaleX(1)}\n\n\/* flowing, drifting color fields in heading bands *\/\n.page-head,.hero-text{position:relative;overflow:hidden;isolation:isolate}\n.page-head::before,.hero-text::before{content:\"\";position:absolute;inset:-40%;z-index:-1;\n  background:\n   radial-gradient(35% 45% at 20% 30%,rgba(62,138,86,.28),transparent 70%),\n   radial-gradient(30% 40% at 80% 20%,rgba(232,176,74,.22),transparent 70%),\n   radial-gradient(40% 50% at 60% 90%,rgba(95,163,160,.25),transparent 70%);\n  animation:drift 22s ease-in-out infinite alternate}\n@keyframes drift{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(4%,-3%) rotate(6deg)}100%{transform:translate(-4%,3%) rotate(-5deg)}}\n\n\/* wave edges between sections *\/\n.page-head,.hero-text,.tint,.stats-band{--wave:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,30 C1200,62 960,4 720,28 C480,52 240,6 0,34 Z'\/%3E%3C\/svg%3E\")}\n.page-head,.hero-text{border-bottom:0;padding-bottom:30px;-webkit-mask:var(--wave) bottom\/100% 40px no-repeat,linear-gradient(#000,#000) top\/100% calc(100% - 39px) no-repeat;mask:var(--wave) bottom\/100% 40px no-repeat,linear-gradient(#000,#000) top\/100% calc(100% - 39px) no-repeat}\n.tint{position:relative;margin-top:-1px}\n.tint::before,.tint::after{content:\"\";position:absolute;left:0;right:0;height:40px;background:var(--paper);-webkit-mask:var(--wave) center\/100% 100% no-repeat;mask:var(--wave) center\/100% 100% no-repeat;pointer-events:none}\n.tint::before{top:-39px;transform:scaleY(-1)}\n.tint::after{bottom:-39px}\n.tint{z-index:1}\n\n\/* stats band *\/\n.stats-band{background:var(--forest);color:#fff;padding:44px 0 50px;position:relative}\n.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}\n.stats b{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1;color:#CFEBC6}\n.stats span{display:block;margin-top:8px;font-size:.95rem;color:#D9EBD6;max-width:22ch}\n@media (max-width:760px){.stats{grid-template-columns:1fr 1fr;row-gap:30px}}\n\n\/* cards: lift and slow image zoom *\/\n.card,.slide{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}\n.card:hover,.slide:hover{transform:translateY(-6px);box-shadow:0 18px 36px -22px rgba(27,46,34,.45)}\n.slide .pic img,.svc-pic img,.chain-pic img,.chain-pic svg{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.slide:hover .pic img,.card.svc:hover .svc-pic img,.chain li:hover .chain-pic svg,.chain li:hover .chain-pic img{transform:scale(1.06)}\n.slide .pic,.svc-pic,.chain-pic{overflow:hidden}\n.btn{transition:transform .2s,background .2s,box-shadow .2s}\n.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(27,46,34,.6)}\n\n\/* scroll reveal *\/\n.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}\n.reveal.in{opacity:1;transform:none}\n\/* chain bar draws itself *\/\n.chain li .step::before{transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.6,.1,.3,1);transition-delay:calc(var(--d,0s) + .2s)}\n.chain li.in .step::before,.chain li:not(.reveal) .step::before{transform:scaleX(1)}\n.chain li .step::after{opacity:0;transition:opacity .3s;transition-delay:calc(var(--d,0s) + .8s)}\n.chain li.in .step::after,.chain li:not(.reveal) .step::after{opacity:1}\n\n\/* hero wordmark shimmer on load *\/\n.hero-text h1 .wordmark{background:linear-gradient(100deg,var(--forest) 30%,var(--leaf) 45%,#8CC08E 50%,var(--leaf) 55%,var(--forest) 70%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 3.5s ease-out .4s 1 both}\n@keyframes shine{from{background-position:100% 0}to{background-position:0 0}}\n\n\/* footer wave *\/\nfooter{position:relative;margin-top:60px;padding-top:34px}\n.footer-wave{position:absolute;left:0;right:0;top:-59px;width:100%;height:60px;display:block}\n.footer-wave path{fill:var(--forest)}\n\n@media (prefers-reduced-motion:reduce){\n  .page-head::before,.hero-text::before,.hero-text h1 .wordmark{animation:none}\n  .reveal{opacity:1;transform:none;transition:none}\n  .card,.slide,.slide .pic img,.btn{transition:none}\n  .card:hover,.slide:hover,.btn:hover{transform:none}\n  .progress{display:none}\n}\n\n\/* NSF RAPID spotlight *\/\n.rapid-head{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;margin-bottom:34px}\n.rapid-head h2{font-size:clamp(1.7rem,3vw,2.4rem)}\n.facts{margin:0;display:grid;gap:14px;background:var(--mint);border-radius:12px;padding:22px 24px}\n.facts dt{font-size:.8rem;font-weight:700;color:var(--leaf-deep)}\n.facts dd{margin:2px 0 0;font-size:.98rem}\n.rapid-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}\n.video-card video{width:100%;border-radius:12px;display:block;background:var(--ink);aspect-ratio:16\/9}\n.rapid-grid .card p{font-size:.93rem}\n.sub{font-family:var(--serif);font-weight:600;font-size:1.45rem;color:var(--forest);margin:48px 0 16px}\n.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}\n.gallery .g{margin:0;position:relative;border-radius:12px;overflow:hidden;background:var(--mint)}\n.gallery .g.wide{grid-column:span 2;grid-row:span 2}\n.gallery .g.tall{grid-row:span 2}\n.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.gallery .g:hover img{transform:scale(1.05)}\n.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;font-size:.85rem;line-height:1.4;color:#fff;background:linear-gradient(transparent,rgba(20,38,28,.85))}\n@media (max-width:900px){.rapid-head,.rapid-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}}\n@media (max-width:520px){.gallery{grid-template-columns:1fr;grid-auto-rows:240px}.gallery .g.wide,.gallery .g.tall{grid-column:auto;grid-row:span 1}}\n.gallery .g.face img{object-position:50% 18%}\n.mods{grid-template-columns:repeat(4,1fr);margin-bottom:8px}\n.gallery.two{grid-template-columns:1fr 1fr;grid-auto-rows:auto}\n.gallery.two .g.wide{grid-column:auto;grid-row:auto;aspect-ratio:4\/3}\n@media (max-width:900px){.mods{grid-template-columns:1fr 1fr}}\n@media (max-width:520px){.mods,.gallery.two{grid-template-columns:1fr}}\n.doe-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}\n.doe-grid .gallery.two .g.tall{grid-row:auto;aspect-ratio:3\/4}\n@media (max-width:900px){.doe-grid{grid-template-columns:1fr}}\n\n\/* awards feature with two photos *\/\n.feature-pics{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.feature-pics img{width:100%;height:100%;aspect-ratio:3\/4;object-fit:cover;border-radius:10px;border:1px solid var(--line)}\n.feature{grid-template-columns:440px 1fr}\n@media (max-width:860px){.feature{grid-template-columns:1fr}}\n\n\/* interactive student awards *\/\n.chips{margin-bottom:26px}\n.sa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}\n.sa{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,opacity .35s}\n.sa:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 20px 38px -22px rgba(27,46,34,.5)}\n.sa.hide{display:none}\n.sa.pop{animation:pop .45s cubic-bezier(.2,.7,.2,1) both}\n@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}\n.sa-pic{position:relative;aspect-ratio:4\/3;background:linear-gradient(135deg,#24583A,#8CC08E);overflow:hidden}\n.sa-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.sa-pic.face img{object-position:50% 20%}\n.sa:hover .sa-pic img{transform:scale(1.07)}\n.sa-pic .yr{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);color:var(--ember);font-weight:700;font-size:.8rem;padding:3px 10px;border-radius:20px}\n.initials{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:3rem;color:#E4F2DE}\n.sa-body{padding:16px 18px 18px}\n.sa .who{margin:0 0 4px;font-size:.82rem;font-weight:700;color:var(--leaf-deep)}\n.sa h3{font-size:1rem;margin:0 0 6px}\n.sa p{margin:0 0 6px;font-size:.9rem;color:var(--muted)}\n.sa .cap{font-style:italic;font-size:.84rem}\n@media (max-width:1000px){.sa-grid{grid-template-columns:repeat(3,1fr)}}\n@media (max-width:760px){.sa-grid{grid-template-columns:1fr 1fr}}\n@media (max-width:480px){.sa-grid{grid-template-columns:1fr}}\n\n\/* team: single current student, larger *\/\n.g1{grid-template-columns:1fr}\n.lead-person .person{grid-template-columns:200px 1fr;gap:32px;align-items:center;padding:28px}\n.lead-person .person img{width:200px;height:200px}\n@media (max-width:600px){.lead-person .person{grid-template-columns:1fr}.lead-person .person img{width:160px;height:160px}}\n\n\/* lab moments: flowing masonry *\/\n.moments{columns:4 240px;column-gap:16px;margin-top:22px}\n.moments figure{break-inside:avoid;margin:0 0 16px;position:relative;border-radius:12px;overflow:hidden;background:var(--mint)}\n.moments img{width:100%;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.moments figure:hover img{transform:scale(1.05)}\n.moments figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;font-size:.84rem;line-height:1.4;color:#fff;background:linear-gradient(transparent,rgba(20,38,28,.85));opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}\n.moments figure:hover figcaption,.moments figure:focus-within figcaption{opacity:1;transform:none}\n@media (hover:none){.moments figcaption{opacity:1;transform:none}}\n.chips{display:flex;flex-wrap:wrap;gap:8px}\n.chips button{font:600 .95rem var(--sans);padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--forest);cursor:pointer;transition:background .2s,color .2s}\n.chips button:hover{background:var(--mint)}\n.chips button[aria-selected=\"true\"]{background:var(--leaf-deep);border-color:var(--leaf-deep);color:#fff}\n\n\/* flashing news bar *\/\n.flash{display:flex;align-items:center;gap:12px;justify-content:center;padding:9px 20px;background:linear-gradient(90deg,#7A2E12,#B85A2A,#D98A3A,#B85A2A,#7A2E12);background-size:300% 100%;animation:flow 9s linear infinite;color:#fff;text-decoration:none;font-size:.92rem;position:relative;z-index:21}\n.flash:hover .flash-more{text-decoration:underline}\n.flash-dot{width:9px;height:9px;border-radius:50%;background:#FFE7A8;box-shadow:0 0 0 0 rgba(255,231,168,.8);animation:ping 1.6s ease-out infinite;flex:none}\n.flash-tag{font-weight:700;font-size:.78rem;background:#fff;color:#8A3E17;border-radius:20px;padding:2px 10px;animation:blink 1.6s ease-in-out infinite;flex:none}\n.flash-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.flash-more{font-weight:700;flex:none;white-space:nowrap}\n@keyframes flow{to{background-position:300% 0}}\n@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,231,168,.8)}100%{box-shadow:0 0 0 12px rgba(255,231,168,0)}}\n@keyframes blink{0%,100%{opacity:1}50%{opacity:.55}}\n@media (max-width:700px){.flash{justify-content:flex-start;font-size:.85rem}.flash-more{display:none}}\n@media (prefers-reduced-motion:reduce){.flash,.flash-dot,.flash-tag{animation:none}}\n.pub-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}\n.pub-stats div{background:var(--mint);border-radius:12px;padding:16px 18px}\n.pub-stats b{display:block;font-family:var(--serif);font-size:2rem;color:var(--forest);line-height:1}\n.pub-stats span{font-size:.88rem;color:var(--muted)}\n@media (max-width:760px){.pub-stats{grid-template-columns:1fr 1fr}}\n.lead-person.g2 .person{grid-template-columns:150px 1fr;gap:24px;align-items:start;padding:24px}\n.lead-person.g2 .person img{width:150px;height:150px}\n@media (max-width:860px){.lead-person.g2{grid-template-columns:1fr}}\n@media (max-width:600px){.lead-person.g2 .person{grid-template-columns:1fr}}\n\n\n\/* WordPress \/ Elementor Canvas: let the page run edge to edge *\/\nbody.elementor-template-canvas{margin:0}\nbody.elementor-template-canvas .elementor-section .elementor-container,\nbody.elementor-template-canvas .e-con,body.elementor-template-canvas .e-con-inner{max-width:100%!important;width:100%!important;padding:0!important;gap:0!important}\nbody.elementor-template-canvas .elementor-column-gap-default>.elementor-column>.elementor-element-populated,\nbody.elementor-template-canvas .elementor-widget-wrap{padding:0!important}\nbody.elementor-template-canvas .elementor-widget-html{width:100%}\n.admin-bar .nav{top:32px}@media(max-width:782px){.admin-bar .nav{top:46px}}\n<\/style>\n<div class=\"progress\" aria-hidden=\"true\"><\/div>\n<a class=\"flash\" href=\"https:\/\/www.buffalo.edu\/news\/releases\/2026\/09\/university-at-buffalo-national-science-foundation-wildfire-resilience.html\"><span class=\"flash-dot\" aria-hidden=\"true\"><\/span><span class=\"flash-tag\">New<\/span><span class=\"flash-text\">UB leads a $2 million NSF project, REKINDLE, to help communities prepare for the cascading disasters wildfires unleash<\/span><span class=\"flash-more\">Read more \u203a<\/span><\/a>\n<header class=\"nav\">\n  <div class=\"wrap\">\n    <a class=\"brand\" href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-home\/\"><b>OASIS<\/b><span>University at Buffalo<\/span><\/a>\n    <button class=\"menu-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu\">Menu<\/button>\n    <nav aria-label=\"Main\"><ul id=\"menu\"><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-home\/\" aria-current=\"page\">About<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-news\/\">News<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-director\/\">Director<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-team\/\">Team<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-research\/\">Research<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-publications\/\">Publications<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-awards\/\">Awards<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-teaching\/\">Teaching<\/a><\/li><\/ul><\/nav>\n  <\/div>\n<\/header>\n<main>\n\n<div class=\"hero\">\n  <div class=\"hero-media\">\n    <video id=\"heroVideo\" autoplay muted loop playsinline preload=\"auto\" aria-label=\"OASIS lab introduction video\"><source src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/oasis-intro.mp4\" type=\"video\/mp4\"><\/video>\n    <button id=\"vidToggle\" type=\"button\">Pause video<\/button>\n  <\/div>\n  <div class=\"hero-text\"><div class=\"wrap\">\n    <h1><span class=\"wordmark\">OASIS<\/span><span class=\"fullname\">Operations Research for Advancing Sustainable Infrastructure Systems<\/span><\/h1>\n    <div><p>We use risk science, operations research and AI to understand how hazards disrupt the infrastructure communities depend on, and to design decisions that protect the people most exposed.<\/p>\n    <div class=\"cta\"><a class=\"btn btn-primary\" href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-research\/\">See our research<\/a><a class=\"btn btn-line\" href=\"#join\">Join the lab<\/a><\/div><\/div>\n  <\/div><\/div>\n<\/div>\n\n<section class=\"stats-band\" aria-label=\"Lab at a glance\"><div class=\"wrap stats\">\n  <div><b data-count=\"28\">28<\/b><span>peer-reviewed journal articles<\/span><\/div>\n  <div><b data-count=\"67\">67<\/b><span>conference presentations, plus 25 invited talks<\/span><\/div>\n  <div><b data-count=\"1398\">1,398<\/b><span>citations \u00b7 h-index 19 (Google Scholar, Sep 2026)<\/span><\/div>\n  <div><b data-count=\"2.9\" data-prefix=\"$\" data-suffix=\"M\">$2.9M<\/b><span>in funded research, including the new $2M NSF FIRE project<\/span><\/div>\n<\/div><\/section>\n\n<section><div class=\"wrap measure\">\n  <h2>Mission and vision<\/h2>\n  <p class=\"lead\">OASIS advances risk science for sociotechnical systems: power grids, transportation, water and the emergency management that holds them together.<\/p>\n  <p>We build quantitative models of how chronic and acute shocks spread through interdependent systems, develop risk-informed decision models, and identify cost-effective adaptation strategies that make critical infrastructure more resilient, sustainable and equitable. We work with emergency managers, utilities, agencies and affected communities, so our models reflect what people actually experience.<\/p>\n<\/div><\/section>\n\n<section class=\"tint\"><div class=\"wrap\">\n  <h2>Following a disaster from hazard to household<\/h2>\n  <p class=\"lead measure\">Disasters rarely stay in one system. Our work traces the full chain and uses it to guide better decisions.<\/p>\n  <ol class=\"chain\">\n    <li><div class=\"chain-pic\"><svg viewBox=\"0 0 240 150\" aria-hidden=\"true\"><rect width=\"240\" height=\"150\" fill=\"#F8E9DF\"\/><circle cx=\"196\" cy=\"30\" r=\"14\" fill=\"#F2C46B\"\/><g stroke=\"#B85A2A\" stroke-width=\"2\" fill=\"none\"><rect x=\"38\" y=\"16\" width=\"22\" height=\"14\" rx=\"2\" fill=\"#fff\"\/><path d=\"M26 23h12M60 23h12\"\/><path d=\"M49 34l18 34\" stroke-dasharray=\"3 4\"\/><\/g><path d=\"M0 150 L0 104 Q60 64 120 96 T240 88 L240 150Z\" fill=\"#8FB48A\"\/><path d=\"M0 150 L0 124 Q70 104 140 122 T240 116 L240 150Z\" fill=\"#5E8F5A\"\/><path d=\"M92 96c6-14 2-22 10-32 0 10 8 12 8 22 4-6 4-12 2-16 10 8 12 22 4 30z\" fill=\"#C8662B\"\/><path d=\"M100 96c2-7 1-11 5-16 0 6 5 8 4 16z\" fill=\"#F2B84B\"\/><path d=\"M130 100c4-10 2-15 7-22 0 7 6 9 5 16 3-4 3-8 1-11 7 6 8 15 3 19z\" fill=\"#D9733A\"\/><path d=\"M150 132 q20 -6 40 0 q20 6 50 0\" stroke=\"#6FA7C9\" stroke-width=\"5\" fill=\"none\" stroke-linecap=\"round\"\/><path d=\"M104 80c-6-10 4-16-2-28M134 76c-4-8 4-12 0-20\" stroke=\"#9A8F86\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\" opacity=\".6\"\/><\/svg><\/div><span class=\"step\">1. Hazard<\/span><h3>Environmental risk<\/h3><p>AI and satellite data to forecast wildfire and the floods and debris flows that follow.<\/p><\/li>\n    <li><div class=\"chain-pic\"><svg viewBox=\"0 0 240 150\" aria-hidden=\"true\"><rect width=\"240\" height=\"150\" fill=\"#F2EEDB\"\/><g stroke=\"#6B5A12\" stroke-width=\"2.5\" fill=\"none\" stroke-linecap=\"round\"><path d=\"M40 130 L58 40 L76 130M46 100h24M50 76h16M36 52h44\"\/><path d=\"M80 52 Q120 70 160 50\" stroke-width=\"1.5\"\/><\/g><path d=\"M0 138 H240\" stroke=\"#8C7A2E\" stroke-width=\"10\"\/><path d=\"M0 138 H240\" stroke=\"#F2EEDB\" stroke-width=\"1.5\" stroke-dasharray=\"10 8\"\/><path d=\"M178 70c0 12-8 18-16 18s-16-6-16-18c0-10 16-28 16-28s16 18 16 28z\" fill=\"#6FA7C9\"\/><g fill=\"#fff\" stroke=\"#6B5A12\" stroke-width=\"2\"><circle cx=\"110\" cy=\"110\" r=\"7\"\/><circle cx=\"150\" cy=\"112\" r=\"7\"\/><circle cx=\"200\" cy=\"108\" r=\"7\"\/><circle cx=\"130\" cy=\"90\" r=\"7\" fill=\"#C8662B\"\/><\/g><g stroke=\"#6B5A12\" stroke-width=\"2\"><path d=\"M117 110h26M157 111h36M114 104l11-9M135 94l10 12\"\/><\/g><path d=\"M126 86l8 8M134 86l-8 8\" stroke=\"#fff\" stroke-width=\"2\"\/><\/svg><\/div><span class=\"step\">2. Lifelines<\/span><h3>Cascading failure<\/h3><p>How failures spread across power, water, gas and roads, even with incomplete data.<\/p><\/li>\n    <li><div class=\"chain-pic\"><svg viewBox=\"0 0 240 150\" aria-hidden=\"true\"><rect width=\"240\" height=\"150\" fill=\"#E4F2DE\"\/><path d=\"M0 128 H240 V150 H0z\" fill=\"#9ACB93\"\/><path d=\"M60 128 V78 L110 44 L160 78 V128z\" fill=\"#fff\" stroke=\"#2C6B40\" stroke-width=\"3\" stroke-linejoin=\"round\"\/><path d=\"M50 82 L110 40 L170 82\" fill=\"none\" stroke=\"#2C6B40\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><rect x=\"98\" y=\"96\" width=\"24\" height=\"32\" fill=\"#3E8A56\"\/><rect x=\"72\" y=\"88\" width=\"18\" height=\"16\" fill=\"#CFE6C8\" stroke=\"#2C6B40\" stroke-width=\"2\"\/><rect x=\"130\" y=\"88\" width=\"18\" height=\"16\" fill=\"#CFE6C8\" stroke=\"#2C6B40\" stroke-width=\"2\"\/><g fill=\"#2C6B40\"><circle cx=\"190\" cy=\"92\" r=\"7\"\/><path d=\"M180 128v-20a10 10 0 0120 0v20z\"\/><circle cx=\"212\" cy=\"102\" r=\"5\"\/><path d=\"M205 128v-12a7 7 0 0114 0v12z\"\/><\/g><g stroke=\"#B85A2A\" stroke-width=\"3\" stroke-linecap=\"round\"><path d=\"M22 60v14M22 82v1\"\/><\/g><circle cx=\"22\" cy=\"70\" r=\"16\" fill=\"none\" stroke=\"#B85A2A\" stroke-width=\"2.5\"\/><\/svg><\/div><span class=\"step\">3. Households<\/span><h3>Social burden<\/h3><p>Who loses access to what, for how long, and at what cost.<\/p><\/li>\n    <li><div class=\"chain-pic\"><svg viewBox=\"0 0 240 150\" aria-hidden=\"true\"><rect width=\"240\" height=\"150\" fill=\"#DDEBE0\"\/><rect x=\"24\" y=\"22\" width=\"118\" height=\"106\" rx=\"6\" fill=\"#fff\" stroke=\"#24583A\" stroke-width=\"2.5\"\/><g stroke=\"#24583A\" stroke-width=\"2.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M40 48l6 6 10-12M40 78l6 6 10-12M40 108l6 6 10-12\"\/><path d=\"M66 48h60M66 78h48M66 108h54\" stroke=\"#9BB8A3\" stroke-width=\"6\"\/><\/g><rect x=\"160\" y=\"84\" width=\"16\" height=\"44\" fill=\"#3E8A56\"\/><rect x=\"182\" y=\"64\" width=\"16\" height=\"64\" fill=\"#24583A\"\/><rect x=\"204\" y=\"100\" width=\"16\" height=\"28\" fill=\"#8CC08E\"\/><path d=\"M156 128h70\" stroke=\"#24583A\" stroke-width=\"2.5\"\/><path d=\"M160 58 L186 40 L206 50 L226 26\" stroke=\"#B85A2A\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><circle cx=\"226\" cy=\"26\" r=\"4\" fill=\"#B85A2A\"\/><\/svg><\/div><span class=\"step\">4. Decisions<\/span><h3>Equitable strategies<\/h3><p>Optimization for hardening, recovery and funding that counts community needs.<\/p><\/li>\n  <\/ol>\n<\/div><\/section>\n\n<section><div class=\"wrap\">\n  <h2>Current projects<\/h2>\n  <div class=\"grid g3\" style=\"margin-top:24px\">\n    <article class=\"card\"><span class=\"tag\">NSF SAI<\/span><h3>Equity in wildfire emergency management<\/h3><p>The HERD framework links infrastructure vulnerability, social burden, recovery policy and agency collaboration in New Mexico and Colorado wildfire regions.<\/p><\/article>\n    <article class=\"card\"><span class=\"tag\">NSF RAPID<\/span><h3>Hurricane Fiona in Puerto Rico<\/h3><p>Stakeholder interviews and community focus groups on grid and road failures and recovery priorities. <a href=\"https:\/\/doi.org\/10.17603\/ds2-daer-ka54\">Open data<\/a>.<\/p><\/article>\n    <article class=\"card\"><span class=\"tag warm\">NSF FIRE \u00b7 $2M \u00b7 New<\/span><h3>REKINDLE: cascading wildfire hazards<\/h3><p>A UB-led, four-institution project linking wildfire, debris flows and flash floods to lifeline failures and household well-being, 2026\u20132029. <a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-research\/#rekindle\">Learn more<\/a>.<\/p><\/article>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"tint\"><div class=\"wrap\">\n  <div class=\"sec-top\"><h2>Latest news<\/h2><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-news\/\">All news<\/a><\/div>\n  <div class=\"slider\" data-auto aria-roledescription=\"carousel\" aria-label=\"Latest news\">\n  <div class=\"sec-top\" style=\"justify-content:flex-end;margin-bottom:12px\"><div class=\"ctrls\"><button type=\"button\" data-dir=\"-1\" aria-label=\"Previous\">\u2039<\/button><button type=\"button\" data-dir=\"1\" aria-label=\"Next\">\u203a<\/button><\/div><\/div>\n  <div class=\"track\" tabindex=\"0\"><article class=\"slide sat\" data-year=\"2026\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2019\/07\/UB-Headshots-1.jpg\" alt=\"\" loading=\"lazy\" style=\"object-position:50% 22%\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag \">Media<\/span>Sep 21, 2026<\/p><h3>Get to know Sayanti Mukherjee<\/h3><p>UBNow profiles Dr. Mukherjee&#8217;s research, her path to UB and what makes her proud to be part of it.<\/p><a class=\"more\" href=\"https:\/\/www.buffalo.edu\/ubnow.html\">UBNow<\/a><\/div><\/article><article class=\"slide fire\" data-year=\"2026\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Aerial%20photography%20of%20big%20white%20fire%20smoke%20from%20forest%20fire.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag gold\">Grant<\/span>Sep 14, 2026<\/p><h3>UB leads $2M NSF project on wildfire resilience<\/h3><p>REKINDLE will build AI-powered tools for cascading wildfire hazards, with UC Berkeley, Northeastern and PNNL.<\/p><a class=\"more\" href=\"https:\/\/www.buffalo.edu\/news\/releases\/2026\/09\/university-at-buffalo-national-science-foundation-wildfire-resilience.html\">UB News<\/a><\/div><\/article><article class=\"slide fire\" data-year=\"2026\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2023\/03\/natural_disaster_1_.5481cd754500a.jpg\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag \">Media<\/span>Sep 14, 2026<\/p><h3>The Buffalo News covers REKINDLE<\/h3><p>UB to lead the $2 million NSF project on wildfire resilience.<\/p><a class=\"more\" href=\"https:\/\/buffalonews.com\/news\/community\/article_fa603011-f3dc-5f8d-8df2-677245b37a94.html\">Buffalo News<\/a><\/div><\/article><article class=\"slide sat\" data-year=\"2026\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Fiona%202022-09-22%202100Z.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag \">Media<\/span>Sep 2026<\/p><h3>Northeastern joins the REKINDLE team<\/h3><p>Northeastern&#8217;s College of Engineering on the four-institution effort.<\/p><a class=\"more\" href=\"https:\/\/coe.northeastern.edu\/news\/northeastern-joins-2m-nsf-funded-effort-to-build-resilience-against-wildfire-and-its-cascading-aftershocks\/\">Northeastern<\/a><\/div><\/article><article class=\"slide sat\" data-year=\"2025\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra2025-starr-1.jpg\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag warm\">Award<\/span>Dec 2025<\/p><h3>With the Chauncey Starr Award at SRA 2025<\/h3><p>Poulomee Roy and Dr. Mukherjee at the SRA Annual Meeting in Washington, DC.<\/p><\/div><\/article><article class=\"slide sat\" data-year=\"2025\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra-chauncey-starr-award.jpg\" alt=\"Society for Risk Analysis 2025 Chauncey Starr Award plaque presented to Sayanti Mukherjee\" loading=\"lazy\" class=\"contain dark\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag warm\">Award<\/span>Dec 2025<\/p><h3>SRA Chauncey Starr Award<\/h3><p>Society for Risk Analysis honors Dr. Mukherjee for exceptional contributions to risk analysis.<\/p><a class=\"more\" href=\"https:\/\/www.buffalo.edu\/news\/releases\/2025\/12\/Mukherjee-Distinguished-Young-Risk-Analyst-Award.html\">UB News<\/a><\/div><\/article><article class=\"slide sat\" data-year=\"2025\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/California%20Fires%20MODIS081715.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag \">Media<\/span>Dec 9, 2025<\/p><h3>GeoFlame VISION maps future wildfire risk<\/h3><p>PreventionWeb features AI and satellite-based wildfire risk maps, about 92% accurate.<\/p><a class=\"more\" href=\"https:\/\/www.preventionweb.net\/news\/geoflame-vision-using-ai-and-satellite-imagery-predict-future-wildfire-risk\">PreventionWeb<\/a><\/div><\/article><article class=\"slide wind\" data-year=\"2025\"><div class=\"pic\"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Power%20County%20Wind%20Farm%20002.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><div class=\"body\"><p class=\"meta\"><span class=\"tag \">Media<\/span>Nov 14, 2025<\/p><h3>Renewables need social and economic buy-in<\/h3><p>Niagara Gazette covers prize-winning work on renewable energy integration and grid resilience.<\/p><a class=\"more\" href=\"https:\/\/www.niagara-gazette.com\/news\/education\/ub-engineering-professor-emphasizes-need-for-social-economic-buy-in-for-renewable-energ\/article_859aeefd-2a63-4e19-a578-1e52ba0c803c.html\">Niagara Gazette<\/a><\/div><\/article><\/div>\n<\/div>\n<\/div><\/section>\n\n<section id=\"join\"><div class=\"wrap join\">\n  <div><h2>Join us<\/h2><p>We welcome students in industrial and systems engineering, civil engineering, data science, operations research or the social sciences who want to work where models meet communities. Prospective PhD, MS and undergraduate researchers can reach out with a CV and a short note on their interests.<\/p><\/div>\n  <div><h3>OASIS Lab<\/h3><address>Director: Dr. Sayanti Mukherjee<br>411 Bell Hall, North Campus<br>University at Buffalo, Buffalo, NY 14260<br><a href=\"mailto:sayantim@buffalo.edu\">sayantim@buffalo.edu<\/a><\/address><\/div>\n<\/div><\/section>\n<\/main>\n<footer><svg class=\"footer-wave\" viewBox=\"0 0 1440 80\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><path d=\"M0,40 C240,90 480,0 720,30 C960,60 1200,10 1440,40 L1440,80 L0,80 Z\"\/><\/svg><div class=\"wrap\"><span>\u00a9 OASIS Lab \u00b7 Department of Industrial and Systems Engineering, University at Buffalo<\/span><span><a href=\"mailto:sayantim@buffalo.edu\">sayantim@buffalo.edu<\/a><\/span><\/div><\/footer>\n<script>\n(function(){\n  \/\/ mobile menu\n  var mb=document.querySelector('.menu-btn'), ul=document.querySelector('.nav ul');\n  if(mb&&ul){mb.addEventListener('click',function(){var o=ul.classList.toggle('open');mb.setAttribute('aria-expanded',o);});}\n  var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  \/\/ hero video\n  var v=document.getElementById('heroVideo'), b=document.getElementById('vidToggle');\n  if(v&&b){\n    var set=function(p){b.textContent=p?'Pause video':'Play video';};\n    if(!reduce){var pr=v.play(); if(pr&&pr.then){pr.then(function(){set(true)}).catch(function(){set(false)});}} else set(false);\n    b.addEventListener('click',function(){if(v.paused){v.play();set(true);}else{v.pause();set(false);}});\n  }\n  \/\/ sliders\n  document.querySelectorAll('.slider').forEach(function(s){\n    var t=s.querySelector('.track'), prev=s.querySelector('[data-dir=\"-1\"]'), next=s.querySelector('[data-dir=\"1\"]');\n    var step=function(){var c=t.querySelector('.slide');return c?c.getBoundingClientRect().width+20:300;};\n    var go=function(d){\n      var max=t.scrollWidth-t.clientWidth-4;\n      if(d>0&&t.scrollLeft>=max){t.scrollTo({left:0});}\n      else if(d<0&#038;&#038;t.scrollLeft<=0){t.scrollTo({left:t.scrollWidth});}\n      else t.scrollBy({left:d*step()});\n    };\n    if(prev)prev.addEventListener('click',function(){go(-1)});\n    if(next)next.addEventListener('click',function(){go(1)});\n    if(s.dataset.auto!==undefined&#038;&#038;!reduce){\n      var timer=null, start=function(){stop();timer=setInterval(function(){go(1)},5000)}, stop=function(){if(timer)clearInterval(timer)};\n      s.addEventListener('mouseenter',stop);s.addEventListener('mouseleave',start);\n      s.addEventListener('focusin',stop);s.addEventListener('focusout',start);\n      t.addEventListener('touchstart',stop,{passive:true});\n      start();\n    }\n  });\n})();\n(function(){\n  var tabs=document.querySelectorAll('.years button'); if(!tabs.length||!document.getElementById('yearNews')) return;\n  var slides=document.querySelectorAll('#yearNews .slide'), title=document.getElementById('yearTitle'), count=document.getElementById('yearCount'), track=document.querySelector('#yearNews .track');\n  function show(y){\n    var n=0;\n    slides.forEach(function(s){var on=(y==='all'||s.dataset.year===y); s.hidden=!on; if(on)n++;});\n    tabs.forEach(function(t){t.setAttribute('aria-selected',t.dataset.year===y?'true':'false');});\n    title.textContent = y==='all' ? 'All years' : y;\n    count.textContent = n+(n===1?' story':' stories');\n    track.scrollTo({left:0});\n  }\n  tabs.forEach(function(t){t.addEventListener('click',function(){show(t.dataset.year);});});\n  show(tabs[0].dataset.year);\n})();\n(function(){\n  var cats=document.querySelectorAll('.cats button'); if(!cats.length) return;\n  function show(c,push){\n    cats.forEach(function(b){b.setAttribute('aria-selected',b.dataset.cat===c?'true':'false');});\n    document.querySelectorAll('.cat-panel').forEach(function(p){p.hidden=p.id!==c;});\n    if(push) history.replaceState(null,'','#'+c);\n  }\n  cats.forEach(function(b){b.addEventListener('click',function(){show(b.dataset.cat,true);});});\n  var h=location.hash.replace('#','');\n  if(h==='events'||h==='announcements') show(h,false);\n})();\n(function(){\n  var reduce=window.matchMedia&#038;&#038;window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var nav=document.querySelector('.nav'), bar=document.querySelector('.progress');\n  function onScroll(){\n    var y=window.scrollY||0;\n    if(nav) nav.classList.toggle('scrolled',y>40);\n    if(bar){var h=document.documentElement.scrollHeight-window.innerHeight; bar.style.transform='scaleX('+(h>0?Math.min(1,y\/h):0)+')';}\n  }\n  window.addEventListener('scroll',onScroll,{passive:true}); onScroll();\n  if(reduce||!('IntersectionObserver' in window)) return;\n\n  \/\/ scroll reveal with gentle stagger inside groups\n  var groups=['.gallery','.mods','.sa-grid','.moments','.facts','.rapid-grid','.chain','.grid','.stats','.pubs','.tl','.award-list','.jump','.years','.cats'];\n  var singles=document.querySelectorAll('main h2, main .lead, .feature, .dir-top > *, .join > *, .hero-text .wrap > *');\n  var items=[];\n  singles.forEach(function(el){items.push(el);});\n  groups.forEach(function(sel){\n    document.querySelectorAll(sel).forEach(function(g){\n      Array.prototype.forEach.call(g.children,function(c,i){c.style.setProperty('--d',Math.min(i,8)*0.09+'s');items.push(c);});\n    });\n  });\n  var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.12,rootMargin:'0px 0px -40px 0px'});\n  items.forEach(function(el){\n    if(el.getBoundingClientRect().top<window.innerHeight*0.9){return;} \/\/ already in view: leave static\n    el.classList.add('reveal'); io.observe(el);\n  });\n\n  \/\/ count-up numbers\n  var nums=document.querySelectorAll('[data-count]');\n  var io2=new IntersectionObserver(function(es){es.forEach(function(e){\n    if(!e.isIntersecting) return; io2.unobserve(e.target);\n    var el=e.target,end=+el.dataset.count,pre=el.dataset.prefix||'',suf=el.dataset.suffix||'',t0=null;\n    function step(t){if(!t0)t0=t;var p=Math.min(1,(t-t0)\/1400),dec=(el.dataset.count.split('.')[1]||'').length,v=end*(1-Math.pow(1-p,3));el.textContent=pre+(dec?v.toFixed(dec):Math.round(v).toLocaleString('en-US'))+suf;if(p<1)requestAnimationFrame(step);}\n    requestAnimationFrame(step);\n  });},{threshold:.5});\n  nums.forEach(function(n){io2.observe(n);});\n})();\n(function(){\n  var chips=document.querySelectorAll('.chips button'); if(!chips.length) return;\n  var cards=document.querySelectorAll('.sa');\n  chips.forEach(function(c){c.addEventListener('click',function(){\n    var w=c.dataset.who;\n    chips.forEach(function(x){x.setAttribute('aria-selected',x===c?'true':'false');});\n    cards.forEach(function(k,i){\n      var on=(w==='all'||k.dataset.who===w);\n      k.classList.toggle('hide',!on); k.classList.remove('pop');\n      if(on){void k.offsetWidth; k.style.animationDelay=(i%8)*0.04+'s'; k.classList.add('pop');}\n    });\n  });});\n})();\n\n<\/script>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3c43815 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3c43815\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d596771\" data-id=\"d596771\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5fcd51f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5fcd51f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-94c2ea3\" data-id=\"94c2ea3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7b53c08 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"7b53c08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>NewUB leads a $2 million NSF project, REKINDLE, to help communities prepare for the cascading disasters wildfires unleashRead more \u203a OASISUniversity at Buffalo Menu About News Director Team Research Publications Awards Teaching Pause video OASISOperations Research for Advancing Sustainable Infrastructure Systems We use risk science, operations research and AI to understand how hazards disrupt the<\/p>\n<div class=\"clear\"><\/div>\n<p><a class=\"ReadMore\" href=\"https:\/\/oasis.eng.buffalo.edu\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1623","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/comments?post=1623"}],"version-history":[{"count":7,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1623\/revisions"}],"predecessor-version":[{"id":1648,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1623\/revisions\/1648"}],"wp:attachment":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/media?parent=1623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}