1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6 <link rel="profile" href="https://gmpg.org/xfn/11"> 7 <title>Metal by Example – High-performance GPU programming for Apple platforms</title> 8<meta name='robots' content='max-image-preview:large' /> 9<link rel='dns-prefetch' href='//secure.gravatar.com' /> 10<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 11<link rel='dns-prefetch' href='//v0.wordpress.com' /> 12<link href='https://fonts.googleapis.com' rel='preconnect' /> 13<link href='https://fonts.gstatic.com' crossorigin='anonymous' rel='preconnect' /> 14<link rel="alternate" type="application/rss+xml" title="Metal by Example » Feed" href="https://metalbyexample.com/feed/" /> 15<link rel="alternate" type="application/rss+xml" title="Metal by Example » Comments Feed" href="https://metalbyexample.com/comments/feed/" /> 16<style id='wp-img-auto-sizes-contain-inline-css'> 17img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 18/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 19</style> 20<link rel='stylesheet' id='wp-quicklatex-format-css' href='https://metalbyexample.com/wp-content/plugins/wp-quicklatex/css/quicklatex-format.css?ver=6.9.9' media='all' /> 21<link rel='stylesheet' id='astra-theme-css-css' href='https://metalbyexample.com/wp-content/themes/astra/assets/css/minified/main.min.css?ver=4.12.6' media='all' /> 22<style id='astra-theme-css-inline-css'> 23:root{--ast-post-nav-space:0;--ast-container-default-xlg-padding:3em;--ast-container-default-lg-padding:3em;--ast-container-default-slg-padding:2em;--ast-container-default-md-padding:3em;--ast-container-default-sm-padding:3em;--ast-container-default-xs-padding:2.4em;--ast-container-default-xxs-padding:1.8em;--ast-code-block-background:#EEEEEE;--ast-comment-inputs-background:#FAFAFA;--ast-normal-container-width:1200px;--ast-narrow-container-width:750px;--ast-blog-title-font-weight:normal;--ast-blog-meta-weight:inherit;--ast-global-color-primary:var(--ast-global-color-5);--ast-global-color-secondary:var(--ast-global-color-4);--ast-global-color-alternate-background:var(--ast-global-color-7);--ast-global-color-subtle-background:var(--ast-global-color-6);--ast-bg-style-guide:var( --ast-global-color-secondary,--ast-global-color-5 );--ast-shadow-style-guide:0px 0px 4px 0 #00000057;--ast-global-dark-bg-style:#fff;--ast-global-dark-lfs:#fbfbfb;--ast-widget-bg-color:#fafafa;--ast-wc-container-head-bg-color:#fbfbfb;--ast-title-layout-bg:#eeeeee;--ast-search-border-color:#e7e7e7;--ast-lifter-hover-bg:#e6e6e6;--ast-gallery-block-color:#000;--srfm-color-input-label:var(--ast-global-color-2);}html{font-size:93.75%;}a{color:#0274be;}a:hover,a:focus{color:#3a3a3a;}body,button,input,select,textarea,.ast-button,.ast-custom-button{font-family:'Noto Sans',sans-serif;font-weight:400;font-size:15px;font-size:1rem;}blockquote{color:#000000;}.ast-site-identity .site-title a{color:var(--ast-global-color-2);}.site-title{font-size:35px;font-size:2.3333333333333rem;display:block;}.site-header .site-description{font-size:15px;font-size:1rem;display:none;}.entry-title{font-size:40px;font-size:2.6666666666667rem;}.archive .ast-article-post .ast-article-inner,.blog .ast-article-post .ast-article-inner,.archive .ast-article-post .ast-article-inner:hover,.blog .ast-article-post .ast-article-inner:hover{overflow:hidden;}h1,.entry-content :where(h1){font-size:40px;font-size:2.6666666666667rem;line-height:1.4em;}h2,.entry-content :where(h2){font-size:30px;font-size:2rem;line-height:1.3em;}h3,.entry-content :where(h3){font-size:25px;font-size:1.6666666666667rem;line-height:1.3em;}h4,.entry-content :where(h4){font-size:20px;font-size:1.3333333333333rem;line-height:1.2em;}h5,.entry-content :where(h5){font-size:18px;font-size:1.2rem;line-height:1.2em;}h6,.entry-content :where(h6){font-size:15px;font-size:1rem;line-height:1.25em;}::selection{background-color:#0274be;color:#ffffff;}body,h1,h2,h3,h4,h5,h6,.entry-title a,.entry-content :where(h1,h2,h3,h4,h5,h6){color:#3a3a3a;}.tagcloud a:hover,.tagcloud a:focus,.tagcloud a.current-item{color:#ffffff;border-color:#0274be;background-color:#0274be;}input:focus,input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="reset"]:focus,input[type="search"]:focus,textarea:focus{border-color:#0274be;}input[type="radio"]:checked,input[type=reset],input[type="checkbox"]:checked,input[type="checkbox"]:hover:checked,input[type="checkbox"]:focus:checked,input[type=range]::-webkit-slider-thumb{border-color:#0274be;background-color:#0274be;box-shadow:none;}.site-footer a:hover + .post-count,.site-footer a:focus + .post-count{background:#0274be;border-color:#0274be;}.single .nav-links .nav-previous,.single .nav-links .nav-next{color:#0274be;}.entry-meta,.entry-meta *{line-height:1.45;color:#0274be;}.entry-meta a:not(.ast-button):hover,.entry-meta a:not(.ast-button):hover *,.entry-meta a:not(.ast-button):focus,.entry-meta a:not(.ast-button):focus *,.page-links > .page-link,.page-links .page-link:hover,.post-navigation a:hover{color:#3a3a3a;}#cat option,.secondary .calendar_wrap thead a,.secondary .calendar_wrap thead a:visited{color:#0274be;}.secondary .calendar_wrap #today,.ast-progress-val span{background:#0274be;}.secondary a:hover + .post-count,.secondary a:focus + .post-count{background:#0274be;border-color:#0274be;}.calendar_wrap #today > a{color:#ffffff;}.page-links .page-link,.single .post-navigation a{color:#0274be;}.ast-search-menu-icon .search-form button.search-submit{padding:0 4px;}.ast-search-menu-icon form.search-form{padding-right:0;}.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-form,.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-field:focus{transition:all 0.2s;}.search-form input.search-field:focus{outline:none;}
23.ast-mobile-header-content .ast-builder-layout-element:not(.ast-builder-menu):not(.ast-header-divider-element),.ast-mobile-popup-content .ast-builder-layout-element:not(.ast-builder-menu):not(.ast-header-divider-element){padding:15px 20px;}.widget-title,.widget .wp-block-heading{font-size:21px;font-size:1.4rem;}#secondary,#secondary button,#secondary input,#secondary select,#secondary textarea{font-size:15px;font-size:1rem;}.ast-single-post .entry-content a,.ast-comment-content a:not(.ast-comment-edit-reply-wrap a){text-decoration:underline;}.ast-single-post .wp-block-button .wp-block-button__link,.ast-single-post .entry-content .uagb-tab a,.ast-single-post .entry-content .uagb-ifb-cta a,.ast-single-post .entry-content .wp-block-uagb-buttons a,.ast-single-post .entry-content .uabb-module-content a,.ast-single-post .entry-content .uagb-post-grid a,.ast-single-post .entry-content .uagb-timeline a,.ast-single-post .entry-content .uagb-toc__wrap a,.ast-single-post .entry-content .uagb-taxomony-box a,.entry-content .wp-block-latest-posts > li > a,.ast-single-post .entry-content .wp-block-file__button,a.ast-post-filter-single,.ast-single-post .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link,.ast-single-post .ast-comment-content .comment-reply-link,.ast-single-post .ast-comment-content .comment-edit-link{text-decoration:none;}.ast-search-menu-icon.slide-search a:focus-visible:focus-visible,.astra-search-icon:focus-visible,#close:focus-visible,a:focus-visible,.ast-menu-toggle:focus-visible,.site .skip-link:focus-visible,.wp-block-loginout input:focus-visible,.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,.ast-header-navigation-arrow:focus-visible,.ast-orders-table__row .ast-orders-table__cell:focus-visible,a#ast-apply-coupon:focus-visible,#ast-apply-coupon:focus-visible,#close:focus-visible,.button.search-submit:focus-visible,#search_submit:focus,.normal-search:focus-visible,.ast-header-account-wrap:focus-visible,.astra-cart-drawer-close:focus,.ast-single-variation:focus,.ast-button:focus,.ast-builder-button-wrap:has(.ast-custom-button-link:focus),.ast-builder-button-wrap .ast-custom-button-link:focus{outline-style:dotted;outline-color:inherit;outline-width:thin;}input:focus,input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="reset"]:focus,input[type="search"]:focus,input[type="number"]:focus,textarea:focus,.wp-block-search__input:focus,[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal:focus,.ast-mobile-popup-drawer.active .menu-toggle-close:focus,#ast-scroll-top:focus,#coupon_code:focus,#ast-coupon-code:focus{border-style:dotted;border-color:inherit;border-width:thin;}input{outline:none;}.ast-logo-title-inline .site-logo-img{padding-right:1em;}body .ast-oembed-container *{position:absolute;top:0;width:100%;height:100%;left:0;}body .wp-block-embed-pocket-casts .ast-oembed-container *{position:unset;}.ast-single-post-featured-section + article {margin-top: 2em;}.site-content .ast-single-post-featured-section img {width: 100%;overflow: hidden;object-fit: cover;}.site > .ast-single-related-posts-container {margin-top: 0;}@media (min-width: 922px) {.ast-desktop .ast-container--narrow {max-width: var(--ast-narrow-container-width);margin: 0 auto;}}#secondary {margin: 4em 0 2.5em;word-break: break-word;line-height: 2;}#secondary li {margin-bottom: 0.75em;}#secondary li:last-child {margin-bottom: 0;}@media (max-width: 768px) {.js_active .ast-plain-container.ast-single-post #secondary {margin-top: 1.5em;}}.ast-separate-container.ast-two-container #secondary .widget {background-color: #fff;padding: 2em;margin-bottom: 2em;}@media (min-width: 993px) {.ast-left-sidebar #secondary {padding-right: 60px;}.ast-right-sidebar #secondary {padding-left: 60px;}}@media (max-width: 993px) {.ast-right-sidebar #secondary {padding-left: 30px;}.ast-left-sidebar #secondary {padding-right: 30px;}}@media (min-width: 993px) {.ast-page-builder-template.ast-left-sidebar #secondary {padding-left: 60px;}
23.ast-page-builder-template.ast-right-sidebar #secondary {padding-right: 60px;}}@media (max-width: 993px) {.ast-page-builder-template.ast-right-sidebar #secondary {padding-right: 30px;}.ast-page-builder-template.ast-left-sidebar #secondary {padding-left: 30px;}}@media (max-width:921.9px){#ast-desktop-header{display:none;}}@media (min-width:922px){#ast-mobile-header{display:none;}}.wp-block-buttons.aligncenter{justify-content:center;}.wp-block-button.is-style-outline .wp-block-button__link{border-color:#0274be;}div.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),div.wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color){color:#0274be;}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover,.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover{color:#ffffff;background-color:#3a3a3a;border-color:#3a3a3a;}.post-page-numbers.current .page-link,.ast-pagination .page-numbers.current{color:#ffffff;border-color:#0274be;background-color:#0274be;}.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button,.ast-outline-button{border-color:#0274be;font-family:inherit;font-weight:inherit;line-height:1em;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;}.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color),.ast-outline-button{color:#0274be;}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover,.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover,.ast-outline-button:hover,.ast-outline-button:focus,.wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover,.wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:focus{color:#ffffff;background-color:#3a3a3a;border-color:#3a3a3a;}.wp-block-button .wp-block-button__link.wp-element-button.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link.wp-element-button:not(.has-background),.ast-outline-button{background-color:transparent;}.entry-content[data-ast-blocks-layout] > figure{margin-bottom:1em;}h1.widget-title{font-weight:inherit;}h2.widget-title{font-weight:inherit;}h3.widget-title{font-weight:inherit;}#page{display:flex;flex-direction:column;min-height:100vh;}.ast-404-layout-1 h1.page-title{color:var(--ast-global-color-2);}.single .post-navigation a{line-height:1em;height:inherit;}.error-404 .page-sub-title{font-size:1.5rem;font-weight:inherit;}.search .site-content .content-area .search-form{margin-bottom:0;}#page .site-content{flex-grow:1;}.widget{margin-bottom:1.25em;}#secondary li{line-height:1.5em;}#secondary .wp-block-group h2{margin-bottom:0.7em;}#secondary h2{font-size:1.7rem;}.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.ast-separate-container .comment-respond{padding:3em;}.ast-separate-container .ast-article-single .ast-article-single{padding:0;}.ast-article-single .wp-block-post-template-is-layout-grid{padding-left:0;}.ast-separate-container .comments-title,.ast-narrow-container .comments-title{padding:1.5em 2em;}.ast-page-builder-template .comment-form-textarea,.ast-comment-formwrap .ast-grid-common-col{padding:0;}.ast-comment-formwrap{padding:0;display:inline-flex;column-gap:20px;width:100%;margin-left:0;margin-right:0;}.comments-area textarea#comment:focus,.comments-area textarea#comment:active,.comments-area .ast-comment-formwrap input[type="text"]:focus,.comments-area .ast-comment-formwrap input[type="text"]:active {box-shadow:none;outline:none;}
23.archive.ast-page-builder-template .entry-header{margin-top:2em;}.ast-page-builder-template .ast-comment-formwrap{width:100%;}.entry-title{margin-bottom:0.5em;}.ast-archive-description p{font-size:inherit;font-weight:inherit;line-height:inherit;}.ast-separate-container .ast-comment-list li.depth-1,.hentry{margin-bottom:2em;}@media (min-width:921px){.ast-left-sidebar.ast-page-builder-template #secondary,.archive.ast-right-sidebar.ast-page-builder-template .site-main{padding-left:20px;padding-right:20px;}}@media (max-width:544px){.ast-comment-formwrap.ast-row{column-gap:10px;display:inline-block;}#ast-commentform .ast-grid-common-col{position:relative;width:100%;}}@media (min-width:1201px){.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.ast-separate-container .ast-author-box,.ast-separate-container .ast-404-layout-1,.ast-separate-container .no-results{padding:3em;}}@media (max-width:921px){.ast-left-sidebar #content > .ast-container{display:flex;flex-direction:column-reverse;width:100%;}}@media (max-width:921px){#secondary.secondary{padding-top:0;}.ast-separate-container.ast-right-sidebar #secondary{padding-left:1em;padding-right:1em;}.ast-separate-container.ast-two-container #secondary{padding-left:0;padding-right:0;}.ast-page-builder-template .entry-header #secondary,.ast-page-builder-template #secondary{margin-top:1.5em;}}@media (max-width:921px){.ast-right-sidebar #primary{padding-right:0;}.ast-page-builder-template.ast-left-sidebar #secondary,.ast-page-builder-template.ast-right-sidebar #secondary{padding-right:20px;padding-left:20px;}.ast-right-sidebar #secondary,.ast-left-sidebar #primary{padding-left:0;}.ast-left-sidebar #secondary{padding-right:0;}}@media (min-width:922px){.ast-separate-container.ast-right-sidebar #primary,.ast-separate-container.ast-left-sidebar #primary{border:0;}.search-no-results.ast-separate-container #primary{margin-bottom:4em;}}@media (min-width:922px){.ast-right-sidebar #primary{border-right:1px solid var(--ast-border-color);}.ast-left-sidebar #primary{border-left:1px solid var(--ast-border-color);}.ast-right-sidebar #secondary{border-left:1px solid var(--ast-border-color);margin-left:-1px;}.ast-left-sidebar #secondary{border-right:1px solid var(--ast-border-color);margin-right:-1px;}.ast-separate-container.ast-two-container.ast-right-sidebar #secondary{padding-left:30px;padding-right:0;}.ast-separate-container.ast-two-container.ast-left-sidebar #secondary{padding-right:30px;padding-left:0;}.ast-separate-container.ast-right-sidebar #secondary,.ast-separate-container.ast-left-sidebar #secondary{border:0;margin-left:auto;margin-right:auto;}.ast-separate-container.ast-two-container #secondary .widget:last-child{margin-bottom:0;}}.wp-block-button .wp-block-button__link{color:#ffffff;}.wp-block-button .wp-block-button__link:hover,.wp-block-button .wp-block-button__link:focus{color:#ffffff;background-color:#3a3a3a;border-color:#3a3a3a;}.wp-block-button .wp-block-button__link,.wp-block-search .wp-block-search__button,body .wp-block-file .wp-block-file__button{border-color:#0274be;background-color:#0274be;color:#ffffff;font-family:inherit;font-weight:inherit;line-height:1em;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;padding-top:10px;padding-right:40px;padding-bottom:10px;padding-left:40px;}.menu-toggle,button,.ast-button,.ast-custom-button,.button,input#submit,input[type="button"],input[type="submit"],input[type="reset"],form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button,body .wp-block-file .wp-block-file__button,.search .search-submit{border-style:solid;border-top-width:0;border-right-width:0;border-left-width:0;border-bottom-width:0;color:#ffffff;border-color:#0274be;background-color:#0274be;padding-top:10px;padding-right:40px;padding-bottom:10px;padding-left:40px;font-family:inherit;font-weight:inherit;line-height:1em;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;}button:focus,.menu-toggle:hover,button:hover,.ast-button:hover,.ast-custom-button:hover .button:hover,.ast-custom-button:hover ,input[type=reset]:hover,input[type=reset]:focus,input#submit:hover,input#submit:focus,input[type="button"]:hover,input[type="button"]:focus,input[type="submit"]:hover,input[type="submit"]:focus,form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover,form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus,body .wp-block-file .wp-block-file__button:hover,body .wp-block-file .wp-block-file__button:focus{color:#ffffff;background-color:#3a3a3a;border-color:#3a3a3a;}form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button.has-icon{padding-top:calc(10px - 3px);padding-right:calc(40px - 3px);padding-bottom:calc(10px - 3px);padding-left:calc(40px - 3px);}@media (max-width:921px){.ast-mobile-header-stack .main-header-bar .ast-search-menu-icon{display:inline-block;}.ast-header-break-point.ast-header-custom-item-outside .ast-mobile-header-stack .main-header-bar .ast-search-icon{margin:0;}.ast-comment-avatar-wrap img{max-width:2.5em;}.ast-comment-meta{padding:0 1.8888em 1.3333em;}.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 2.14em;}.ast-separate-container .comment-respond{padding:2em 2.14em;}}@media (min-width:544px){.ast-container{max-width:100%;}}@media (max-width:544px){.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.ast-separate-container .comments-title,.ast-separate-container .ast-archive-description{padding:1.5em 1em;}.ast-separate-container #content .ast-container{padding-left:0.54em;padding-right:0.54em;}.ast-separate-container .ast-comment-list .bypostauthor{padding:.5em;}.ast-search-menu-icon.ast-dropdown-active .search-field{width:170px;}.ast-separate-container #secondary{padding-top:0;}.ast-separate-container.ast-two-container #secondary .widget{margin-bottom:1.5em;padding-left:1em;padding-right:1em;}} #ast-mobile-header .ast-site-header-cart-li a{pointer-events:none;}@media (max-width:921px){.site-title{display:block;}
23.site-header .site-description{display:none;}h1,.entry-content :where(h1){font-size:30px;}h2,.entry-content :where(h2){font-size:25px;}h3,.entry-content :where(h3){font-size:20px;}}@media (max-width:544px){.site-title{display:block;}.site-header .site-description{display:none;}h1,.entry-content :where(h1){font-size:30px;}h2,.entry-content :where(h2){font-size:25px;}h3,.entry-content :where(h3){font-size:20px;}}@media (max-width:921px){html{font-size:85.5%;}}@media (max-width:544px){html{font-size:85.5%;}}@media (min-width:922px){.ast-container{max-width:1240px;}}@media (min-width:922px){.site-content .ast-container{display:flex;}}@media (max-width:921px){.site-content .ast-container{flex-direction:column;}}.ast-blog-layout-classic-grid .ast-article-inner{box-shadow:0px 6px 15px -2px rgba(16,24,40,0.05);}.ast-separate-container .ast-blog-layout-classic-grid .ast-article-inner,.ast-plain-container .ast-blog-layout-classic-grid .ast-article-inner{height:100%;}.ast-blog-layout-6-grid .ast-blog-featured-section:before { content: ""; }.cat-links.badge a,.tags-links.badge a {padding: 4px 8px;border-radius: 3px;font-weight: 400;}.cat-links.underline a,.tags-links.underline a{text-decoration: underline;}@media (min-width:922px){.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu,.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu{margin-left:-0px;}}.site .comments-area{padding-bottom:3em;}.wp-block-file {display: flex;align-items: center;flex-wrap: wrap;justify-content: space-between;}.wp-block-pullquote {border: none;}.wp-block-pullquote blockquote::before {content: "\201D";font-family: "Helvetica",sans-serif;display: flex;transform: rotate( 180deg );font-size: 6rem;font-style: normal;line-height: 1;font-weight: bold;align-items: center;justify-content: center;}.has-text-align-right > blockquote::before {justify-content: flex-start;}.has-text-align-left > blockquote::before {justify-content: flex-end;}figure.wp-block-pullquote.is-style-solid-color blockquote {max-width: 100%;text-align: inherit;}:root {--wp--custom--ast-default-block-top-padding: 3em;--wp--custom--ast-default-block-right-padding: 3em;--wp--custom--ast-default-block-bottom-padding: 3em;--wp--custom--ast-default-block-left-padding: 3em;--wp--custom--ast-container-width: 1200px;--wp--custom--ast-content-width-size: 1200px;--wp--custom--ast-wide-width-size: calc(1200px + var(--wp--custom--ast-default-block-left-padding) + var(--wp--custom--ast-default-block-right-padding));}.ast-narrow-container {--wp--custom--ast-content-width-size: 750px;--wp--custom--ast-wide-width-size: 750px;}@media(max-width: 921px) {:root {--wp--custom--ast-default-block-top-padding: 3em;--wp--custom--ast-default-block-right-padding: 2em;--wp--custom--ast-default-block-bottom-padding: 3em;--wp--custom--ast-default-block-left-padding: 2em;}}@media(max-width: 544px) {:root {--wp--custom--ast-default-block-top-padding: 3em;--wp--custom--ast-default-block-right-padding: 1.5em;--wp--custom--ast-default-block-bottom-padding: 3em;--wp--custom--ast-default-block-left-padding: 1.5em;}}.entry-content > .wp-block-group,.entry-content > .wp-block-cover,.entry-content > .wp-block-columns {padding-top: var(--wp--custom--ast-default-block-top-padding);padding-right: var(--wp--custom--ast-default-block-right-padding);padding-bottom: var(--wp--custom--ast-default-block-bottom-padding);padding-left: var(--wp--custom--ast-default-block-left-padding);}.ast-plain-container.ast-no-sidebar .entry-content > .alignfull,.ast-page-builder-template .ast-no-sidebar .entry-content > .alignfull {margin-left: calc( -50vw + 50%);margin-right: calc( -50vw + 50%);max-width: 100vw;width: 100vw;}.ast-plain-container.ast-no-sidebar .entry-content .alignfull .alignfull,.ast-page-builder-template.ast-no-sidebar .entry-content .alignfull .alignfull,.ast-plain-container.ast-no-sidebar .entry-content .alignfull .alignwide,.ast-page-builder-template.ast-no-sidebar .entry-content .alignfull .alignwide,.ast-plain-container.ast-no-sidebar .entry-content .alignwide .alignfull,.ast-page-builder
23-template.ast-no-sidebar .entry-content .alignwide .alignfull,.ast-plain-container.ast-no-sidebar .entry-content .alignwide .alignwide,.ast-page-builder-template.ast-no-sidebar .entry-content .alignwide .alignwide,.ast-plain-container.ast-no-sidebar .entry-content .wp-block-column .alignfull,.ast-page-builder-template.ast-no-sidebar .entry-content .wp-block-column .alignfull,.ast-plain-container.ast-no-sidebar .entry-content .wp-block-column .alignwide,.ast-page-builder-template.ast-no-sidebar .entry-content .wp-block-column .alignwide {margin-left: auto;margin-right: auto;width: 100%;}[data-ast-blocks-layout] .wp-block-separator:not(.is-style-dots) {height: 0;}[data-ast-blocks-layout] .wp-block-separator {margin: 20px auto;}[data-ast-blocks-layout] .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {max-width: 100px;}[data-ast-blocks-layout] .wp-block-separator.has-background {padding: 0;}.entry-content[data-ast-blocks-layout] > * {max-width: var(--wp--custom--ast-content-width-size);margin-left: auto;margin-right: auto;}.entry-content[data-ast-blocks-layout] > .alignwide {max-width: var(--wp--custom--ast-wide-width-size);}.entry-content[data-ast-blocks-layout] .alignfull {max-width: none;}.entry-content .wp-block-columns {margin-bottom: 0;}blockquote {margin: 1.5em;border-color: rgba(0,0,0,0.05);}.wp-block-quote:not(.has-text-align-right):not(.has-text-align-center) {border-left: 5px solid rgba(0,0,0,0.05);}.has-text-align-right > blockquote,blockquote.has-text-align-right {border-right: 5px solid rgba(0,0,0,0.05);}.has-text-align-left > blockquote,blockquote.has-text-align-left {border-left: 5px solid rgba(0,0,0,0.05);}.wp-block-site-tagline,.wp-block-latest-posts .read-more {margin-top: 15px;}.wp-block-loginout p label {display: block;}.wp-block-loginout p:not(.login-remember):not(.login-submit) input {width: 100%;}.wp-block-loginout input:focus {border-color: transparent;}.wp-block-loginout input:focus {outline: thin dotted;}.entry-content .wp-block-media-text .wp-block-media-text__content {padding: 0 0 0 8%;}.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {padding: 0 8% 0 0;}.entry-content .wp-block-media-text.has-background .wp-block-media-text__content {padding: 8%;}.entry-content .wp-block-cover:not([class*="background-color"]):not(.has-text-color.has-link-color) .wp-block-cover__inner-container,.entry-content .wp-block-cover:not([class*="background-color"]) .wp-block-cover-image-text,.entry-content .wp-block-cover:not([class*="background-color"]) .wp-block-cover-text,.entry-content .wp-block-cover-image:not([class*="background-color"]) .wp-block-cover__inner-container,.entry-content .wp-block-cover-image:not([class*="background-color"]) .wp-block-cover-image-text,.entry-content .wp-block-cover-image:not([class*="background-color"]) .wp-block-cover-text {color: var(--ast-global-color-primary,var(--ast-global-color-5));}.wp-block-loginout .login-remember input {width: 1.1rem;height: 1.1rem;margin: 0 5px 4px 0;vertical-align: middle;}.wp-block-latest-posts > li > *:first-child,.wp-block-latest-posts:not(.is-grid) > li:first-child {margin-top: 0;}.entry-content > .wp-block-buttons,.entry-content > .wp-block-uagb-buttons {margin-bottom: 1.5em;}.wp-block-search__inside-wrapper .wp-block-search__input {padding: 0 10px;color: var(--ast-global-color-3);background: var(--ast-global-color-primary,var(--ast-global-color-5));border-color: var(--ast-border-color);}.wp-block-latest-posts .read-more {margin-bottom: 1.5em;}.wp-block-search__no-button .wp-block-search__inside-wrapper .wp-block-search__input {padding-top: 5px;padding-bottom: 5px;}.wp-block-latest-posts .wp-block-latest-posts__post-date,.wp-block-latest-posts .wp-block-latest-posts__post-author {font-size: 1rem;}.wp-block-latest-posts > li > *,.wp-block-latest-posts:not(.is-grid) > li {margin-top: 12px;margin-bottom: 12px;}.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .alignwide:where(:not(.uagb-is-root-container):not(.spectra-is-root-container)) > * {max-width: var(--wp--custom--ast-wide-width-size);}
23.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .inherit-container-width > *,.ast-page-builder-template .entry-content[data-ast-blocks-layout] > *:not(.wp-block-group):where(:not(.uagb-is-root-container):not(.spectra-is-root-container)) > *,.entry-content[data-ast-blocks-layout] > .wp-block-cover .wp-block-cover__inner-container {max-width: var(--wp--custom--ast-content-width-size) ;margin-left: auto;margin-right: auto;}.ast-page-builder-template .entry-content[data-ast-blocks-layout] > *,.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .alignfull:where(:not(.wp-block-group):not(.uagb-is-root-container):not(.spectra-is-root-container)) > * {max-width: none;}.entry-content[data-ast-blocks-layout] .wp-block-cover:not(.alignleft):not(.alignright) {width: auto;}@media(max-width: 1200px) {.ast-separate-container .entry-content > .alignfull,.ast-separate-container .entry-content[data-ast-blocks-layout] > .alignwide,.ast-plain-container .entry-content[data-ast-blocks-layout] > .alignwide,.ast-plain-container .entry-content .alignfull {margin-left: calc(-1 * min(var(--ast-container-default-xlg-padding),20px)) ;margin-right: calc(-1 * min(var(--ast-container-default-xlg-padding),20px));}}@media(min-width: 1201px) {.ast-separate-container .entry-content > .alignfull {margin-left: calc(-1 * var(--ast-container-default-xlg-padding) );margin-right: calc(-1 * var(--ast-container-default-xlg-padding) );}.ast-separate-container .entry-content[data-ast-blocks-layout] > .alignwide,.ast-plain-container .entry-content[data-ast-blocks-layout] > .alignwide {margin-left: calc(-1 * var(--wp--custom--ast-default-block-left-padding) );margin-right: calc(-1 * var(--wp--custom--ast-default-block-right-padding) );}}@media(min-width: 921px) {.ast-separate-container .entry-content .wp-block-group.alignwide:not(.inherit-container-width) > :where(:not(.alignleft):not(.alignright)),.ast-plain-container .entry-content .wp-block-group.alignwide:not(.inherit-container-width) > :where(:not(.alignleft):not(.alignright)) {max-width: calc( var(--wp--custom--ast-content-width-size) + 80px );}.ast-plain-container.ast-right-sidebar .entry-content[data-ast-blocks-layout] .alignfull,.ast-plain-container.ast-left-sidebar .entry-content[data-ast-blocks-layout] .alignfull {margin-left: -60px;margin-right: -60px;}}@media(min-width: 544px) {.entry-content > .alignleft {margin-right: 20px;}.entry-content > .alignright {margin-left: 20px;}}@media (max-width:544px){.wp-block-columns .wp-block-column:not(:last-child){margin-bottom:20px;}.wp-block-latest-posts{margin:0;}}@media( max-width: 600px ) {.entry-content .wp-block-media-text .wp-block-media-text__content,.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {padding: 8% 0 0;}.entry-content .wp-block-media-text.has-background .wp-block-media-text__content {padding: 8%;}}.ast-page-builder-template .entry-header {padding-left: 0;}.ast-narrow-container .site-content .wp-block-uagb-image--align-full .wp-block-uagb-image__figure {max-width: 100%;margin-left: auto;margin-right: auto;}:root .has-ast-global-color-0-color{color:var(--ast-global-color-0);}:root .has-ast-global-color-0-background-color{background-color:var(--ast-global-color-0);}:root .wp-block-button .has-ast-global-color-0-color{color:var(--ast-global-color-0);}:root .wp-block-button .has-ast-global-color-0-background-color{background-color:var(--ast-global-color-0);}:root .has-ast-global-color-1-color{color:var(--ast-global-color-1);}:root .has-ast-global-color-1-background-color{background-color:var(--ast-global-color-1);}:root .wp-block-button .has-ast-global-color-1-color{color:var(--ast-global-color-1);}:root .wp-block-button .has-ast-global-color-1-background-color{background-color:var(--ast-global-color-1);}:root .has-ast-global-color-2-color{color:var(--ast-global-color-2);}:root .has-ast-global-color-2-background-color{background-color:var(--ast-global-color-2);}:root .wp-block-button .has-ast-global-color-2-color{color:var(--ast-global-color-2);}:root .wp-block-button .has-ast-global-color-2-background-color{background-color:var(--ast-global-color-2);}:root .has-ast-global-color-3-color{color:var(--ast-global-color-3);}:root .has-ast-global-color-3-background-color{background-color:var(--ast-global-color-3);}:root .wp-block-button .has-ast-global-color-3-color{color:var(--ast-global-color-3);}:root .wp-block-button .has-ast-global-color-3-background-color{background-color:var(--ast-global-color-3);}:root .has-ast-global-color-4-color{color:var(--ast-global-color-4);}:root .has-ast-global-color-4-background-color{background-color:var(--ast-global-color-4);}:root .wp-block-button .has-ast-global-color-4-color{color:var(--ast-global-color-4);}:root .wp-block-button .has-ast-global-color-4-background-color{background-color:var(--ast-global-color-4);}:root .has-ast-global-color-5-color{color:var(--ast-global-color-5);}:root .has-ast-global-color-5-background-color{background-color:var(--ast-global-color-5);}:root .wp-block-button .has-ast-global-color-5-color{color:var(--ast-global-color-5);}:root .wp-block-button .has-ast-global-color-5-background-color{background-color:var(--ast-global-color-5);}:root .has-ast-global-color-6-color{color:var(--ast-global-color-6);}:root .has-ast-global-color-6-background-color{background-color:var(--ast-global-color-6);}:root .wp-block-button .has-ast-global-color-6-color{color:var(--ast-global-color-6);}:root .wp-block-button .has-ast-global-color-6-background-color{background-color:var(--ast-global-color-6);}:root .has-ast-global-color-7-color{color:var(--ast-global-color-7);}:root .has-ast-global-color-7-background-color{background-color:var(--ast-global-color-7);}:root .wp-block-button .has-ast-global-color-7-color{color:var(--ast-global-color-7);}:root .wp-block-button .has-ast-global-color-7-background-color{background-color:var(--ast-global-color-7);}:root .has-ast-global-color-8-color{color:var(--ast-global-color-8);}:root .has-ast-global-color-8-background-color{background-color:var(--ast-global-color-8);}:root .wp-block-button .has-ast-global-color-8-color{color:var(--ast-global-color-8);}:root .wp-block-button .has-ast-global-color-8-background-color{background-color:var(--ast-global-color-8);}:root{--ast-global-color-0:#0170B9;--ast-global-color-1:#3a3a3a;--ast-global-color-2:#3a3a3a;--ast-global-color-3:#4B4F58;--ast-global-color-4:#F5F5F5;--ast-global-color-5:#FFFFFF;--ast-global-color-6:#E5E5E5;--ast-global-color-7:#424242;--ast-global-color-8:#000000;}:root {--ast-border-color : var(--ast-global-color-6);}.ast-archive-entry-banner {-js-display: flex;display: flex;flex-direction: column;justify-content: center;text-align: center;position: relative;background: var(--ast-title-layout-bg);}.ast-archive-entry-banner[data-banner-width-type="custom"] {margin: 0 auto;width: 100%;}.ast-archive-entry-banner[data-banner-layout="layout-1"] {background: inherit;padding: 20px 0;text-align: left;}body.archive .ast-archive-description{max-width:1200px;width:100%;text-align:left;padding-top:3em;padding-right:3em;padding-bottom:3em;padding-left:3em;}body.archive .ast-archive-description .ast-archive-title,body.archive .ast-archive-description .ast-archive-title *{font-size:40px;font-size:2.6666666666667rem;}body.archive .ast-archive-description > *:not(:last-child){margin-bottom:10px;}@media (max-width:921px){body.archive .ast-archive-description{text-align:left;}}@media (max-width:544px){body.archive .ast-archive-description{text-align:left;}}.ast-breadcrumbs .trail-browse,.ast-breadcrumbs .trail-items,.ast-breadcrumbs .trail-items li{display:inline-block;margin:0;padding:0;border:none;background:inherit;text-indent:0;text-decoration:none;}.ast-breadcrumbs .trail-browse{font-size:inherit;font-style:inherit;font-weight:inherit;color:inherit;}.ast-breadcrumbs .trail-items{list-style:none;}.trail-items li::after{padding:0 0.3em;content:"\00bb";}.trail-items li:last-of-type::after{display:none;}
23@media (max-width:921px){.ast-builder-grid-row-container.ast-builder-grid-row-tablet-3-firstrow .ast-builder-grid-row > *:first-child,.ast-builder-grid-row-container.ast-builder-grid-row-tablet-3-lastrow .ast-builder-grid-row > *:last-child{grid-column:1 / -1;}}@media (max-width:544px){.ast-builder-grid-row-container.ast-builder-grid-row-mobile-3-firstrow .ast-builder-grid-row > *:first-child,.ast-builder-grid-row-container.ast-builder-grid-row-mobile-3-lastrow .ast-builder-grid-row > *:last-child{grid-column:1 / -1;}}.ast-builder-layout-element[data-section="title_tagline"]{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-builder-layout-element[data-section="title_tagline"]{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-builder-layout-element[data-section="title_tagline"]{display:flex;}}.ast-builder-menu-1{font-family:inherit;font-weight:inherit;}.ast-builder-menu-1 .sub-menu,.ast-builder-menu-1 .inline-on-mobile .sub-menu{border-top-width:2px;border-bottom-width:0px;border-right-width:0px;border-left-width:0px;border-color:#0274be;border-style:solid;}.ast-builder-menu-1 .sub-menu .sub-menu{top:-2px;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0px;}.ast-desktop .ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu:before,.ast-desktop .ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper:before{height:calc( 0px + 2px + 5px );}.ast-desktop .ast-builder-menu-1 .menu-item .sub-menu .menu-link{border-style:none;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-1 .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-1 .inline-on-mobile .menu-item.menu-item-has-children > .ast-menu-toggle{right:-15px;}.ast-builder-menu-1 .menu-item-has-children > .menu-link:after{content:unset;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-1 .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0;}}.ast-builder-menu-1{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-1{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-1{display:flex;}}.site-below-footer-wrap{padding-top:20px;padding-bottom:20px;}.site-below-footer-wrap[data-section="section-below-footer-builder"]{background-color:var( --ast-global-color-primary,--ast-global-color-4 );min-height:80px;border-style:solid;border-width:0px;border-top-width:1px;border-top-color:var(--ast-global-color-subtle-background,--ast-global-color-6);}.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row{max-width:1200px;min-height:80px;margin-left:auto;margin-right:auto;}.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row,.site-below-footer-wrap[data-section="section-below-footer-builder"] .site-footer-section{align-items:flex-start;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-inline .site-footer-section{display:flex;margin-bottom:0;}.ast-builder-grid-row-full .ast-builder-grid-row{grid-template-columns:1fr;}@media (max-width:921px){.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-tablet-inline .site-footer-section{display:flex;margin-bottom:0;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-tablet-stack .site-footer-section{display:block;margin-bottom:10px;}.ast-builder-grid-row-container.ast-builder-grid-row-tablet-full .ast-builder-grid-row{grid-template-columns:1fr;}}@media (max-width:544px){.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-mobile-inline .site-footer-section{dis
23play:flex;margin-bottom:0;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-mobile-stack .site-footer-section{display:block;margin-bottom:10px;}.ast-builder-grid-row-container.ast-builder-grid-row-mobile-full .ast-builder-grid-row{grid-template-columns:1fr;}}.site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}@media (max-width:921px){.ast-header-break-point .site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}}@media (max-width:544px){.ast-header-break-point .site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}}.ast-footer-copyright{text-align:center;}.ast-footer-copyright.site-footer-focus-item {color:#3a3a3a;}@media (max-width:921px){.ast-footer-copyright{text-align:center;}}@media (max-width:544px){.ast-footer-copyright{text-align:center;}}.ast-footer-copyright.ast-builder-layout-element{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-footer-copyright.ast-builder-layout-element{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-footer-copyright.ast-builder-layout-element{display:flex;}}.footer-widget-area.widget-area.site-footer-focus-item{width:auto;}.ast-footer-row-inline .footer-widget-area.widget-area.site-footer-focus-item{width:100%;}.ast-header-break-point .main-header-bar{border-bottom-width:1px;}@media (min-width:922px){.main-header-bar{border-bottom-width:1px;}}@media (min-width:922px){#primary{width:70%;}#secondary{width:30%;}}.main-header-menu .menu-item, #astra-footer-menu .menu-item, .main-header-bar .ast-masthead-custom-menu-items{-js-display:flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;}.main-header-menu > .menu-item > .menu-link, #astra-footer-menu > .menu-item > .menu-link{height:100%;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-js-display:flex;display:flex;}.ast-header-break-point .main-navigation ul .menu-item .menu-link .icon-arrow:first-of-type svg{top:.2em;margin-top:0px;margin-left:0px;width:.65em;transform:translate(0, -2px) rotateZ(270deg);}.ast-mobile-popup-content .ast-submenu-expanded > .ast-menu-toggle{transform:rotateX(180deg);overflow-y:auto;}@media (min-width:922px){.ast-builder-menu .main-navigation > ul > li:last-child a{margin-right:0;}}.ast-separate-container .ast-article-inner{background-color:transparent;background-image:none;}.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);}@media (max-width:921px){.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);}}@media (max-width:544px){.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);}}.ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .site-main .ast-author-meta, .ast-separate-container .related-posts-title-wrapper, .ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content, .ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description, .ast-separate-container .comments-area .comment-respond, .ast-separate-container .comments-area .ast-comment-list li, .ast-separate-container .comments-area .comments-title{background-color:var(--ast-global-color-5);}@media (max-width:921px){.ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .site-main .ast-author-meta, .ast-separate-container .related-posts-title-wrapper, .ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content, .ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description{background-color:var(--ast-global-color-5);}}@media (max-width:544px){.ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .site-main .ast-author-meta, .ast-separate-container .related-posts-title-wrapper, .ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content, .ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description{background-color:var(--ast-global-color-5);}}.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);}@media (max-width:921px){.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);}}@media (max-width:544px){.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);}}
23.ast-plain-container, .ast-page-builder-template{background-color:var(--ast-global-color-5);}@media (max-width:921px){.ast-plain-container, .ast-page-builder-template{background-color:var(--ast-global-color-5);}}@media (max-width:544px){.ast-plain-container, .ast-page-builder-template{background-color:var(--ast-global-color-5);}}.ast-mobile-header-content > *,.ast-desktop-header-content > * {padding: 10px 0;height: auto;}.ast-mobile-header-content > *:first-child,.ast-desktop-header-content > *:first-child {padding-top: 10px;}.ast-mobile-header-content > .ast-builder-menu,.ast-desktop-header-content > .ast-builder-menu {padding-top: 0;}.ast-mobile-header-content > *:last-child,.ast-desktop-header-content > *:last-child {padding-bottom: 0;}.ast-mobile-header-content .ast-search-menu-icon.ast-inline-search label,.ast-desktop-header-content .ast-search-menu-icon.ast-inline-search label {width: 100%;}.ast-desktop-header-content .main-header-bar-navigation .ast-submenu-expanded > .ast-menu-toggle::before {transform: rotateX(180deg);}#ast-desktop-header .ast-desktop-header-content,.ast-mobile-header-content .ast-search-icon,.ast-desktop-header-content .ast-search-icon,.ast-mobile-header-wrap .ast-mobile-header-content,.ast-main-header-nav-open.ast-popup-nav-open .ast-mobile-header-wrap .ast-mobile-header-content,.ast-main-header-nav-open.ast-popup-nav-open .ast-desktop-header-content {display: none;}.ast-main-header-nav-open.ast-header-break-point #ast-desktop-header .ast-desktop-header-content,.ast-main-header-nav-open.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content {display: block;}.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-up > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-up > .menu-item .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-down > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-down > .menu-item .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-fade > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-fade > .menu-item .menu-item > .sub-menu {opacity: 1;visibility: visible;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation {width: unset;margin: unset;}.ast-mobile-header-content.content-align-flex-end .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle,.ast-desktop-header-content.content-align-flex-end .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle {left: calc( 20px - 0.907em);right: auto;}.ast-mobile-header-content .ast-search-menu-icon,.ast-mobile-header-content .ast-search-menu-icon.slide-search,.ast-desktop-header-content .ast-search-menu-icon,.ast-desktop-header-content .ast-search-menu-icon.slide-search {width: 100%;position: relative;display: block;right: auto;transform: none;}.ast-mobile-header-content .ast-search-menu-icon.slide-search .search-form,.ast-mobile-header-content .ast-search-menu-icon .search-form,.ast-desktop-header-content .ast-search-menu-icon.slide-search .search-form,.ast-desktop-header-content .ast-search-menu-icon .search-form {right: 0;visibility: visible;opacity: 1;position: relative;top: auto;transform: none;padding: 0;display: block;overflow: hidden;}.ast-mobile-header-content .ast-search-menu-icon.ast-inline-search .search-field,.ast-mobile-header-content .ast-search-menu-icon .search-field,.ast-desktop-header-content .ast-search-menu-icon.ast-inline-search .search-field,.ast-desktop-header-content .ast-search-menu-icon .search-field {width: 100%;padding-right: 5.5em;}.ast-mobile-header-content .ast-search-menu-icon .search-submit,.ast-desktop-header-content .ast-search-menu-icon .search-submit {display: block;position: absolute;height: 100%;top: 0;right: 0;padding: 0 1em;border-radius: 0;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation ul .sub-menu .menu-link {padding-left: 30px;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation .sub-menu .menu-item .menu-item .menu-link {padding-left: 40px;}.ast-mobile-popup-drawer.active .ast-mobile-popup-inner{background-color:#ffffff;;}.ast-mobile-header-wrap .ast-mobile-header-content, .ast-desktop-header-content{background-color:#ffffff;;}.ast-mobile-popup-content > *, .ast-mobile-header-content > *, .ast-desktop-popup-content > *, .ast-desktop-header-content > *{padding-top:0px;padding-bottom:0px;}
23.content-align-flex-start .ast-builder-layout-element{justify-content:flex-start;}.content-align-flex-start .main-header-menu{text-align:left;}.ast-mobile-popup-drawer.active .menu-toggle-close{color:#3a3a3a;}.ast-mobile-header-wrap .ast-primary-header-bar,.ast-primary-header-bar .site-primary-header-wrap{min-height:80px;}.ast-desktop:not(:has(.ast-header-sticked)) .ast-primary-header-bar .main-header-menu > .menu-item{line-height:80px;}.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-primary-header-bar,.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-below-header-bar,.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-above-header-bar{padding-left:20px;padding-right:20px;}.ast-header-break-point .ast-primary-header-bar{border-bottom-width:1px;border-bottom-color:var( --ast-global-color-subtle-background,--ast-global-color-7 );border-bottom-style:solid;}@media (min-width:922px){.ast-primary-header-bar{border-bottom-width:1px;border-bottom-color:var( --ast-global-color-subtle-background,--ast-global-color-7 );border-bottom-style:solid;}}.ast-primary-header-bar{background-color:var( --ast-global-color-primary,--ast-global-color-4 );}.ast-primary-header-bar{display:block;}@media (max-width:921px){.ast-header-break-point .ast-primary-header-bar{display:grid;}}@media (max-width:544px){.ast-header-break-point .ast-primary-header-bar{display:grid;}}[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal{color:#0274be;border:none;background:transparent;}[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg{width:20px;height:20px;fill:#0274be;}[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-wrap .mobile-menu{color:#0274be;}.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-mobile .main-navigation .menu-item-has-children > .menu-link:after{content:unset;}.ast-hfb-header .ast-builder-menu-mobile .main-header-menu, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .menu-link, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .sub-menu .menu-link{border-style:none;}.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}@media (max-width:921px){.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-mobile .main-navigation .menu-item-has-children > .menu-link:after{content:unset;}}@media (max-width:544px){.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}}.ast-builder-menu-mobile .main-navigation{display:block;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-mobile .main-navigation{display:block;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-mobile .main-navigation{display:block;}}.comment-reply-title{font-size:24px;font-size:1.6rem;}.ast-comment-meta{line-height:1.666666667;color:#0274be;font-size:12px;font-size:0.8rem;}.ast-comment-list #cancel-comment-reply-link{font-size:15px;font-size:1rem;}.comments-title {padding: 1em 0 0;}.comments-title {word-wrap: break-word;font-weight: normal;}.ast-comment-list {margin: 0;word-wrap: break-word;padding-bottom: 0;list-style: none;}.ast-comment-list li {list-style: none;}.ast-comment-list .ast-comment-edit-reply-wrap {-js-display: flex;display: flex;justify-content: flex-end;}.ast-comment-list .comment-awaiting-moderation {margin-bottom: 0;}.ast-comment {padding: 0 ;}.ast-comment-info img {border-radius: 50%;}.ast-comment-cite-wrap cite {font-style: normal;}.comment-reply-title {font-weight: normal;line-height: 1.65;}.ast-comment-meta {margin-bottom: 0.5em;}.comments-area .comment-form-comment {width: 100%;border: none;margin: 0;padding: 0;}.comments-area .comment-notes,.comments-area .comment-textarea,.comments-area .form-allowed-tags {margin-bottom: 1.5em;}.comments-area .form-submit {margin-bottom: 0;}.comments-area textarea#comment,.comments-area .ast-comment-formwrap input[type="text"] {width: 100%;border-radius: 0;vertical-align: middle;margin-bottom: 10px;}.comments-area .no-comments {margin-top: 0.5em;margin-bottom: 0.5em;}.comments-area p.logged-in-as {margin-bottom: 1em;}.ast-separate-container .ast-comment-list {padding-bottom: 0;}.ast-separate-container .ast-comment-list li.depth-1 .children li,.ast-narrow-container .ast-comment-list li.depth-1 .children li {padding-bottom: 0;padding-top: 0;margin-bottom: 0;}.ast-separate-container .ast-comment-list .comment-respond {padding-top: 0;padding-bottom: 1em;background-color: transparent;}.ast-comment-list .comment .comment-respond {padding-bottom: 2em;border-bottom: none;}.ast-separate-container .ast-comment-list .bypostauthor,.ast-narrow-container .ast-comment-list .bypostauthor {padding: 2em;margin-bottom: 1em;}.ast-separate-container .ast-comment-list .bypostauthor li,.ast-narrow-container .ast-comment-list .bypostauthor li {background: transparent;margin-bottom: 0;padding: 0 0 0 2em;}.comment-content a {word-wrap: break-word;}.comment-form-legend {margin-bottom: unset;padding: 0 0.5em;}.ast-separate-container .ast-comment-list .pingback p {margin-bottom: 0;}.ast-separate-container .ast-comment-list li.depth-1,.ast-narrow-container .ast-comment-list li.depth-1 {padding: 3em;}.ast-comment-list > .comment:last-child .ast-comment {border: none;}.ast-separate-container .ast-comment-list .comment .comment-respond,.ast-narrow-container .ast-comment-list .comment .comment-respond {padding-bottom: 0;}.ast-separate-container .comment .comment-respond {margin-top: 2em;}.ast-separate-container .ast-comment-list li.depth-1 .ast-comment,.ast-separate-container .ast-comment-list li.depth-2 .ast-comment {border-bottom: 0;}
23.ast-plain-container .ast-comment,.ast-page-builder-template .ast-comment {padding: 2em 0;}.page.ast-page-builder-template .comments-area {margin-top: 2em;}.ast-page-builder-template .comment-respond {border-top: none;padding-bottom: 2em;}.ast-plain-container .comment-reply-title {padding-top: 1em;}.ast-comment-list .children {margin-left: 2em;}@media (max-width: 992px) {.ast-comment-list .children {margin-left: 1em;}}.ast-comment-list #cancel-comment-reply-link {white-space: nowrap;font-size: 13px;font-weight: normal;margin-left: 1em;}.ast-comment-info {display: flex;position: relative;}.ast-comment-meta {justify-content: right;padding: 0 3.4em 1.60em;}.comments-area #wp-comment-cookies-consent {margin-right: 10px;}.ast-page-builder-template .comments-area {padding-left: 20px;padding-right: 20px;margin-top: 0;margin-bottom: 2em;}.ast-separate-container .ast-comment-list .bypostauthor .bypostauthor {background: transparent;margin-bottom: 0;padding-right: 0;padding-bottom: 0;padding-top: 0;}@media (min-width:922px){.ast-separate-container .ast-comment-list li .comment-respond{padding-left:2.66666em;padding-right:2.66666em;}}@media (max-width:544px){.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 1em;margin-bottom:1.5em;}.ast-separate-container .ast-comment-list .bypostauthor{padding:.5em;}.ast-separate-container .comment-respond{padding:1.5em 1em;}.ast-separate-container .ast-comment-list .bypostauthor li{padding:0 0 0 .5em;}.ast-comment-list .children{margin-left:0.66666em;}} 24 .ast-comment-time .timendate{ 25 margin-right: 0.5em; 26 } 27 .ast-separate-container .comment-reply-title { 28 padding-top: 0; 29 } 30 .ast-comment-list .ast-edit-link { 31 flex: 1; 32 } 33 .comments-area { 34 border-top: 1px solid var(--ast-global-color-subtle-background, var(--ast-global-color-6)); 35 margin-top: 2em; 36 } 37 .ast-separate-container .comments-area { 38 border-top: 0; 39 } 40 @media (max-width:921px){.ast-comment-avatar-wrap img{max-width:2.5em;}.comments-area{margin-top:1.5em;}.ast-comment-meta{padding:0 1.8888em 1.3333em;}.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 2.14em;}.ast-separate-container .comment-respond{padding:2em 2.14em;}.ast-comment-avatar-wrap{margin-right:0.5em;}}.ast-pagination .next.page-numbers{display:inherit;float:none;}.ast-pagination a, .nav-links a{color:#0274be;}.ast-pagination a:hover, .ast-pagination a:focus, .ast-pagination > span:hover:not(.dots), .ast-pagination > span.current{color:#3a3a3a;}@media (max-width:544px){.ast-pagination .next:focus, .ast-pagination .prev:focus{width:100% !important;}}.ast-pagination .prev.page-numbers,.ast-pagination .next.page-numbers {padding: 0 1.5em;height: 2.33333em;line-height: calc(2.33333em - 3px);}.ast-pagination-default .ast-pagination .next.page-numbers {padding-right: 0;}.ast-pagination-default .ast-pagination .prev.page-numbers {padding-left: 0;}.ast-pagination-default .post-page-numbers.current .page-link,.ast-pagination-default .ast-pagination .page-numbers.current {border-radius: 2px;}.ast-pagination {display: inline-block;width: 100%;padding-top: 2em;text-align: center;}.ast-pagination .page-numbers {display: inline-block;width: 2.33333em;height: 2.33333em;font-size: 16px;font-size: 1.06666rem;line-height: calc(2.33333em - 3px);font-weight: 500;}.ast-pagination .nav-links {display: inline-block;width: 100%;}@media (max-width: 420px) {.ast-pagination .prev.page-numbers,.ast-pagination .next.page-numbers {width: 100%;text-align: center;margin: 0;}.ast-pagination-circle .ast-pagination .next.page-numbers,.ast-pagination-square .ast-pagination .next.page-numbers{margin-top: 10px;}.ast-pagination-circle .ast-pagination .prev.page-numbers,.ast-pagination-square .ast-pagination .prev.page-numbers{margin-bottom: 10px;}}
40.ast-pagination .prev,.ast-pagination .prev:visited,.ast-pagination .prev:focus,.ast-pagination .next,.ast-pagination .next:visited,.ast-pagination .next:focus {display: inline-block;width: auto;}.ast-pagination .prev svg,.ast-pagination .next svg{height: 16px;position: relative;top: 0.2em;}.ast-pagination .prev svg {margin-right: 0.3em;}.ast-pagination .next svg {margin-left: 0.3em;}.ast-page-builder-template .ast-pagination {padding: 2em;}.ast-pagination .prev.page-numbers {float: left;}.ast-pagination .next.page-numbers {float: right;}@media (max-width: 768px) {.ast-pagination .next.page-numbers .page-navigation {padding-right: 0;}} 41/*# sourceURL=astra-theme-css-inline-css */ 42</style> 43<link rel='stylesheet' id='astra-google-fonts-css' href='https://fonts.googleapis.com/css?family=Noto+Sans%3A400%2C&display=swap&ver=4.12.6' media='all' /> 44<link rel='stylesheet' id='astra-menu-animation-css' href='https://metalbyexample.com/wp-content/themes/astra/assets/css/minified/menu-animation.min.css?ver=4.12.6' media='all' /> 45<style id='wp-emoji-styles-inline-css'> 46 47 img.wp-smiley, img.emoji { 48 display: inline !important; 49 border: none !important; 50 box-shadow: none !important; 51 height: 1em !important; 52 width: 1em !important; 53 margin: 0 0.07em !important; 54 vertical-align: -0.1em !important; 55 background: none !important; 56 padding: 0 !important; 57 } 58/*# sourceURL=wp-emoji-styles-inline-css */ 59</style> 60<link rel='stylesheet' id='wp-block-library-css' href='https://metalbyexample.com/wp-includes/css/dist/block-library/style.min.css?ver=6.9.9' media='all' /> 61 62<style id='global-styles-inline-css'> 63:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--ast-global-color-0: var(--ast-global-color-0);--wp--preset--color--ast-global-color-1: var(--ast-global-color-1);--wp--preset--color--ast-global-color-2: var(--ast-global-color-2);--wp--preset--color--ast-global-color-3: var(--ast-global-color-3);--wp--preset--color--ast-global-color-4: var(--ast-global-color-4);--wp--preset--color--ast-global-color-5: var(--ast-global-color-5);--wp--preset--color--ast-global-color-6: var(--ast-global-color-6);--wp--preset--color--ast-global-color-7: var(--ast-global-color-7);--wp--preset--color--ast-global-color-8: var(--ast-global-color-8);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
63--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:root { --wp--style--global--content-size: var(--wp--custom--ast-content-width-size);--wp--style--global--wide-size: var(--wp--custom--ast-wide-width-size); }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: none;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-color{color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-color{color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-color{color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-color{color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-color{color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-color{color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-color{color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-color{color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-color{color: var(--wp--preset--color--ast-global-color-8) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-background-color{background-color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-background-color{background-color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-background-color{background-color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-background-color{background-color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-background-color{background-color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-background-color{background-color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-background-color{background-color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-background-color{background-color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-background-color{background-color: var(--wp--preset--color--ast-global-color-8) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-border-color{border-color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-border-color{border-color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-border-color{border-color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-border-color{border-color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-border-color{border-color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-border-color{border-color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-border-color{border-color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-border-color{border-color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-border-color{border-color: var(--wp--preset--color--ast-global-color-8) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
63.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 64/*# sourceURL=global-styles-inline-css */ 65</style> 66 67<link rel='stylesheet' id='sharedaddy-css' href='https://metalbyexample.com/wp-content/plugins/jetpack/modules/sharedaddy/sharing.css?ver=16.1.3' media='all' /> 68<link rel='stylesheet' id='social-logos-css' href='https://metalbyexample.com/wp-content/plugins/jetpack/_inc/build/social-logos/social-logos.css?ver=16.1.3' media='all' />
69<script src="https://metalbyexample.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 69
69
70<script src="https://metalbyexample.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 70
70
71<script src="https://metalbyexample.com/wp-content/plugins/wp-quicklatex/js/wp-quicklatex-frontend.js?ver=1.0" id="wp-quicklatex-frontend-js"></script>
71 72<link rel="https://api.w.org/" href="https://metalbyexample.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://metalbyexample.com/xmlrpc.php?rsd" /> 73<meta name="generator" content="WordPress 6.9.9" /> 74<link rel='shortlink' href='https://wp.me/4Y8yc' /> 75 <style>img#wpstats{display:none}</style> 76 77<!-- Jetpack Open Graph Tags --> 78<meta property="og:type" content="website" /> 79<meta property="og:title" content="Metal by Example" /> 80<meta property="og:description" content="High-performance GPU programming for Apple platforms" /> 81<meta property="og:url" content="https://metalbyexample.com/" /> 82<meta property="og:site_name" content="Metal by Example" /> 83<meta property="og:image" content="https://s0.wp.com/i/blank.jpg" /> 84<meta property="og:image:width" content="200" /> 85<meta property="og:image:height" content="200" /> 86<meta property="og:image:alt" content="" /> 87<meta property="og:locale" content="en_US" /> 88<meta name="twitter:site" content="@warrenm" /> 89 90<!-- End Jetpack Open Graph Tags --> 91 <style id="wp-custom-css"> 92 p.content-notice { 93 background: #fbffd8; 94 padding: 10px; 95 border: 1px solid orange; 96 font-size: small; 97 font-weight: bold; 98} </style> 99 </head> 100 101<body itemtype='https://schema.org/Blog' itemscope='itemscope' class="home blog wp-embed-responsive wp-theme-astra ast-desktop ast-plain-container ast-right-sidebar astra-4.12.6 ast-mobile-inherit-site-logo ast-inherit-site-logo-transparent ast-hfb-header"> 102 103<a 104 class="skip-link screen-reader-text" 105 href="#content"> 106 Skip to content</a> 107 108<div 109class="hfeed site" id="page"> 110 <header 111 class="site-header ast-primary-submenu-animation-fade header-main-layout-1 ast-primary-menu-enabled ast-logo-title-inline ast-hide-custom-menu-mobile ast-builder-menu-toggle-icon ast-mobile-header-inline" id="masthead" itemtype="https://schema.org/WPHeader" itemscope="itemscope" itemid="#masthead" > 112 <div id="ast-desktop-header" data-toggle-type="dropdown"> 113 <div class="ast-main-header-wrap main-header-bar-wrap "> 114 <div class="ast-primary-header-bar ast-primary-header main-header-bar site-header-focus-item" data-section="section-primary-header-builder"> 115 <div class="site-primary-header-wrap ast-builder-grid-row-container site-header-focus-item ast-container" data-section="section-primary-header-builder"> 116 <div class="ast-builder-grid-row ast-builder-grid-row-has-sides ast-builder-grid-row-no-center"> 117 <div class="site-header-primary-section-left site-header-section ast-flex site-header-section-left"> 118 <div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="title_tagline"> 119 <div 120 class="site-branding ast-site-identity" itemtype="https://schema.org/Organization" itemscope="itemscope" > 121 <div class="ast-site-title-wrap"> 122 <span class="site-title" itemprop="name"> 123 <a href="https://metalbyexample.com/" rel="home" itemprop="url" > 124 Metal by Example 125 </a> 126 </span> 127 128 </div> </div> 129 <!-- .site-branding --> 130 </div> 131 </div> 132 <div class="site-header-primary-section-right site-header-section ast-flex ast-grid-right-section"> 133 <div class="ast-builder-menu-1 ast-builder-menu ast-flex ast-builder-menu-1-focus-item ast-builder-layout-element site-header-focus-item" data-section="section-hb-menu-1"> 134 <div class="ast-main-header-bar-alignment"><div class="main-header-bar-navigation ast-flex-1"><nav class="site-navigation ast-flex-grow-1 navigation-accessibility" id="primary-site-navigation" aria-label="Primary Site Navigation" itemtype="https://schema.org/SiteNavigationElement" itemscope="itemscope"><div id="ast-hf-menu-1" class="main-navigation ast-inline-flex"><ul class="main-header-menu ast-menu-shadow ast-nav-menu ast-flex submenu-with-border stack-on-mobile"><li class="page_item page-item-2 menu-item"><a href="https://metalbyexample.com/about-the-author/" class="menu-link">About the Author</a></li><li class="page_item page-item-5 menu-item"><a href="https://metalbyexample.com/the-book/" class="menu-link">The Book</a></li></ul></div></nav></div></div> </div> 135 </div> 136 </div> 137 </div> 138 </div> 139 </div> 140 </div> <!-- Main Header Bar Wrap --> 141<div id="ast-mobile-header" class="ast-mobile-header-wrap " data-type="dropdown"> 142 <div class="ast-main-header-wrap main-header-bar-wrap" > 143 <div class="ast-primary-header-bar ast-primary-header main-header-bar site-primary-header-wrap site-header-focus-item ast-builder
143-grid-row-layout-default ast-builder-grid-row-tablet-layout-default ast-builder-grid-row-mobile-layout-default" data-section="section-primary-header-builder"> 144 <div class="ast-builder-grid-row ast-builder-grid-row-has-sides ast-builder-grid-row-no-center"> 145 <div class="site-header-primary-section-left site-header-section ast-flex site-header-section-left"> 146 <div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="title_tagline"> 147 <div 148 class="site-branding ast-site-identity" itemtype="https://schema.org/Organization" itemscope="itemscope" > 149 <div class="ast-site-title-wrap"> 150 <span class="site-title" itemprop="name"> 151 <a href="https://metalbyexample.com/" rel="home" itemprop="url" > 152 Metal by Example 153 </a> 154 </span> 155 156 </div> </div> 157 <!-- .site-branding --> 158 </div> 159 </div> 160 <div class="site-header-primary-section-right site-header-section ast-flex ast-grid-right-section"> 161 <div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="section-header-mobile-trigger"> 162 <div class="ast-button-wrap"> 163 <button 164 type="button" 165 class="menu-toggle main-header-menu-toggle ast-mobile-menu-trigger-minimal" 166 aria-expanded="false" 167 aria-label="Main menu toggle" 168 > 169 <span class="mobile-menu-toggle-icon"> 170 <span aria-hidden="true" class="ahfb-svg-iconset ast-inline-flex svg-baseline"><svg class='ast-mobile-svg ast-menu-svg' fill='currentColor' version='1.1' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M3 13h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 7h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 19h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1z'></path></svg></span><span aria-hidden="true" class="ahfb-svg-iconset ast-inline-flex svg-baseline"><svg class='ast-mobile-svg ast-close-svg' fill='currentColor' version='1.1' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z'></path></svg></span> </span> 171 </button> 172 </div> 173 </div> 174 </div> 175 </div> 176 </div> 177 </div> 178 <div class="ast-mobile-header-content content-align-flex-start "> 179 <div class="ast-builder-menu-mobile ast-builder-menu ast-builder-menu-mobile-focus-item ast-builder-layout-element site-header-focus-item" data-section="section-header-mobile-menu"> 180 <div class="ast-main-header-bar-alignment"><div class="main-header-bar-navigation"><nav class="site-navigation ast-flex-grow-1 navigation-accessibility" id="ast-mobile-site-navigation" aria-label="Site Navigation" itemtype="https://schema.org/SiteNavigationElement" itemscope="itemscope"><div id="ast-hf-mobile-menu" class="main-navigation"><ul class="main-header-menu ast-nav-menu ast-flex submenu-with-border astra-menu-animation-fade stack-on-mobile"><li class="page_item page-item-2 menu-item"><a href="https://metalbyexample.com/about-the-author/" class="menu-link">About the Author</a></li><li class="page_item page-item-5 menu-item"><a href="https://metalbyexample.com/the-book/" class="menu-link">The Book</a></li></ul></div></nav></div></div> </div> 181 </div> 182 </div> 183 </header><!-- #masthead --> 184 <div id="content" class="site-content"> 185 <div class="ast-container"> 186 <div id="primary" class="content-area primary"> 187 <main id="main" class="site-main"> 188 <div class="ast-row"><article 189class="post-1006 post type-post status-publish format-standard hentry category-basics-2 category-metalkit category-physically-based-rendering ast-grid-common-col ast-full-width ast-article-post" id="post-1006" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 190 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 191 <div class="post-content ast-grid-common-col" > 192 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/bismuth/" rel="bookmark">Bismuth: A Prototype Scene Graph Language</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 193 <div class="entry-meta"> <span class="comments-link"> 194 <a href="https://metalbyexample.com/bismuth/#comments">1 Comment</a> </span> 195 196 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/basics-2/" rel="category tag">Basics</a>, <a href="https://metalbyexample.com/category/metalkit/" rel="category tag">MetalKit</a>, <a href="https://metalbyexample.com/category/physically-based-rendering/" rel="category tag">Physically-Based Rendering</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished">
196 April 15, 2026 </span></span></div> </header><!-- .entry-header --> 197 <div class="ast-excerpt-container ast-blog-single-element"> 198 <p>This week I’ve been playing with the idea of a declarative API for scene graph construction in Swift. Kinda like RealityKit if it looked a little bit more like SwiftUI. I was spurred to try this by Christian Tietze’s call for submissions to Swift Blog Carnival. The theme this month is Tiny Languages, and it […]</p> 199<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 200 data-shared="sharing-print-1006" 201 class="share-print sd-button share-icon no-text" 202 href="https://metalbyexample.com/bismuth/?share=print" 203 target="_blank" 204 aria-labelledby="sharing-print-1006" 205 > 206 <span id="sharing-print-1006" hidden>Print (Opens in new window)</span> 207 <span>Print</span> 208 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 209 data-shared="sharing-email-1006" 210 class="share-email sd-button share-icon no-text" 211 href="mailto:?subject=%5BShared%20Post%5D%20Bismuth%3A%20A%20Prototype%20Scene%20Graph%20Language&body=https%3A%2F%2Fmetalbyexample.com%2Fbismuth%2F&share=email" 212 target="_blank" 213 aria-labelledby="sharing-email-1006" 214 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="752a40e54c" data-email-share-track-url="https://metalbyexample.com/bismuth/?share=email"> 215 <span id="sharing-email-1006" hidden>Email a link to a friend (Opens in new window)</span> 216 <span>Email</span> 217 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 218 data-shared="sharing-facebook-1006" 219 class="share-facebook sd-button share-icon no-text" 220 href="https://metalbyexample.com/bismuth/?share=facebook" 221 target="_blank" 222 aria-labelledby="sharing-facebook-1006" 223 > 224 <span id="sharing-facebook-1006" hidden>Share on Facebook (Opens in new window)</span> 225 <span>Facebook</span> 226 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 227 data-shared="sharing-twitter-1006" 228 class="share-twitter sd-button share-icon no-text" 229 href="https://metalbyexample.com/bismuth/?share=twitter" 230 target="_blank" 231 aria-labelledby="sharing-twitter-1006" 232 > 233 <span id="sharing-twitter-1006" hidden>Share on X (Opens in new window)</span> 234 <span>X</span> 235 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 236 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/bismuth/"> <span class="screen-reader-text">Bismuth: A Prototype Scene Graph Language</span> Read More »</a></p> <div class="entry-content clear" 237 itemprop="text" > 238 </div><!-- .entry-content .clear --> 239 </div><!-- .post-content --> 240</div> <!-- .blog-layout-1 --> 241 </article><!-- #post-## --> 242<article 243class="post-984 post type-post status-publish format-standard hentry category-intermediate category-rendering category-text ast-grid-common-col ast-full-width ast-article-post" id="post-984" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 244 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 245 <div class="post-content ast-grid-common-col" > 246 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/slug/" rel="bookmark">Slug</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 247 <div class="entry-meta"> <span class="comments-link"> 248 <a href="https://metalbyexample.com/slug/#respond">Leave a Comment</a> </span> 249 250 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/intermediate/" rel="category tag">Intermediate</a>, <a href="https://metalbyexample.com/category/rendering/" rel="category tag">Rendering</a>, <a href="https://metalbyexample.com/category/text/" rel="category tag">Text</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished">
250 March 30, 2026 </span></span></div> </header><!-- .entry-header --> 251 <div class="ast-excerpt-container ast-blog-single-element"> 252 <p>I expected to have to wait 12 more years to write this post. Back in 2017, Eric Lengyel published the landmark paper, “GPU-Centered Font Rendering Directly from Glyph Outlines” in the Journal of Computer Graphics Techniques. This paper introduced the Slug algorithm, a way of efficiently rasterizing text on the GPU without first rasterizing to</p> 253<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 254 data-shared="sharing-print-984" 255 class="share-print sd-button share-icon no-text" 256 href="https://metalbyexample.com/slug/?share=print" 257 target="_blank" 258 aria-labelledby="sharing-print-984" 259 > 260 <span id="sharing-print-984" hidden>Print (Opens in new window)</span> 261 <span>Print</span> 262 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 263 data-shared="sharing-email-984" 264 class="share-email sd-button share-icon no-text" 265 href="mailto:?subject=%5BShared%20Post%5D%20Slug&body=https%3A%2F%2Fmetalbyexample.com%2Fslug%2F&share=email" 266 target="_blank" 267 aria-labelledby="sharing-email-984" 268 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="235f3fc4a8" data-email-share-track-url="https://metalbyexample.com/slug/?share=email"> 269 <span id="sharing-email-984" hidden>Email a link to a friend (Opens in new window)</span> 270 <span>Email</span> 271 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 272 data-shared="sharing-facebook-984" 273 class="share-facebook sd-button share-icon no-text" 274 href="https://metalbyexample.com/slug/?share=facebook" 275 target="_blank" 276 aria-labelledby="sharing-facebook-984" 277 > 278 <span id="sharing-facebook-984" hidden>Share on Facebook (Opens in new window)</span> 279 <span>Facebook</span> 280 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 281 data-shared="sharing-twitter-984" 282 class="share-twitter sd-button share-icon no-text" 283 href="https://metalbyexample.com/slug/?share=twitter" 284 target="_blank" 285 aria-labelledby="sharing-twitter-984" 286 > 287 <span id="sharing-twitter-984" hidden>Share on X (Opens in new window)</span> 288 <span>X</span> 289 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 290 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/slug/"> <span class="screen-reader-text">Slug</span> Read More »</a></p> <div class="entry-content clear" 291 itemprop="text" > 292 </div><!-- .entry-content .clear --> 293 </div><!-- .post-content --> 294</div> <!-- .blog-layout-1 --> 295 </article><!-- #post-## --> 296<article 297class="post-974 post type-post status-publish format-standard hentry category-intermediate category-metal-4 category-physically-based-rendering category-wwdc ast-grid-common-col ast-full-width ast-article-post" id="post-974" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 298 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 299 <div class="post-content ast-grid-common-col" > 300 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/metal-4/" rel="bookmark">Getting Started with Metal 4</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 301 <div class="entry-meta"> <span class="comments-link"> 302 <a href="https://metalbyexample.com/metal-4/#comments">5 Comments</a> </span> 303 304 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/intermediate/" rel="category tag">Intermediate</a>, <a href="https://metalbyexample.com/category/metal-4/" rel="category tag">Metal 4</a>, <a href="https://metalbyexample.com/category/physically-based-rendering/" rel="category tag">Physically-Based Rendering</a>, <a href="https://metalbyexample.com/category/wwdc/" rel="category tag">WWDC</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> July 8, 2025 </span></span></div> </header><!-- .entry-header --> 305 <div class="ast-excerpt-container ast-blog-single-element"> 306 <p>Another WWDC is in the books, and with it came a major update to many platform technologies, including Metal. Metal graduated to version number 4, and in this article, we’ll explore the core features of Metal 4 as they pertain to rendering. It’s important to state up-front that this article will not cover Metal 4</p> 307<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 308 data-shared="sharing-print-974" 309 class="share-print sd-button share-icon no-text" 310 href="https://metalbyexample.com/metal-4/?share=print" 311 target="_blank" 312 aria-labelledby="sharing-print-974" 313 > 314 <span id="sharing-print-974" hidden>Print (Opens in new window)</span> 315 <span>Print</span> 316 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 317 data-shared="sharing-email-974" 318 class="share-email sd-button share-icon no-text" 319 href="mailto:?subject=%5BShared%20Post%5D%20Getting%20Started%20with%20Metal%204&body=https%3A%2F%2Fmetalbyexample.com%2Fmetal-4%2F&share=email" 320 target="_blank" 321 aria-labelledby="sharing-email-974"
322 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="a539cb44f5" data-email-share-track-url="https://metalbyexample.com/metal-4/?share=email"> 323 <span id="sharing-email-974" hidden>Email a link to a friend (Opens in new window)</span> 324 <span>Email</span> 325 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 326 data-shared="sharing-facebook-974" 327 class="share-facebook sd-button share-icon no-text" 328 href="https://metalbyexample.com/metal-4/?share=facebook" 329 target="_blank" 330 aria-labelledby="sharing-facebook-974" 331 > 332 <span id="sharing-facebook-974" hidden>Share on Facebook (Opens in new window)</span> 333 <span>Facebook</span> 334 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 335 data-shared="sharing-twitter-974" 336 class="share-twitter sd-button share-icon no-text" 337 href="https://metalbyexample.com/metal-4/?share=twitter" 338 target="_blank" 339 aria-labelledby="sharing-twitter-974" 340 > 341 <span id="sharing-twitter-974" hidden>Share on X (Opens in new window)</span> 342 <span>X</span> 343 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 344 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/metal-4/"> <span class="screen-reader-text">Getting Started with Metal 4</span> Read More »</a></p> <div class="entry-content clear" 345 itemprop="text" > 346 </div><!-- .entry-content .clear --> 347 </div><!-- .post-content --> 348</div> <!-- .blog-layout-1 --> 349 </article><!-- #post-## --> 350<article 351class="post-959 post type-post status-publish format-standard hentry category-advanced category-image-processing category-video ast-grid-common-col ast-full-width ast-article-post" id="post-959" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 352 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 353 <div class="post-content ast-grid-common-col" > 354 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/hdr-video/" rel="bookmark">Rendering HDR Video with AVFoundation and Metal</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 355 <div class="entry-meta"> <span class="comments-link"> 356 <a href="https://metalbyexample.com/hdr-video/#comments">6 Comments</a> </span> 357 358 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/advanced/" rel="category tag">Advanced</a>, <a href="https://metalbyexample.com/category/image-processing/" rel="category tag">Image Processing</a>, <a href="https://metalbyexample.com/category/video/" rel="category tag">Video</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> March 10, 2025 </span></span></div> </header><!-- .entry-header --> 359 <div class="ast-excerpt-container ast-blog-single-element"> 360 <p>In this article, I will outline how to render high dynamic range (HDR) video with Metal. In contrast to rendering standard dynamic range (SDR) content, where we can sometimes get away without paying too much attention to color management, there are many important subtleties to rendering HDR colors accurately. A lot of the heavy lifting</p> 361<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 362 data-shared="sharing-print-959" 363 class="share-print sd-button share-icon no-text" 364 href="https://metalbyexample.com/hdr-video/?share=print" 365 target="_blank" 366 aria-labelledby="sharing-print-959" 367 > 368 <span id="sharing-print-959" hidden>Print (Opens in new window)</span> 369 <span>Print</span> 370 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 371 data-shared="sharing-email-959" 372 class="share-email sd-button share-icon no-text" 373 href="mailto:?subject=%5BShared%20Post%5D%20Rendering%20HDR%20Video%20with%20AVFoundation%20and%20Metal&
373body=https%3A%2F%2Fmetalbyexample.com%2Fhdr-video%2F&share=email" 374 target="_blank" 375 aria-labelledby="sharing-email-959" 376 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="1788fefe7d" data-email-share-track-url="https://metalbyexample.com/hdr-video/?share=email"> 377 <span id="sharing-email-959" hidden>Email a link to a friend (Opens in new window)</span> 378 <span>Email</span> 379 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 380 data-shared="sharing-facebook-959" 381 class="share-facebook sd-button share-icon no-text" 382 href="https://metalbyexample.com/hdr-video/?share=facebook" 383 target="_blank" 384 aria-labelledby="sharing-facebook-959" 385 > 386 <span id="sharing-facebook-959" hidden>Share on Facebook (Opens in new window)</span> 387 <span>Facebook</span> 388 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 389 data-shared="sharing-twitter-959" 390 class="share-twitter sd-button share-icon no-text" 391 href="https://metalbyexample.com/hdr-video/?share=twitter" 392 target="_blank" 393 aria-labelledby="sharing-twitter-959" 394 > 395 <span id="sharing-twitter-959" hidden>Share on X (Opens in new window)</span> 396 <span>X</span> 397 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 398 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/hdr-video/"> <span class="screen-reader-text">Rendering HDR Video with AVFoundation and Metal</span> Read More »</a></p> <div class="entry-content clear" 399 itemprop="text" > 400 </div><!-- .entry-content .clear --> 401 </div><!-- .post-content --> 402</div> <!-- .blog-layout-1 --> 403 </article><!-- #post-## --> 404<article 405class="post-951 post type-post status-publish format-standard hentry category-history category-metal-3 category-metal-performance-shaders category-uncategorized ast-grid-common-col ast-full-width ast-article-post" id="post-951" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 406 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 407 <div class="post-content ast-grid-common-col" > 408 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/" rel="bookmark">A Decade of Metal: The Modern Era (2020âToday)</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 409 <div class="entry-meta"> <span class="comments-link"> 410 <a href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/#respond">Leave a Comment</a> </span> 411 412 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/history/" rel="category tag">History</a>, <a href="https://metalbyexample.com/category/metal-3/" rel="category tag">Metal 3</a>, <a href="https://metalbyexample.com/category/metal-performance-shaders/" rel="category tag">Metal Performance Shaders</a>, <a href="https://metalbyexample.com/category/uncategorized/" rel="category tag">Uncategorized</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> September 13, 2024 </span></span></div> </header><!-- .entry-header --> 413 <div class="ast-excerpt-container ast-blog-single-element"> 414 <p>Welcome back to our ten-year retrospective on the Metal API. You can read the first part here. This post will cover the last five years of Metal’s evolution as an enabling platform technology and bring us up to the present day. 2020 – Raytracing Redux 2020 was the year of the A14 Bionic, the powerhouse</p> 415<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 416 data-shared="sharing-print-951" 417 class="share-print sd-button share-icon no-text" 418 href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/?share=print" 419 target="_blank" 420 aria-labelledby="sharing-print-951" 421 > 422 <span id="sharing-print-951" hidden>Print (Opens in new window)</span> 423 <span>Print</span> 424 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 425 data-shared="sharing-email-951" 426 class="share-email sd-button share-icon no-text" 427 href="mailto:?subject=%5BShared%20Post%5D%20A%20Decade%20of%20Metal%3A%20The%20Modern%20Era%20%282020%E2%80%93Today%29&body=https%3A%2F%2Fmetalbyexample.com%2Fa-decade-of-metal-the-modern-era%2F&share=email" 428 target="_blank" 429 aria-labelledby="sharing-email-951"
430 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="6a22ec77a8" data-email-share-track-url="https://metalbyexample.com/a-decade-of-metal-the-modern-era/?share=email"> 431 <span id="sharing-email-951" hidden>Email a link to a friend (Opens in new window)</span> 432 <span>Email</span> 433 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 434 data-shared="sharing-facebook-951" 435 class="share-facebook sd-button share-icon no-text" 436 href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/?share=facebook" 437 target="_blank" 438 aria-labelledby="sharing-facebook-951" 439 > 440 <span id="sharing-facebook-951" hidden>Share on Facebook (Opens in new window)</span> 441 <span>Facebook</span> 442 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 443 data-shared="sharing-twitter-951" 444 class="share-twitter sd-button share-icon no-text" 445 href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/?share=twitter" 446 target="_blank" 447 aria-labelledby="sharing-twitter-951" 448 > 449 <span id="sharing-twitter-951" hidden>Share on X (Opens in new window)</span> 450 <span>X</span> 451 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 452 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/"> <span class="screen-reader-text">A Decade of Metal: The Modern Era (2020âToday)</span> Read More »</a></p> <div class="entry-content clear" 453 itemprop="text" > 454 </div><!-- .entry-content .clear --> 455 </div><!-- .post-content --> 456</div> <!-- .blog-layout-1 --> 457 </article><!-- #post-## --> 458<article 459class="post-944 post type-post status-publish format-standard hentry category-basics-2 category-history ast-grid-common-col ast-full-width ast-article-post" id="post-944" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 460 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 461 <div class="post-content ast-grid-common-col" > 462 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/a-decade-of-metal-early-years/" rel="bookmark">A Decade of Metal: The Early Years (2014â2019)</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 463 <div class="entry-meta"> <span class="comments-link"> 464 <a href="https://metalbyexample.com/a-decade-of-metal-early-years/#comments">2 Comments</a> </span> 465 466 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/basics-2/" rel="category tag">Basics</a>, <a href="https://metalbyexample.com/category/history/" rel="category tag">History</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> June 10, 2024 </span></span></div> </header><!-- .entry-header --> 467 <div class="ast-excerpt-container ast-blog-single-element"> 468 <p>Introduction In 2014, when Apple introduced the Metal graphics API, the landscape of computer graphics APIs was dominated by long-established standards like OpenGL. Seismic shifts were afoot, however, with the announcement of DirectX 12 a few months prior and the initiative that would produce Vulkan starting to take shape. These parallel efforts signaled a significant</p> 469<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 470 data-shared="sharing-print-944" 471 class="share-print sd-button share-icon no-text" 472 href="https://metalbyexample.com/a-decade-of-metal-early-years/?share=print" 473 target="_blank" 474 aria-labelledby="sharing-print-944" 475 > 476 <span id="sharing-print-944" hidden>Print (Opens in new window)</span> 477 <span>Print</span> 478 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 479 data-shared="sharing-email-944" 480 class="share-email sd-button share-icon no-text" 481 href="mailto:?subject=%5BShared%20Post%5D%20A%20Decade%20of%20Metal%3A%20The%20Early%20Years%20%282014%E2%80%932019%29&body=https%3A%2F%2Fmetalbyexample.com%2Fa-decade-of-metal-early-years%2F&share=email" 482 target="_blank" 483 aria-labelledby="sharing-email-944"
484 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="01f085610d" data-email-share-track-url="https://metalbyexample.com/a-decade-of-metal-early-years/?share=email"> 485 <span id="sharing-email-944" hidden>Email a link to a friend (Opens in new window)</span> 486 <span>Email</span> 487 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 488 data-shared="sharing-facebook-944" 489 class="share-facebook sd-button share-icon no-text" 490 href="https://metalbyexample.com/a-decade-of-metal-early-years/?share=facebook" 491 target="_blank" 492 aria-labelledby="sharing-facebook-944" 493 > 494 <span id="sharing-facebook-944" hidden>Share on Facebook (Opens in new window)</span> 495 <span>Facebook</span> 496 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 497 data-shared="sharing-twitter-944" 498 class="share-twitter sd-button share-icon no-text" 499 href="https://metalbyexample.com/a-decade-of-metal-early-years/?share=twitter" 500 target="_blank" 501 aria-labelledby="sharing-twitter-944" 502 > 503 <span id="sharing-twitter-944" hidden>Share on X (Opens in new window)</span> 504 <span>X</span> 505 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 506 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/a-decade-of-metal-early-years/"> <span class="screen-reader-text">A Decade of Metal: The Early Years (2014â2019)</span> Read More »</a></p> <div class="entry-content clear" 507 itemprop="text" > 508 </div><!-- .entry-content .clear --> 509 </div><!-- .post-content --> 510</div> <!-- .blog-layout-1 --> 511 </article><!-- #post-## --> 512<article 513class="post-894 post type-post status-publish format-standard hentry category-advanced category-metal-3 ast-grid-common-col ast-full-width ast-article-post" id="post-894" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 514 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 515 <div class="post-content ast-grid-common-col" > 516 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/mesh-shaders/" rel="bookmark">Mesh Shaders and Meshlet Culling in Metal 3</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 517 <div class="entry-meta"> <span class="comments-link"> 518 <a href="https://metalbyexample.com/mesh-shaders/#comments">17 Comments</a> </span> 519 520 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/advanced/" rel="category tag">Advanced</a>, <a href="https://metalbyexample.com/category/metal-3/" rel="category tag">Metal 3</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> March 27, 2023 </span></span></div> </header><!-- .entry-header --> 521 <div class="ast-excerpt-container ast-blog-single-element"> 522 <p>Metal 3, introduced by Apple at WWDC 2022, brought with it a significant number of features that enable modern rendering techniques, faster resource loading, and flexible shader compilation. It also includes an all-new geometry pipeline that unlocks novel rendering techniques by allowing developers to bypass most of the traditional vertex processing steps and submit geometry</p> 523<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 524 data-shared="sharing-print-894" 525 class="share-print sd-button share-icon no-text" 526 href="https://metalbyexample.com/mesh-shaders/?share=print" 527 target="_blank" 528 aria-labelledby="sharing-print-894" 529 > 530 <span id="sharing-print-894" hidden>Print (Opens in new window)</span> 531 <span>Print</span> 532 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 533 data-shared="sharing-email-894" 534 class="share-email sd-button share-icon no-text" 535 href="mailto:?subject=%5BShared%20Post%5D%20Mesh%20Shaders%20and%20Meshlet%20Culling%20in%20Metal%203&body=https%3A%2F%2Fmetalbyexample.com%2Fmesh-shaders%2F&share=email" 536 target="_blank" 537 aria-labelledby="sharing-email-894"
538 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="3ab98c1ce3" data-email-share-track-url="https://metalbyexample.com/mesh-shaders/?share=email"> 539 <span id="sharing-email-894" hidden>Email a link to a friend (Opens in new window)</span> 540 <span>Email</span> 541 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 542 data-shared="sharing-facebook-894" 543 class="share-facebook sd-button share-icon no-text" 544 href="https://metalbyexample.com/mesh-shaders/?share=facebook" 545 target="_blank" 546 aria-labelledby="sharing-facebook-894" 547 > 548 <span id="sharing-facebook-894" hidden>Share on Facebook (Opens in new window)</span> 549 <span>Facebook</span> 550 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 551 data-shared="sharing-twitter-894" 552 class="share-twitter sd-button share-icon no-text" 553 href="https://metalbyexample.com/mesh-shaders/?share=twitter" 554 target="_blank" 555 aria-labelledby="sharing-twitter-894" 556 > 557 <span id="sharing-twitter-894" hidden>Share on X (Opens in new window)</span> 558 <span>X</span> 559 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 560 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/mesh-shaders/"> <span class="screen-reader-text">Mesh Shaders and Meshlet Culling in Metal 3</span> Read More »</a></p> <div class="entry-content clear" 561 itemprop="text" > 562 </div><!-- .entry-content .clear --> 563 </div><!-- .post-content --> 564</div> <!-- .blog-layout-1 --> 565 </article><!-- #post-## --> 566<article 567class="post-877 post type-post status-publish format-standard hentry category-intermediate category-rendering category-swift category-tessellation ast-grid-common-col ast-full-width ast-article-post" id="post-877" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 568 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 569 <div class="post-content ast-grid-common-col" > 570 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/tessellation/" rel="bookmark">Introduction to Tessellation in Metal</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 571 <div class="entry-meta"> <span class="comments-link"> 572 <a href="https://metalbyexample.com/tessellation/#comments">8 Comments</a> </span> 573 574 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/intermediate/" rel="category tag">Intermediate</a>, <a href="https://metalbyexample.com/category/rendering/" rel="category tag">Rendering</a>, <a href="https://metalbyexample.com/category/swift/" rel="category tag">Swift</a>, <a href="https://metalbyexample.com/category/tessellation/" rel="category tag">Tessellation</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> December 6, 2021 </span></span></div> </header><!-- .entry-header --> 575 <div class="ast-excerpt-container ast-blog-single-element"> 576 <p>In this article we will take a look at how to do tessellation on the GPU with Metal. Tessellation is a powerful technique for generating geometry dynamically with many use cases from CAD/CAM to game development and beyond. This article discusses the fundamentals of tessellation and how to do it in Metal; future articles will</p> 577<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 578 data-shared="sharing-print-877" 579 class="share-print sd-button share-icon no-text" 580 href="https://metalbyexample.com/tessellation/?share=print" 581 target="_blank" 582 aria-labelledby="sharing-print-877" 583 > 584 <span id="sharing-print-877" hidden>Print (Opens in new window)</span> 585 <span>Print</span> 586 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 587 data-shared="sharing-email-877" 588 class="share-email sd-button share-icon no-text" 589 href="mailto:?subject=%5BShared%20Post%5D%20Introduction%20to%20Tessellation%20in%20Metal&body=https%3A%2F%2Fmetalbyexample.com%2Ftessellation%2F&share=email" 590 target="_blank" 591 aria-labelledby="sharing-email-877"
592 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="fc43f7fc92" data-email-share-track-url="https://metalbyexample.com/tessellation/?share=email"> 593 <span id="sharing-email-877" hidden>Email a link to a friend (Opens in new window)</span> 594 <span>Email</span> 595 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 596 data-shared="sharing-facebook-877" 597 class="share-facebook sd-button share-icon no-text" 598 href="https://metalbyexample.com/tessellation/?share=facebook" 599 target="_blank" 600 aria-labelledby="sharing-facebook-877" 601 > 602 <span id="sharing-facebook-877" hidden>Share on Facebook (Opens in new window)</span> 603 <span>Facebook</span> 604 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 605 data-shared="sharing-twitter-877" 606 class="share-twitter sd-button share-icon no-text" 607 href="https://metalbyexample.com/tessellation/?share=twitter" 608 target="_blank" 609 aria-labelledby="sharing-twitter-877" 610 > 611 <span id="sharing-twitter-877" hidden>Share on X (Opens in new window)</span> 612 <span>X</span> 613 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 614 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/tessellation/"> <span class="screen-reader-text">Introduction to Tessellation in Metal</span> Read More »</a></p> <div class="entry-content clear" 615 itemprop="text" > 616 </div><!-- .entry-content .clear --> 617 </div><!-- .post-content --> 618</div> <!-- .blog-layout-1 --> 619 </article><!-- #post-## --> 620<article 621class="post-862 post type-post status-publish format-standard hentry category-advanced ast-grid-common-col ast-full-width ast-article-post" id="post-862" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 622 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 623 <div class="post-content ast-grid-common-col" > 624 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/metal-on-a15/" rel="bookmark">Understanding Metal Enhancements in the A15 Bionic GPU</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 625 <div class="entry-meta"> <span class="comments-link"> 626 <a href="https://metalbyexample.com/metal-on-a15/#comments">2 Comments</a> </span> 627 628 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/advanced/" rel="category tag">Advanced</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> September 23, 2021 </span></span></div> </header><!-- .entry-header --> 629 <div class="ast-excerpt-container ast-blog-single-element"> 630 <p>With the advent of iPhone 13 comes a new generation of Apple-designed system-on-a-chip: the A15 Bionic. As has become expected, Apple has published a developer-oriented tech talk to explain the new and enhanced GPU features included in this latest cutting-edge offering. You can watch it here. The tech talk is the best official source of</p> 631<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 632 data-shared="sharing-print-862" 633 class="share-print sd-button share-icon no-text" 634 href="https://metalbyexample.com/metal-on-a15/?share=print" 635 target="_blank" 636 aria-labelledby="sharing-print-862" 637 > 638 <span id="sharing-print-862" hidden>Print (Opens in new window)</span> 639 <span>Print</span> 640 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 641 data-shared="sharing-email-862" 642 class="share-email sd-button share-icon no-text" 643 href="mailto:?subject=%5BShared%20Post%5D%20Understanding%20Metal%20Enhancements%20in%20the%20A15%20Bionic%20GPU&body=https%3A%2F%2Fmetalbyexample.com%2Fmetal-on-a15%2F&share=email" 644 target="_blank" 645 aria-labelledby="sharing-email-862"
646 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="40d29776c4" data-email-share-track-url="https://metalbyexample.com/metal-on-a15/?share=email"> 647 <span id="sharing-email-862" hidden>Email a link to a friend (Opens in new window)</span> 648 <span>Email</span> 649 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 650 data-shared="sharing-facebook-862" 651 class="share-facebook sd-button share-icon no-text" 652 href="https://metalbyexample.com/metal-on-a15/?share=facebook" 653 target="_blank" 654 aria-labelledby="sharing-facebook-862" 655 > 656 <span id="sharing-facebook-862" hidden>Share on Facebook (Opens in new window)</span> 657 <span>Facebook</span> 658 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 659 data-shared="sharing-twitter-862" 660 class="share-twitter sd-button share-icon no-text" 661 href="https://metalbyexample.com/metal-on-a15/?share=twitter" 662 target="_blank" 663 aria-labelledby="sharing-twitter-862" 664 > 665 <span id="sharing-twitter-862" hidden>Share on X (Opens in new window)</span> 666 <span>X</span> 667 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 668 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/metal-on-a15/"> <span class="screen-reader-text">Understanding Metal Enhancements in the A15 Bionic GPU</span> Read More »</a></p> <div class="entry-content clear" 669 itemprop="text" > 670 </div><!-- .entry-content .clear --> 671 </div><!-- .post-content --> 672</div> <!-- .blog-layout-1 --> 673 </article><!-- #post-## --> 674<article 675class="post-848 post type-post status-publish format-standard hentry category-intermediate category-webgpu ast-grid-common-col ast-full-width ast-article-post" id="post-848" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"> 676 <div class="ast-post-format- ast-no-thumb blog-layout-1 ast-article-inner"> 677 <div class="post-content ast-grid-common-col" > 678 <h2 class="entry-title ast-blog-single-element" itemprop="headline"><a href="https://metalbyexample.com/webgpu-part-two/" rel="bookmark">WebGPU for Metal Developers, Part Two</a></h2> <header class="entry-header ast-blog-single-element ast-blog-meta-container"> 679 <div class="entry-meta"> <span class="comments-link"> 680 <a href="https://metalbyexample.com/webgpu-part-two/#comments">2 Comments</a> </span> 681 682 / <span class="ast-taxonomy-container cat-links default"><a href="https://metalbyexample.com/category/intermediate/" rel="category tag">Intermediate</a>, <a href="https://metalbyexample.com/category/webgpu/" rel="category tag">WebGPU</a></span> / <span class="posted-on"><span class="published" itemprop="datePublished"> July 8, 2021 </span></span></div> </header><!-- .entry-header --> 683 <div class="ast-excerpt-container ast-blog-single-element"> 684 <p>In the previous article we took a first look at WebGPU and got familiar with the essential pieces of the API, the command submission model, and drawing in 2D from a static buffer. In this article, we’ll look much deeper into WebGPU. Some of our topics include: texture creation and sampling displacement mapping in WGSL</p> 685<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-print"><a rel="nofollow noopener noreferrer" 686 data-shared="sharing-print-848" 687 class="share-print sd-button share-icon no-text" 688 href="https://metalbyexample.com/webgpu-part-two/?share=print" 689 target="_blank" 690 aria-labelledby="sharing-print-848" 691 > 692 <span id="sharing-print-848" hidden>Print (Opens in new window)</span> 693 <span>Print</span> 694 </a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" 695 data-shared="sharing-email-848" 696 class="share-email sd-button share-icon no-text" 697 href="mailto:?subject=%5BShared%20Post%5D%20WebGPU%20for%20Metal%20Developers%2C%20Part%20Two&body=https%3A%2F%2Fmetalbyexample.com%2Fwebgpu-part-two%2F&share=email" 698 target="_blank" 699 aria-labelledby="sharing-email-848"
700 data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="f40dd36548" data-email-share-track-url="https://metalbyexample.com/webgpu-part-two/?share=email"> 701 <span id="sharing-email-848" hidden>Email a link to a friend (Opens in new window)</span> 702 <span>Email</span> 703 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 704 data-shared="sharing-facebook-848" 705 class="share-facebook sd-button share-icon no-text" 706 href="https://metalbyexample.com/webgpu-part-two/?share=facebook" 707 target="_blank" 708 aria-labelledby="sharing-facebook-848" 709 > 710 <span id="sharing-facebook-848" hidden>Share on Facebook (Opens in new window)</span> 711 <span>Facebook</span> 712 </a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" 713 data-shared="sharing-twitter-848" 714 class="share-twitter sd-button share-icon no-text" 715 href="https://metalbyexample.com/webgpu-part-two/?share=twitter" 716 target="_blank" 717 aria-labelledby="sharing-twitter-848" 718 > 719 <span id="sharing-twitter-848" hidden>Share on X (Opens in new window)</span> 720 <span>X</span> 721 </a></li><li class="share-end"></li></ul></div></div></div></div></div> </div> 722 <p class="ast-blog-single-element ast-read-more-container read-more"> <a class="" href="https://metalbyexample.com/webgpu-part-two/"> <span class="screen-reader-text">WebGPU for Metal Developers, Part Two</span> Read More »</a></p> <div class="entry-content clear" 723 itemprop="text" > 724 </div><!-- .entry-content .clear --> 725 </div><!-- .post-content --> 726</div> <!-- .blog-layout-1 --> 727 </article><!-- #post-## --> 728</div> </main><!-- #main --> 729 <div class='ast-pagination'><nav class="navigation pagination" aria-label="Post pagination"> 730 <div class="nav-links"><span aria-current="page" class="page-numbers current">1</span> 731<a class="page-numbers" href="https://metalbyexample.com/page/2/">2</a> 732<span class="page-numbers dots">…</span> 733<a class="page-numbers" href="https://metalbyexample.com/page/4/">4</a> 734<a class="next page-numbers" href="https://metalbyexample.com/page/2/">Next <span class="ast-right-arrow" aria-hidden="true">→</span></a></div> 735 </nav></div> </div><!-- #primary --> 736<div class="widget-area secondary" id="secondary" itemtype="https://schema.org/WPSideBar" itemscope="itemscope"> 737 <div class="sidebar-main" > 738 739 <aside id="search-3" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://metalbyexample.com/"> 740 <label for="search-field"> 741 <span class="screen-reader-text">Search for:</span> 742 <input type="search" id="search-field-sticky" class="search-field" placeholder="Search..." value="" name="s" tabindex="-1"> 743 <button class="search-submit ast-search-submit" aria-label="Search Submit"> 744 <span hidden>Search</span> 745 <i><span class="ast-icon icon-search"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="-893 477 142 142" enable-background="new -888 480 142 142" xml:space="preserve"> 746 <path d="M-787.4,568.7h-6.3l-2.4-2.4c7.9-8.7,12.6-20.5,12.6-33.1c0-28.4-22.9-51.3-51.3-51.3 c-28.4,0-51.3,22.9-51.3,51.3c0,28.4,22.9,51.3,51.3,51.3c12.6,0,24.4-4.7,33.1-12.6l2.4,2.4v6.3l39.4,39.4l11.8-11.8L-787.4,568.7 L-787.4,568.7z M-834.7,568.7c-19.7,0-35.5-15.8-35.5-35.5c0-19.7,15.8-35.5,35.5-35.5c19.7,0,35.5,15.8,35.5,35.5 C-799.3,553-815,568.7-834.7,568.7L-834.7,568.7z" /> 747 </svg></span></i> 748 </button> 749 </label> 750 <input type="submit" class="search-submit" value="Search"> 751 </form> 752</aside> 753 <aside id="recent-posts-3" class="widget widget_recent_entries"> 754 <h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts"> 755 <ul> 756 <li> 757 <a href="https://metalbyexample.com/bismuth/">Bismuth: A Prototype Scene Graph Language</a> 758 </li> 759 <li> 760 <a href="https://metalbyexample.com/slug/">
760Slug</a> 761 </li> 762 <li> 763 <a href="https://metalbyexample.com/metal-4/">Getting Started with Metal 4</a> 764 </li> 765 <li> 766 <a href="https://metalbyexample.com/hdr-video/">Rendering HDR Video with AVFoundation and Metal</a> 767 </li> 768 <li> 769 <a href="https://metalbyexample.com/a-decade-of-metal-the-modern-era/">A Decade of Metal: The Modern Era (2020âToday)</a> 770 </li> 771 <li> 772 <a href="https://metalbyexample.com/a-decade-of-metal-early-years/">A Decade of Metal: The Early Years (2014â2019)</a> 773 </li> 774 <li> 775 <a href="https://metalbyexample.com/mesh-shaders/">Mesh Shaders and Meshlet Culling in Metal 3</a> 776 </li> 777 <li> 778 <a href="https://metalbyexample.com/tessellation/">Introduction to Tessellation in Metal</a> 779 </li> 780 <li> 781 <a href="https://metalbyexample.com/metal-on-a15/">Understanding Metal Enhancements in the A15 Bionic GPU</a> 782 </li> 783 <li> 784 <a href="https://metalbyexample.com/webgpu-part-two/">WebGPU for Metal Developers, Part Two</a> 785 </li> 786 <li> 787 <a href="https://metalbyexample.com/webgpu-part-one/">WebGPU for Metal Developers, Part One</a> 788 </li> 789 <li> 790 <a href="https://metalbyexample.com/basis-universal/">Using Basis Universal Texture Compression with Metal</a> 791 </li> 792 <li> 793 <a href="https://metalbyexample.com/new-in-metal-3/">What’s New in Metal (2019)</a> 794 </li> 795 <li> 796 <a href="https://metalbyexample.com/vertex-descriptors/">Vertex Data and Vertex Descriptors</a> 797 </li> 798 <li> 799 <a href="https://metalbyexample.com/picking-hit-testing/">Picking and Hit-Testing in Metal</a> 800 </li> 801 </ul> 802 803 </nav></aside><aside id="archives-4" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <label class="screen-reader-text" for="archives-dropdown-4">Archives</label> 804 <select id="archives-dropdown-4" name="archive-dropdown"> 805 806 <option value="">Select Month</option> 807 <option value='https://metalbyexample.com/2026/04/'> April 2026 (1)</option> 808 <option value='https://metalbyexample.com/2026/03/'> March 2026 (1)</option> 809 <option value='https://metalbyexample.com/2025/07/'> July 2025 (1)</option> 810 <option value='https://metalbyexample.com/2025/03/'> March 2025 (1)</option> 811 <option value='https://metalbyexample.com/2024/09/'> September 2024 (1)</option> 812 <option value='https://metalbyexample.com/2024/06/'> June 2024 (1)</option> 813 <option value='https://metalbyexample.com/2023/03/'> March 2023 (1)</option> 814 <option value='https://metalbyexample.com/2021/12/'> December 2021 (1)</option> 815 <option value='https://metalbyexample.com/2021/09/'> September 2021 (1)</option> 816 <option value='https://metalbyexample.com/2021/07/'> July 2021 (1)</option> 817 <option value='https://metalbyexample.com/2021/06/'> June 2021 (1)</option> 818 <option value='https://metalbyexample.com/2019/07/'> July 2019 (1)</option> 819 <option value='https://metalbyexample.com/2019/06/'> June 2019 (1)</option> 820 <option value='https://metalbyexample.com/2019/05/'> May 2019 (1)</option> 821 <option value='https://metalbyexample.com/2018/11/'> November 2018 (1)</option> 822 <option value='https://metalbyexample.com/2018/09/'> September 2018 (1)</option> 823 <option value='https://metalbyexample.com/2018/08/'> August 2018 (1)</option> 824 <option value='https://metalbyexample.com/2018/07/'> July 2018 (2)</option> 825 <option value='https://metalbyexample.com/2015/10/'> October 2015 (2)</option> 826 <option value='https://metalbyexample.com/2015/06/'> June 2015 (1)</option> 827 <option value='https://metalbyexample.com/2015/05/'> May 2015 (1)</option> 828 <option value='https://metalbyexample.com/2015/02/'> February 2015 (1)</option> 829 <option value='https://metalbyexample.com/2015/01/'> January 2015 (2)</option> 830 <option value='https://metalbyexample.com/2014/12/'> December 2014 (2)</option> 831 <option value='https://metalbyexample.com/2014/11/'>
831 November 2014 (1)</option> 832 <option value='https://metalbyexample.com/2014/10/'> October 2014 (2)</option> 833 <option value='https://metalbyexample.com/2014/09/'> September 2014 (4)</option> 834 <option value='https://metalbyexample.com/2014/08/'> August 2014 (3)</option> 835 836 </select> 837 838
838<script> 839( ( dropdownId ) => { 840 const dropdown = document.getElementById( dropdownId ); 841 function onSelectChange() { 842 setTimeout( () => { 843 if ( 'escape' === dropdown.dataset.lastkey ) { 844 return; 845 } 846 if ( dropdown.value ) { 847 document.location.href = dropdown.value; 848 } 849 }, 250 ); 850 } 851 function onKeyUp( event ) { 852 if ( 'Escape' === event.key ) { 853 dropdown.dataset.lastkey = 'escape'; 854 } else { 855 delete dropdown.dataset.lastkey; 856 } 857 } 858 function onClick() { 859 delete dropdown.dataset.lastkey; 860 } 861 dropdown.addEventListener( 'keyup', onKeyUp ); 862 dropdown.addEventListener( 'click', onClick ); 863 dropdown.addEventListener( 'change', onSelectChange ); 864})( "archives-dropdown-4" ); 865 866//# sourceURL=WP_Widget_Archives%3A%3Awidget 867</script>
867 868</aside><aside id="archives-3" class="widget widget_archive"><h2 class="widget-title">Archives</h2><nav aria-label="Archives"> 869 <ul> 870 <li><a href='https://metalbyexample.com/2026/04/'>April 2026</a></li> 871 <li><a href='https://metalbyexample.com/2026/03/'>March 2026</a></li> 872 <li><a href='https://metalbyexample.com/2025/07/'>July 2025</a></li> 873 <li><a href='https://metalbyexample.com/2025/03/'>March 2025</a></li> 874 <li><a href='https://metalbyexample.com/2024/09/'>September 2024</a></li> 875 <li><a href='https://metalbyexample.com/2024/06/'>June 2024</a></li> 876 <li><a href='https://metalbyexample.com/2023/03/'>March 2023</a></li> 877 <li><a href='https://metalbyexample.com/2021/12/'>December 2021</a></li> 878 <li><a href='https://metalbyexample.com/2021/09/'>September 2021</a></li> 879 <li><a href='https://metalbyexample.com/2021/07/'>July 2021</a></li> 880 <li><a href='https://metalbyexample.com/2021/06/'>June 2021</a></li> 881 <li><a href='https://metalbyexample.com/2019/07/'>July 2019</a></li> 882 <li><a href='https://metalbyexample.com/2019/06/'>June 2019</a></li> 883 <li><a href='https://metalbyexample.com/2019/05/'>May 2019</a></li> 884 <li><a href='https://metalbyexample.com/2018/11/'>November 2018</a></li> 885 <li><a href='https://metalbyexample.com/2018/09/'>September 2018</a></li> 886 <li><a href='https://metalbyexample.com/2018/08/'>August 2018</a></li> 887 <li><a href='https://metalbyexample.com/2018/07/'>July 2018</a></li> 888 <li><a href='https://metalbyexample.com/2015/10/'>October 2015</a></li> 889 <li><a href='https://metalbyexample.com/2015/06/'>June 2015</a></li> 890 <li><a href='https://metalbyexample.com/2015/05/'>May 2015</a></li> 891 <li><a href='https://metalbyexample.com/2015/02/'>February 2015</a></li> 892 <li><a href='https://metalbyexample.com/2015/01/'>January 2015</a></li> 893 <li><a href='https://metalbyexample.com/2014/12/'>December 2014</a></li> 894 <li><a href='https://metalbyexample.com/2014/11/'>November 2014</a></li> 895 <li><a href='https://metalbyexample.com/2014/10/'>October 2014</a></li> 896 <li><a href='https://metalbyexample.com/2014/09/'>September 2014</a></li> 897 <li><a href='https://metalbyexample.com/2014/08/'>August 2014</a></li> 898 </ul> 899 900 </nav></aside> 901 </div><!-- .sidebar-main --> 902</div><!-- #secondary --> 903 </div> <!-- ast-container --> 904 </div><!-- #content --> 905<footer 906class="site-footer" id="colophon" itemtype="https://schema.org/WPFooter" itemscope="itemscope" itemid="#colophon"> 907 <div class="site-below-footer-wrap ast-builder-grid-row-container site-footer-focus-item ast-builder-grid-row-full ast-builder-grid-row-tablet-full ast-builder-grid-row-mobile-full ast-footer-row-stack ast-footer-row-tablet-stack ast-footer-row-mobile-stack" data-section="section-below-footer-builder"> 908 <div class="ast-builder-grid-row-container-inner"> 909 <div class="ast-builder-footer-grid-columns site-below-footer-inner-wrap ast-builder-grid-row"> 910 <div class="site-footer-below-section-1 site-footer-section site-footer-section-1"> 911 <div class="ast-builder-layout-element ast-flex site-footer-focus-item ast-footer-copyright" data-section="section-footer-builder"> 912 <div class="ast-footer-copyright"><p>Copyright © 2026 Metal by Example | Powered by <a href="https://wpastra.com" rel="nofollow noopener" target="_blank">Astra WordPress Theme</a></p> 913</div> </div> 914 </div> 915 </div> 916 </div> 917 918</div> 919 </footer><!-- #colophon --> 920 </div><!-- #page -->
921<script type="speculationrules"> 922{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/astra/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 923</script>
923 924 925
925<script type="text/javascript"> 926 window.WPCOM_sharing_counts = {"https://metalbyexample.com/bismuth/":1006,"https://metalbyexample.com/slug/":984,"https://metalbyexample.com/metal-4/":974,"https://metalbyexample.com/hdr-video/":959,"https://metalbyexample.com/a-decade-of-metal-the-modern-era/":951,"https://metalbyexample.com/a-decade-of-metal-early-years/":944,"https://metalbyexample.com/mesh-shaders/":894,"https://metalbyexample.com/tessellation/":877,"https://metalbyexample.com/metal-on-a15/":862,"https://metalbyexample.com/webgpu-part-two/":848}; 927 </script>
927 928
928<script> 929 /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); 930 </script>
930 931
931<script id="astra-theme-js-js-extra"> 932var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"","is_scroll_to_top":"","is_header_footer_builder_active":"1","responsive_cart_click":"flyout","is_dark_palette":""}; 933//# sourceURL=astra-theme-js-js-extra 934</script>
vendor: 1 bytes, line 934
934
935<script src="https://metalbyexample.com/wp-content/themes/astra/assets/js/minified/frontend.min.js?ver=4.12.6" id="astra-theme-js-js"></script>
vendor: 1 bytes, line 935
935
936<script id="jetpack-stats-js-before"> 937_stq = window._stq || []; 938_stq.push([ "view", {"v":"ext","blog":"73437896","post":"0","tz":"-7","srv":"metalbyexample.com","arch_home":"1","j":"1:16.1.3"} ]); 939_stq.push([ "clickTrackerInit", "73437896", "0" ]); 940//# sourceURL=jetpack-stats-js-before 941</script>
vendor: 1 bytes, line 941
941
942<script src="https://stats.wp.com/e-202640.js" id="jetpack-stats-js" defer data-wp-strategy="defer" fetchpriority="low"></script>
vendor: 1 bytes, line 942
942
943<script id="sharing-js-js-extra"> 944var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"}; 945//# sourceURL=sharing-js-js-extra 946</script>
vendor: 1 bytes, line 946
946
947<script src="https://metalbyexample.com/wp-content/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js?ver=16.1.3" id="sharing-js-js"></script>
vendor: 1 bytes, line 947
947
948<script id="sharing-js-js-after"> 949var windowOpen; 950 ( function () { 951 function matches( el, sel ) { 952 return !! ( 953 el.matches && el.matches( sel ) || 954 el.msMatchesSelector && el.msMatchesSelector( sel ) 955 ); 956 } 957 958 document.body.addEventListener( 'click', function ( event ) { 959 if ( ! event.target ) { 960 return; 961 } 962 963 var el; 964 if ( matches( event.target, 'a.share-facebook' ) ) { 965 el = event.target; 966 } else if ( event.target.parentNode && matches( event.target.parentNode, 'a.share-facebook' ) ) { 967 el = event.target.parentNode; 968 } 969 970 if ( el ) { 971 event.preventDefault(); 972 973 // If there's another sharing window open, close it. 974 if ( typeof windowOpen !== 'undefined' ) { 975 windowOpen.close(); 976 } 977 windowOpen = window.open( el.getAttribute( 'href' ), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400' ); 978 return false; 979 } 980 } ); 981 } )(); 982var windowOpen; 983 ( function () { 984 function matches( el, sel ) { 985 return !! ( 986 el.matches && el.matches( sel ) || 987 el.msMatchesSelector && el.msMatchesSelector( sel ) 988 ); 989 } 990 991 document.body.addEventListener( 'click', function ( event ) { 992 if ( ! event.target ) { 993 return; 994 } 995 996 var el; 997 if ( matches( event.target, 'a.share-twitter' ) ) { 998 el = event.target; 999 } else if ( event.target.parentNode && matches( event.target.parentNode, 'a.share-twitter' ) ) { 1000 el = event.target.parentNode; 1001 } 1002 1003 if ( el ) { 1004 event.preventDefault(); 1005 1006 // If there's another sharing window open, close it. 1007 if ( typeof windowOpen !== 'undefined' ) { 1008 windowOpen.close(); 1009 } 1010 windowOpen = window.open( el.getAttribute( 'href' ), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350' ); 1011 return false; 1012 } 1013 } ); 1014 } )(); 1015//# sourceURL=sharing-js-js-after 1016</script>
vendor: 1 bytes, line 1016
1016
1017<script id="wp-emoji-settings" type="application/json"> 1018{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://metalbyexample.com/wp-includes/js/wp-emoji-release.min.js?ver=6.9.9"}} 1019</script>
vendor: 1 bytes, line 1019
1019
1020<script type="module"> 1021/*! This file is auto-generated */ 1022var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 1023//# sourceURL=https://metalbyexample.com/wp-includes/js/wp-emoji-loader.min.js 1024</script>
1024 1025 </body> 1026</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.