PageSourceSearch

https://metalbyexample.com/

html metalbyexample.com collected 2026-10-02 06:56:58 UTC 151,341 bytes, 1,026 lines download raw bytes

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 &#8211; 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 &raquo; Feed" href="https://metalbyexample.com/feed/" />
15<link rel="alternate" type="application/rss+xml" title="Metal by Example &raquo; 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&#038;display=swap&#038;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&#8217;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&#8217;s call for submissions to Swift Blog Carnival. The theme this month is Tiny Languages, and it [&hellip;]</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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fbismuth%2F&#038;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&#039;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, &#8220;GPU-Centered Font Rendering Directly from Glyph Outlines&#8221; 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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fslug%2F&#038;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&#039;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&#8217;ll explore the core features of Metal 4 as they pertain to rendering. It&#8217;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fmetal-4%2F&#038;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&#039;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&#038;
373body=https%3A%2F%2Fmetalbyexample.com%2Fhdr-video%2F&#038;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&#039;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&#8217;s evolution as an enabling platform technology and bring us up to the present day. 2020 &#8211; 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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fa-decade-of-metal-the-modern-era%2F&#038;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&#039;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fa-decade-of-metal-early-years%2F&#038;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&#039;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fmesh-shaders%2F&#038;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&#039;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Ftessellation%2F&#038;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&#039;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fmetal-on-a15%2F&#038;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&#039;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&#8217;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&#038;body=https%3A%2F%2Fmetalbyexample.com%2Fwebgpu-part-two%2F&#038;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&#039;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">&hellip;</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">&rarr;</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&#8217;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 &nbsp;(1)</option>
808	<option value='https://metalbyexample.com/2026/03/'> March 2026 &nbsp;(1)</option>
809	<option value='https://metalbyexample.com/2025/07/'> July 2025 &nbsp;(1)</option>
810	<option value='https://metalbyexample.com/2025/03/'> March 2025 &nbsp;(1)</option>
811	<option value='https://metalbyexample.com/2024/09/'> September 2024 &nbsp;(1)</option>
812	<option value='https://metalbyexample.com/2024/06/'> June 2024 &nbsp;(1)</option>
813	<option value='https://metalbyexample.com/2023/03/'> March 2023 &nbsp;(1)</option>
814	<option value='https://metalbyexample.com/2021/12/'> December 2021 &nbsp;(1)</option>
815	<option value='https://metalbyexample.com/2021/09/'> September 2021 &nbsp;(1)</option>
816	<option value='https://metalbyexample.com/2021/07/'> July 2021 &nbsp;(1)</option>
817	<option value='https://metalbyexample.com/2021/06/'> June 2021 &nbsp;(1)</option>
818	<option value='https://metalbyexample.com/2019/07/'> July 2019 &nbsp;(1)</option>
819	<option value='https://metalbyexample.com/2019/06/'> June 2019 &nbsp;(1)</option>
820	<option value='https://metalbyexample.com/2019/05/'> May 2019 &nbsp;(1)</option>
821	<option value='https://metalbyexample.com/2018/11/'> November 2018 &nbsp;(1)</option>
822	<option value='https://metalbyexample.com/2018/09/'> September 2018 &nbsp;(1)</option>
823	<option value='https://metalbyexample.com/2018/08/'> August 2018 &nbsp;(1)</option>
824	<option value='https://metalbyexample.com/2018/07/'> July 2018 &nbsp;(2)</option>
825	<option value='https://metalbyexample.com/2015/10/'> October 2015 &nbsp;(2)</option>
826	<option value='https://metalbyexample.com/2015/06/'> June 2015 &nbsp;(1)</option>
827	<option value='https://metalbyexample.com/2015/05/'> May 2015 &nbsp;(1)</option>
828	<option value='https://metalbyexample.com/2015/02/'> February 2015 &nbsp;(1)</option>
829	<option value='https://metalbyexample.com/2015/01/'> January 2015 &nbsp;(2)</option>
830	<option value='https://metalbyexample.com/2014/12/'> December 2014 &nbsp;(2)</option>
831	<option value='https://metalbyexample.com/2014/11/'>
831 November 2014 &nbsp;(1)</option>
832	<option value='https://metalbyexample.com/2014/10/'> October 2014 &nbsp;(2)</option>
833	<option value='https://metalbyexample.com/2014/09/'> September 2014 &nbsp;(4)</option>
834	<option value='https://metalbyexample.com/2014/08/'> August 2014 &nbsp;(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 &copy; 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.