PageSourceSearch

https://byronliang8.github.io/

html byronliang8.github.io collected 2026-10-03 08:44:41 UTC 40,041 bytes, 18 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta name="generator" content="Gatsby 5.11.0"/><meta name="description" content="This a sample portfolio website." data-gatsby-head="true"/><style data-href="/styles.b683e546ba4ee4805c0c.css" data-identity="gatsby-global-css">@font-face{font-display:block;font-family:Academicons;font-style:normal;font-weight:400;src:url(/static/academicons-ef72a4e7129814bf663d6d053ebb8b01.eot);src:url(/static/academicons-ef72a4e7129814bf663d6d053ebb8b01.eot) format("embedded-opentype"),url(/static/academicons-997284584d6eafa80982e9f660d21869.ttf) format("truetype"),url(/static/academicons-d098760d7b9132fb613c0c059248075b.woff) format("woff"),url(/static/academicons-4b89269cf1f6d745d9b1b1d98941869e.svg) format("svg")}.ai{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-family:Academicons;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-rendering:auto}.ai-academia:before{content:"\e9af"}.ai-academia-square:before{content:"\e93d"}.ai-acclaim:before{content:"\e92e"}.ai-acclaim-square:before{content:"\e93a"}.ai-acm:before{content:"\e93c"}.ai-acm-square:before{content:"\e95d"}.ai-acmdl:before{content:"\e96a"}.ai-acmdl-square:before{content:"\e9d3"}.ai-ads:before{content:"\e9cb"}.ai-ads-square:before{content:"\e94a"}.ai-africarxiv:before{content:"\e91b"}.ai-africarxiv-square:before{content:"\e90b"}.ai-archive:before{content:"\e955"}.ai-archive-square:before{content:"\e956"}.ai-arxiv:before{content:"\e974"}.ai-arxiv-square:before{content:"\e9a6"}.ai-biorxiv:before{content:"\e9a2"}.ai-biorxiv-square:before{content:"\e98b"}.ai-ceur:before{content:"\e96d"}.ai-ceur-square:before{content:"\e92f"}.ai-ciencia-vitae:before{content:"\e912"}.ai-ciencia-vitae-square:before{content:"\e913"}.ai-clarivate:before{content:"\e924"}.ai-clarivate-square:before{content:"\e925"}.ai-closed-access:before{content:"\e942"}.ai-closed-access-square:before{content:"\e943"}.ai-conversation:before{content:"\e94c"}.ai-conversation-square:before{content:"\e915"}.ai-coursera:before{content:"\e95f"}.ai-coursera-square:before{content:"\e97f"}.ai-crossref:before{content:"\e918"}.ai-crossref-square:before{content:"\e919"}.ai-cv:before{content:"\e9a5"}.ai-cv-square:before{content:"\e90a"}.ai-datacite:before{content:"\e91c"}.ai-datacite-square:before{content:"\e91d"}.ai-dataverse:before{content:"\e9f7"}.ai-dataverse-square:before{content:"\e9e4"}.ai-dblp:before{content:"\e94f"}.ai-dblp-square:before{content:"\e93f"}.ai-depsy:before{content:"\e97a"}.ai-depsy-square:before{content:"\e94b"}.ai-doi:before{content:"\e97e"}.ai-doi-square:before{content:"\e98f"}.ai-dryad:before{content:"\e97c"}.ai-dryad-square:before{content:"\e98c"}.ai-elsevier:before{content:"\e961"}.ai-elsevier-square:before{content:"\e910"}.ai-figshare:before{content:"\e981"}.ai-figshare-square:before{content:"\e9e7"}.ai-google-scholar:before{content:"\e9d4"}.ai-google-scholar-square:before{content:"\e9f9"}.ai-hal:before{content:"\e92c"}.ai-hal-square:before{content:"\e92d"}.ai-hypothesis:before{content:"\e95a"}.ai-hypothesis-square:before{content:"\e95b"}.ai-ideas-repec:before{content:"\e9ed"}.ai-ideas-repec-square:before{content:"\e9f8"}.ai-ieee:before{content:"\e929"}.ai-ieee-square:before{content:"\e9b9"}.ai-impactstory:before{content:"\e9cf"}.ai-impactstory-square:before{content:"\e9aa"}.ai-inaturalist:before{content:"\e900"}.ai-inaturalist-square:before{content:"\e901"}.ai-inpn:before{content:"\e902"}.ai-inpn-square:before{content:"\e903"}.ai-inspire:before{content:"\e9e9"}.ai-inspire-square:before{content:"\e9fe"}.ai-isidore:before{content:"\e936"}.ai-isidore-square:before{content:"\e954"}.ai-isni:before{content:"\e957"}.ai-isni-square:before{content:"\e958"}.ai-jstor:before{content:"\e938"}.ai-jstor-square:before{content:"\e944"}.ai-lattes:before{content:"\e9b3"}.ai-lattes-square:before{content:"\e99c"}.ai-mathoverflow:before{content:"\e9f6"}.ai-mathoverflow-square:before{content:"\e97b"}.ai-mendeley:before{content:"\e9f0"}.ai-mendeley-square:before{content:"\e9f3"}.ai-moodle:before{content:"\e907"}.ai-moodle-square:before{content:"\e908"}.ai-mtmt:before{content:"\e950"}.ai-mtmt-square:before{content:"\e951"}.ai-nakala:before{content:"\e940"}.ai-nakala-square:before{content:"\e941"}.ai-obp:before{content:"\e92a"}.ai-obp-square:before{content:"\e92b"}.ai-open-access:before{content:"\e939"}.ai-open-access-square:before{content:"\e9f4"}.ai-open-data:before{content:"\e966"}.ai-open-data-square:before{content:"\e967"}.ai-open-materials:before{content:"\e968"}.ai-open-materials-square:before{content:"\e969"}.ai-openedition:before{content:"\e946"}.ai-openedition-square:before{content:"\e947"}.ai-orcid:before{content:"\e9d9"}.ai-orcid-square:before{content:"\e9c3"}.ai-osf:before{content:"\e9ef"}.ai-osf-square:before{content:"\e931"}.ai-overleaf:before{content:"\e914"}.ai-overleaf-square:before{content:"\e98d"}.ai-philpapers:before{content:"\e98a"}.ai-philpapers-square:before{content:"\e96f"}.ai-piazza:before{content:"\e99a"}.ai-piazza-square:before{content:"\e90c"}.ai-preregistered:before{content:"\e906"}.ai-preregistered-square:before{content:"\e96b"}.ai-protocols:before{content:"\e952"}.ai-protocols-square:before{content:"\e953"}.ai-psyarxiv:before{content:"\e90e"}.ai-psyarxiv-square:before{content:"\e90f"}.ai-publons:before{content:"\e937"}.ai-publons-square:before{content:"\e94e"}.ai-pubmed:before{content:"\e99f"}.ai-pubmed-square:before{content:"\e97d"}.ai-pubpeer:before{content:"\e922"}.ai-pubpeer-square:before{content:"\e923"}.ai-researcherid:before{content:"\e91a"}.ai-researcherid-square:before{content:"\e95c"}.ai-researchgate:before{content:"\e95e"}.ai-researchgate-square:before{content:"\e99e"}.ai-ror:before{content:"\e948"}.ai-ror-square:before{content:"\e949"}.ai-sci-hub:before{content:"\e959"}.ai-sci-hub-square:before{content:"\e905"}.ai-scirate:before{content:"\e98e"}.ai-scirate-square:before{content:"\e99d"}.ai-scopus:before{content:"\e91e"}.ai-scopus-square:before{content:"\e91f"}.ai-semantic-scholar:before{content:"\e96e"}.ai-semantic-scholar-square:before{content:"\e96c"}.ai-springer:before{content:"\e928"}.ai-springer-square:before{content:"\e99b"}.ai-ssrn:before{content:"\e916"}.ai-ssrn-square:before{content:"\e917"}.ai-stackoverflow:before{content:"\e920"}.ai-stackoverflow-square:before{content:"\e921"}.ai-viaf:before{content:"\e933"}.ai-viaf-square:before{content:"\e934"}.ai-wiley:before{content:"\e926"}.ai-wiley-square:before{content:"\e927"}.ai-zenodo:before{content:"\e911"}.ai-zotero:before{content:"\e962"}.ai-zotero-square:before{content:"\e932"}.ai-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.ai-xs{font-size:.75em}.ai-sm{font-size:.875em}.ai-1x{font-size:1em}.ai-2x{font-size:2em}.ai-3x{font-size:3em}.ai-4x{font-size:4em}.ai-5x{font-size:5em}.ai-6x{font-size:6em}.ai-7x{font-size:7em}.ai-8x{font-size:8em}.ai-9x{font-size:9em}.ai-10x{font-size:10em}.ai-fw{text-align:center;width:1.25em}.ai-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.ai-ul>li{position:relative}.ai-li{left:-2em;line-height:inherit;position:absolute;text-align:center;width:2em}.ai-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.ai-pull-left{float:left}.ai-pull-right{float:right}.ai.ai-pull-left,.ai.ai-pull-right{margin-right:.3em}.ai-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.ai-stack-1x,.ai-stack-2x{left:0;position:absolute;text-align:center;width:100%}.ai-stack-1x{line-height:inherit}.ai-stack-2x{font-size:2em}.ai-inverse{color:#fff}
2
3/*
4! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
5*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}
5code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}
5[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}@media (min-width:1792px){.container{max-width:1792px}}.sticky{position:sticky}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.top-24{top:6rem}.z-0{z-index:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-64{height:16rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-48{width:12rem}.w-5\/6{width:83.333333%}.w-6{width:1.5rem}.w-64{width:16rem}.w-full{width:100%}.flex-grow{flex-grow:1}.-translate-y-16{--tw-translate-y:-4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-start{place-items:start}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-visible{overflow:visible}.rounded-full{border-radius:9999px}
5.rounded-lg{border-radius:.5rem}.border-2{border-width:2px}.border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);
5--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ai-size-32{font-size:32px}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25}.hover\:scale-125:hover,.hover\:scale-150:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-150:hover{--tw-scale-x:1.5;--tw-scale-y:1.5}.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.hover\:underline:hover{text-decoration-line:underline}.group:hover .group-hover\:w-8{width:2rem}.group:hover .group-hover\:-translate-y-1{--tw-translate-y:-0.25rem}.group:hover .group-hover\:-translate-y-1,.group:hover .group-hover\:scale-125{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.group:hover .group-hover\:underline{text-decoration-line:underline}:is(.dark .dark\:border-white){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}:is(.dark .dark\:bg-slate-500){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-700){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-800){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}:is(.dark .dark\:text-slate-500){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}:is(.dark .dark\:text-slate-800){--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:hover\:bg-slate-200:hover){--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:flex{display:flex}.sm\:hidden{display:none}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:mb-24{margin-bottom:6rem}.lg\:flex{display:flex}.lg\:flex-row{flex-direction:row}.lg\:place-items-start{place-items:start}.lg\:space-x-12>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(3rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(3rem*var(--tw-space-x-reverse))}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:place-items-center{place-items:center}}@media (min-width:1792px){.\33xl\:mx-auto{margin-left:auto;margin-right:auto}.\33xl\:w-\[1792px\]{width:1792px}}</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>
5<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>
5<link rel="stylesheet" href="./src/assets/academicons/css/academicons.min.css"/><title data-gatsby-head="true">Home | Portfolio</title>
vendor: 66 bytes, line 5
5<script async="" src="https://www.googletagmanager.com/gtag/js?id=
5G-BB4NG1TEMJ
vendor: 11 bytes, line 5
5"></script>
5<script>
6              
vendor: 169 bytes, lines 6-9
6window.dataLayer = window.dataLayer || [];
7              function gtag(){dataLayer.push(arguments);}
8              gtag('js', new Date());
9              gtag('config', '
9G-BB4NG1TEMJ
vendor: 16 bytes, lines 9-10
9');
10            
10</script>
10</head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="flex flex-col w-full min-h-screen h-full light bg-slate-50 transition ease-in-out duration-500"><header class="3xl:w-[1792px] 3xl:mx-auto text-slate-500 bg-slate-50 dark:bg-slate-800 dark:text-white pt-2 sticky top-0 z-50 transition ease-in-out duration-500"><div class="container mx-auto w-5/6"><div class="flex justify-between items-center"><a aria-current="page" class="flex flex-row font-bold" href="/"><button type="button" class="py-2 text-center" aria-label="go to home page"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="text-slate-800 dark:text-white hover:scale-150 duration-300" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M20 20.0001C20 20.5524 19.5523 21.0001 19 21.0001H5C4.44772 21.0001 4 20.5524 4 20.0001V11.0001L1 11.0001L11.3273 1.61162C11.7087 1.26488 12.2913 1.26488 12.6727 1.61162L23 11.0001L20 11.0001V20.0001ZM8 15.0001V17.0001H16V15.0001H8Z"></path></svg></button><div class="font-bold hover:underline p-2 text-center">Author</div></a><div class="hidden sm:flex"><nav class="flex justify-end items-center"><ul class="flex flex-row justify-end items-center list-none space-x-4 font-bold"><li><a aria-current="page" class="hover:underline" href="/">About</a></li><li><a class="hover:underline" href="/projects/">Projects</a></li><li><a class="hover:underline" href="/Publication/">Publication</a></li><li><a href="/CV.pdf" target="_blank" rel="noreferrer" class="hover:underline">CV</a></li><div class="cursor-pointer inset-x-0 inset-y-0"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="text-slate-800 dark:text-white hover:scale-150 duration-300" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M11.3807 2.01904C9.91573 3.38786 9 5.33708 9 7.50018C9 11.6423 12.3579 15.0002 16.5 15.0002C18.6631 15.0002 20.6123 14.0844 21.9811 12.6195C21.6613 17.8539 17.3149 22.0002 12 22.0002C6.47715 22.0002 2 17.523 2 12.0002C2 6.68532 6.14629 2.33888 11.3807 2.01904Z"></path></svg></div></ul></nav></div><div class="sm:hidden flex flex-row space-x-4 items-center"><button aria-label="open menu"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="text-slate-800 dark:text-white hover:scale-150 duration-300" height="18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z"></path></svg></button><style data-emotion="css a3xyjy">.css-a3xyjy{z-index:1200;}</style></div></div></div><div><hr class="mt-2 border-2 border-slate-800 dark:border-white"/></div></header><main class="3xl:w-[1792px] 3xl:mx-auto flex flex-col flex-grow py-0 text-slate-800 dark:text-white z-0"><div class="flex flex-grow container mx-auto w-5/6"><header class="text-3xl"></header><div class="mx-auto"><div class="flex flex-col lg:flex-row place-items-center lg:place-items-start space-y-12 lg:space-x-12"><div class="flex flex-col lg:px-6 lg:sticky top-24 place-items-center space-y-6 lg:mb-24"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-full h-64 w-64 object-cover mt-4"><div style="max-width:2110px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height=&#x27;2281&#x27;%20width=&#x27;2110&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20version=&#x27;1.1&#x27;%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#c8e8f8;position:absolute;top:0;left:0;bottom:0;right:0"></div><picture><source type="image/webp" data-srcset="/static/e98e4355fe6bb2f84003a06a6bed291d/08bb9/self.webp 528w,/static/e98e4355fe6bb2f84003a06a6bed291d/b06e7/self.webp 1055w,/static/e98e4355fe6bb2f84003a06a6bed291d/d3aff/self.webp 2110w" sizes="(min-width: 2110px) 2110px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 2110px) 2110px, 100vw" decoding="async" loading="lazy" data-src="/static/e98e4355fe6bb2f84003a06a6bed291d/fdb83/self.jpg" data-srcset="/static/e98e4355fe6bb2f84003a06a6bed291d/419f9/self.jpg 528w,/static/e98e4355fe6bb2f84003a06a6bed291d/a6d6e/self.jpg 1055w,/static/e98e4355fe6bb2f84003a06a6bed291d/fdb83/self.jpg 2110w" alt="Me"/></picture><noscript><picture><source type="image/webp" srcSet="/static/e98e4355fe6bb2f84003a06a6bed291d/08bb9/self.webp 528w,/static/e98e4355fe6bb2f84003a06a6bed291d/b06e7/self.webp 1055w,/static/e98e4355fe6bb2f84003a06a6bed291d/d3aff/self.webp 2110w" sizes="(min-width: 2110px) 2110px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 2110px) 2110px, 100vw" decoding="async" loading="lazy" src="/static/e98e4355fe6bb2f84003a06a6bed291d/fdb83/self.jpg" srcSet="/static/e98e4355fe6bb2f84003a06a6bed291d/419f9/self.jpg 528w,/static/e98e4355fe6bb2f84003a06a6bed291d/a6d6e/self.jpg 1055w,/static/e98e4355fe6bb2f84003a06a6bed291d/fdb83/self.jpg 2110w" alt="Me"/></picture></noscript>
10<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
10</div><div class="flex flex-row mx-auto place-items-center space-x-8 overflow-visible"><a href="https://www.linkedin.com/in/byronliang16/" target="_blank" class="hover:scale-125 cursor-pointer transition ease-in-out duration-300" aria-label="LinkedIn"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z"></path></svg></a><a href="https://scholar.google.com/citations?user=g5i2ojYAAAAJ&amp;hl=en" target="_blank" class="hover:scale-125 cursor-pointer transition ease-in-out duration-300" aria-label="Google Scholar"><i class="ai ai-google-scholar ai-size-32"></i></a><a href="/CV.pdf" target="_blank" class="hover:scale-125 cursor-pointer transition ease-in-out duration-300" aria-label="CV"><i class="ai ai-cv ai-size-32"></i></a></div><div class="hidden lg:flex flex-col w-1/3 items-start"><div class="flex flex-row place-items-center group"><hr class="w-6 group-hover:w-8 mr-2 border-1 border-slate-800 dark:border-white group-transition ease-in-out duration-300"/><button class="peer group-hover:underline">News</button></div><div class="flex flex-row place-items-center group"><hr class="w-6 group-hover:w-8 mr-2 border-1 border-slate-800 dark:border-white group-transition ease-in-out duration-300"/><button class="peer group-hover:underline">Education</button></div><div class="flex flex-row items-center group"><hr class="w-6 group-hover:w-8 mr-2 border-1 border-slate-800 dark:border-white group-transition ease-in-out duration-300"/><button class="peer hover:underline">Selected_Paper</button></div><div class="flex flex-row items-center group"><hr class="w-6 group-hover:w-8 mr-2 border-1 border-slate-800 dark:border-white group-transition ease-in-out duration-300"/><button class="peer hover:underline">Contact</button></div></div></div><div class="container flex flex-col"><h1 class="text-3xl font-bold mb-4">Yuanbang Liang</h1><h1 class="font-bold mb-4">Research associate in the Visual Computing Group @ Cardiff University</h1><p class="mb-4">I&#x27;m working with Professor Yu-kun Lai at Cardiff University, as a research associate. My research interests are centred around machine learning and its applications in computer vision, computer graphics and content generation.</p><p class="mb-4">My PhD research, which is fully funded by the EPSRC, focuses on the hubness phenomenon to uncover the relationship between the hyper-dimensional distribution and the generative models. Now my research is on the explainability of generative models to make model-generated results more aligned with objective facts.</p><section><div id="news" class="-translate-y-16"></div><h1 class="text-2xl py-4 font-medium">News</h1><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2026 June</div><div class="flex flex-col place-items-start p-4 w-3/4"><p class="mt-1">Our team is organising the<!-- --> <a href="https://cardiffvisualcomputing.github.io/2026/index.html" target="_blank" class="hover:underline">2nd Cardiff Image and Vision Computing Workshop</a>.</p></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2026 May</div><div class="flex flex-col place-items-start p-4 w-3/4"><p class="mt-1">Our paper is accepted by ICML</p></div></div></section><section><div id="education" class="-translate-y-16"></div><h1 class="text-2xl py-4 font-medium">Education</h1><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2021.10 - 2025.09</div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Cardiff University</h2><h3 class="text-lg italic">PhD Computer Science</h3><p class="mt-1">Thesis title: Hubness awareness sampling for deep generative models in generation and evaluation. Supervised by Yipeng Qin, Yu-Kun Lai and Jing Wu.</p><div class="mt-2 flex flex-wrap gap-x-4"></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2020.09 - 2021.09</div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">University of Bristol</h2><h3 class="text-lg italic">MSc Engineering Mathematics</h3><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2018.09 - 2020.07</div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">University of Liverpool</h2><h3 class="text-lg italic">BSc Computer Science</h3><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4">2016.09 - 2018.07</div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Xi&#x27;an Jiao-Tong Liverpool University (XJTLU)</h2><h3 class="text-lg italic">Bsc Information and Computer Science</h3><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"></div></div></div></section><section><div id="publications" class="-translate-y-16"></div><h1 class="text-2xl py-4 font-medium">Selected Publications</h1><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4"><b>ICML</b></div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Geometric Decoupling: Diagnosing the Structural Instability of Latent</h2><p>Yuanbang Liang*, Zhengwen Chen, Yu-Kun Lai</p><p class="italic">International Conference on Machine Learning<!-- -->, <!-- -->2026</p><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"><a href="https://arxiv.org/pdf/2604.18804" aria-label="0" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">PDF</a><a href="https://github.com/Byronliang8/Diffusion-Geometry" aria-label="1" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Github</a></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4"><b>CVPR (Oral, top 0.8%)</b></div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Deep generative model based rate-distortion for image
11downscaling assessment</h2><p>Yuanbang Liang*, Bhavesh Garg, Paul L. Rosin, Yipeng Qin</p><p class="italic">IEEE/CVF Conference on Computer Vision and Pattern
12Recognition (CVPR)<!-- -->, <!-- -->2024</p><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"><a href="https://openaccess.thecvf.com/content/CVPR2024/html/Liang_Deep_Generative_Model_based_Rate-Distortion_for_Image_Downscaling_Assessment_CVPR_2024_paper.html" aria-label="0" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">PDF</a><a href="https://youtu.be/94xMwRkL7ZI" aria-label="1" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Youtube</a><a href="https://github.com/Byronliang8/IDA-RD" aria-label="2" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Github</a></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4"><b>ICML (Spotlight)</b></div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Efficient Precision and Recall Metrics for Assessing Generative Models using Hubness-aware Sampling</h2><p>Yuanbang Liang*, Jing Wu , Yu-Kun Lai , Yipeng Qin</p><p class="italic">The Forty-first International Conference on Machine Learning<!-- -->, <!-- -->2024</p><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"><a href="https://proceedings.mlr.press/v235/liang24f.html" aria-label="0" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">PDF</a><a href="https://byronliang8.github.io/Hubness_Precision_Recall_page/" aria-label="1" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Project Page</a><a href="https://github.com/Byronliang8/Hubness_Precision_Recall" aria-label="2" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Github</a></div></div></div><div class="flex mx-auto"><div class="flex place-items-start justify-center text-sm p-4 pt-5 w-1/4"><b>ICML (Spotlight)</b></div><div class="flex flex-col place-items-start p-4 w-3/4"><h2 class="text-xl font-medium">Exploring and Exploiting Hubness Priors for High-Quality GAN Latent Sampling</h2><p>Yuanbang Liang*, Jing Wu , Yu-Kun Lai , Yipeng Qin</p><p class="italic">The Thirty-ninth  International Conference on Machine Learning<!-- -->, <!-- -->2022</p><p class="mt-1"></p><div class="mt-2 flex flex-wrap gap-x-4"><a href="https://proceedings.mlr.press/v235/liang24f.html" aria-label="0" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">PDF</a><a href="https://slideslive.com/38984105" aria-label="1" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">slideslive</a><a href="https://github.com/Byronliang8/HubnessGANSampling" aria-label="2" class="inline-flex items-center gap-1 rounded-full py-1 text-xs font-semibold" target="_blank">Github</a></div></div></div></section></div></div></div></div><div class="py-4"><hr class="border-1 border-slate-800 dark:border-white"/></div><footer class="container mx-auto text-center text-sm pb-2"><p class="cp-text">© <!-- -->2026<!-- --> <span class="font-bold">Designed by Author. Inspired by <a href="https://www.github.com/ibrahim-didi/elegant-portfolio">elegant-portfolio</a>.</span></p></footer></main></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;
12border:0" aria-live="assertive" aria-atomic="true"></div></div>
12<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script>
12<!-- slice-start id="_gatsby-scripts-1" -->
13          
13<script
14            id="gatsby-chunk-mapping"
15          >
16            window.___chunkMapping="{\"app\":[\"/app-0551ba79a270ca19cf46.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-171577cf738db043b696.js\"],\"component---src-pages-index-js\":[\"/component---src-pages-index-js-0b542facafb00b4ca554.js\"],\"component---src-pages-projects-js\":[\"/component---src-pages-projects-js-ae705fb0e4e2553eac74.js\"],\"component---src-pages-publication-index-js\":[\"/component---src-pages-publication-index-js-9e8da1d3afd408483f75.js\"]}";
17          </script>
17
18        
18<script>window.___webpackCompilationHash="a9f3a0a04774eaaec88a";</script>
18<script src="/webpack-runtime-3ae7eba4e5d53a5412ae.js" async></script>
18<script src="/framework-1c00fb41dc5208afb5e0.js" async></script>
18<script src="/78e521c3-215dc27eb9c2e862d439.js" async></script>
18<script src="/252f366e-f143b7941ccd41d4ca65.js" async></script>
18<script src="/app-0551ba79a270ca19cf46.js" async></script>
18<!-- 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.